ESP8266 – Récupérer le contenu d'un fichier txt situé sur un serveur distant

Salut à tous,

Cela fait maintenant presque une semaine que je cherche sur internet comment je peux trouver une solution à mon problème mais impossible !

Je souhaite simplement aller lire un fichier .txt qui contient soit un 1 ou un 0 et faire une action par la suite en récupérant la valeur dans l'IDE Arduino sous forme d'une variable.

J'ai essayé les requêtes etc mais je ne comprend pas vraiment tout...

J'ai déjà ma page php qui change ce nombre (0 ou 1) avec des boutons. Mon seul soucis est d'y accéder.

Merci d'avance :slight_smile:

Et il est où ce mystérieux fichier ?
Sur une carte SD sur la carte Arduino ?
Sur une machine de ton réseau local ?
sur Internet ?
Dans une autre galaxie ? :slight_smile:

Salut !

Il est sur un hébergeur internet (Nexgate) :slight_smile:

Pour l’instant mon programme ressemble à ça mais je n’arrive pas à ce que la led s’allume ou s’éteigne en fonction…
Mais le moniteur série affiche bien le “on” ou le “off” qui change :confused:

/**

  • BasicHTTPClient.ino
  • Created on: 24.05.2015

*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {

USE_SERIAL.begin(115200);
// USE_SERIAL.setDebugOutput(true);

USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();

for(uint8_t t = 4; t > 0; t–) {
USE_SERIAL.printf("[SETUP] WAIT %d…\n", t);
USE_SERIAL.flush();
delay(1000);
}

WiFi.mode(WIFI_STA);
WiFiMulti.addAP(“gougeon”, “F11F1E8EB1”);

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {
// wait for WiFi connection
if((WiFiMulti.run() == WL_CONNECTED)) {

HTTPClient http;

USE_SERIAL.print("[HTTP] begin…\n");
// configure traged server and url
//http.begin(“https://192.168.1.12/test.html”, “7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38”); //HTTPS
http.begin(“http://homeuh.nexgate.ch/p1.txt”); //HTTP

USE_SERIAL.print("[HTTP] GET…\n");
// start connection and send HTTP header
int httpCode = http.GET();

// httpCode will be negative on error
if(httpCode > 0) {
// HTTP header has been send and Server response header has been handled
USE_SERIAL.printf("[HTTP] GET… code: %d\n", httpCode);

// file found at server
if(httpCode == HTTP_CODE_OK) {
String content = http.getString();
USE_SERIAL.println("(" + content + “)”);

if (content = “on”) {
delay(200);
digitalWrite(LED_BUILTIN, 1);
Serial.println(“LED ON”);
}
if (content != “on”) {
delay(200);
digitalWrite(LED_BUILTIN, 0);
Serial.println(“LED OFF”);
}
}
} else {
USE_SERIAL.printf("[HTTP] GET… failed, error: %s\n", http.errorToString(httpCode).c_str());
}

http.end();
}

delay(10000);
}

une remarque : que se passe-t-il si httpCode vaut 0 ? est-ce bien une erreur ?