Sadržaj:
- Korak 1: Priprema hardvera
- Korak 2: Omogućavanje SSH -a
- Korak 3: Instaliranje Cloud4RPi
- Korak 4: Spajanje senzora
- Korak 5: Slanje očitanja senzora u oblak
- Korak 6: Karte i alarmi
Video: Nadzor temperature i vlažnosti pomoću Raspberry Pi: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Ljeto dolazi, a oni bez klima uređaja trebali bi biti spremni kontrolirati atmosferu u zatvorenom prostoru ručno. U ovom postu opisujem moderan način mjerenja najvažnijih parametara za ugodu čovjeka: temperature i vlažnosti. Ovi prikupljeni podaci šalju se u oblak i tamo obrađuju.
Koristim ploču Raspberry Pi 1 i senzor DHT22. Isto možete učiniti na bilo kojem računaru koji ima internet, GPIO i Python. Jeftiniji DHT11 senzor također radi dobro.
Korak 1: Priprema hardvera
Počnimo od samog početka, jer nisam koristio svoj Raspberry Pi već duže vrijeme.
Trebat će nam:
- Raspberry Pi ploča (ili druga platforma orijentirana na IoT).
- SD ili microSD kartica (ovisno o platformi).
- 5V/1A putem mikro-USB-a.
- LAN kabel koji omogućuje internetsku vezu.
- HDMI ekran, RCA ekran ili UART port (za omogućavanje SSH).
Prvi korak je preuzimanje Raspbiana. Odabrao sam Lite verziju jer ću koristiti SSH umjesto ekrana. Stvari su se promijenile od posljednjeg puta kada sam to učinio: sada postoji odličan softver za snimanje pod nazivom Etcher, koji savršeno radi i ima zadivljujući dizajn.
Nakon što je snimanje slike završeno, umetnuo sam SD karticu u svoj Pi, priključio LAN i kablove za napajanje, a nakon nekog vremena moj usmjerivač je registrirao novi uređaj.
Korak 2: Omogućavanje SSH -a
SSH je prema zadanim postavkama onemogućen. Mogu koristiti ili UART-USB pretvarač ili samo spojiti zaslon za pristup ljusci i omogućiti SSH.
Nakon ponovnog pokretanja, konačno sam ušao. Prvo prvo, ažurirajmo:
sudo apt update && sudo apt upgrade -y
Sada spojimo ovaj novi uređaj na Cloud.
Korak 3: Instaliranje Cloud4RPi
Odlučio sam isprobati cloud platformu pod nazivom Cloud4RPi, koja je dizajnirana za IoT.
Prema dokumentima, za pokretanje su nam potrebni sljedeći paketi:
sudo apt install git python python -pip -y
Klijentska biblioteka može se instalirati u jednoj naredbi:
sudo pip install cloud4rpi
Sada nam je potreban neki uzorak koda kako bismo bili sigurni da radi.
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
Odlučio sam pokrenuti minimal.py, ali ne sviđaju mi se lažni podaci. Srećom, primijetio sam jednostavan način da dijagnostičke podatke učinim stvarnima u ovom primjeru. Dodajte još jedan uvoz u odjeljak o uvozima:
iz rpi uvoza *
Zatim izbrišite ove funkcije koje pružaju lažne podatke (rpi.py ih sada definira):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Sada nam je potreban token koji Cloud4RPi -u omogućava povezivanje uređaja s računima. Da biste ga dobili, stvorite račun na cloud4rpi.io i pritisnite gumb Novi uređaj na ovoj stranici. Zamijenite niz _YOUR_DEVICE_TOKEN_ u datoteci minimal.py s tokenom uređaja i spremite datoteku. Sada smo spremni za prvo lansiranje.
python minimal.py
Otvorite stranicu uređaja i provjerite postoje li podaci.
Pređimo sada na podatke iz stvarnog svijeta.
Korak 4: Spajanje senzora
Trebat će nam:
- Senzor vlažnosti DHT22 ili DHT11
- Otpornik na izvlačenje (5-10 KΩ)
- Žice
Senzor DHT22 istovremeno mjeri temperaturu i vlažnost. Komunikacijski protokol nije standardiziran, pa ga ne moramo omogućiti u raspi -config - jednostavan GPIO pin je više nego dovoljan.
Za prikupljanje podataka koristit ću odličnu Adafruit biblioteku za DHT senzore, ali možda neće funkcionirati kako jest. Jednom sam našao čudno konstantno kašnjenje u kodu, koje nije radilo na mom hardveru, a nakon dvije godine moj zahtjev za povlačenjem još uvijek je na čekanju. Takođe sam promenio konstante detekcije ploče jer je moj Raspberry Pi 1 sa BCM2835 iznenađujuće otkriven kao Raspberry Pi 3. Voleo bih da je to tačno … Stoga preporučujem da koristim viljušku. Ako imate bilo kakvih problema s tim, pokušajte s originalnim spremištem, možda nekome radi, ali ja nisam jedan od njih.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Kako je biblioteka napisana na C-u, zahtijeva kompajliranje, pa su vam potrebni build-essential i python-dev paketi.
sudo apt install build-neophodan python-dev -ysudo python setup.py install
Dok se paketi instaliraju, povežite DHT22 kao što je prikazano na slici.
I isprobajte:
cd ~ python -c "uvoz Adafruit_DHT kao d; ispis d.read_retry (d. DHT22, 4)"
Ako vidite nešto poput (39.20000076293945, 22.600000381469727), trebali biste znati da je to vlažnost u postocima i temperatura u Celzijusima.
A sada, sastavimo sve zajedno!
Korak 5: Slanje očitanja senzora u oblak
Koristiću minimal.py kao bazu i u nju ću dodati DHT22 interakciju.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Kako DHT22 vraća temperaturu i vlažnost u jednom pozivu, pohranjujem ih globalno i ažuriram samo jednom u zahtjevu, pod pretpostavkom da je kašnjenje između njih više od 10 sekundi. Uzmite u obzir sljedeći kôd koji prikuplja podatke DHT22:
uvoz Adafruit_DHT
temp, hum = Ništa, Ništa 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 nije None None None def get_h (): update_data () return round (hum, 2) if hum nije Niko drugi nema
Umetnite ovaj kôd nakon postojećeg uvoza i uredite odjeljak varijabli tako da koristi nove funkcije:
varijable = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}
Pritisnite crveno dugme za početak prijenosa podataka:
python cloud_dht22.py
Zatim možete provjeriti stranicu uređaja.
Možete ostaviti kako jest, ali radije imam uslugu za sve. Ovo osigurava da je skripta uvijek aktivna. Kreiranje usluge s potpuno automatiziranom skriptom:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Pokretanje usluge:
sudo servis cloud4rpi start
I proverite:
pi@raspberrypi: ~ $ sudo servis cloud4rpi status -l
● cloud4rpi.service-demon Cloud4RPi Učitano: učitano (/lib/systemd/system/cloud4rpi.service; omogućeno) Aktivno: aktivno (radi) od srijede 2017-05-17 20:22:48 UTC; Prije 1 minute Glavni PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py 17. svibnja 20:22:51 raspberrypi python [560]: Objavljivanje iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. maja 20:22:53 raspberrypi python [560]: Objavljivanje iot-hub/poruka: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. maj 20:22:53 raspberrypi python [560]: Objavljivanje iot-hub/poruka: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Ako sve radi kako se očekuje, možemo nastaviti koristiti mogućnosti Cloud4RPi platforme za manipulaciju podacima.
Korak 6: Karte i alarmi
Prije svega, iscrtajmo varijable kako bismo vidjeli kako se mijenjaju. To se može učiniti dodavanjem nove kontrolne ploče i stavljanjem potrebnih grafikona u nju.
Još jedna stvar koju možemo učiniti ovdje je postavljanje upozorenja. Ova vam značajka omogućuje konfiguriranje sigurnog raspona za varijablu. Čim se raspon prekorači, šalje obavijest putem e -pošte. Na stranici za uređivanje kontrolne ploče možete se prebaciti na Upozorenja i postaviti jedno.
Odmah nakon toga, vlažnost u mojoj sobi počela je brzo opadati bez ikakvog vidljivog razloga, a alarm je ubrzo uslijedio.
Cloud4RPi možete besplatno koristiti sa bilo kojim hardverom koji može izvršavati Python. Što se mene tiče, sada uvijek znam kada treba uključiti ovlaživač zraka, a mogu ga čak i spojiti na relej za daljinsko upravljanje putem Cloud4RPi. Spreman sam za vrućine! Dobrodošlo, ljeto!
Preporučuje se:
Nadzor temperature i vlažnosti pomoću NODE MCU -a I BLYNK -a: 5 koraka
Nadzor temperature i vlažnosti pomoću NODE MCU-a i BLYNK-a: Zdravo momci U ovoj uputi naučimo kako doći do temperature i vlažnosti atmosfere pomoću DHT11-senzora temperature i vlažnosti pomoću Node MCU i aplikacije BLYNK
Nadzor temperature i vlažnosti pomoću ESP-01 & DHT i oblaka AskSensors: 8 koraka
Nadzor temperature i vlažnosti pomoću ESP-01 & DHT i AskSensors Cloud-a: U ovom uputstvu naučit ćemo kako nadzirati mjerenje temperature i vlažnosti pomoću IOT-MCU/ESP-01-DHT11 ploče i AskSensors IoT platforme .Za ovu aplikaciju biram IOT-MCU ESP-01-DHT11 modul jer
Nadzor temperature i vlažnosti pomoću Blynka: 6 koraka
Nadzor temperature i vlažnosti korištenjem Blynka: U ovom vodiču ćemo pratiti nadziranje temperature i vlažnosti pomoću DHT11 i poslati podatke u oblak pomoću BlynkKomponenata potrebnih za ovaj vodič: Arduino UnoDHT11 osjetnik temperature i vlažnostiESP8266-01 WiFi modul
Nadzor temperature i vlažnosti pomoću SHT25 i Arduino Nano: 5 koraka
Nadzor temperature i vlažnosti pomoću SHT25 i Arduino Nano: Nedavno smo radili na raznim projektima koji su zahtijevali praćenje temperature i vlažnosti, a onda smo shvatili da ova dva parametra zapravo igraju ključnu ulogu u procjeni radne efikasnosti sistema. Oboje na indusu
Nadzor temperature i vlažnosti pomoću SHT25 i Raspberry Pi: 5 koraka
Nadzor temperature i vlažnosti pomoću SHT25 i Raspberry Pi: Nedavno smo radili na raznim projektima koji su zahtijevali praćenje temperature i vlažnosti, a zatim smo shvatili da ta dva parametra zapravo igraju ključnu ulogu u procjeni radne efikasnosti sistema. Oboje na indusu