Questo progetto basato su ESP8266 permette di gestire un piccolo sistema domotico con interfaccia web e connessione a Telegram. L’utente può controllare LED, visualizzare la temperatura, configurare le reti Wi-Fi e interagire con un bot Telegram per ricevere e inviare messaggi.
Architettura del progetto
Struttura dei file inclusi
Il file .ino principale include vari header personalizzati:
config.h,configtelegram.h– gestione delle impostazioni Wi-Fi e Telegramindex.h,data_form.h,temperature.h,client_connessi.h,led.h,error_404.h,menu.h– pagine HTML precompilatecss.h– stile grafico centralizzatotelegram.h– logica per la comunicazione con Telegram
Funzionalità web
L’ESP8266 espone un web server sulla porta 80, con pagine dinamiche:
| URL | Funzione |
|---|---|
/ | Pagina principale con menu |
/data_form.html | Configurazione Wi-Fi |
/temperature.html | Visualizzazione temperatura con sensore DHT |
/client_connessi.html | Elenco dispositivi connessi all’Access Point |
/telegram.html | Interfaccia chat con bot Telegram |
/led.html | Controllo accensione/spegnimento LED |
/configtelegram.html | Form per aggiornare token e chat ID del bot |
Ogni pagina è costruita dinamicamente con inserimento di:
menu (
%MENU%)CSS (
%CSS%)contenuti variabili (IP, temperatura, stato LED, ecc.)
Modalità Wi-Fi: AP + Station
Grazie alla funzione startAPSTAMode(), l’ESP può operare in modalità Access Point e Station contemporaneamente. Questo permette:
Accesso alla rete ESP tramite IP locale anche senza router
Connessione automatica al router Wi-Fi se le credenziali sono note
Nelle pagine HTML viene mostrato l’IP della modalità attiva per facilitare l’accesso.
Integrazione con Telegram
Utilizzando la libreria UniversalTelegramBot, il dispositivo:
Riceve messaggi dal bot usando
chattaConTelegram()inloop()Tiene in memoria gli ultimi 3 messaggi ricevuti/inviati
Permette di inviare messaggi da interfaccia web a Telegram
I dati Telegram sono configurabili via web (
/configtelegram.html)
⚠️ Nota: il certificato SSL è disabilitato con client.setInsecure() per semplificare la comunicazione.
Controllo LED
Tramite la pagina /led.html l’utente può accendere o spegnere un LED collegato al pin D6. Lo stato del LED viene aggiornato dinamicamente sulla pagina.
Sensore di Temperatura
Il sistema integra un sensore DHT (tipicamente DHT11 o DHT22), con lettura e visualizzazione del dato sulla pagina /temperature.html.
Client connessi
È presente anche una funzionalità per visualizzare i client Wi-Fi connessi all’Access Point ESP, utile per il debug o l’amministrazione.
POST e Redirect
Il sistema gestisce form HTML (POST) per ricevere configurazioni. Dopo l’invio, l’ESP risponde con redirect (303 See Other) per migliorare l’esperienza utente ed evitare il reinvio dei dati alla pressione di F5.
Responsività e CSS
Le pagine web includono uno stile CSS responsivo con menu a scomparsa per migliorare l’usabilità su dispositivi mobili.
Considerazioni finali
Il progetto dimostra una gestione avanzata dell’ESP8266 con:
Frontend HTML dinamico
Backend Telegram sicuro e controllato
Rete Wi-Fi gestita completamente da codice
Modularità tramite header separati
Possibili miglioramenti
Salvare le configurazioni su SPIFFS o EEPROM
Autenticazione utente per l’accesso web
Estensione del log messaggi Telegram
Aggiunta grafici per temperatura
