Kazalo:

Nadzor temperature in vlažnosti z uporabo Raspberry Pi: 6 korakov (s slikami)
Nadzor temperature in vlažnosti z uporabo Raspberry Pi: 6 korakov (s slikami)

Video: Nadzor temperature in vlažnosti z uporabo Raspberry Pi: 6 korakov (s slikami)

Video: Nadzor temperature in vlažnosti z uporabo Raspberry Pi: 6 korakov (s slikami)
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Junij
Anonim
Nadzor temperature in vlažnosti z uporabo Raspberry Pi
Nadzor temperature in vlažnosti z uporabo Raspberry Pi
Nadzor temperature in vlažnosti z uporabo Raspberry Pi
Nadzor temperature in vlažnosti z uporabo Raspberry Pi

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

Priprava strojne opreme
Priprava strojne opreme
Priprava strojne opreme
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

Omogočanje SSH
Omogočanje SSH
Omogočanje SSH
Omogočanje SSH
Omogočanje SSH
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

Namestitev Cloud4RPi
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

Priključitev senzorja
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

Pošiljanje odčitkov senzorjev v oblak
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

Karte in alarmi
Karte in alarmi
Karte in alarmi
Karte in alarmi
Karte in alarmi
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: