Si parla sempre di più di domotica (oppure di
IoT - Internet of Things), in quanto è un settore in forte crescita. La domotica in poche parole
si può definire come la possibilità di:
- controllare a distanza (da remoto, ovvero fuori casa, da qualsiasi parte del mondo) quello che accade in casa (ci sono persone? Ho lasciato qualche luce accesa?)
- comandare apparecchi ed elettrodomestici (accendere e spegnere luci ad esempio) attraverso un dispositivo elettronico (cellulare, tablet, pc)
- effettuare operazioni automatiche in base ad alcuni criteri (accendere le luci del giardino quando fa buio, illuminare una stanza
se si rilevano dei movimenti in certi orari, ecc)
- rendere disponibili dei dati statistici (eventualmente con grafici) sulle informazioni che vengono raccolte nell'ambiente monitorato (grafico delle temperatura durante il giorno,
grafico dei consumi elettrici, ecc)
Il mio sistema di domotica
Premetto che il sistema di domotica che ho realizzato è funzionante, quindi le cose che scrivo non sono semplice teoria,
ma cose pratiche e testate. Se alcune funzioni non sono ancora implementate ma esistono solo a livello di progetto, lo dirò in
modo esplicito. Considero il mio sistema una versione beta, in quanto ci sono ancora molte funzioni che vorrei aggiungere.
Il sistema di domotica è composto dai seguenti componenti:
- Un nodo centrale dove gira l'interfaccia con l'utente, che colloquia con gli altri nodi per lo scambio di informazioni
- Dei nodi periferici che si interfacciano con l'harwdare del sistema domotico (sensori, relè, ecc)
- Un'infrasruttura di rete che collega tutti gli elementi sopra descritti
Specfiche hardware
Nodo centrale
Il
nodo centrale è costituito da un mini pc (nel caso specifico un Raspberry Pi 3) collegato via cavo alla rete della domotica.
Chiaramente ha un indirizzo IP statico. Questo nodo costituisce il cuore della domotica. Sono installati i seguenti servizi:
- Web server (Apache): l'interazione con la domotica avviene attraverso una interfaccia web (scritta in PHP)
- Database (MySQL): qui vengono salvati dati e impostazioni del sistema
- Script CRON: per la gestione delle operazioni automatizzate e programmate
- Broker MQTT: permette lo scambio dati tra i nodi attraverso delle code con la tecnica della pubblicazione e ascolto delle code stesse
(questa caratteristica è attualmente in fase di sviluppo)