Sommario:
- Passaggio 1: preparazione dell'hardware
- Passaggio 2: abilitazione di SSH
- Passaggio 3: installazione di Cloud4RPi
- Passaggio 4: collegamento del sensore
- Passaggio 5: invio delle letture del sensore al cloud
- Passaggio 6: grafici e allarmi
Video: Monitoraggio della temperatura e dell'umidità con Raspberry Pi: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
L'estate sta arrivando e chi non ha un condizionatore d'aria dovrebbe essere pronto a controllare manualmente l'atmosfera all'interno. In questo post descrivo il modo moderno di misurare i parametri più importanti per il comfort umano: temperatura e umidità. Questi dati raccolti vengono inviati al cloud e lì elaborati.
Sto usando una scheda Raspberry Pi 1 e il sensore DHT22. Puoi fare lo stesso su qualsiasi computer dotato di Internet, GPIO e Python. Anche il sensore DHT11 più economico funziona bene.
Passaggio 1: preparazione dell'hardware
Cominciamo dall'inizio, dato che non usavo il mio Raspberry Pi da molto tempo.
Avremo bisogno:
- Scheda Raspberry Pi (o altra piattaforma orientata all'IoT).
- Scheda SD o microSD (a seconda della piattaforma).
- 5V/1A tramite micro-USB.
- Cavo LAN, che fornisce la connessione Internet.
- Display HDMI, display RCA o porta UART (per abilitare SSH).
Il primo passo è scaricare Raspbian. Ho scelto la versione Lite, poiché utilizzerò SSH invece del display. Le cose sono cambiate dall'ultima volta che l'ho fatto: ora c'è un ottimo software di masterizzazione chiamato Etcher, che funziona perfettamente e ha un design straordinario.
Dopo che la masterizzazione dell'immagine è stata completata, ho inserito la scheda SD nel mio Pi, collegato la LAN e i cavi di alimentazione e, dopo un po', il mio router ha registrato il nuovo dispositivo.
Passaggio 2: abilitazione di SSH
SSH è disabilitato per impostazione predefinita. Posso utilizzare il convertitore UART-USB o semplicemente collegare un display per accedere alla shell e abilitare SSH.
Dopo il riavvio, sono finalmente entrato. Per prima cosa, aggiorniamo:
sudo apt update && sudo apt upgrade -y
Ora colleghiamo questo nuovo dispositivo al Cloud.
Passaggio 3: installazione di Cloud4RPi
Ho deciso di provare la piattaforma cloud chiamata Cloud4RPi, progettata per IoT.
Secondo i documenti, abbiamo bisogno dei seguenti pacchetti per farlo funzionare:
sudo apt install git python python-pip -y
La libreria client può essere installata con un unico comando:
sudo pip install cloud4rpi
Ora abbiamo bisogno di un codice di esempio per assicurarci che funzioni.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re
Ho deciso di eseguire minimal.py, ma non mi piacciono i dati falsi. Fortunatamente, ho notato un modo semplice per rendere reali i dati diagnostici in questo esempio. Aggiungi un'altra importazione alla sezione delle importazioni:
dall'importazione rpi *
Quindi elimina queste funzioni che forniscono dati falsi (ora li definisce rpi.py):
def cpu_temp():
return 70 def ip_address(): return '8.8.8.8' def host_name(): return 'hostname' def os_name(): return 'osx'
Ora abbiamo bisogno di un token, che permetta a Cloud4RPi di collegare i dispositivi con gli account. Per ottenerne uno, crea un account su cloud4rpi.io e premi il pulsante Nuovo dispositivo in questa pagina. Sostituisci la stringa _YOUR_DEVICE_TOKEN_ nel file minimal.py con il token del tuo dispositivo e salva il file. Ora siamo pronti per il primo lancio.
python minimal.py
Apri la pagina del dispositivo e verifica che i dati siano presenti.
Passiamo ora ai dati del mondo reale.
Passaggio 4: collegamento del sensore
Avremo bisogno:
- Sensore di umidità DHT22 o DHT11
- Resistenza di pull-up (5-10 KΩ)
- fili
Il sensore DHT22 misura contemporaneamente temperatura e umidità. Il protocollo di comunicazione non è standardizzato, quindi non è necessario abilitarlo in raspi-config: un semplice pin GPIO è più che sufficiente.
Per acquisire i dati, utilizzerò la fantastica libreria di Adafruit per i sensori DHT, ma potrebbe non funzionare così com'è. Una volta ho riscontrato uno strano ritardo costante nel codice, che non funzionava per il mio hardware, e dopo due anni la mia richiesta di pull è ancora in sospeso. Ho anche cambiato le costanti di rilevamento della scheda perché il mio Raspberry Pi 1 con BCM2835 è stato sorprendentemente rilevato come Raspberry Pi 3. Vorrei che fosse vero… Pertanto, consiglio di utilizzare il fork. Se riscontri problemi con esso, prova il repository originale, forse funziona per qualcuno, ma io non sono uno di loro.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Poiché la libreria è scritta in C, richiede la compilazione, quindi sono necessari i pacchetti build-essential e python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Durante l'installazione dei pacchetti, collegare il DHT22 come mostrato nell'immagine.
E prova:
cd ~python -c "importa Adafruit_DHT come d; stampa d.read_retry(d. DHT22, 4)"
Se vedi qualcosa come (39.2000076293945, 22.600000381469727), dovresti sapere che questa è l'umidità in percentuale e la temperatura in Celsius.
Ora, assembliamo tutto insieme!
Passaggio 5: invio delle letture del sensore al cloud
Userò il minimal.py come base e aggiungerò l'interazione DHT22 al suo interno.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Poiché DHT22 restituisce sia la temperatura che l'umidità in una singola chiamata, li memorizzo globalmente e li aggiorno solo una volta in una richiesta, supponendo che il ritardo tra di loro sia superiore a 10 secondi. Considera il seguente codice, che acquisisce i dati DHT22:
import Adafruit_DHT
temp, hum = None, None last_update = time.time() - 20 def update_data(): global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() return round(temp, 2) se temp non è Nessun altro Nessuno def get_h(): update_data() return round(hum, 2) se hum non lo è Nessun altro Nessuno
Inserisci questo codice dopo le importazioni esistenti e modifica la sezione delle variabili in modo che utilizzi le nuove funzioni:
variabili = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numeric', 'bind': cpu_temp } }
Premi il pulsante rosso per avviare il trasferimento dei dati:
python cloud_dht22.py
Quindi puoi controllare la pagina del dispositivo.
Puoi lasciarlo così com'è, ma preferisco avere un servizio per tutto. Ciò garantisce che lo script sia sempre in esecuzione. Creazione di un servizio con lo script completamente automatizzato:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Avvio del servizio:
sudo service cloud4rpi start
E controllandolo:
pi@raspberrypi:~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - demone Cloud4RPi Caricato: caricato (/lib/systemd/system/cloud4rpi.service; abilitato) Attivo: attivo (in esecuzione) da Mer 2017-05-17 20:22:48 UTC; 1min fa PID principale: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py17 maggio 20:22:51 raspberrypi python[560]: pubblicazione iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]} 17 maggio 20:22:53 raspberrypi python[560]: pubblicazione iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20:2…40'}}17 maggio 20:22:53 raspberrypi python[560]: pubblicazione iot-hub/messages: {'type': 'sistema', 'ts': '2017-05-17T20….4'}}
Se tutto funziona come previsto, possiamo andare avanti e utilizzare le capacità della piattaforma Cloud4RPi per manipolare i dati.
Passaggio 6: grafici e allarmi
Prima di tutto, tracciamo le variabili per vedere come cambiano. Questo può essere fatto aggiungendo un nuovo pannello di controllo e inserendo i grafici richiesti al suo interno.
Un'altra cosa che possiamo fare qui è impostare un avviso. Questa funzione consente di configurare l'intervallo di sicurezza per una variabile. Non appena l'intervallo viene superato, invia una notifica e-mail. Nella pagina di modifica del Pannello di controllo, puoi passare ad Avvisi e configurarne uno.
Subito dopo, l'umidità nella mia stanza ha iniziato a diminuire rapidamente senza alcun motivo evidente e l'allarme è arrivato presto.
Puoi utilizzare Cloud4RPi gratuitamente con qualsiasi hardware in grado di eseguire Python. Per quanto mi riguarda, ora so sempre quando accendere l'umidificatore e posso persino collegarlo a un relè per il controllo remoto tramite Cloud4RPi. Sono pronto per il caldo! Benvenuta estate!
Consigliato:
Monitoraggio della temperatura e dell'umidità della stanza con ESP32 e AskSensors Cloud: 6 passaggi
Monitoraggio della temperatura e dell'umidità della stanza con ESP32 e AskSensors Cloud: In questo tutorial imparerai come monitorare la temperatura e l'umidità della tua stanza o scrivania utilizzando il DHT11 e l'ESP32 collegati al cloud. I nostri aggiornamenti dei tutorial possono essere trovati qui.DHT11 Specifiche: il sensore DHT11 è in grado di misurare la temperatura
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale - Ottieni la temperatura e l'umidità della stanza sul tuo browser: 6 passaggi
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale | Ottieni la temperatura e l'umidità della stanza sul tuo browser: Ciao ragazzi, oggi faremo un'umidità e l'umidità; sistema di monitoraggio della temperatura utilizzando ESP 8266 NODEMCU & Sensore di temperatura DHT11. La temperatura e l'umidità saranno ottenute da DHT11 Sensor & può essere visto su un browser quale pagina web verrà gestita
Monitoraggio della temperatura e dell'umidità utilizzando SHT25 e Raspberry Pi: 5 passaggi
Monitoraggio della temperatura e dell'umidità utilizzando SHT25 e Raspberry Pi: abbiamo recentemente lavorato su vari progetti che richiedevano il monitoraggio della temperatura e dell'umidità e poi ci siamo resi conto che questi due parametri svolgono effettivamente un ruolo fondamentale nell'avere una stima dell'efficienza di lavoro di un sistema. Entrambi all'indu
Monitoraggio della temperatura e dell'umidità della stanza: 6 passaggi
Monitoraggio della temperatura e dell'umidità della stanza: il mio progetto, QTempair, misura la temperatura della stanza, l'umidità e la qualità dell'aria. Questo progetto legge i dati dai sensori, li invia al database e quei dati verranno visualizzati su un sito web. È possibile salvare una temperatura nelle impostazioni del
Monitoraggio dell'umidità e della temperatura della casa: 11 passaggi
Monitoraggio dell'umidità e della temperatura della casa: ciao ragazzi! Per iniziare nel migliore dei modi, un piccolo racconto sul progetto. Mi sono recentemente laureato e mi sono trasferito in Austria per la mia prima posizione come ingegnere. Il paese è bellissimo ma molto freddo & umido nella stagione invernale. Ho iniziato velocemente