/* * 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. * * modifié par SD (electro.info.free.fr) */ #include const char* ssid = "electro-info-freeboxe"; const char* password = "Taper_Ici_Votre_Cle_WPA_ou_WPA2"; // Create an instance of the server // specify the port to listen on as an argument WiFiServer server(80); IPAddress ipWiFi; String IPAddressToString(IPAddress ip) { String res = ""; res += String(ip & 0x000000FF); res += "."; res += String((ip >> 8) & 0x000000FF); res += "."; res += String((ip >> 16) & 0x000000FF); res += "."; res += String((ip >> 24) & 0x000000FF); return res; } void setup() { Serial.begin(115200); delay(10); // prepare GPIO2 pinMode(2, OUTPUT); digitalWrite(2, 0); pinMode(0, INPUT); // 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 ipWiFi = WiFi.localIP(); Serial.println(ipWiFi); } 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 if (req.indexOf("/gpio") != -1) val = digitalRead(2); 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\r\n\r\n"; s += "

ESP8266

\r\n"; //s += "GPIO is now "; //s += (val)?"high":"low"; s += "

LED GP2
\r\n"; s += "

Etat de GP0 : "; val = digitalRead(0); s += (val)?"Relaché":"Appuyé"; s += "

\r\n"; s += "

Connecté à : "; s += ssid; s += " - Force du signal : "; long rssi = WiFi.RSSI(); s += rssi; s += " dBm

\r\n"; s += "\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 }