Kazalo:
- 1. korak: Priprava strojne opreme
- 2. korak: Omogočanje SSH
- 3. korak: Namestitev Cloud4RPi
- 4. korak: Priključitev senzorja
- 5. korak: pošiljanje odčitkov senzorjev v oblak
- 6. korak: Karte in alarmi
Video: Nadzor temperature in vlažnosti z uporabo Raspberry Pi: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Prihaja poletje in tisti brez klimatske naprave bi morali biti pripravljeni ročno nadzorovati ozračje v zaprtih prostorih. V tem prispevku opisujem sodoben način merjenja najpomembnejših parametrov za človeško udobje: temperature in vlažnosti. Ti zbrani podatki se pošljejo v oblak in tam obdelajo.
Uporabljam ploščo Raspberry Pi 1 in senzor DHT22. Enako lahko storite na katerem koli računalniku, ki ima internet, GPIO in Python. Tudi cenejši senzor DHT11 dobro deluje.
1. korak: Priprava strojne opreme
Začnimo od samega začetka, saj svoje maline Pi nisem uporabljal že dolgo časa.
Potrebovali bomo:
- Plošča Raspberry Pi (ali druga platforma, usmerjena v IoT).
- SD ali microSD kartica (odvisno od platforme).
- 5V/1A prek mikro-USB.
- LAN kabel, ki omogoča internetno povezavo.
- Zaslon HDMI, zaslon RCA ali vrata UART (za omogočanje SSH).
Prvi korak je prenos Raspbiana. Odločil sem se za različico Lite, saj bom namesto zaslona uporabljal SSH. Od zadnjega, ko sem to naredil, se je stanje spremenilo: zdaj obstaja odlična programska oprema za zapisovanje, imenovana Etcher, ki deluje odlično in ima osupljiv dizajn.
Ko je zapisovanje slike končano, sem vstavil kartico SD v svoj Pi, priključil LAN in napajalne kable in čez nekaj časa je moj usmerjevalnik registriral novo napravo.
2. korak: Omogočanje SSH
SSH je privzeto onemogočen. Lahko uporabim pretvornik UART-USB ali pa samo povežem zaslon, da dostopam do lupine in omogočim SSH.
Po ponovnem zagonu sem končno noter. Najprej najprej posodobimo:
sudo apt update && sudo apt upgrade -y
Zdaj povežimo to novo napravo z oblakom.
3. korak: Namestitev Cloud4RPi
Odločil sem se preizkusiti platformo v oblaku, imenovano Cloud4RPi, ki je zasnovana za IoT.
V skladu z dokumenti za zagon potrebujemo naslednje pakete:
sudo apt install git python python -pip -y
Knjižnico odjemalca lahko namestite v enem samem ukazu:
sudo pip namestite cloud4rpi
Zdaj potrebujemo nekaj vzorčne kode, da zagotovimo njeno delovanje.
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 && rmdir -re
Odločil sem se za zagon minimal.py, vendar mi lažni podatki niso všeč. Na srečo sem v tem primeru opazil enostaven način za oživitev diagnostičnih podatkov. V razdelek o uvozu dodajte še en uvoz:
iz rpi import *
Nato izbrišite te funkcije, ki ponujajo lažne podatke (rpi.py jih zdaj opredeljuje):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Zdaj potrebujemo žeton, ki Cloud4RPi omogoča povezavo naprav z računi. Če ga želite, ustvarite račun na cloud4rpi.io in pritisnite gumb Nova naprava na tej strani. Zamenjajte niz _YOUR_DEVICE_TOKEN_ v datoteki minimal.py z žetonom naprave in datoteko shranite. Zdaj smo pripravljeni na prvi izstrelitev.
python minimal.py
Odprite stran naprave in preverite, ali so tam podatki.
Zdaj pa pojdimo na podatke iz resničnega sveta.
4. korak: Priključitev senzorja
Potrebovali bomo:
- Senzor vlažnosti DHT22 ali DHT11
- Vlečni upor (5-10 KΩ)
- Žice
Senzor DHT22 hkrati meri temperaturo in vlažnost. Komunikacijski protokol ni standardiziran, zato ga ni treba omogočiti v raspi -config - preprost pin GPIO je več kot dovolj.
Za pridobivanje podatkov bom uporabil odlično knjižnico Adafruit za senzorje DHT, vendar morda ne bo delovalo tako, kot je. Nekoč sem v kodi našel nenavadno nenehno zamudo, ki ni delovala za mojo strojno opremo, po dveh letih pa moja zahteva za vlečenje še vedno čaka. Prav tako sem spremenil konstante zaznavanja plošče, ker je bil moj Raspberry Pi 1 z BCM2835 presenetljivo zaznan kot Raspberry Pi 3. Želim si, da bi bilo res … Zato priporočam uporabo vilic. Če imate pri tem težave, poskusite izvirno skladišče, morda komu pomaga, vendar nisem eden izmed njih.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Ker je knjižnica napisana v jeziku C, zahteva kompilacijo, zato potrebujete pakete build-bistveno in python-dev.
sudo apt install build-bistvena python-dev -ysudo python setup.py namestitev
Med nameščanjem paketov priključite DHT22, kot je prikazano na sliki.
In preizkusite:
cd ~ python -c "uvoz Adafruit_DHT kot d; tiskanje d.read_retry (d. DHT22, 4)"
Če vidite nekaj takega (39.20000076293945, 22.600000381469727), morate vedeti, da je to vlažnost v odstotkih in temperatura v Celzijih.
Zdaj pa sestavimo vse skupaj!
5. korak: pošiljanje odčitkov senzorjev v oblak
Kot osnovo bom uporabil minimal.py in vanj dodal interakcijo DHT22.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Ker DHT22 v enem klicu vrne temperaturo in vlažnost, jih shranim globalno in v zahtevi posodobim le enkrat, ob predpostavki, da je zamuda med njimi več kot 10 sekund. Upoštevajte naslednjo kodo, ki pridobi podatke DHT22:
uvoz Adafruit_DHT
temp, hum = No, None last_update = time.time () - 20 def update_data (): globalno 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) if temp ni Noben drug Noben def get_h (): update_data () return round (hum, 2) če hum ni Noben drug noben
To kodo vstavite po obstoječem uvozu in uredite razdelek spremenljivk, tako da bo uporabljal nove funkcije:
spremenljivke = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'Temp CPU': {'type ':' numeric ',' bind ': cpu_temp}}
Za začetek prenosa podatkov pritisnite rdeči gumb:
python cloud_dht22.py
Nato lahko preverite stran naprave.
Lahko pustite tako, kot je, vendar imam raje storitev za vse. To zagotavlja, da se skript vedno izvaja. Ustvarjanje storitve s popolnoma avtomatiziranim skriptom:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Zagon storitve:
sudo storitev cloud4rpi start
In preveri:
pi@raspberrypi: ~ $ sudo storitev cloud4rpi status -l
● cloud4rpi.service-demon Cloud4RPi Naloženo: naloženo (/lib/systemd/system/cloud4rpi.service; omogočeno) Aktivno: aktivno (deluje) od srede 2017-05-17 20:22:48 UTC; 1 min nazaj Glavni PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py 17. maj 20:22:51 raspberrypi python [560]: Objavljanje iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]} 17. maj 20:22:53 raspberrypi python [560]: Objava iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. maj 20:22:53 raspberrypi python [560]: objava iot-hub/messages: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Če vse deluje po pričakovanjih, lahko nadaljujemo z uporabo zmogljivosti platforme Cloud4RPi za manipulacijo s podatki.
6. korak: Karte in alarmi
Najprej narišimo spremenljivke, da vidimo, kako se spreminjajo. To lahko storite tako, da dodate novo nadzorno ploščo in vanj vnesete zahtevane grafikone.
Druga stvar, ki jo lahko naredimo tukaj, je nastavitev opozorila. Ta funkcija vam omogoča, da konfigurirate varno območje za spremenljivko. Takoj, ko je obseg prekoračen, pošlje obvestilo po e -pošti. Na strani za urejanje nadzorne plošče lahko preklopite na opozorila in jih nastavite.
Takoj zatem se je vlaga v moji sobi začela hitro zmanjševati brez opaznega razloga in kmalu je sledil alarm.
Cloud4RPi lahko brezplačno uporabljate s katero koli strojno opremo, ki je sposobna izvesti Python. Zdaj pa vedno vem, kdaj vklopiti vlažilec zraka, in ga lahko celo povežem z relejem za daljinsko upravljanje prek Cloud4RPi. Pripravljen sem na vročino! Pozdravljeno poletje!
Priporočena:
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: 8 korakov
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: V prejšnjem navodilu sem predstavil navodila po korakih za začetek z vozliščem ESP8266 in platformo AskSensors IoT. V tej vadnici povezujem senzor DHT11 do vozlišča MCU. DHT11 je pogosto uporabljena temperatura in vlažnost
Nadzor temperature in vlažnosti z uporabo ESP-01 & DHT in oblaka AskSensors: 8 korakov
Nadzor temperature in vlažnosti z uporabo ESP-01 & DHT in oblaka AskSensors: V tem navodilu se bomo naučili spremljati meritve temperature in vlažnosti z uporabo plošče IOT-MCU/ESP-01-DHT11 in platforme AskSensors IoT .Za to aplikacijo izbiram modul IOT-MCU ESP-01-DHT11, ker
Nadzor temperature in vlažnosti z uporabo Blynka: 6 korakov
Nadzor temperature in vlažnosti z uporabo Blynka: V tej vadnici bomo spremljali temperaturo in vlažnost z uporabo DHT11 in podatke pošiljali v oblak z uporabo komponent Blynk, ki so potrebne za ta vadnica: Arduino UnoDHT11 senzor temperature in vlažnosti WiFi Modul ESP8266-01 WiFi
Nadzor temperature in vlažnosti z uporabo SHT25 in Arduino Nano: 5 korakov
Nadzor temperature in vlažnosti z uporabo SHT25 in Arduino Nano: Pred kratkim smo delali na različnih projektih, ki so zahtevali spremljanje temperature in vlažnosti, nato pa smo ugotovili, da imata ta dva parametra dejansko ključno vlogo pri oceni delovne učinkovitosti sistema. Oba na indusu
Nadzor temperature in vlažnosti z uporabo SHT25 in Raspberry Pi: 5 korakov
Nadzor temperature in vlažnosti z uporabo SHT25 in Raspberry Pi: Pred kratkim smo delali na različnih projektih, ki so zahtevali spremljanje temperature in vlažnosti, nato pa smo ugotovili, da imata ta dva parametra dejansko ključno vlogo pri oceni delovne učinkovitosti sistema. Oba na indusu