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 promjena: 2024-01-30 09:34
Ljeto dolazi, a oni bez klima uređaja trebali bi biti spremni ručno kontrolirati atmosferu u zatvorenom prostoru. U ovom postu opisujem suvremeni 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čunalu koje ima internet, GPIO i Python. Jeftiniji DHT11 senzor također dobro radi.
Korak 1: Priprema hardvera
Krenimo od samog početka, budući da svoj Raspberry Pi nisam koristio dosta dugo.
Mi ćemo trebati:
- 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 zaslon, RCA zaslon ili UART priključak (za omogućavanje SSH -a).
Prvi korak je preuzimanje Raspbiana. Odabrao sam Lite verziju jer ću koristiti SSH umjesto zaslona. Stvari su se promijenile od posljednjeg puta kada sam to učinio: sada postoji sjajan softver za snimanje pod nazivom Etcher, koji savršeno radi i ima zadivljujući dizajn.
Nakon što je snimanje slike dovršeno, umetnuo sam SD karticu u svoj Pi, priključio LAN i kablove za napajanje, a nakon nekog vremena moj je usmjerivač 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, napokon ulazim. 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
Knjižnica klijenta može se instalirati u jednu naredbu:
sudo pip instalirajte cloud4rpi
Sada nam je potreban neki uzorak koda kako bismo bili sigurni da radi.
git klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git klon 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 uvoza:
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 omogućuje Cloud4RPi 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 minimum.py
Otvorite stranicu uređaja i provjerite postoje li podaci.
Prijeđimo sada na podatke iz stvarnog svijeta.
Korak 4: Spajanje senzora
Mi ćemo trebati:
- Senzor vlažnosti DHT22 ili DHT11
- Povučni otpornik (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 Adafruitovu izvrsnu biblioteku za DHT senzore, ali možda neće raditi kako jest. Jednom sam pronašao čudno konstantno kašnjenje u kodu, koje nije radilo za moj hardver, a nakon dvije godine moj zahtjev za povlačenjem još je u tijeku. Promijenio sam i konstante otkrivanja ploče jer je moja Raspberry Pi 1 s BCM2835 iznenađujuće otkrivena kao Raspberry Pi 3. Volio bih da je to istina … Stoga preporučujem korištenje vilice. Ako imate problema s tim, pokušajte s originalnim spremištem, možda nekome radi, ali ja nisam jedan od njih.
git klon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Kako je knjižnica napisana na C-u, zahtijeva kompilaciju, pa su vam potrebni build-essential i python-dev paketi.
sudo apt install build-essential 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, skupimo sve zajedno!
Korak 5: Slanje očitanja senzora u oblak
Koristit ću minimal.py kao bazu i u nju ću dodati interakciju DHT22.
cd cloud4rpi-raspberrypi-python
cp minimum.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Kako DHT22 vraća i 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 is not 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 crveni gumb 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. Time se osigurava da je skripta uvijek aktivna. Stvaranje 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 provjerite:
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 min 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. svibnja 20:22:53 raspberrypi python [560]: Objavljivanje iot-hub/poruka: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. svibnja 20:22:53 raspberrypipi 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 platforme Cloud4RPi za manipulaciju podacima.
Korak 6: Karte i alarmi
Prije svega, nacrtajmo varijable kako bismo vidjeli kako se mijenjaju. To se može učiniti dodavanjem nove upravljačke 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 e -poštom. Na stranici za uređivanje upravljačke ploče možete se prebaciti na Upozorenja i postaviti jedno.
Odmah nakon toga vlaga u mojoj sobi počela se brzo smanjivati bez ikakvog vidljivog razloga, a uskoro je uslijedio i alarm.
Cloud4RPi možete besplatno koristiti sa bilo kojim hardverom koji može izvršavati Python. Što se mene tiče, sada uvijek znam kada uključiti ovlaživač zraka, a mogu ga čak i povezati s relejem za daljinsko upravljanje putem Cloud4RPi. Spreman sam za vrućine! Dobro došlo, ljeto!
Preporučeni:
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: Bok, dečki U ovoj uputi naučit ćemo kako doći do temperature i vlažnosti atmosfere pomoću DHT11-senzora temperature i vlage pomoću aplikacije Node MCU i BLYNK
Nadzor temperature i vlažnosti DHT -a pomoću ESP8266 i IoT platforme AskSensors: 8 koraka
Nadgledanje temperature i vlažnosti DHT -a pomoću ESP8266 i platforme AskTensors IoT: U prethodnom uputstvu predstavio sam korak po korak vodič za početak rada s čvorom ESP8266 čvor i platformom AskSensors IoT. U ovom vodiču povezujem senzor DHT11 do čvora MCU. DHT11 je uobičajeno korištena temperatura i vlažnost
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 oblaka AskSensors: U ovoj uputi naučit ćemo kako nadzirati mjerenje temperature i vlažnosti pomoću ploče IOT-MCU/ESP-01-DHT11 i platforme AskSensors IoT .Za ovu aplikaciju biram modul IOT-MCU ESP-01-DHT11 jer
Nadzor temperature i vlažnosti pomoću Blynka: 6 koraka
Nadzor temperature i vlažnosti korištenjem Blynka: U ovom vodiču idemo na Nadgledanje temperature i vlažnosti pomoću DHT11 i šaljemo podatke u oblak pomoću komponenti Blynk potrebne za ovaj vodič: Arduino UnoDHT11 osjetnik temperature i vlageESP8266-01 WiFi modul
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 učinkovitosti sustava. Oboje na indusu