Kazalo:

Vlažnost v oblaku: 5 korakov
Vlažnost v oblaku: 5 korakov

Video: Vlažnost v oblaku: 5 korakov

Video: Vlažnost v oblaku: 5 korakov
Video: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Julij
Anonim
Vlažnost v oblaku
Vlažnost v oblaku

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.

Zaloge

Uporabljam ploščo Raspberry Pi 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
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 kabla micro-USB. LAN, ki omogoča internetno povezavo.
  • Zaslon HDMI, zaslon RCA ali vrata UART (za omogočanje SSH).

Prvi korak je prenos Raspbiana. Izbral sem različico Lite, saj bom namesto zaslona uporabil SSH.

Stvari so se spremenile od zadnjega, ko sem to storil: zdaj obstaja odlična pekoča programska oprema z imenom Etcher, ki odlično deluje 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.

Super! Gremo naprej in SSH vanjo.

Varnost je v redu, všeč mi je, vendar to nekoliko otežuje stvari. Za dostop do lupine in omogočanje SSH bom uporabil adapter UART-USB …

Z uporabo zaslona namesto UART je veliko lažje.

Po ponovnem zagonu sem končno notri.

Najprej posodobimo:

sudo apt update && sudo apt upgrade -y

Zdaj povežimo to novo napravo z oblakom.

2. 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 python3 python3 -pip -y

Knjižnico odjemalca lahko namestite v enem samem ukazu:

sudo pip3 namestite cloud4rpi

Zdaj potrebujemo nekaj vzorčne kode.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python

Izvedljivi skript je control.py.

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 control.py z žetonom v napravi in datoteko shranite. Zdaj smo pripravljeni na prvi izstrelitev.

sudo python3 control.py

Odprite stran naprave in preverite, ali so tam podatki.

Zdaj pa pojdimo na podatke iz resničnega sveta.

3. 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.gitcd 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!

4. korak: pošiljanje odčitkov senzorjev v oblak

Pošiljanje odčitkov senzorjev v oblak
Pošiljanje odčitkov senzorjev v oblak
Pošiljanje odčitkov senzorjev v oblak
Pošiljanje odčitkov senzorjev v oblak

Za osnovo bom uporabil control.py in vanj dodal interakcijo DHT22.

cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py

Odstranite vzorčno kodo, kot je prikazano na zgornji sliki.

Ker DHT22 v enem klicu vrne temperaturo in vlago, jih bom shranil globalno in jih v zahtevi posodobil le enkrat, ob predpostavki, da je zakasnitev med njimi več kot 10 sekund. Upoštevajte naslednjo kodo, ki pridobi podatke DHT22:

uvoz Adafruit_DHT

temp, hum = Brez, Brez

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}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}

Če se vam zdijo manipulacije zmedene, zgrabite končno različico te datoteke. Za začetek prenosa podatkov pritisnite rdeči gumb:

Nato lahko preverite stran naprave.

python3 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, ki ga že imate v imeniku cloud4rpi-raspberrypi-python:

service_install.sh 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 (v teku) 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]: objavljanje iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. maj 20: 22:53 raspberrypi python [560]: Objavljanje 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.

5. 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!

S Cloud4RPi lahko v realnem času na daljavo upravljate Raspberry Pi in druge naprave IoT. Obiščite našo spletno stran in brezplačno povežite neomejeno število naprav.

Priporočena: