Web Server AJAX con Arduino Yún per Controllare Dispositivi e Sensori
Creiamo un sistema domotico con interfaccia web dinamica per controllare relè, monitorare temperatura e umidità e leggere sensori PIR e Hall direttamente dal browser.
Interfaccia principale del sistema. L’immagine mantiene una larghezza massima di 568 px.
Come è organizzato il sistema
Arduino Yún combina il microcontrollore ATmega32u4 con un processore Linux AR9331. La libreria Bridge permette ai due ambienti di comunicare, mentre il server web distribuisce le pagine memorizzate sulla microSD.
L’interfaccia può essere raggiunta dalla rete locale digitando nel browser l’indirizzo IP della scheda seguito dal percorso della cartella web, per esempio:
http://192.168.1.89/sd/casa/Controllo manuale e automatico
Il sistema prevede due modalità. In modalità manuale l’utente può azionare i relè direttamente dall’interfaccia web. In modalità automatica Arduino decide quando attivare gli attuatori in base ai valori dei sensori e alle soglie impostate.
Aggiornamento con AJAX
La pagina non viene ricaricata completamente a ogni azione. JavaScript invia richieste asincrone al server e aggiorna soltanto gli elementi necessari dell’interfaccia. Nel progetto l’aggiornamento periodico avviene circa ogni 3 secondi.
Accesso alla pagina
È prevista una schermata di login prima di entrare nell’area di controllo.
Schermata di login. L’immagine mantiene una larghezza massima di 711 px.
admin/admin e non considerare una semplice schermata HTML come una vera protezione. Questo progetto va mantenuto sulla LAN e non esposto direttamente a Internet. Per accesso remoto è preferibile entrare prima nella rete tramite VPN.Navigazione tra le sezioni
La barra di navigazione permette di passare rapidamente tra home, interruttori, controllo clima e pagina dedicata agli altri sensori.
Interruttori e relè
La pagina degli interruttori contiene i comandi dei relè. Lo stato viene rappresentato graficamente: rosso per OFF e verde per ON. Il comando hardware è quasi immediato, mentre la rappresentazione grafica viene aggiornata al successivo ciclo AJAX.
Controllo del clima
Il sensore DHT11 misura temperatura e umidità. L’utente può impostare dalla pagina web una soglia minima e una soglia massima per la temperatura.
Nel circuito il relè sul pin D9 è dedicato al riscaldamento, mentre il relè sul pin D8 gestisce il raffreddamento. Quando la temperatura supera o scende sotto i limiti impostati, Arduino agisce automaticamente.
Sensore Hall e PIR
Il sensore Hall KY-024 è collegato al pin D7 e può simulare un contatto magnetico per porta o finestra. Il sensore PIR è collegato al pin D4 e rileva il movimento nell’ambiente.
Materiale necessario
🧰 Kit Arduino consigliato
Un kit completo è utile per avere breadboard, cavetti, resistenze, LED, sensori e molti componenti di base per sperimentare con Arduino.
👉 Guarda il kit Arduino consigliatoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. All’interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su ArduinoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
Schema di collegamento
Pin indicati nel progetto
| Funzione | Pin |
|---|---|
| Raffreddamento | D8 |
| Riscaldamento | D9 |
| Sensore Hall KY-024 | D7 |
| Sensore PIR | D4 |
Sketch Arduino Yún
Il firmware utilizza Bridge per la comunicazione tra ATmega32u4 e Linux, oltre a YunServer e YunClient per ricevere e gestire le richieste provenienti dal web server.
Nella documentazione è disponibile direttamente il pacchetto completo dello sketch, quindi non ricostruisco un codice differente da quello fornito.
⬇️ Scarica progetto_domotica_2019.zip ⬇️ Scarica libreria DHT
File della microSD
Le pagine HTML, i file CSS, JavaScript e le icone devono essere copiati sulla microSD. Il pacchetto contiene la struttura necessaria per la cartella web.
arduino/
└── www/
└── casa/
├── pagine HTML
├── JavaScript
├── CSS
└── iconeCome installare i file
- formatta la microSD con un filesystem compatibile con Arduino Yún;
- scompatta
arduino.zip; - copia la cartella
arduinonella microSD; - inserisci la microSD nello slot della scheda;
- collega Arduino Yún alla rete;
- apri dal browser il percorso
/sd/casa/.
Limiti di sicurezza da conoscere
Debug rapido
- verifica che Arduino Yún abbia un indirizzo IP valido nella LAN;
- controlla che la microSD contenga la cartella
arduino/www/casa; - verifica che Bridge sia inizializzato correttamente nello sketch;
- se la pagina si apre ma gli stati non cambiano, controlla le richieste AJAX;
- se DHT11 non restituisce valori, verifica libreria e pin usato nello sketch;
- controlla che i relè siano active HIGH oppure active LOW;
- non esporre direttamente la porta del sistema su Internet.
Varianti del progetto
- sostituire DHT11 con un sensore più preciso;
- aggiungere grafici storici di temperatura e umidità;
- implementare autenticazione lato server;
- aggiungere notifiche per PIR e sensore Hall;
- spostare l’interfaccia su ESP32 o un piccolo server locale moderno;
- aggiungere MQTT e Home Assistant;
- ridurre il polling AJAX usando aggiornamenti più efficienti quando l’hardware lo consente.
Cosa devi ricordare
- Arduino Yún combina microcontrollore e sistema Linux.
- Bridge collega i due ambienti della scheda.
- Le pagine web sono memorizzate sulla microSD.
- AJAX aggiorna i dati senza ricaricare l’intera pagina.
- D8 e D9 gestiscono raffreddamento e riscaldamento.
- D7 e D4 leggono sensore Hall e PIR.
- Il sistema deve rimanere protetto all’interno della LAN.
Domande frequenti
Devo usare per forza l’indirizzo 192.168.1.89?
No. È soltanto un esempio. Devi usare l’indirizzo IP realmente assegnato al tuo Arduino Yún.
Dove sono salvate le pagine web?
Sulla microSD inserita nella scheda, dentro la struttura arduino/www/casa.
A cosa serve AJAX?
Permette alla pagina di scambiare dati con Arduino in background e aggiornare solo gli elementi necessari senza ricaricare tutta l’interfaccia.
Posso accedere al sistema da Internet?
È sconsigliato esporre direttamente questa configurazione. Per l’accesso remoto è preferibile utilizzare una VPN e mantenere il web server accessibile soltanto dalla rete locale.

