🌐 Arduino Yún • AJAX • Domotica

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.

DifficoltàAvanzata
TempoProgetto completo
Cosa impariAJAX, Bridge e web server
In poche parole: Arduino Yún gestisce sensori e attuatori, mentre le pagine HTML, CSS e JavaScript salvate sulla microSD forniscono l’interfaccia utente. AJAX aggiorna periodicamente lo stato dei dispositivi senza ricaricare completamente la pagina.
Home web server domotica Arduino Yun

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:

Esempio indirizzo locale
http://192.168.1.89/sd/casa/
Nota: l’indirizzo IP è soltanto un esempio. Devi usare l’IP realmente assegnato al tuo Arduino Yún nella rete locale.

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.

Perché AJAX: consente di aggiornare temperatura, umidità, stato dei relè e sensori in background, rendendo l’interfaccia più reattiva rispetto a una pagina HTML statica.

Accesso alla pagina

È prevista una schermata di login prima di entrare nell’area di controllo.

Login web server Arduino Yun

Schermata di login. L’immagine mantiene una larghezza massima di 711 px.

Sicurezza: non usare credenziali predefinite come 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.

Navbar e pagina sensori Arduino Yun

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.

Interruttori web Arduino Yun relè

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.

Controllo clima Arduino Yun web server

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.

Sensori Hall e PIR Arduino Yun web server

Materiale necessario

🔌 Arduino Yún
💾 Scheda microSD
🌡️ Sensore DHT11
🧲 Sensore Hall KY-024
👁️ Sensore PIR
⚡ Moduli relè 5 V
🔗 Cavetti di collegamento
🧩 Breadboard

🧰 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 consigliato

Link 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 Arduino

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema di collegamento

Schema domotica Arduino Yun sensori relè

Pin indicati nel progetto

FunzionePin
RaffreddamentoD8
RiscaldamentoD9
Sensore Hall KY-024D7
Sensore PIRD4

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.

Struttura indicativa microSD
arduino/
└── www/
    └── casa/
        ├── pagine HTML
        ├── JavaScript
        ├── CSS
        └── icone

⬇️ Scarica arduino.zip

Come installare i file

  1. formatta la microSD con un filesystem compatibile con Arduino Yún;
  2. scompatta arduino.zip;
  3. copia la cartella arduino nella microSD;
  4. inserisci la microSD nello slot della scheda;
  5. collega Arduino Yún alla rete;
  6. apri dal browser il percorso /sd/casa/.

Limiti di sicurezza da conoscere

Da non ignorare: HTTP in chiaro, una semplice pagina di login e credenziali statiche non sono sufficienti per un sistema domotico esposto a Internet. Mantieni il progetto su una rete affidabile, cambia sempre le credenziali e usa un accesso remoto sicuro tramite VPN se necessario.

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.