Probleme de compilation programmation graphique tunio for esp8266

bonjour à tous
je suis nouveau sur le forum et je métrise pas vraiment le langage Arduino
c'est pour cette raison que j'utilise Tuniot for esp8266 pour ceux qui connaisse
mais des que l'on s'embarque dans des projets plus compliqués ça se complique.
voila mon projet j'ai un esp8266 qui tourne avec espeasy et deux PZEM004 pour mesurer les tensions et courants alternatifs sur mon entrée compteur EDF et sur mes panneaux photovoltaïque et faire remonter ces infos plus tard sur un serveur pour les stoker et les traiter de ce coté là pas de soucis ça tourne .
Je veux récupérer ces données via le wifi par une requête http avec un autre esp8266 qui lui va utiliser ces données pour piloter en Pwm une résistance pour absorber mon surplus de production photovoltaïque.
j'ai fait un bout de code en graphique pour récupérer une donnée en JSON mais j'ai un retour d'erreur à la compilation .

call to 'HTTPClient::begin' declared with attribute error: obsolete API, use ::begin(WiFiClient, url)

voici mon code:

/////////////////////////////////
// Generated with a lot of love//
// with TUNIOT FOR ESP8266     //
// Website: Easycoding.tn      //
/////////////////////////////////
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#include <ESP8266HTTPClient.h>

LiquidCrystal_I2C lcd(0x3F,16,2);

IPAddress staticIP45_42(192,168,0,42);
IPAddress gateway45_42(192,168,0,254);
IPAddress subnet45_42(255,255,255,0);

String  httpurl;
String  TheHiddenAnswerOfClient;
HTTPClient http;

String SendWithAnswer(String IPcache, String monmessagecache) {
httpurl = "http://";
httpurl+=IPcache;
httpurl+="/";
httpurl+=monmessagecache;
http.begin(httpurl);
http.GET();
TheHiddenAnswerOfClient = (http.getString());
http.end();
return TheHiddenAnswerOfClient;
}

void setup()
{
  lcd.begin();

Serial.begin(9600);
  WiFi.disconnect();
  lcd.clear();
  lcd.print("ROUTEUR-SOLAIRE");
  delay(1000);
   WiFi.begin(" ............");
  while ((!(WiFi.status() == WL_CONNECTED))){
    delay(300);
    lcd.clear();
    lcd.print("..");

  }
  lcd.clear();
  lcd.print("Connected");
  WiFi.config(staticIP45_42, gateway45_42, subnet45_42);

}


void loop()
{

    lcd.clear();
    lcd.print("Your IP is");
    lcd.setCursor(2, 2);
    lcd.print((WiFi.localIP().toString()));
    delay(2000);
    lcd.clear();
    Serial.println((SendWithAnswer("192,168,0,44","json?view=sensorupdate&tasknr=2 ")));

}

pour le moment pas de gestion de pwm ou quoi que se soit je bloque déjà à la récupération de cette donnée.
pour info j ai du ajouté un bibliothèque ArduinoJson.h
est ce que quelqu'un aurait une idée du problème ?

merci de votre aide

il vous faut un WiFiClient. regardez comment ils font dans l'exemple

effectivement je n'ai pas

#include <WiFiClient.h>

et

   WiFiClient client;

    HTTPClient http;

    Serial.print("[HTTP] begin...\n");
    if (http.begin(client, "http://jigsaw.w3.org/HTTP/connection.html")) {  // HTTP

ça sert a quoi exactement ?
a me connecter a mon hôte?
parce que sur tuniot for esp8266 j 'ai un module "connect website avec adresse ip et port 80

votre code d'origine fait

et le compilateur vous dit que c'est une ancienne API qui est obsolète

call to 'HTTPClient::begin' declared with attribute error: obsolete API, use ::begin(WiFiClient, url)

il vous dit que la nouvelle API doit avoir 2 paramètres, une instance de WiFiClient et l'URL (que vous aviez déjà)

donc il faut créer cette instance, c'est ce que fait WiFiClient client;

et ensuite vous la passez à votre requête

http.begin(client , httpurl);

le mieux c'est de mettre un test autour pour le cas où la requête n'aboutit pas donc

    if (http.begin(client , httpurl)) {
      // OK requête bien transmise
    } else {
      // erreur
    }

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.