Tartalomjegyzék:

Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi használatával: 6 lépés (képekkel)
Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi használatával: 6 lépés (képekkel)

Videó: Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi használatával: 6 lépés (képekkel)

Videó: Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi használatával: 6 lépés (képekkel)
Videó: Lesson 37: Using BME280 Humidity, Barometric Pressure and Temperature Sensor 2024, Július
Anonim
Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi segítségével
Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi segítségével
Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi segítségével
Hőmérséklet és páratartalom ellenőrzése a Raspberry Pi segítségével

Közeleg a nyár, és azoknak, akiknek nincs légkondicionálójuk, fel kell készülniük a beltéri légkör manuális szabályozására. Ebben a bejegyzésben leírom a modern módszert az emberi kényelem szempontjából legfontosabb paraméterek mérésére: hőmérséklet és páratartalom. Ezeket az összegyűjtött adatokat a felhőbe küldik és ott feldolgozzák.

Raspberry Pi 1 kártyát és DHT22 érzékelőt használok. Ugyanezt megteheti minden olyan számítógépen, amely rendelkezik Internet, GPIO és Python rendszerekkel. Az olcsóbb DHT11 érzékelő is jól működik.

1. lépés: A hardver előkészítése

Hardver előkészítése
Hardver előkészítése
Hardver előkészítése
Hardver előkészítése

Kezdjük a legelején, mivel nem sokáig használtam a Raspberry Pi -t.

Szükségünk lesz:

  • Raspberry Pi tábla (vagy más IoT-orientált platform).
  • SD vagy microSD kártya (platformtól függően).
  • 5V/1A micro-USB-n keresztül.
  • LAN -kábel, amely biztosítja az internetkapcsolatot.
  • HDMI -kijelző, RCA -kijelző vagy UART -port (az SSH engedélyezéséhez).

Az első lépés a Raspbian letöltése. A Lite verziót választottam, mivel az SSH -t fogom használni a kijelző helyett. A dolgok megváltoztak az utolsó alkalom óta: most van egy nagyszerű égető szoftver, az Etcher, amely tökéletesen működik és lenyűgöző dizájnnal rendelkezik.

Miután a képégetés befejeződött, behelyeztem az SD -kártyát a Pi -be, bedugtam a LAN- és a tápkábeleket, majd egy idő után az útválasztóm regisztrálta az új eszközt.

2. lépés: Az SSH engedélyezése

SSH engedélyezése
SSH engedélyezése
SSH engedélyezése
SSH engedélyezése
SSH engedélyezése
SSH engedélyezése

Az SSH alapértelmezés szerint le van tiltva. Használhatom akár az UART-USB átalakítót, akár csak egy kijelzőt csatlakoztatva a héj eléréséhez és az SSH engedélyezéséhez.

Az újraindítás után végre benne vagyok. Először is frissítsük:

sudo apt update && sudo apt upgrade -y

Most csatlakoztassuk ezt a friss eszközt a felhőhöz.

3. lépés: A Cloud4RPi telepítése

A Cloud4RPi telepítése
A Cloud4RPi telepítése

Úgy döntöttem, hogy kipróbálom a Cloud4RPi nevű felhőplatformot, amelyet az IoT -hez terveztek.

A dokumentumok szerint a következő csomagokra van szükségünk a futtatáshoz:

sudo apt install git python python -pip -y

Az ügyfélkönyvtár egyetlen parancsban telepíthető:

sudo pip telepítse a cloud4rpi -t

Most szükségünk van egy mintakódra, hogy biztosítsuk a működését.

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

Úgy döntöttem, hogy a minimal.py -t futtatom, de nem szeretem a hamis adatokat. Szerencsére ebben a példában észrevettem a diagnosztikai adatok valódi megvalósításának egyszerű módját. Adjon hozzá még egy importálást az importálási szakaszhoz:

rpi importból *

Ezután törölje ezeket a hamis adatokat szolgáltató funkciókat (az rpi.py most definiálja őket):

def cpu_temp ():

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

Most szükségünk van egy tokenre, amely lehetővé teszi, hogy a Cloud4RPi összekapcsolja az eszközöket a fiókokkal. Ennek megszerzéséhez hozzon létre egy fiókot a cloud4rpi.io webhelyen, és nyomja meg az Új eszköz gombot ezen az oldalon. Cserélje le a _YOUR_DEVICE_TOKEN_ karakterláncot a minimal.py fájlban az eszköz tokenjével, és mentse a fájlt. Most készen állunk az első indításra.

python minimum.py

Nyissa meg az eszköz oldalt, és ellenőrizze, hogy ott vannak -e az adatok.

Most térjünk át a valós adatokhoz.

4. lépés: Az érzékelő csatlakoztatása

Az érzékelő csatlakoztatása
Az érzékelő csatlakoztatása

Szükségünk lesz:

  • DHT22 vagy DHT11 páratartalom -érzékelő
  • Felhúzó ellenállás (5-10 KΩ)
  • Vezetékek

A DHT22 érzékelő egyszerre méri a hőmérsékletet és a páratartalmat. A kommunikációs protokoll nem szabványosított, ezért nem kell engedélyeznünk a raspi -configban - egy egyszerű GPIO pin több mint elég.

Az adatok megszerzéséhez az Adafruit nagyszerű könyvtárát fogom használni a DHT érzékelők számára, de előfordulhat, hogy nem működik úgy, ahogy van. Egyszer furcsa állandó késleltetést találtam a kódban, ami nem működött a hardveremnél, és két év után a lekérési kérésem még mindig függőben van. Megváltoztattam a tábla észlelési állandóit is, mert a BCM2835 -ös Raspberry Pi 1 készülékemet meglepő módon Raspberry Pi 3 -nak találták. Bárcsak igaz lenne … Ezért javaslom a villám használatát. Ha bármilyen problémája van vele, próbálja ki az eredeti tárolót, talán valakinek működik, de én nem tartozom közéjük.

git klón https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Mivel a könyvtár C nyelven íródott, fordítást igényel, ezért szüksége van a build-essential és a python-dev csomagokra.

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

A csomagok telepítése közben csatlakoztassa a DHT22 -t a képen látható módon.

És teszteld:

cd ~ python -c "importálja az Adafruit_DHT -t d -ként; print d.read_retry (d. DHT22, 4)"

Ha valami hasonlót lát (39.20000076293945, 22.600000381469727), akkor tudnia kell, hogy ez a páratartalom százalékban és a Celsius -fokban mért hőmérséklet.

Most pedig állítsunk össze mindent!

5. lépés: Az érzékelő leolvasása a felhőbe

Érzékelő leolvasása a felhőbe
Érzékelő leolvasása a felhőbe

A minimal.py -t használom alapul, és hozzáadom a DHT22 interakciót.

cd cloud4rpi-raspberrypi-python

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

Mivel a DHT22 egy hívásban visszaadja a hőmérsékletet és a páratartalmat, globálisan tárolom őket, és csak egyszer frissítem egy kérésben, feltéve, hogy a késés több mint 10 másodperc. Tekintsük a következő kódot, amely a DHT22 adatokat szerezi:

import Adafruit_DHT

temp, hum = nincs, nincs last_update = time.time () - 20 def update_data (): globális 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 () visszatérési kör (temp, 2), ha a temp nem más Nincs def def_ (): update_data () visszatérési forduló (hum, 2) ha hum nem Senki más Nincs

Illessze be ezt a kódot a meglévő importálás után, és szerkessze a változók részt úgy, hogy az az új funkciókat használja:

változók = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Nedvesség': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}

Nyomja meg a piros gombot az adatátvitel elindításához:

python cloud_dht22.py

Ezután ellenőrizheti az eszköz oldalát.

Hagyhatja úgy, ahogy van, de én inkább szolgáltatást tartok mindennek. Ez biztosítja, hogy a szkript mindig fut. Szolgáltatás létrehozása teljesen automatizált szkripttel:

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

A szolgáltatás elindítása:

sudo service cloud4rpi indítása

És ellenőrizze:

pi@raspberrypi: ~ $ sudo service cloud4rpi állapot -l

● cloud4rpi.service-Cloud4RPi démon Betöltve: betöltve (/lib/systemd/system/cloud4rpi.service; engedélyezve) Aktív: aktív (fut) 2017-05-17 20:22:48 UTC óta; 1 perce Fő PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMájus 17 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} Május 17. 20:22:53 raspberrypi python [560]: iot-hub/messages közzététele: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} Május 17. 20:22:53 raspberrypi python [560]: iot-hub/messages közzététele: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Ha minden a várt módon működik, folytathatjuk a Cloud4RPi platform képességeit az adatokkal való manipulációhoz.

6. lépés: Táblázatok és riasztások

Táblázatok és riasztások
Táblázatok és riasztások
Táblázatok és riasztások
Táblázatok és riasztások
Táblázatok és riasztások
Táblázatok és riasztások

Először is ábrázoljuk a változókat, hogy lássuk, hogyan változnak. Ezt úgy teheti meg, hogy hozzáad egy új Vezérlőpultot, és beteszi a szükséges diagramokat.

Egy másik dolog, amit itt tehetünk, az a riasztás beállítása. Ez a funkció lehetővé teszi a változó biztonságos tartományának beállítását. Amint a tartomány túllépi, e -mail értesítést küld. A Vezérlőpult szerkesztési oldalán válthat a Riasztások menüpontra, és beállíthat egyet.

Rögtön ezután a szobámban minden észrevehető ok nélkül gyorsan csökkent a páratartalom, és hamarosan riasztás következett.

A Cloud4RPi -t ingyenesen használhatja minden olyan hardverrel, amely képes a Python futtatására. Ami engem illet, most már mindig tudom, hogy mikor kell bekapcsolni a légnedvesítőt, és akár a Cloud4RPi -n keresztül távirányító reléhez is csatlakoztathatom. Fel vagyok készülve a melegre! Isten hozott, nyár!

Ajánlott: