Sommario:
- Forniture
- Passaggio 1: preparazione dell'hardware
- Passaggio 2: installazione di Cloud4RPi
- Passaggio 3: collegamento del sensore
- Passaggio 4: invio delle letture del sensore al cloud
- Passaggio 5: grafici e allarmi
Video: Umidità nel cloud: 5 passaggi
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.
Forniture
Sto usando una scheda Raspberry Pi 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 cavo micro-USB. 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.
Grande! Andiamo avanti e SSH dentro.
La sicurezza è OK, mi piace, ma questo rende le cose un po' più difficili. Userò l'adattatore UART-USB per accedere alla shell e abilitare SSH…
L'uso di un display al posto di UART lo rende molto più semplice.
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 2: 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 python3 python3-pip -y
La libreria client può essere installata con un unico comando:
sudo pip3 install cloud4rpi
Ora abbiamo bisogno di un codice di esempio.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Lo script eseguibile è control.py.
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 control.py con il token del tuo dispositivo e salva il file. Ora siamo pronti per il primo lancio.
sudo python3 control.py
Apri la pagina del dispositivo e verifica che i dati siano presenti.
Passiamo ora ai dati del mondo reale.
Passaggio 3: collegamento del sensore
Avremo bisogno:
- Sensore di umidità DHT22 o DHT11
- Resistenza di pull-up (5-10 KΩ)
- FiliIl
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.gitcd 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 4: invio delle letture del sensore al cloud
Userò control.py come base e aggiungerò l'interazione DHT22 al suo interno.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Rimuovi il codice di esempio come nell'immagine sopra.
Poiché DHT22 restituisce sia la temperatura che l'umidità in una singola chiamata, li memorizzerò globalmente e li aggiornerò 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
temperatura, ronzio = nessuno, nessuno
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 è Nessuno else Nessuno def get_h(): update_data() return round(hum, 2) se hum non è Nessuno else 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 } }
Se trovi che le manipolazioni confondono, prendi la versione finale di questo file. Premi il pulsante rosso per avviare il trasferimento dei dati:
Quindi puoi controllare la pagina del dispositivo.
python3 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 che hai già nella directory cloud4rpi-raspberrypi-python:
service_install.sh 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.py
17 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': 'system', '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 5: 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!
Con Cloud4RPi, puoi controllare il tuo Raspberry Pi e altri dispositivi IoT da remoto in tempo reale. Visita il nostro sito e connetti un numero illimitato di dispositivi gratuitamente.
Consigliato:
Automatizzare una serra con LoRa! (Parte 1) -- Sensori (temperatura, umidità, umidità del suolo): 5 passaggi
Automatizzare una serra con LoRa! (Parte 1) || Sensori (temperatura, umidità, umidità del suolo): in questo progetto ti mostrerò come ho automatizzato una serra. Ciò significa che ti mostrerò come ho costruito la serra e come ho collegato l'elettronica di alimentazione e automazione. Inoltre ti mostrerò come programmare una scheda Arduino che utilizza L
Come pubblicare dati ESP32 con timestamp NTP nel cloud IoT: 5 passaggi
Come pubblicare dati ESP32 con timestamp NTP nel cloud IoT: in molte applicazioni, gli utenti devono inviare i propri dati insieme al timestamp locale dei valori da inviare nel payload al cloud IoT AskSensors. Il formato del timestamp è UNIX Epoch time: il numero di millisecondi trascorsi da Janu
ESP8266 NodeMCU Access Point (AP) per server Web con sensore di temperatura DT11 e stampa di temperatura e umidità nel browser: 5 passaggi
ESP8266 NodeMCU Access Point (AP) per server Web con sensore di temperatura DT11 e temperatura e umidità di stampa nel browser: ciao ragazzi nella maggior parte dei progetti utilizziamo ESP8266 e nella maggior parte dei progetti utilizziamo ESP8266 come server Web in modo da poter accedere ai dati su qualsiasi dispositivo tramite wifi accedendo al server Web ospitato da ESP8266 ma l'unico problema è che abbiamo bisogno di un router funzionante per
Sistema di rilevamento delle impronte digitali Arduino con archiviazione dei dati nel cloud: 8 passaggi
Arduino Fingerprint Attendance System W/ Cloud Data Storage: puoi leggere questo e altri fantastici tutorial sul sito Web ufficiale di ElectroPeakPanoramica Oggigiorno, conoscere il funzionamento e l'implementazione dei dispositivi IoT è così essenziale a causa del crescente utilizzo dei sistemi IoT. In questo tutorial, faremo
Monitor di umidità wireless (ESP8266 + sensore di umidità): 5 passaggi
Wireless Moisture Monitor (ESP8266 + Moisture Sensor): compro il prezzemolo in vaso e la maggior parte del giorno il terreno era asciutto. Quindi decido di realizzare questo progetto, sul rilevamento dell'umidità del terreno in vaso con prezzemolo, per verificare, quando ho bisogno di versare il terreno con acqua. Penso che questo sensore (sensore di umidità capacitivo v1.2) sia buono perché