Satura rādītājs:

Temperatūras un mitruma kontrole, izmantojot Raspberry Pi: 6 soļi (ar attēliem)
Temperatūras un mitruma kontrole, izmantojot Raspberry Pi: 6 soļi (ar attēliem)

Video: Temperatūras un mitruma kontrole, izmantojot Raspberry Pi: 6 soļi (ar attēliem)

Video: Temperatūras un mitruma kontrole, izmantojot Raspberry Pi: 6 soļi (ar attēliem)
Video: Ventilācijas sistēmu enerģijas taupības iespējas, saglabājot iekštelpu gaisa kvalitāti 2024, Novembris
Anonim
Temperatūras un mitruma kontrole, izmantojot Raspberry Pi
Temperatūras un mitruma kontrole, izmantojot Raspberry Pi
Temperatūras un mitruma kontrole, izmantojot Raspberry Pi
Temperatūras un mitruma kontrole, izmantojot Raspberry Pi

Tuvojas vasara, un tiem, kuriem nav gaisa kondicioniera, jābūt gataviem manuāli kontrolēt atmosfēru telpās. Šajā rakstā es aprakstīju mūsdienu veidu, kā izmērīt cilvēka komfortam svarīgākos parametrus: temperatūru un mitrumu. Šie apkopotie dati tiek nosūtīti uz mākoni un tur apstrādāti.

Es izmantoju Raspberry Pi 1 plati un DHT22 sensoru. To pašu var izdarīt jebkurā datorā, kurā ir internets, GPIO un Python. Arī lētāks DHT11 sensors darbojas labi.

1. darbība: aparatūras sagatavošana

Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana

Sāksim no paša sākuma, jo es diezgan ilgi neizmantoju savu Raspberry Pi.

Mums būs nepieciešams:

  • Raspberry Pi dēlis (vai cita uz IoT orientēta platforma).
  • SD vai microSD karte (atkarībā no platformas).
  • 5V/1A, izmantojot mikro-USB.
  • LAN kabelis, kas nodrošina interneta savienojumu.
  • HDMI displejs, RCA displejs vai UART ports (lai iespējotu SSH).

Pirmais solis ir lejupielādēt Raspbian. Es izvēlējos Lite versiju, jo displeja vietā izmantošu SSH. Kopš pēdējās reizes, kad to izdarīju, lietas ir mainījušās: tagad ir lieliska dedzinoša programmatūra ar nosaukumu Etcher, kas darbojas perfekti un ir satriecoša dizaina.

Kad attēla ierakstīšana bija pabeigta, es ievietoju SD karti savā Pi, pievienoju LAN un strāvas kabeļus, un pēc kāda laika mans maršrutētājs reģistrēja jauno ierīci.

2. darbība: SSH iespējošana

SSH iespējošana
SSH iespējošana
SSH iespējošana
SSH iespējošana
SSH iespējošana
SSH iespējošana

SSH pēc noklusējuma ir atspējots. Es varu izmantot vai nu UART-USB pārveidotāju, vai vienkārši pievienot displeju, lai piekļūtu apvalkam un iespējotu SSH.

Pēc pārstartēšanas es beidzot esmu iekšā. Vispirms atjaunināsim:

sudo apt update && sudo apt upgrade -y

Tagad savienosim šo jauno ierīci ar mākoni.

3. darbība: Cloud4RPi instalēšana

Cloud4RPi instalēšana
Cloud4RPi instalēšana

Es nolēmu izmēģināt mākoņa platformu ar nosaukumu Cloud4RPi, kas paredzēta IoT.

Saskaņā ar dokumentiem mums ir vajadzīgas šādas paketes, lai tā darbotos:

sudo apt instalēt git python python -pip -y

Klientu bibliotēku var instalēt vienā komandā:

sudo pip instalēt cloud4rpi

Tagad mums ir nepieciešams koda paraugs, lai tas darbotos.

git klons https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git klons https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal && rmdir -re

Es nolēmu palaist minimal.py, bet man nepatīk viltoti dati. Par laimi, šajā piemērā es pamanīju vienkāršu veidu, kā padarīt diagnostikas datus reālus. Pievienojiet vēl vienu importu sadaļai Imports:

no rpi importēšanas *

Pēc tam izdzēsiet šīs funkcijas, kas nodrošina viltotus datus (rpi.py tagad tos definē):

def cpu_temp ():

atgriezt 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): atgriezt 'osx'

Tagad mums ir nepieciešams marķieris, kas ļauj Cloud4RPi saistīt ierīces ar kontiem. Lai to iegūtu, izveidojiet kontu vietnē cloud4rpi.io un šajā lapā nospiediet pogu Jauna ierīce. Aizstājiet _YOUR_DEVICE_TOKEN_ virkni failā minimal.py ar ierīces marķieri un saglabājiet failu. Tagad mēs esam gatavi pirmajai palaišanai.

python minimal.py

Atveriet ierīces lapu un pārbaudiet, vai dati ir tur.

Tagad pāriesim pie reālās pasaules datiem.

4. solis: Sensora pievienošana

Sensora pievienošana
Sensora pievienošana

Mums būs nepieciešams:

  • DHT22 vai DHT11 mitruma sensors
  • Pievilkšanas rezistors (5-10 KΩ)
  • Vadi

DHT22 sensors vienlaikus mēra temperatūru un mitrumu. Sakaru protokols nav standartizēts, tāpēc mums tas nav jāiespējo raspi -config - ar vienkāršu GPIO tapu ir vairāk nekā pietiekami.

Lai iegūtu datus, es izmantošu Adafruit lielisko bibliotēku DHT sensoriem, taču tā var nedarboties tā, kā ir. Reiz es atklāju dīvainu pastāvīgu koda aizkavēšanos, kas manai aparatūrai nedarbojās, un pēc diviem gadiem mans pieprasījums par izdošanu joprojām tiek izskatīts. Esmu mainījis arī dēļa noteikšanas konstantes, jo mans Raspberry Pi 1 ar BCM2835 tika pārsteidzoši atklāts kā Raspberry Pi 3. Es vēlos, lai tā būtu patiesība … Tādējādi es iesaku izmantot manu dakšiņu. Ja jums rodas kādas problēmas, lūdzu, izmēģiniet oriģinālo krātuvi, varbūt kādam tas noder, bet es neesmu viens no viņiem.

git klons https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Tā kā bibliotēka ir rakstīta C valodā, tā ir jāapkopo, tāpēc jums ir nepieciešamas pakotnes build-essential un python-dev.

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

Pakotņu instalēšanas laikā pievienojiet DHT22, kā parādīts attēlā.

Un pārbaudiet to:

cd ~ python -c "importēt Adafruit_DHT kā d; drukāt d.read_retry (d. DHT22, 4)"

Ja redzat kaut ko līdzīgu (39.20000076293945, 22.600000381469727), jums jāzina, ka tas ir mitrums procentos un temperatūra pēc Celsija.

Tagad apkoposim visu kopā!

5. darbība. Sensora rādījumu sūtīšana uz mākoni

Sensora rādījumu sūtīšana uz mākoni
Sensora rādījumu sūtīšana uz mākoni

Kā pamatu es izmantošu minimal.py un pievienoju tam DHT22 mijiedarbību.

cd cloud4rpi-aveņu-python

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

Tā kā DHT22 vienā zvanā atgriež gan temperatūru, gan mitrumu, es tos glabāju globāli un atjauninu tikai vienu reizi pieprasījumā, pieņemot, ka kavēšanās starp tām ir ilgāka par 10 sekundēm. Apsveriet šādu kodu, kas iegūst DHT22 datus:

importēt Adafruit_DHT

temp, hum = Nav, nav 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 () atgriešanās kārta (temp, 2), ja temp nav Neviens cits Nav def get_h (): update_data () atgriešanās kārta (hum, 2), ja hum nav Neviens cits Nav

Ievietojiet šo kodu pēc esošās importēšanas un rediģējiet mainīgo sadaļu, lai tā izmantotu jaunās funkcijas:

mainīgie = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Mitrums': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' skaitlisks ',' saistīt ': cpu_temp}}

Nospiediet sarkano pogu, lai sāktu datu pārsūtīšanu:

python cloud_dht22.py

Pēc tam jūs varat pārbaudīt ierīces lapu.

Jūs varat atstāt to tādu, kāds tas ir, bet es dodu priekšroku pakalpojumam par visu. Tas nodrošina, ka skripts vienmēr darbojas. Pakalpojuma izveide ar pilnībā automatizētu skriptu:

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

Pakalpojuma palaišana:

sākt sudo pakalpojumu cloud4rpi

Un pārbaudiet to:

pi@raspberrypi: ~ $ sudo pakalpojums cloud4rpi statuss -l

● cloud4rpi.service-Cloud4RPi dēmons Ielādēts: ielādēts (/lib/systemd/system/cloud4rpi.service; iespējots) Aktīvs: aktīvs (darbojas) kopš trešdienas 2017-05-17 20:22:48 UTC; Pirms 1 minūtes Galvenais PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py 17. maijs 20:22:51 raspberrypi python [560]: publicēšana -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. maijs 20:22:53 raspberrypi python [560]: iot-hub/messages publicēšana: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. maijs 20:22:53 raspberrypi python [560]: iot-hub/messages publishing: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Ja viss darbojas, kā paredzēts, mēs varam turpināt un izmantot Cloud4RPi platformas iespējas, lai manipulētu ar datiem.

6. darbība: diagrammas un trauksmes signāli

Diagrammas un trauksmes
Diagrammas un trauksmes
Diagrammas un trauksmes
Diagrammas un trauksmes
Diagrammas un trauksmes
Diagrammas un trauksmes

Pirmkārt, uzzīmēsim mainīgos, lai redzētu, kā tie mainās. To var izdarīt, pievienojot jaunu vadības paneli un ievietojot tajā nepieciešamās diagrammas.

Vēl viena lieta, ko mēs šeit varam darīt, ir brīdinājuma iestatīšana. Šī funkcija ļauj konfigurēt mainīgā drošo diapazonu. Tiklīdz diapazons ir pārsniegts, tas nosūta e -pasta paziņojumu. Vadības paneļa rediģēšanas lapā varat pārslēgties uz brīdinājumiem un tos iestatīt.

Tūlīt pēc tam mitrums manā istabā sāka strauji samazināties bez redzama iemesla, un drīz sekoja modinātājs.

Jūs varat bez maksas izmantot Cloud4RPi ar jebkuru aparatūru, kas spēj izpildīt Python. Kas attiecas uz mani, tagad es vienmēr zinu, kad jāieslēdz gaisa mitrinātājs, un es pat varu to savienot ar tālvadības releju, izmantojot Cloud4RPi. Esmu gatavs karstumam! Sveika vasara!

Ieteicams: