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
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?