martedì 9 Marzo 2021
Home / Domotica / Sensore di temperatura ed umidità AM2320 i2c

Sensore di temperatura ed umidità AM2320 i2c

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.

MQTT
Ci 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à
[Immagine: Schermata_del_2018_07_30_16_25_51.png]

Riferimenti

Datasheet AM2320

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

Discutiamone nel forum

Se vuoi restare aggiornato, seguici anche sui nostri social: FacebookTwitterYoutube, Telegram.  

A proposito di Enrico Sartori

Tecnico Informatico Windows | Volontario digitale | Technical Editor con mille hobby. eBook/Libro: https://bit.ly/eBookRaspberryPi Email: info@enricosartori.it

Vedi Anche

MagPi102 doppiapagina

MagPi in italiano! Realizza il Miglior Media Centre

35 pagine in italiano ricche di contenuti su Raspberry Pi. Il numero di febbraio 2021 di The MagPi, ti aspetta!

Powered by themekiller.com