Con pochi e semplici componenti è possibile assemblare un sensore di movimento Wi-Fi universale, integrabile in tutti i propri progetti.
Un sensore di movimento è un device tanto semplice quanto indispensabile e versatile, in quanto permette l’esecuzione di determinate azioni ad ogni rilevazione, trovando impiego in diversi campi, domotica e sicurezza compresi.
Scopo del progetto
In commercio è possibile trovare diversi sensori di movimento Wireless, ma la maggior parte di questi operano su onde radio a 433Mhz. Questo significa che per essere integrati in un sistema di home automation, necessitano di un dispositivo supplementare che faccia da ponte di collegamento.
Questo progetto nasce dalla necessità di avere un sensore di movimento low-cost universale, che si possa collegare ad una rete W-Fi e che possa essere integrato tramite MQTT con praticamente tutte le piattaforme sofware per la domotica, compresa OpenHAB.
Lista della spesa
Per realizzare questo progetto, basterà reperire pochi componenti, indicati qui di seguito.
- 1x Modulo ESP8266-01
- 1x Sensore PIR HC-SR501
- 1 x Trasformatore incapsulato da CS Hi-Link HLK-PM03
- 1 x Basetta millefori (Facoltativo)
- Saldatore, cavetti e stagno per assemblare il circuito
Modulo ESP-01
In questo progetto al posto di utilizzare una DEV board basata sul modulo Wireless ESP8266, è stato scelto di impiegare direttamente un modulo ESP8266, in versione ESP-01.
Questo per ridurre al minimo la dimensione del circuito e perché non sono necessari molti pin di input e output.
Il modulo Wireless ESP8266, è basato su un SoC MCU a 32bit ed è nato per aggiungere connettività Wireless ai sistemi elettronici e per la progettazione di sistemi IoT low-cost.
Si tratta di modulo disponibile in diverse versioni, con una potente capacità di elaborazione grazie alla quale è possibile collegare, attraverso i suoi pin GPIO, diverse periferiche, tra le quali dei sensori ed altri dispositivi compatibili.
Le sue dimensioni ridotte lo rendono ideale per la progettazione di dispositivi compatti e la mole di documentazione presente online, accoppiata alla possibilità di utilizzar diversi linguaggi di programmazione, rendono il suo utilizzo meno ostico.
Maggiori informazioni sui moduli e le DEV board basati sui moduli wireless ESP8266 e ESP32 li trovate in questo articolo.
SENSORE PIR HC-SR501
Il sensore PIR è un tipo di sensore passivo, che rileva i raggi infrarossi nel suo campo visivo, segnalando se qualcosa (o qualcuno) è in movimento. Questo perchè è in grado di individuare tutto quello che presenta una temperatura superiore allo zero assoluto e che di conseguenza emette energia sottoforma di radiazioni infrarosse.
Davanti al sensore è presente una lente (lente di Fresnel) che scompone l’ambiente in fasci in modo da creare le zone necessarie a percepire la differenza di temperatura generata da un corpo caldo che le attraversa.
Il sensore si adatta al livello di radiazione infrarossa presente nella stanza in cui è installato e comincia a monitorare ogni variazione nel suo campo d’azione.
Ogni oggetto che si muove nella stanza perturberà questo livello di radiazione infrarossa, e produrrà una variazione di stato che verrà segnalata dal modulo PIR.
Esistono diversi modelli di sensori PIR, ma la funzione basilare è uguale per tutti: ogni qualvolta viene rilevato un movimento, varia lo stato logico del sensore.
ALIMENTATORE INCAPSULATO DA CS
Per alimentare la board verrà utilizzato il trasformatore incapsulato HLK-PM03, creato per alimentare con estrema semplicità le schede elettroniche.
Dato un input compreso nel range di 100-240V AC , verrà dato un output di 3.3V DC, erogando fino a 3W.
La casa madre di questo trasformatore commercializza anche altre due versioni, da 5V e 12V DC.
Software MQTT
MQTT è un protocollo di comunicazione binario semplice e versatile, di tipo client-server.
Creato nel 1999 con l’intento di ottenere un protocollo che potesse ridurre al minimo l’utilizzo della banda nelle comunicazioni tra dispositivi e il consumo delle batterie.
Dopo pochi anni venne acquisito dall’associazione OASIS e nel 2010 divenne uno degli standard più interessanti nel mondo dell’IoT.
Il protocollo MQTT, per scambiare informazioni, sfrutta un meccanismo di pubblicazione e sottoscrizione di messaggi tramite un apposito message broker.
Se un determinato client vuole comunicare con un altro, pubblica un messaggio su un certo argomento (detto topic) sul message broker.
Il message broker ha il compito di filtrare e distribuire le comunicazioni tra pubblisher e subscriver.
I client possono iscriversi a determinati argomenti (topics) e ogni volta che viene pubblicato un nuovo messaggio su quegli argomenti, il message broker lo distribuisce a tutti i destinatari, configurando in questo modo un sistema di messagistica uno a molti.
Prossimamente approfondiremo questo argomento, continuando la serie di articoli dedicati ai mezzi trasmissivi e protocolli di comunicazione per la domotica.
Programmazione
Per programmare il modulo EP8266, potete fare riferimento alla Guida completa sui moduli ESP8266 e ESP-32.
Ecco il procedimento da seguire:
- Scaricare lo sketch allegato a questo articolo;
- Avviare l’IDE di Arduino;
- Aprire lo sketch appena scaricato;
- Collegare il modulo ESP8266 al PC come indicato nella guida;
- Selezionare la board corretta;
- Avviare il caricamento ed aspettare il completamento dell’operazione.
Hardware
Per assemblare il circuito, collegare i componenti come nell’immagine di collegamento seguente:
Conclusione
Con pochi componenti è stato possibile assemblare un dispositivo che può risultare utile in diverse circostanze.
Il circuito presentato può essere saldato su una basetta millefori, ma data la sua semplicità, i collegamenti potrebbero essere eseguiti saldando direttamente dei cavi ai componenti, da installare accuratamente dentro un apposito box.
Il protocollo di comunicazione MQTT permette di ottenere con estrema semplicità una vera e propria rete di comunicazione tra diversi dispositivi, anche se appartenenti a dei sistemi diverso, motivo per il quale prossimamente approfondiremo l’argomento.
Scarica il codice sorgente