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
