Turinys:

Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“: 6 žingsniai (su nuotraukomis)
Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“: 6 žingsniai (su nuotraukomis)

Video: Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“: 6 žingsniai (su nuotraukomis)

Video: Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“: 6 žingsniai (su nuotraukomis)
Video: High Density 2022 2024, Lapkritis
Anonim
Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“
Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“
Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“
Temperatūros ir drėgmės stebėjimas naudojant „Raspberry Pi“

Artėja vasara, o neturintys oro kondicionieriaus turėtų būti pasirengę rankiniu būdu valdyti atmosferą patalpose. Šiame įraše aprašau šiuolaikinį būdą, kaip išmatuoti svarbiausius žmogaus komforto parametrus: temperatūrą ir drėgmę. Šie surinkti duomenys siunčiami į debesį ir ten apdorojami.

Aš naudoju Raspberry Pi 1 plokštę ir DHT22 jutiklį. Tą patį galite padaryti bet kuriame kompiuteryje, kuriame yra internetas, GPIO ir „Python“. Pigesnis DHT11 jutiklis taip pat veikia gerai.

1 žingsnis: Aparatūros paruošimas

Techninės įrangos paruošimas
Techninės įrangos paruošimas
Techninės įrangos paruošimas
Techninės įrangos paruošimas

Pradėkime nuo pat pradžių, nes aš ilgą laiką nenaudojau savo „Raspberry Pi“.

Mums reikės:

  • „Raspberry Pi“plokštė (arba kita į internetą orientuota platforma).
  • SD arba „microSD“kortelė (priklausomai nuo platformos).
  • 5V/1A per micro-USB.
  • LAN kabelis, kuris suteikia interneto ryšį.
  • HDMI ekranas, RCA ekranas arba UART prievadas (norint įjungti SSH).

Pirmasis žingsnis yra atsisiųsti „Raspbian“. Aš pasirinkau „Lite“versiją, nes vietoj ekrano naudosiu SSH. Nuo paskutinio karto, kai tai padariau, viskas pasikeitė: dabar yra puiki deganti programinė įranga „Etcher“, kuri puikiai veikia ir turi stulbinantį dizainą.

Užbaigus vaizdo įrašymą, įdėjau SD kortelę į „Pi“, prijungiau LAN ir maitinimo kabelius, o po kurio laiko maršrutizatorius užregistravo naują įrenginį.

2 veiksmas: SSH įgalinimas

Įjungiamas SSH
Įjungiamas SSH
Įjungiamas SSH
Įjungiamas SSH
Įjungiamas SSH
Įjungiamas SSH

SSH išjungtas pagal numatytuosius nustatymus. Galiu naudoti UART-USB keitiklį arba tiesiog prijungti ekraną, kad pasiekčiau apvalkalą ir įgalinčiau SSH.

Po perkrovimo aš pagaliau įsijungiau. Pirmiausia atnaujinkime:

sudo apt update && sudo apt upgrade -y

Dabar prijunkime šį naują įrenginį prie „Cloud“.

3 veiksmas: „Cloud4RPi“diegimas

„Cloud4RPi“diegimas
„Cloud4RPi“diegimas

Nusprendžiau išbandyti debesų platformą, pavadintą „Cloud4RPi“, kuri skirta daiktų internetui.

Remiantis dokumentais, mums reikia šių paketų, kad jį paleistume:

sudo apt įdiegti git python python -pip -y

Kliento biblioteką galima įdiegti vienoje komandoje:

sudo pip įdiegti cloud4rpi

Dabar mums reikia tam tikro kodo pavyzdžio, kad įsitikintume, jog jis veikia.

git klonas https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python&&cd && rmdir -re

Aš nusprendžiau paleisti minimal.py, bet man nepatinka suklastoti duomenys. Laimei, šiame pavyzdyje pastebėjau paprastą būdą, kaip diagnostikos duomenis paversti tikrais. Įtraukite dar vieną importą į importo skyrių:

iš rpi importo *

Tada ištrinkite šias funkcijas, kurios teikia suklastotus duomenis („rpi.py“juos dabar apibrėžia):

def cpu_temp ():

grįžti 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'

Dabar mums reikia žetono, kuris leidžia „Cloud4RPi“susieti įrenginius su paskyromis. Norėdami tai padaryti, sukurkite paskyrą „cloud4rpi.io“ir paspauskite mygtuką „Naujas įrenginys“šiame puslapyje. Pakeiskite _YOUR_DEVICE_TOKEN_ eilutę minimal.py faile savo įrenginio prieigos raktu ir išsaugokite failą. Dabar mes pasiruošę pirmajam paleidimui.

python minimal.py

Atidarykite įrenginio puslapį ir patikrinkite, ar yra duomenų.

Dabar pereikime prie realaus pasaulio duomenų.

4 žingsnis: Jutiklio prijungimas

Jutiklio prijungimas
Jutiklio prijungimas

Mums reikės:

  • DHT22 arba DHT11 drėgmės jutiklis
  • Pritraukiamas rezistorius (5-10 KΩ)
  • Laidai

DHT22 jutiklis vienu metu matuoja temperatūrą ir drėgmę. Ryšio protokolas nėra standartizuotas, todėl mums nereikia jo įgalinti raspi -config - paprasto GPIO kaiščio pakanka.

Norėdami gauti duomenis, naudosiu puikią „Adafruit“biblioteką DHT jutikliams, tačiau ji gali neveikti taip, kaip yra. Kartą radau keistą nuolatinį kodo vėlavimą, kuris neveikė mano aparatinei įrangai, ir po dvejų metų mano užklausa vis dar laukiama. Aš taip pat pakeičiau plokštės aptikimo konstantas, nes mano Raspberry Pi 1 su BCM2835 buvo stebėtinai aptikta kaip Raspberry Pi 3. Linkiu, kad tai būtų tiesa … Taigi, rekomenduoju naudoti savo šakutę. Jei susiduriate su kokiomis nors problemomis, pabandykite originalią saugyklą, gal kam nors tai tinka, bet aš nesu viena iš jų.

git klonas https://github.com/Himura2la/Adafruit_Python_DHT…. „Adafruit_Python_DHT“

Kadangi biblioteka parašyta C kalba, ją reikia kompiliuoti, todėl jums reikia „build-essential“ir „python-dev“paketų.

sudo apt install build-essential python-dev -ysudo python setup.py install

Kol paketai diegiami, prijunkite DHT22, kaip parodyta paveikslėlyje.

Ir išbandykite:

cd ~ python -c "importuoti Adafruit_DHT kaip d; spausdinti d.read_retry (d. DHT22, 4)"

Jei matote kažką panašaus (39.20000076293945, 22.600000381469727), turėtumėte žinoti, kad tai yra drėgmė procentais ir temperatūra Celsijaus laipsniais.

Dabar surinksime viską kartu!

5 veiksmas: jutiklių rodmenų siuntimas į debesį

Jutiklių rodmenų siuntimas į debesį
Jutiklių rodmenų siuntimas į debesį

Kaip pagrindą naudosiu minimal.py ir pridėsiu DHT22 sąveiką.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

Kadangi DHT22 vienu skambučiu grąžina ir temperatūrą, ir drėgmę, aš juos saugoju visame pasaulyje ir atnaujinu tik vieną kartą pagal užklausą, darant prielaidą, kad tarp jų yra daugiau nei 10 sekundžių. Apsvarstykite šį kodą, kuris įgyja DHT22 duomenis:

importuoti „Adafruit_DHT“

temp, hum = Nėra, Nėra last_update = time.time () - 20 def update_data (): global 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 () grąžinimo ratas (temp, 2), jei temperatūra nėra None else None def Niekas kitas Nėra

Įterpkite šį kodą po esamo importavimo ir redaguokite kintamųjų skyrių, kad jis naudotų naujas funkcijas:

kintamieji = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Drėgmė': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}

Norėdami pradėti duomenų perdavimą, paspauskite raudoną mygtuką:

python cloud_dht22.py

Tada galite patikrinti įrenginio puslapį.

Galite palikti taip, kaip yra, bet man labiau patinka viską aptarnauti. Tai užtikrina, kad scenarijus visada veikia. Paslaugos kūrimas naudojant visiškai automatizuotą scenarijų:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Paslaugos pradžia:

paleiskite „sudo“paslaugą „cloud4rpi“

Ir tikrina:

pi@raspberrypi: ~ $ sudo paslauga cloud4rpi status -l

● cloud4rpi.service-„Cloud4RPi“demonas Įkelta: įkelta (/lib/systemd/system/cloud4rpi.service; įgalinta) Aktyvus: aktyvus (veikia) nuo trečiadienio 2017-05-17 20:22:48 UTC; Prieš 1 minutę Pagrindinis PID: 560 (python) C grupė: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyGeg 17 17 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} Gegužės 17 d. 20:22:53 raspberrypi python [560]: „iot-hub“/pranešimų publikavimas: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} Gegužės 17 d. 20:22:53 raspberrypi python [560]: „iot-hub“/pranešimų skelbimas: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Jei viskas veikia taip, kaip tikėtasi, galime tęsti ir naudoti „Cloud4RPi“platformos galimybes manipuliuoti duomenimis.

6 žingsnis: diagramos ir aliarmai

Diagramos ir aliarmai
Diagramos ir aliarmai
Diagramos ir aliarmai
Diagramos ir aliarmai
Diagramos ir aliarmai
Diagramos ir aliarmai

Pirmiausia nubrėžkime kintamuosius, kad pamatytume, kaip jie keičiasi. Tai galima padaryti pridedant naują valdymo skydelį ir į jį įdedant reikiamas diagramas.

Kitas dalykas, kurį galime padaryti, yra įspėjimo nustatymas. Ši funkcija leidžia sukonfigūruoti kintamojo saugų diapazoną. Kai tik diapazonas viršijamas, jis siunčia pranešimą el. Valdymo skydelio redagavimo puslapyje galite perjungti į Įspėjimai ir juos nustatyti.

Iškart po to drėgmė mano kambaryje pradėjo sparčiai mažėti be jokios pastebimos priežasties ir netrukus pasigirdo pavojaus signalas.

„Cloud4RPi“galite nemokamai naudoti su bet kokia aparatūra, galinčia vykdyti „Python“. Kalbant apie mane, dabar aš visada žinau, kada įjungti oro drėkintuvą, ir netgi galiu jį prijungti prie nuotolinio valdymo relės per „Cloud4RPi“. Aš pasiruošęs karščiui! Labas, vasara!

Rekomenduojamas: