Collegamenti
Raccolta ed invio dati
Per l’installazione del server MQTT esegui questo codice sul server che farà da broker (ricevitore), nel mio caso RaspberryPi.
apt update; apt install -y mosquitto
Libreria Python
Di librerie ce ne sono varie, ma personalmente ho usato quella di mcauser installandola semplicemente con pip3.
pip3 install micropython-am2320
Lettura dati
Prepariamo il nostro script Python 3 per una semplice lettura dei dati del sensore.
import am2320
from machine import I2C, Pin
i2c = I2C(scl=Pin(5), sda=Pin(4))
sensor = am2320.AM2320(i2c)
sensor.measure()
print(sensor.temperature())
print(sensor.humidity())
Invio dati
Una volta raccolti i dati, vogliamo inviarli tramite il protocollo MQTT al nostro broker, cioè il server MQTT installato prima.
Per farlo sfrutteremo il client MQTT PAHO-MQTT della Eclipse, installandolo tramite
pip3 install paho-mqtt
Integriamo invio nel nostro script
import paho.mqtt.publish as publish
msgs = [{'topic':"temperatura", 'payload':"sensor.temperature()"}, ("umidita", "sensor.humidity()", 0, False)]
publish.multiple(msgs, hostname="localhost")
Gestione dei dati
Ben fatto: abbiamo un server, abbiamo un client che invia i dati, ora manca solo un modo per visualizzarli. I sistemi sono molteplici, una guida la trovi qui Gestione da Node-RED , ed un altro modo è la gestione tramite app dello smartphone IoT MQTT Panel .
Note
Per attivare la modalita i2c è necessario verificare che usando
sudo raspi-config
nel menù
interfacing option -> i2c
sia abilitata la modalità
Riferimenti
Sensori wireless con Raspberry Pi e ESP8266, tramite MQTT
Scopriamo insieme Node-RED. Grandi progetti IOT in pochi minuti!
Crea la tua Dashboard con RaspberryPi
piGarden e piGardenWeb: realizza il tuo impianto di irrigazione con Raspberry Pi
Se vuoi restare aggiornato, seguici anche sui nostri social: Facebook, Twitter, Youtube, Telegram.