Sommario:
- Passaggio 1: cos'è MQTT?
- Passaggio 2: installazione di MQTT Broker su Raspberry Pi
- Passaggio 3: collega IOT Cricket a RaspberryPi tramite MQTT
- Passaggio 4: ispezionare i messaggi MQTT
- Passaggio 5: riepilogo
- Passaggio 6: chi siamo
Video: Sistema di automazione domestica WiFi a bassissima potenza: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
In questo progetto mostriamo come è possibile costruire un sistema domotico locale di base in pochi passaggi. Utilizzeremo un Raspberry Pi che fungerà da dispositivo WiFi centrale. Considerando che per i nodi finali utilizzeremo IOT Cricket per realizzare dispositivi WiFi alimentati a batteria, ad es. sensore di temperatura e collegarlo all'RPi senza scrivere una sola riga di codice.
Il nostro sistema sarà basato sul protocollo di comunicazione MQTT, ampiamente adottato nella maggior parte dei sistemi di automazione domestica. Per configurarlo scegliamo il broker Mosquitto MQTT (server) e lo installiamo su Raspberry Pi (il nostro hub centrale).
IOT Cricket include anche il supporto dei protocolli HTTP(S) e MQTT. Lo configuriamo per utilizzare MQTT per comunicare direttamente con il nostro broker RPi MQTT.
Questo progetto può essere realizzato da makers a tutti i livelli di abilità. Potrebbe richiedere alcune saldature di base, tuttavia non richiede alcuna codifica o programmazione. Alla fine di questo progetto avrai una solida idea di come puoi facilmente costruire il tuo sistema ed estenderlo rapidamente aggiungendo i tuoi nodi finali IOT al sistema.
Forniture:
- Raspberry Pi (abbiamo usato la versione 3 per questo progetto)
- Modulo WiFi IOT Cricket
- Portabatterie 2xAAA
- 2 batterie AAA
Passaggio 1: cos'è MQTT?
Il protocollo MQTT fornisce un metodo leggero per eseguire la messaggistica utilizzando un modello di pubblicazione/sottoscrizione. Ciò lo rende adatto per la messaggistica di Internet of Things come sensori a bassa potenza o dispositivi mobili come telefoni, computer incorporati o microcontrollori. (fonte: mosquitto.org)
Possiamo utilizzare tutti i dispositivi che vogliamo per iscriverci agli argomenti e ascoltare i messaggi in arrivo. Se alcuni dispositivi pubblicano un messaggio su quell'argomento, tutti i dispositivi che sono iscritti all'argomento ricevono quel messaggio istantaneamente. L'argomento può essere una qualsiasi stringa arbitraria solitamente concatenata con i caratteri / per consentire la creazione di argomenti gerarchici. L'uso più tipico di MQTT consiste nell'avere un server centrale a cui i dispositivi possono iscriversi e pubblicare messaggi. Facilita tutte le comunicazioni tra i dispositivi collegati a quel server. In questo progetto utilizzeremo RPi come nostro broker MQTT centrale e tutti gli altri dispositivi invieranno messaggi tramite questo broker. Il modo migliore per impararlo è ovviamente farlo da soli. Ci sono molte risorse disponibili su Internet su MQTT. Tuttavia, per questo progetto dovresti essere d'accordo con un'introduzione di base, che abbiamo fornito sopra.
Passaggio 2: installazione di MQTT Broker su Raspberry Pi
Per questo progetto utilizziamo un broker Mosquitto MQTT open source. È leggero ed è adatto per l'uso su tutti i dispositivi, dai computer a scheda singola a bassa potenza ai server completi.
Prima di iniziare l'installazione, è buona norma aggiornare prima i componenti di sistema:
$ sudo apt-get update$ sudo apt-get upgrade
Installa il broker Mosquitto. Apri un terminale e digita il seguente comando:
$ sudo apt-get install mosquitto -y
Configura il broker Mosquitto. Modifica file di configurazione:
$ sudo vi /etc/mosquitto/mosquitto.conf
e aggiungi le seguenti righe in alto:
porta 1883allow_anonymous vero
Riavvia RPi per applicare le modifiche:
$ sudo reboot
Questo è tutto! Il nostro broker MQTT è attivo e funzionante ora!
NOTA: per semplicità di questo progetto non stiamo creando account. Quindi chiunque all'interno della nostra rete locale può connettersi a questo broker MQTT senza credenziali. Se vuoi aggiungere l'autenticazione dell'utente e renderla più sicura, ci sono molti tutorial su Internet su come farlo.
Ora, dobbiamo solo ottenere l'indirizzo IP in modo da poter inviare messaggi al nostro broker Mosquitto da altri dispositivi nella rete:
Ottieni indirizzo IP:
$ hostname -I
your_RPi_IP_address (es. 192.168.1.10)
Passaggio 3: collega IOT Cricket a RaspberryPi tramite MQTT
In questo progetto utilizziamo il modulo WiFi IOT Cricket per un semplice sensore per segnalare una temperatura ogni 30 secondi al nostro sistema. Funziona con una batteria in modo da poterlo attaccare ovunque a casa o in giardino. Successivamente è possibile utilizzare IOT Cricket per costruire vari sensori, allarmi, pulsanti, interruttori alimentati a batteria e collegarli anche al nostro broker RPi MQTT pronto all'uso.
Nella prima fase collega le batterie a Cricket.
Cricket è dotato di un sensore di temperatura integrato. Abbiamo solo bisogno di configurarlo per inviare il valore della temperatura al nostro broker MQTT impostando l'indirizzo IP RPi. Per farlo apri il pannello di configurazione di Cricket (vedi i passaggi qui) e applica le seguenti impostazioni (come mostrato nell'immagine qui sotto, per favore regola l'indirizzo IP nella casella "url" sul tuo RPi)
Ora possiamo uscire dalla modalità di configurazione. Il dispositivo è pronto! Cricket sta già inviando dati al nostro broker MQTT ogni 30 secondi.
Passaggio 4: ispezionare i messaggi MQTT
Per visualizzare/ricevere messaggi inviati al nostro broker MQTT possiamo utilizzare vari strumenti.
Il più semplice potrebbe essere uno strumento da riga di comando mosquitto_sub. Possiamo installarlo su qualsiasi computer della nostra rete o sul nostro RPi con questo comando:
$ sudo apt-get install mosquitto-clients -y
Ora possiamo eseguire il seguente comando per ascoltare TUTTI gli argomenti e i messaggi inviati tramite il nostro broker MQTT:
$ mosquitto_sub -v -h tuo_indirizzo_IP_RPi -p 1883 -t '#'
…/59A98F494C/nome_dispositivo MyTemperatureDev/59A98F494C/sn_dispositivo 59A98F494C/59A98F494C/hwc_wake_up 3794/59A98F494C/hwc_wifi_enabled 3763/59A98F498_F944…
Quanto sopra è un esempio di output di ciò che IOT Cricket invia al nostro broker. Tra gli altri dati che possiamo vedere c'è una temperatura:
/59A98F494C/temperatura 26.0
Il bello di MQTT è che ci permette di iscriverci solo agli argomenti che ci interessano. Se vogliamo ricevere solo una temperatura, possiamo iscriverci all'argomento /59A98F494C/temp utilizzando il seguente comando:
$ mosquitto_sub -h tuo_indirizzo_IP_RPi -t '/59A98F494C/temp'
…26.126.527.227.6…
Passaggio 5: riepilogo
In questo progetto abbiamo mostrato un hardware e un software essenziale per iniziare a costruire sistemi di automazione domestica a basso consumo, efficienti dal punto di vista energetico, basati su WiFi. MQTT è l'essenza su cui basarsi per i sistemi più sofisticati.
L'ecosistema di software e servizi che possono essere integrati con MQTT è ENORME! Ci sono molti ottimi sistemi come Home Assistant, Node RED, Grafana, ecc. per farti ottenere un'ottima esperienza utente del tuo sistema. Non solo possiamo fare una semplice stampa di una temperatura, ma possiamo avere grandi dashboard che visualizzano i dati e gestiscono i tuoi dispositivi.
Ora che abbiamo questa infrastruttura di sistema di base in atto, il cielo è il nostro limite di quali altri dispositivi WiFi possiamo costruire utilizzando i moduli IOT Cricket e aggiungere al nostro sistema di automazione domestica.
Grazie per essere arrivato fin qui. Speriamo che questo tutorial ti sia piaciuto!
Il team di Things On Edge
Passaggio 6: chi siamo
Things On Edge è una società con sede a Cambridge, nel Regno Unito. Progettiamo un modulo Wi-Fi Cricket alimentato a batteria ultra bassa per consentirti di connettere vari dispositivi elettronici a smartphone o altri servizi Internet letteralmente in pochi minuti. Non richiede alcuna programmazione e codifica. Ti consente di integrare i tuoi dispositivi in un enorme ecosistema IOT su API MQTT e
Consigliato:
Facile BLE a bassissima potenza in Arduino Parte 2 -- Monitoraggio temperatura/umidità -- Rev 3: 7 passaggi
Easy Very Low Power BLE in Arduino Part 2 -- Temperature/Humidity Monitor -- Rev 3: Aggiornamento: 23 novembre 2020 – Prima sostituzione di 2 batterie AAA dal 15 gennaio 2019, ovvero 22 mesi per 2 batterie alcaline AAA Aggiornamento: 7 aprile 2019 – Rev 3 di lp_BLE_TempHumidity, aggiunge grafici di data/ora, utilizzando pfodApp V3.0.362+ e l'auto throttling quando
Automazione domestica con WiFi ESP8266 senza usare Blynk!: 24 passaggi (con immagini)
Automazione domestica con WiFi ESP8266 senza usare Blynk!: In primo luogo, voglio RINGRAZIARE tutti per avermi reso un vincitore nell'Automation Contest 2016 per questo INSTRUCTABLE. Quindi, come ti avevo promesso, ecco le istruzioni per controllare gli elettrodomestici con il modulo WiFi ESP8266
Facile BLE a bassissima potenza in Arduino Parte 3 - Sostituzione Nano V2 - Rev 3: 7 passaggi (con immagini)
Easy Very Low Power BLE in Arduino Part 3 - Sostituzione Nano V2 - Rev 3: Aggiornamento: 7 aprile 2019 - Rev 3 di lp_BLE_TempHumidity, aggiunge grafici data/ora, utilizzando pfodApp V3.0.362+ e limitazione automatica durante l'invio dei dati Aggiornamento: 24 marzo 2019 – Rev 2 di lp_BLE_TempHumidity, aggiunge più opzioni di trama e i2c_ClearBus, aggiunge GT832E
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: Ciao, benvenuto nel mio primo istruibile. Il seminterrato di casa mia viene allagato ogni pochi anni per vari motivi come forti temporali estivi, acque sotterranee alte o persino lo scoppio di un tubo. Anche se non è un bel posto, ma il mio b
Stazione meteo a bassissima potenza Arduino: 5 passaggi
Arduino Ultra Low Power Weather Station: questa guida ti mostrerà come costruire una stazione meteo a bassissima potenza utilizzando un arduino nano, un bme 280 e il modulo radio rf433, che durerà da circa 1,5 a 2 anni su 2 LiPo 18650 e la capacità per ampliarlo aggiungendo più sensori e un solare p