Progetto ESP8266: Web Server con Chat Telegram e Sensori

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 Telegram

  • index.h, data_form.h, temperature.h, client_connessi.h, led.h, error_404.h, menu.h – pagine HTML precompilate

  • css.h – stile grafico centralizzato

  • telegram.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() in loop()

  • 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

Link al codicehttps://github.com/grethel/esp8266_bottg

Torna in alto