Programmer Arduino Uno et esp8266

tu as regardé du coté de la documentation des ESP?

je vais essayer de modifier cela alors merci

j'ai testé du coup cela par rapport au forum et j'ai une erreur quand même

#include <SoftwareSerial.h>
#define DEBUG true
String host ="http://x.x.x.x\,80";
//String host ="192.168.1.14\",8082";
//String NomduReseauWifi = "ff"; // nom du reseau
//String MotDePasse   ="ggg";//mo de passe wifi


SoftwareSerial esp8266(10,11); // connexion série; 3 TX de l'esp;2 RX de l'esp

                             
void setup()
{
  Serial.begin(9600); //vitesse de transmition moniteur série
  esp8266.begin(9600); // vitesse de transmition esp
  
  sendData("AT\r\n",2000,DEBUG); // reset module
 
  String Positions;
  Positions="GET post-sensor-data.php?distance=10\r\n";
 //Positions+="HTTP/1.0\r\n";
 //Positions+="";
 //Positions+="\r\n";
  
  //sendData("AT+CWJAP=\""+ NomduReseauWifi + "\",\"" + MotDePasse +"\"\r\n",3000,DEBUG);
  sendData("AT+CWJAP=\"x\",\"pp\"",3000,DEBUG);
  
  sendData("AT+CIFSR\r\n",3000,DEBUG);
  sendData("AT+CIPMUX=1\r\n",3000,DEBUG);
  sendData("AT+CIPSTART=0,\"TCP\",\""+host+"\r\n",5000,DEBUG);//connexion au serveur
  sendData("AT+CIPSEND=0,"+String(Positions.length())+"\r\n",3000,DEBUG);//envoie de la longeur des données à envoyer
  sendData(String(Positions)+"\r\n",800,DEBUG);//envoie des données
  sendData("AT+CIPCLOSE\r\n",5000,DEBUG);
}
 
void loop()
{
}
  
String sendData(String command, const int timeout, boolean debug)
{
 
   String response = "";
    
    esp8266.print(command); // send the read character to the esp8266
    
    long int time = millis();
    
    while( (time+timeout) > millis())
    {
      while(esp8266.available())
      {
        
        // The esp has data so display its output to the serial window 
        char c = esp8266.read(); // read the next character.
        response+=c;
      }  
    }
    
    if(debug)
    {
      Serial.print("ESP8266 => "+response);
    }
      return response;
}

Ce n'est pas un souci pour le moment mais il faut toujours procéder par soustraction avec le temps

    while (millis()-time < timeout)

Quel est l'erreur que tu récupère et surtout sur quel commande?

Ton code ne fait rien ou à moitié, tu envois une taille d'un buffer que tu va envoyer, mais tu envois rien, c'est normal?

Tu as essayé la commande "AT+HTTPCLIENT" ?

Oui j’ai mis la commande là haut mais je doit y apporter dès modification @J-M-L m’a fait remarqué que j’avais mal écris

ok je modifie merci

Certes, mais ce n'est pas le code que tu propose après.
Il est difficile de pouvoir t'aider, si le code que tu montre n'est pas chronologique et celui que tu utilise.

Donc j'en conclue que tu as réglé tout tes problèmes.

du coup j'ai ca maintenant :

 String cmd1 = "AT+HHTPCLIENT= 3\,0,\"http://x.x.x.x/post-sensor-data.php/\",\"http://x.x.x.x\",\"/post-sensor-data.php\",1,\"distance=10\"";
  //Serial.println(cmd1);
  esp8266.println(cmd1); 

je suis toujours entrain d'essayé de le régler et je garde le même PHP mais pour l'instant ca ne fonctionne toujours pas

#include <SoftwareSerial.h>


SoftwareSerial esp8266(10,11); 

#define SSID "box"     // "SSID-WiFiname" 
#define PASS "code"       // "password"
#define IP "192.x.x.x"// thingspeak.com ip

float temp; //Stores temperature value

void setup()
{
  //pinMode(A1,INPUT);
  //pinMode(8,INPUT);
  //dht.begin();
  delay(100);
  Serial.begin(9600); //or use default 115200.
  esp8266.begin(9600);
  Serial.println("AT");
  esp8266.println("AT");
  delay(3000);
  if(esp8266.find("OK")){
    connectWiFi();
  }
}

void loop()
{
  //Temperature
  //float temperature_celcius = valeur_brute * (5.0 / 1023.0 * 100.0);
  int valeur_brute = analogRead(A0);
  temp= valeur_brute * (5.0 / 1023.0 * 100.0);
  Serial.println(temp);
  delay(2000);
    update();

  }

void update(){
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += IP;
  cmd += "\",80";
  Serial.println(cmd);
  esp8266.println(cmd);
  delay(2000);
  if(esp8266.find("Error")){
    return;
  }
 /* cmd = msg ;
  cmd += "&field1=";   
  cmd += temp;
  cmd += "\r\n";*/
  cmd = msg;
  cmd += "api_key=";
  cmd += apiKeyValue;
  cmd += "&sensor=";
  cmd += sensorName;
  cmd += "&location=";
  cmd += sensorLocation;
  cmd += "&distance=";
  cmd += distance ;
  cmd +=  "\r\n";



  String cmd1 = "AT+HHTPCLIENT=3\,0,\"http://192.x.x.x/post-sensor-data.php\",\"192.x.x.x\",\"/post-sensor-data.php\",1,\"distance=10\"";
  Serial.println(cmd1);
  esp8266.println(cmd1);  
  //Serial.print('AT+HTTPCLIENT="3,0,"http://192.x.x.x/post-sensor-data.php/","http://192.x.x.x","/post-sensor-data.php",1,"sensor=LM35"');
}

boolean connectWiFi(){
  Serial.println("AT+CWMODE=1");
  esp8266.println("AT+CWMODE=1");
  delay(2000);
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";
  Serial.println(cmd);
  esp8266.println(cmd);
  delay(5000);
  if(esp8266.find("OK")){
    Serial.println("OK");
    return true;    
  }else{
    return false;
  }
} 

du coup je doute du PHP

Est-ce que le PHP se déclenche ?

Donc ce n’est pas le PHP c’est avant

j'ai pas du tout l'impression , rien ne se passe du tout ! je me demande si c'est pas mon code PHP

dans mon code série quand j'affiche pour le HTTP , j'ai ça :

donc dans le code arduino ??

Il y a un H en trop au moins

AT+HHTPCLIENT=3..

L’adresse IP est sur le loop back??

ah oui j'avais pas vu merci . si j'ai bien compris la question j'utilise juste le localhost(127.0.0.1) il faut que je la mette sur le loopbaack? si cela fonctionne je mettrais sur le serveur de webhost00.

Il faut l’adresse IP du serveur sur un réseau joignable depuis l’ESP

j'ai pas bien compris, désolé. c'est à dire qu'il faudrais prendre l'adresse ip qui est généré par le code pour l'ESP?