serieele monitor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

html pagina

 

 

 

Deze server zal op verzoek van een client een lamp aan of uit schakelen.

Dit script is een aangepaste versie van het voorbeeld op arduino WifiWebServer op github

  
  
#include <ESP8266WiFi.h> 
 
IPAddress staticIP(192, 168, 2, 34); 
IPAddress gateway(192, 168, 2, 254); 
IPAddress subnet(255, 255, 255, 0); 
 
const char* ssid = "naam"; 
const char* password = "WPA sleutel"; 
 
int ledPin = 5;                            // GPIO 5 is de relais pin 
WiFiServer server(80); 
 
void setup() { 
    Serial.begin(57600); 
    delay(10); 
 
    pinMode(ledPin, OUTPUT); 
    digitalWrite(ledPin, LOW); 
 
                                           // Met het wifi netwerk verbinden 
    WiFi.begin(ssid, password); 
    WiFi.config(staticIP, gateway, subnet); //Het ip adres statisch maken 
 
    while (WiFi.status() != WL_CONNECTED) { 
    delay(500); 
    Serial.print(".");                      //De while lus wordt net zo vaak doorlopen tot de verbinding is gemaakt 
    } 
    Serial.println(""); 
    Serial.println("verbonden met het wifi netwerk"); 
 
    // Start the server 
    server.begin(); 
    Serial.println("Server gestart. Het statische IP adres = http://192.168.2.34"); 
 
} 
 
void loop() { 
                                         // de verbinding met de client controleren 
    WiFiClient client = server.available(); 
    if (!client) { 
    return; 
    } 
 
                                        // wacht tot de client de lamp aan of uit schakelt 
    while (!client.available()) { 
    delay(1); 
    } 
 
                                        // Het verzoek uitlezen 
    String request = client.readStringUntil('\r'); 
    Serial.println(request); 
    client.flush(); 
 
                                       //De lamp aan of uit schakelen 
    int value = LOW; 
    if (request.indexOf("/LED=ON") != -1) { 
    digitalWrite(ledPin, HIGH); 
    value = HIGH; 
    Serial.println("de client heeft de lamp ingeschakeld"); 
    } 
    if (request.indexOf("/LED=OFF") != -1) { 
    digitalWrite(ledPin, LOW); 
    value = LOW; 
    Serial.println("de client heeft de lamp uitgeschakeld"); 
    } 
                                        //De lamp status aan de client geven 
    client.println("HTTP/1.1 200 OK"); 
    client.println("Content-Type: text/html"); 
    client.println(""); 
    client.println("<!DOCTYPE HTML>"); 
    client.println("<html>"); 
    client.println("<BODY style='background-color:#99D6FF;'>"); 
    client.println("<center>"); 
    client.println("<p style='font-size:150%'>Paneel om een lamp in en uit te schakelen</p>"); 
     
    if (value == HIGH) { 
    client.print("<a href=\"/LED=OFF\"><button style='font-size:100%; background-color:#FF4D4D;'>De lamp uitschakelen</button></a>"); 
    } else { 
    client.print("<a href=\"/LED=ON\"><button style='font-size:100%; background-color:#4CAF50;'>De lamp inschakelen</button>/a>"); 
    }  
    client.println("</html>"); 
    client.println("</BODY>"); 
 
    delay(1); 
}