SCHEMA
CROQUIS
/*
* 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.
*
* Pour programmer l'ESP, ne pas oublier :
* de brancher GPIO0 au grnd
* de redemarrer la carte avant le téléversement
*
* une fois le téléversement effectué, debrancher GPIO0 et redémarrer la carte
*/ #include <ESP8266WiFi.h> const char* ssid = "xxxxxxxxxx"; // SSID du point d'accés const char* password = "xxxxxxxxxxxxx"; // Mot de passe associé // Create an instance of the server // specify the port to listen on as an argument WiFiServer server(80); void setup() { Serial.begin(9600); delay(10); // prepare GPIO2 pinMode(2, OUTPUT); // En sortie digitalWrite(2, 0); // à la masse // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); // Connexion au point d'accés WiFi.begin(ssid, password); // On boucle en attendant une connexion. // Si l'état est WL_connected, la connexion est acceptée // Et on a obtenu une adresse IP while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connecté"); // Start the server server.begin(); Serial.println("Serveur démarré"); Serial.println("ex Adripserveur/gpio/1 : allume la led ..."); // Print the IP address Serial.println(WiFi.localIP()); } // ----------------- // boucle principale // ----------------- void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("nouveau 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("requête invalide"); 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\nLa sortie est a l'etat "; // sans accents à cause du HTML... s += (val)?"haut":"bas"; s += "</html>\n"; // Send the response to the client client.print(s); delay(1); Serial.println("Client déconnecté"); // The client will actually be disconnected // when the function returns and 'client' object is detroyed }
Aucun commentaire:
Enregistrer un commentaire