ESP12 : Serveur web

Le sketch suivant permet d’allumer ou d’éteindre une broche GPIO via un browser

 /*  
  * This sketch demonstrates how to set up a simple HTTP-like server.  
  * The server will set a GPIO pin depending on the request  
  *  http://server_ip/gpio/0 will set the GPIO2 low,  
  *  http://server_ip/gpio/1 will set the GPIO2 high  
  * server_ip is the IP address of the ESP8266 module, will be   
  * printed to Serial when the module is connected.  
  */  
 #include <ESP8266WiFi.h>  
 const char* ssid = "Your_SSID";  
 const char* password = "YOUR_PASS";  
 // Create an instance of the server  
 // specify the port to listen on as an argument  
 WiFiServer server(80);  
 void setup() {  
  Serial.begin(115200);  
  delay(10);  
  // prepare GPIO2  
  pinMode(2, OUTPUT);  
  digitalWrite(2, 0);  
  // Connect to WiFi network  
  Serial.println();  
  Serial.println();  
  Serial.print("Connecting to ");  
  Serial.println(ssid);  
  WiFi.begin(ssid, password);  
  while (WiFi.status() != WL_CONNECTED) {  
   delay(500);  
   Serial.print(".");  
  }  
  Serial.println("");  
  Serial.println("WiFi connected");  
  // Start the server  
  server.begin();  
  Serial.println("Server started");  
  // Print the IP address  
  Serial.println(WiFi.localIP());  
 }  
 void loop() {  
  // Check if a client has connected  
  WiFiClient client = server.available();  
  if (!client) {  
   return;  
  }  
  // Wait until the client sends some data  
  Serial.println("new client");  
  while(!client.available()){  
   delay(1);  
  }  
  // Read the first line of the request  
  String req = client.readStringUntil('\r');  
  Serial.println(req);  
  client.flush();  
  // Match the request  
  int val;  
  if (req.indexOf("/gpio/0") != -1)  
   val = 0;  
  else if (req.indexOf("/gpio/1") != -1)  
   val = 1;  
  else {  
   Serial.println("invalid request");  
   client.stop();  
   return;  
  }  
  // Set GPIO2 according to the request  
  digitalWrite(2, val);  
  client.flush();  
  // Prepare the response  
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";  
  s += (val)?"high":"low";  
  s += "</html>\n";  
  // Send the response to the client  
  client.print(s);  
  delay(1);  
  Serial.println("Client disonnected");  
  // The client will actually be disconnected   
  // when the function returns and 'client' object is detroyed  
 }  

Mettez en place le cavalier, puis connecter brièvement la broche GPI0 et RST, chargez ensuite le sketch.

Retirez le cavalier puis connecter brièvement la broche GPI0 et RST la carte affiche alors :

Connecting to CyrGui
...
WiFi connected
Server started
192.168.0.79

Entrez dans votre browser l’instructionhttp://192.168.0.79/gpio/0

le browser répondsGPIO is now low

Le moniteur de la carte réponds :

new client
GET /gpio/0 HTTP/1.1
Client disonnected

 

Pour ouvrir une page :

https://techtutorialsx.com/2016/07/17/esp8266-http-get-requests/

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :