ESP32 come web server: controllare luci e relè dallo smartphone

Share

ESP32 come web server: controllare luci e relè dallo smartphone

Il mondo della domotica fai-da-te ha subito una vera rivoluzione con l’arrivo dell’ESP32. Grazie al suo modulo Wi-Fi integrato, questa piccola scheda è diventata lo strumento preferito per chiunque voglia automatizzare la propria casa senza spendere una fortuna. Se hai deciso di iniziare a scrivere articolo seo per il tuo blog tecnico, questo progetto rappresenta il punto di partenza ideale per spiegare ai tuoi lettori come trasformare uno smartphone in un telecomando universale.

In questa guida vedremo come configurare un ESP32 come web server locale. Imparerai a creare una pagina web semplice, ospitata direttamente sulla scheda, che ti permetterà di accendere e spegnere luci o attivare relè con un semplice tocco dal browser del tuo telefono.

Cosa serve per iniziare il progetto

Per realizzare questo sistema non servono componenti costosi o complessi. La bellezza dell’ESP32 risiede proprio nella sua capacità di gestire la connettività senza bisogno di shield esterni. Ecco la lista della spesa essenziale:

– Una scheda ESP32 (qualsiasi modello, come la DevKit V1).
– Un LED da 5mm con una resistenza da 220 Ohm (per i test iniziali).
– Un modulo relè a 5V (opzionale, per controllare carichi esterni).
– Cavi jumper e una breadboard.
– Un alimentatore USB o un cavo micro-USB collegato al PC.

Assicurati di avere installato l’IDE di Arduino sul tuo computer e di aver configurato il gestore schede per supportare la famiglia ESP32. Questo ti permetterà di caricare il codice in modo fluido e senza errori di compilazione.

Come funziona un web server su ESP32

Il principio di funzionamento è affascinante nella sua semplicità. L’ESP32 si connette alla tua rete Wi-Fi domestica come un normale dispositivo (proprio come farebbe il tuo smartphone). Una volta connesso, il microcontrollore ottiene un indirizzo IP locale, ad esempio 192.168.1.15.

Quando digiti questo indirizzo nel browser del tuo smartphone, l’ESP32 riceve la richiesta e risponde inviando un codice HTML. Questo codice viene interpretato dal browser, che visualizza dei pulsanti “ON” e “OFF”. Quando premi un pulsante, il browser invia un comando specifico all’ESP32; il codice caricato sulla scheda interpreta questo comando e cambia lo stato del pin GPIO collegato al LED o al relè.

Il codice per il tuo ESP32

Per chi inizia a scrivere articolo seo su questo tema, è fondamentale fornire un codice pulito e privo di librerie inutili. Utilizzeremo solo le librerie standard incluse nel core ESP32.

#include

const char* ssid = “NOME_TUA_RETE_WIFI”;
const char* password = “TUA_PASSWORD_WIFI”;

WiFiServer server(80);
const int ledPin = 2; // Pin dove colleghiamo il LED o il segnale del relè

void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);

WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}

Serial.println(“”);
Serial.println(“WiFi connesso!”);
Serial.print(“Indirizzo IP: “);
Serial.println(WiFi.localIP());
server.begin();
}

void loop() {
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil(‘r’);

if (request.indexOf(“/ON”) != -1) {
digitalWrite(ledPin, HIGH);
} else if (request.indexOf(“/OFF”) != -1) {
digitalWrite(ledPin, LOW);
}

client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“Connection: close”);
client.println();
client.println(“”);
client.println(“

Controllo ESP32

“);
client.println(““);
client.println(““);
client.println(“”);
client.stop();
}
}

Collegamento del LED e precauzioni con i relè

Per testare il codice, collega il polo positivo del LED al pin GPIO 2 dell’ESP32 tramite la resistenza da 220 Ohm, e il polo negativo (catodo) a GND. Una volta caricato lo sketch, apri il monitor seriale dell’IDE di Arduino. Quando vedrai apparire l’indirizzo IP, copialo e incollalo nel browser del tuo smartphone collegato alla stessa rete Wi-Fi.

Se decidi di passare a un modulo relè, fai molta attenzione. I relè sono dispositivi elettromeccanici che permettono di isolare il microcontrollore dal carico. Tuttavia, ricorda sempre di utilizzare circuiti a bassa tensione (12V o 24V) per i tuoi esperimenti. Non manomettere mai i collegamenti a 230V della rete elettrica domestica se non sei un professionista abilitato: i rischi per la sicurezza sono elevati. Assicurati sempre che il modulo relè sia alimentato correttamente e che la massa (GND) sia in comune tra ESP32 e modulo.

Gestione dei comandi e indirizzi IP

L’indirizzo IP locale è fondamentale. È la “porta di casa” del tuo dispositivo sulla rete interna. Quando scrivi un articolo tecnico, spiega sempre che questo indirizzo può cambiare se il router riavvia la connessione (assegnazione dinamica DHCP). Per un uso professionale, potresti voler impostare un IP statico, ma per iniziare, il controllo tramite IP dinamico è più che sufficiente.

Il browser invia richieste HTTP ogni volta che clicchi sui link nel file HTML. Il codice che abbiamo visto analizza la stringa della richiesta: se contiene “/ON”, attiva il pin. Se contiene “/OFF”, lo disattiva. È un meccanismo semplice ma potentissimo, che sta alla base di tutto il controllo domotico via ESP32.

Troubleshooting: cosa fare se non funziona

Se riscontri problemi, non scoraggiarti. Ecco i passaggi comuni per risolvere i malfunzionamenti:

1. **Il LED non si accende:** Controlla che la polarità sia corretta. Il lato lungo del LED (anodo) deve andare verso il pin GPIO.
2. **Pagina web non raggiungibile:** Verifica che lo smartphone sia collegato alla stessa rete Wi-Fi dell’ESP32.
3. **Errore di compilazione:** Assicurati di aver selezionato la scheda corretta (“DOIT ESP32 DEVKIT V1”) nelle impostazioni dell’IDE.
4. **Indirizzo IP non trovato:** Controlla il monitor seriale dopo il riavvio della scheda (premi il tasto Reset sulla board).
5. **Connessione instabile:** Assicurati che il segnale Wi-Fi sia sufficientemente forte nella zona dove stai testando il progetto.

Domande frequenti (FAQ)

Posso controllare più di un dispositivo?

Certamente. Puoi aggiungere altri pin GPIO nel codice e creare nuovi link HTML (ad esempio /ON2, /OFF2) per gestire più relè simultaneamente.

L’ESP32 deve rimanere collegato al PC?

No, una volta caricato il codice, puoi alimentare l’ESP32 con un comune caricabatterie per smartphone o un power bank.

Posso comandare il relè da fuori casa?

Il progetto descritto funziona solo sulla rete locale (LAN). Per il controllo remoto via Internet, avresti bisogno di configurare il port forwarding sul router o utilizzare piattaforme cloud come Blynk o MQTT, che richiedono competenze più avanzate.

Qual è la portata del Wi-Fi dell’ESP32?

La portata è simile a quella di un normale smartphone. In un ambiente domestico standard, la connessione è stabile entro 10-15 metri dal router.

Questo sistema è sicuro?

Per un uso domestico interno va bene, ma tieni presente che questo codice non ha sistemi di autenticazione. Chiunque sia connesso alla tua rete Wi-Fi potrebbe, in teoria, accedere alla pagina e comandare i tuoi relè.

In conclusione, utilizzare un ESP32 come web server è un’esperienza gratificante che apre le porte a infinite possibilità nel mondo dell’IoT. Che tu stia creando un prototipo per un articolo seo o un vero sistema di automazione per le luci di casa, la logica di base rimane solida e affidabile. Sperimenta con il codice, aggiungi nuovi componenti e divertiti a rendere la tua casa un po’ più intelligente.