n questo progetto impareremo a controllare un LED collegato alla nostra WiFi attraverso una pagina web e la scheda Wemos D1 Mini.
Per controllare il LED tramite Webserver dobbiamo creare una pagina Web HTML ed il famoso framework Bootsrap a cui ci collegheremo attraverso un normale browser ed utilizzeremo 2 pulsanti per accendere e spegne il LED.
Facendo alcune piccole modifiche a questo stesso progetto sarà possibile collegare ad esempio, al posto del LED, un relay e quindi comandare dei carichi molto più pesanti e, ad esempio accendere e spegnere delle luci della nostra casa dall’interno della nostra rete LAN.
Il LED andrà collegato alla scheda Wemos D1 Mini seguendo la figura seguente. Io personalmente la resistenza non la metto mai e non ho mai avuto problemi.
const char* ssid = "xxxxxxxx"; // Wi-Fi SSID int LED = D2; // Led connesso al PIN D2 void setup(){ Serial.print("Mi sto connettendo al WiFi"); Serial.println("WiFi connesso"); Serial.print("Indirizzo IP del server: "); // will IP address on Serial Monitor void loop(){ Serial.println("attendo la connessione di un client"); String request = client.readStringUntil('\r'); int value = LOW; if(request.indexOf("/LED=ON") != -1){ // Se ricevo "ON" if(request.indexOf("/LED=OFF") != -1){ // Se ricevo "OFF" //------------------Codice HTML della pagina---------------------// client.println("HTTP/1.1 200 OK"); // if(value == HIGH){ client.println(" client.println(" delay(1); Tramite un browser web come ad esempio Chrome accedete a questo indirizzo e vedrete la pagina HTLM con i pulsanti di accensione e spegnimento del nostro LED.
#include <ESP8266WiFi.h>
const char* password = "xxxxxxx"; // Wi-Fi Password
WiFiServer server(80);
Serial.begin(115200);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
server.begin(); // Inizializza il server
Serial.println("Server Attivo");
Serial.println(WiFi.localIP());
Serial.print("copia e incolla questo URL per accedere al server: http://"); // Scriviamo l'indirizzo per raggiungere il server
Serial.print(WiFi.localIP());
Serial.println("/");
}
WiFiClient client = server.available();
if (!client){
return;
}
while(!client.available()){
delay(1);
}
Serial.println(request);
client.flush();
digitalWrite(LED, HIGH); // Accendo il led
value = HIGH;
}
digitalWrite(LED, LOW); // Turn LED OFF
value = LOW;
}
client.println("Content-Type: text/html");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
client.println(" ");
client.println("");
client.println("COnnT Webserver Controllo LED");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("
client.println("
client.println(" CONTROLLO LED DA PAGINA LOCALE IN BOOTSTRAP");
LED ACCESO
"); } else { client.println("LED SPENTO
"); }
");
client.println("<a href="/LED=ON"" class='btn btn-info' role='button'>ACCENDI LED");
client.println("<a href="/LED=OFF"" class='btn btn-info' role='button'>SPEGNI LED
");
client.println("");
client.println("");
client.println("");
client.println("");
Serial.println("Client disconnesso");
Serial.println("");
Caricate lo sketch sulla scheda. Accedendo al monitor seriale troverete il link con l’indirizzo IP che è stato assegnato al nostro server.