Ecco un esempio di codice Arduino per la domotica utilizzando un Ethernet Shield e una connessione Wi-Fi. Questo codice ti aiuterà a iniziare a controllare dispositivi domestici tramite una connessione Internet.
#include <SPI.h>
#include <Ethernet.h>
#include <WiFi.h>
// Costanti per la connessione Ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Indirizzo MAC
IPAddress ip(192, 168, 1, 10); // Indirizzo IP Arduino
EthernetServer server(80); // Oggetto server Ethernet
// Costanti per la connessione Wi-Fi
const char* ssid = "IlTuoSSID"; // Nome della rete Wi-Fi
const char* password = "LaTuaPassword"; // Password della rete Wi-Fi
void setup() {
Serial.begin(9600);
// Connessione Ethernet
Ethernet.begin(mac, ip);
server.begin();
Serial.print("Indirizzo IP Ethernet: ");
Serial.println(Ethernet.localIP());
// Connessione Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.print("Indirizzo IP Wi-Fi: ");
Serial.println(WiFi.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("Nuova richiesta HTTP");
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Accendi o spegni il dispositivo in base alla richiesta HTTP
if (request.indexOf("/accendi") != -1) {
// Azione per accendere il dispositivo
digitalWrite(LED_BUILTIN, HIGH);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<h1>Dispositivo acceso</h1>");
} else if (request.indexOf("/spegni") != -1) {
// Azione per spegnere il dispositivo
digitalWrite(LED_BUILTIN, LOW);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<h1>Dispositivo spento</h1>");
} else {
client.println("HTTP/1.1 404 Not Found");
client.println("Content-Type: text/html");
client.println("");
client.println("<h1>Pagina non trovata</h1>");
}
delay(1);
client.stop();
Serial.println("Client disconnesso");
}
}
Assicurati di aver installato le librerie Ethernet e WiFi dalla libreria di gestione della scheda Arduino IDE.
Nel setup(), il codice configura la connessione Ethernet utilizzando l’indirizzo MAC specificato e l’indirizzo IP assegnato all’Arduino. Successivamente, il server Ethernet viene avviato sulla porta 80. Quindi, viene inizializzata la connessione Wi-Fi utilizzando il nome della rete (SSID) e la password specificati.
Nel loop(), il codice controlla se c’è una nuova richiesta HTTP dal client. Se viene rilevata una richiesta, viene letto il percorso della richiesta e in base a ciò viene eseguita l’azione corrispondente. Ad esempio, se il percorso contiene “/accendi”, il dispositivo controllato viene acceso (nella maggior parte dei casi, verrà accesa la porta digitale a cui è collegato un LED). Se il percorso contiene “/spegni”, il dispositivo viene spento. Altrimenti, viene restituita una pagina di errore “404 Not Found”.
Assicurati di adattare il codice alle tue esigenze specifiche, come ad esempio cambiare il percorso delle richieste e le azioni associate ai dispositivi che vuoi controllare.
Ricorda di connettere il tuo Arduino all’Ethernet Shield e verificare che la tua rete Wi-Fi sia funzionante e accessibile dall’Arduino.
Spero che questo esempio ti sia utile per iniziare con la domotica utilizzando Arduino, l’Ethernet Shield e la connessione Wi-Fi!