Bonsoir à tous,
C'est mon premier message ici ! Je n'ai pas vu de fil pour se présenter, alors je me lance aussi sec.
Voilà, je voudrais faire communiquer en Wi-Fi un Arduino Uno R3 et un module ESP8266. J'arrive à lancer un serveur Web qui écoute mon réseau local via le Wi-Fi sur l'ESP8266 et qui écit sur le port série ce qu'on lui envoie, en mode "echo server". Et j'arrive à avoir un programme qui lit les entrées séries sur l'Arduino.
Malheureusemennt je n'arrive pas à récupérer dans l'Arduino ce que le serveur Web de l'ESP8266 écrit.
Voici le code pertinent de l'ESP8266 :
// Ici on récupère la valeur du 1° paramètre de l'URL et on l'écrit sur le port série
void handleRoot() {
digitalWrite(led, 1);
server.send(200, "text/plain", server.arg(0));
digitalWrite(led, 0);
Serial.print(server.arg(0) + "\n");
}
// et là, on lance le wifi et on ouvre le port série
void setup(void){
pinMode(led, OUTPUT);
digitalWrite(led, 0);
Serial.begin(57600);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
}
Et voici le code pertinent de l'Arduino :
// newMessage est lue sur le port série et affichée sur un écran
void readSerial(void)
{
static uint8_t putIndex = 0;
while (Serial.available())
{
newMessage[putIndex] = (char)Serial.read();
if ((newMessage[putIndex] == '\n') || (putIndex >= BUF_SIZE-3)) // end of message character or full buffer
{
// put in a message separator and end the string
newMessage[putIndex++] = ' ';
newMessage[putIndex] = '\0';
// restart the index for next filling spree and flag we have a message waiting
putIndex = 0;
newMessageAvailable = true;
}
else if (newMessage[putIndex] != '\r')
// Just save the next char in next location
putIndex++;
}
}
void setup()
{
Serial.begin(57600);
Serial.print("\n[MD_MAX72XX Message Display]\nType a message for the scrolling display\nEnd message line with a newline");
}
Quand j'ouvre un moniteur série de l'Arduino IDE, que ce soit sur l'IDE de l'ESP8266 ou sur l'IDE de l'Arduino, quand je tape un texte, il est effectivement affiché sur l'écran. Mais quand j'invoque par exemple un GET http://192.168.1.26/?blah=blah je n'ai pas le texte "blah" qui s'affiche, alors que c'est ce que je recherche.
Auriez-vous une idée, SVP ?
J'ai élagué mon code au maximum en essayant de ne donner que le code "utile", mais si vous voulez d'autres infos, n'hésitez pas.
Merci d'avance !