La maggior parte delle guide che trattano dei sensor idi temperatura, di solito sono per i sensori DHT, ma se come me avete comprato i sensori AM2320 di temperatura e umidità (io li ho comprati su AliExpress), vi tornerò utile questa guida! Il sensore AM2320 ha una connessione i2C e una portata di 20m.
Collegamenti
La connessione è abbastanza semplice, necessita ovviamente di alimentazione sui pin 1 e 3, il pin 2 e 4 serviranno per la gestione dei dati.Collega i pin come da figura. Io l’ho collegato sui 3,3V del Raspberry Pi senza resistenze, senza problemi.
Raccolta ed invio dati
L’idea è semplice, raccogliere i dati dal sensore AM2320 tramite i2c ed inviarli al nostro server MQTT.
MQTTCi sono molti server (chiamati broker) per raccogliere i messaggi MQTT, personalmente ho trovato molto semplice mosquitto, il quale mette a dispozione un’ area per i test , ma sei libero di trovare il tuo preferito.
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