Hogyan építsünk egy Raspberry Pi hőmérséklet Monitor

hőmérséklet és páratartalom létfontosságú adatpontok a mai ipari világban. A szervertermek, a kereskedelmi fagyasztók és a gyártósorok környezeti adatainak nyomon követése szükséges a dolgok zökkenőmentes működéséhez. Rengeteg megoldás létezik az alaptól a komplexig, és úgy tűnik, hogy elsöprő az üzleti igények és hol kezdje.

végigjárjuk, Hogyan építsünk és használjunk Raspberry Pi hőmérséklet-érzékelőt különböző hőmérséklet-érzékelőkkel. Ez egy jó hely a kezdéshez, mivel ezek a megoldások olcsók, könnyen elvégezhetők, és alapot nyújtanak a többi környezeti monitorozáshoz.

A Raspberry Pi egy olcsó egylapos számítógép, amely lehetővé teszi, hogy csatlakozzon egy hőmérséklet-érzékelőhöz, és az adatokat adatmegjelenítő szoftverbe továbbítsa. A Raspberry Pi tanulási eszközként indult, és ipari munkahelyi eszközzé fejlődött. Az egyszerű használat és a Python, a leggyorsabban növekvő programozási nyelv kódolásának képessége megoldást jelentett számukra.

olyan Raspberry Pi-t szeretne, amely beépített WiFi-vel rendelkezik, amely bármilyen 3-as, 4-es és nulla W/WH. Ezek közül választhat az árak és a funkciók alapján. A nulla W / WH a legolcsóbb, de ha több funkcióra van szüksége, választhat a 3 és a 4 között. Egyszerre csak egy nulla W/WH-t vásárolhat a Raspberry Pi Alapítvány korlátozásai miatt. Bármelyik Pi-t is választja, győződjön meg róla, hogy töltőt vásárol, mivel így fogja táplálni a Pi-t és az SD-kártyát a Raspbian segítségével, hogy az operációs rendszer telepítése a lehető legegyszerűbb legyen.

vannak más egylapos számítógépek is, amelyek szintén működhetnek, de ez egy másik időre és egy másik cikkre vonatkozik.

érzékelők

négy érzékelőt ajánlunk, mert olcsóak, könnyen csatlakoztathatók és pontos értékeket adnak; DSB18B20, DHT22, BME280 és Raspberry Pi Sense HAT.

DHT22 – ez a hőmérséklet-és páratartalom-érzékelő hőmérsékleti pontossága +/- 0,5 C, a páratartalom pedig 0-100 százalék. Egyszerű bekötni a Raspberry Pi-hez, és nem igényel semmilyen húzó ellenállást.

DSB18B20-ez a hőmérséklet-érzékelő digitális kimenettel rendelkezik, amely jól működik a Raspberry Pi-vel. Három vezetékkel rendelkezik, és a csatlakozáshoz kenyérlemezre és ellenállásra van szükség.

BME280 — ez az érzékelő méri a hőmérsékletet, a páratartalmat és a légköri nyomást. Használható SPI — ben és I2C-ben is.

Sense HAT-ez egy kiegészítő a Raspberry Pi fedélzetén, amely LED-ekkel, érzékelőkkel és egy apró joystickkal rendelkezik. Közvetlenül csatlakozik a Raspberry Pi GPIO-jához, de szalagkábel használatával pontosabb hőmérsékleti értékeket adhat.

Raspberry Pi Beállítás

ha ez az első alkalom, hogy beállítja a Raspberry Pi-t, telepítenie kell a Raspbian operációs rendszert, és csatlakoztatnia kell a Pi-t a WiFi-hez. Ehhez monitorra és billentyűzetre lesz szükség a Pi-hez való csatlakozáshoz. Miután üzembe helyezte és csatlakoztatta a WiFI-hez, a Pi készen áll a használatra.

kezdeti Állapotfiók

valahol el kell küldenie az adatait, hogy történelmi naplót vezessen, és megtekinthesse a valós idejű adatfolyamot, így a kezdeti állapotot fogjuk használni. Lépjen a https://iot.app.initialstate.com oldalra, és hozzon létre egy új fiókot, vagy jelentkezzen be meglévő fiókjába.

ezután telepítenünk kell a kezdeti állapot Python modult a Pi-re. A parancssorban (ne felejtse el először SSH-t használni a Pi-be) futtassa a következő parancsot:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

miután beírta a curl parancsot a parancssorba, valami hasonlót fog látni a képernyőn megjelenő következő kimenethez:

amikor a rendszer kéri, hogy automatikusan kapjon egy példaszkriptet, írja be az y parancsot. A következő prompt megkérdezi, hová szeretné menteni a példafájlt. Az alapértelmezett hely elfogadásához írjon be egy egyéni helyi elérési utat, vagy nyomja meg az enter billentyűt. Végül megkérdezi, hogy melyik kezdeti állapotú alkalmazást használja. Ha nemrég létrehozott egy fiókot, válassza a 2. lehetőséget, írja be felhasználónevét és jelszavát. Ezt követően a telepítés befejeződik.

vessünk egy pillantást a létrehozott példa szkriptre.

$ nano is_example.py

A 15.sorban egy sor jelenik meg, amely streamer = Streamer(bucket_ ... – val kezdődik. Ez a sor létrehoz egy új adatvödröt, amelynek neve “Python Stream Example”, és társítva van a fiókjához. Ez az asszociáció a access_key="..." paraméter miatt történik ugyanazon a vonalon. A betűk és számok hosszú sorozata a kezdeti Állapotfiók hozzáférési kulcsa. Ha a webböngészőben a kezdeti állami fiókjába lép, kattintson a felhasználónevére a jobb felső sarokban, majd lépjen a “saját beállítások” menüpontra, itt megtalálja ugyanazt a hozzáférési kulcsot a “Streaming hozzáférési kulcsok”alatt.

kezdeti Állapotfolyam hozzáférési kulcsok

minden alkalommal, amikor létrehoz egy adatfolyamot, az a hozzáférési kulcs az adatfolyamot a fiókjába irányítja (ezért ne ossza meg a kulcsot senkivel).

futtassa a teszt szkriptet, hogy megbizonyosodjon arról, hogy létre tudunk hozni egy adatfolyamot a kezdeti Állapotfiókba. Futtassa a következőket:

$ python is_example.py

menjen vissza a kezdeti állami fiókjához a webböngészőben. A “Python Stream Example” nevű új adatvödörnek a napló polcának bal oldalán kellett volna megjelennie (lehet, hogy frissítenie kell az oldalt). Kattintson erre a vödörre, majd kattintson a Waves ikonra a tesztadatok megtekintéséhez.

kezdeti állapot Python Stream példa irányítópult

ha Python 3-at használ, telepítheti a kezdeti állapot Streamer modult, amelyet a következő paranccsal telepíthet:

pip3 install ISStreamer

most készen állunk arra, hogy beállítsuk a hőmérséklet-érzékelőt a Pi-vel, hogy a hőmérsékletet egy műszerfalra továbbítsuk.

DHT22 megoldás

a megoldás elkészítéséhez a következő elemekre van szüksége:
– DHT22 hőmérséklet-és páratartalom-érzékelő

A DHT22-nek három csapja lesz — 5V, Gnd és data. A DHT22 tápellátását tűs címkével kell ellátni (pl. ‘+’ vagy ‘5V’). Csatlakoztassa ezt a Pi 2.tűjéhez (a jobb felső tű, 5V). A Gnd pin lesz címkézve ‘-‘ vagy ‘Gnd’ vagy valami egyenértékű. Csatlakoztassa ezt a pin 6 Gnd-hez (két csap az 5 V-os csap alatt) a Pi-n. A DHT22 fennmaradó pin-kódja az adat pin-kód, amelyet ‘out’ vagy ‘S’ vagy ‘data’jelöléssel látnak el. Csatlakoztassa ezt a PI egyik GPIO csapjához, például a GPIO4-hez (7.tű). Miután ez vezetékes, kapcsolja be a Pi-t.

ehhez a megoldáshoz Python 3-at és a CircuitPython könyvtárat kell használnunk, mivel az Adafruit elavult a DHT Python könyvtárral.

telepítse a CircuitPython-DHT Python modult egy parancssorba, hogy a DHT22 érzékelő adatainak olvasása rendkívül egyszerű legyen:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

az operációs rendszerünk telepítve van, valamint a két Python modulunk az érzékelő adatok olvasásához és az adatok kezdeti állapotba küldéséhez, készen állunk a Python szkript megírására. A következő parancsfájl létrehoz/hozzáfűz egy kezdeti állapotadatgyűjtőhöz, elolvassa a DHT22 érzékelő adatait, és elküldi ezeket az adatokat egy valós idejű irányítópultra. Mindössze annyit kell tennie, hogy módosítsa vonalak 6-11.

  • 7. sor-ennek az értéknek egyedinek kell lennie minden csomópont/hőmérséklet-érzékelő esetében. Ez lehet az érzékelő csomópont szobájának neve, fizikai helye, egyedi azonosítója vagy bármi más. Csak győződjön meg arról, hogy minden csomópont egyedi-e annak biztosítása érdekében, hogy az ebből a csomópontból származó adatok a saját adatfolyamába kerüljenek az irányítópulton.
  • 8.sor— Ez az adatvödör neve. Ez lehet változtatni bármikor a kezdeti állapot UI.
  • 9.sor— Ez a vödör kulcsa. Ugyanazon vödörkulcsnak kell lennie minden csomópontnál, amelyet ugyanazon az irányítópulton szeretne megjeleníteni.
  • 10.sor— Ez a kezdeti Állapotfiók-hozzáférési kulcs. Másolja be ezt a kulcsot a kezdeti Állapotfiókjából.
  • 11.sor— Ez az idő az érzékelő leolvasása között. Ennek megfelelően változtassa meg.
  • 12.sor — metrikus vagy angolszász mértékegységeket adhat meg a 11. sorban.

miután beállította a 7-12 sorokat a Python szkriptben a Pi-n, mentse és lépjen ki a szövegszerkesztőből. Futtassa a szkriptet a következő paranccsal:

$ python3 tempsensor.py
Íme egy példa a DHT22 érzékelő használatára a Raspberry Pi

most adatokat küld egy kezdeti állapotú irányítópultra. Az irányítópult testreszabásával kapcsolatos részletekért látogasson el a cikk utolsó szakaszába.

DSB18B20 megoldás

A megoldás felépítéséhez a következő elemekre lesz szüksége:
-DSB18B20 hőmérséklet-érzékelő
– 10k ellenállás
– Breadboard
– 40 tűs kitörési tábla + szalagkábel
– vezetékek

a szalagkábel csatlakozik a Pi GPIO csapjaihoz. A DS18B20 három vezetékkel rendelkezik. A piros vezeték csatlakozik 3,3 V. A kék / fekete vezeték csatlakozik a földre. A sárga vezeték egy felhúzó ellenálláshoz/4 csaphoz csatlakozik. Miután ezt bekötötték, kapcsolja be a Pi-t.

a Raspbian legújabb verziója (kernel 3.18) megköveteli a /boot/config kiegészítését.txt fájlt a Pi kommunikálni a DS18B20. A fájl szerkesztéséhez futtassa a következőket:

$ sudo nano /boot/config.txt

ha a következő sor még nincs ebben a fájlban (ha igen, akkor valószínűleg a fájl alján található), adja hozzá és mentse a fájlt.

dtoverlay=w1-gpio,gpiopin=4

indítsa újra a Pi-t, hogy a módosítások hatályba lépjenek.

$ sudo reboot

a hőmérséklet-érzékelő olvasási felületének elindításához két parancsot kell futtatnunk. Lépjen a Pi vagy az SSH parancssorába a Pi – be. Írja be a következő parancsokat:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

a hőmérséklet-érzékelő kimenete most egy fájlba van írva a Pi-n. Ahhoz, hogy megtalálja a fájlt:

$ cd /sys/bus/w1/devices

ebben a könyvtárban lesz egy alkönyvtár, amely “28-“betűvel kezdődik. Ami a “28-” után következik, az érzékelő sorozatszáma. cd ebbe a könyvtárba. Ebben a könyvtárban egy w1_slave nevű fájl tartalmazza az érzékelő kimenetét. A nano segítségével megtekintheti a fájl tartalmát. Miután belépett a fájlba, így fog kinézni:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

A “t=” utáni szám a kívánt szám. Ez a hőmérséklet 1/1000 Celsius fokban (a fenti példában a hőmérséklet 26,125 C). Csak egy egyszerű programra van szükségünk, ami beolvassa ezt a fájlt, és elemzi azt a számot. Mindjárt rátérünk.

minden készen áll arra, hogy elkezdjük az adatok továbbítását. A szövegszerkesztő megnyitásához írja be a következőket a parancssorba:

$ nano temperature.py

másolja be az alábbi kódot a szövegszerkesztőbe.

a kezdeti állapothozzáférési kulcsot a 6. sorba kell helyeznie a PUT_YOUR_ACCESS_KEY_HERE helyett (másolja a streaming kulcsot a vágólapra a ‘Saját fiók’ – ból, majd illessze be a terminál Nano kódjába).

A 6. sor létrehoz egy “Temperature Stream” nevű vödröt a kezdeti Állapotszámláján (feltételezve, hogy helyesen adta meg az access_key-t ugyanazon a vonalon). Ennek a szkriptnek a 8-30-as sorai egyszerűen összekapcsolódnak a DS18B20 érzékelővel, hogy leolvassák annak hőmérsékletét a korábban tárgyalt w1_slave fájlból. A read_temp_raw () függvény a 15.sorban beolvassa a nyers w1_slave fájlt. A read_temp () függvény a 21.sorban elemzi a fájl hőmérsékletét. A 34-es vonal ezeket a funkciókat hívja az aktuális hőmérséklet eléréséhez. A 35. vonal a hőmérsékletet Celsius-ról Fahrenheit-re alakítja. A 35-ös és 36-os vonalak a hőmérsékletet a kezdeti Állapotszámlára továbbítják. A 37.sor 0,5 másodpercre szünetelteti a szkriptet, beállítva, hogy a hőmérséklet-érzékelő milyen gyakran olvassa le és közvetíti.

készen állunk a streaming megkezdésére. Futtassa a következő parancsot:

$ sudo python temperature.py

térjen vissza a kezdeti Állapotfiókjához a webböngészőben, és keressen egy új adatvödröt, a hőmérséklet-adatfolyamot. Látnia kell a hőmérsékleti adatok élő közvetítését. Változtassa meg az érzékelő hőmérsékletét úgy, hogy a kezében tartja, vagy egy pohár jégbe helyezi.

most az adatok elküldése egy kezdeti állapotú irányítópultra történik. Az irányítópult testreszabásával kapcsolatos részletekért látogasson el a cikk utolsó szakaszába.

BME280 megoldás

szükséged lesz a következő a build this solution:
– BME280 nyomás, hőmérséklet, & páratartalom érzékelő

ha olyan BME280-at használ, amely nem az Adafruit – tól származik, akkor a beállítás és a kód más lesz. Ebben a cikkben talál egy példát a BME280 érzékelő használatára a feltérképezési hely páratartalmának figyeléséről.

ez az érzékelő csapokkal van ellátva, amelyeket forrasztani kell az érzékelőn. Azt javaslom, hogy használjon egy kenyérlemezt, amelynek csapjai hosszú oldalával lefelé vannak a kenyérlemezbe, hogy megkönnyítse a forrasztást. Miután befejezte ezt, be kell vezetnünk az érzékelőt a Pi-hez.

csatlakoztassa az érzékelő VIN-csapját a Pi 3,3 V-os 1-es tűjéhez. Csatlakoztassa az érzékelő GND csapját a PI 6 földcsapjához. Csatlakoztassa az érzékelő SCK csapját a Pi SCL 5 csapjához. Csatlakoztassa az érzékelő SDI tűjét a Pi 3. SDA tűjéhez.

ehhez a megoldáshoz Python 3-at kell használnia, és a pip3 telepítési módszerrel kell telepítenie a kezdeti állapot Streamer modult. Telepítenie kell néhány Adafruit Python könyvtárat is.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

az érzékelő használatához engedélyeznünk kell az I2C-t a Pi-n.

sudo raspi-config

ezzel megnyílik a Raspberry Pi Szoftverkonfigurációs eszköz. Ugrás az opcióra 5 interfész opciók. Innen menjen az I2C – re.megkérdezi, hogy engedélyezi-e az I2C-t, válassza az Igen és a Befejezés lehetőséget. Most már engedélyezve van az I2C, hogy kommunikáljon az érzékelővel.

ezt a következő futtatással tesztelhetjük:

sudo i2cdetect -y 1

Ez ellenőrzi, hogy a Pi látja-e az érzékelőt. A csatlakozás módjában meg kell mutatnia az érzékelőt a 77.címen. Ha nem észleli az érzékelőt, indítsa újra a Pi-t, engedélyezze újra az I2C interfész opciót a Pi-n, majd próbálja újra.

miután észlelte az érzékelőt, itt az ideje futtatni a fő kódunkat, amely az adatokat kezdeti állapotba küldi. Létrehozott egy nevű fájlt bme280sensor.py a nano parancs. Másolja be a kódot a lényegből a szövegszerkesztőbe. Meg kell változtatnia a 12-19 sorokat.

  • 12. sor-ennek az értéknek egyedinek kell lennie minden csomópont/hőmérséklet-érzékelő esetében. Ez lehet az érzékelő csomópont szobájának neve, fizikai helye, egyedi azonosítója vagy bármi más. Csak győződjön meg arról, hogy minden csomópont egyedi-e annak biztosítása érdekében, hogy az ebből a csomópontból származó adatok a saját adatfolyamába kerüljenek az irányítópulton.
  • 13.sor — Ez az adatvödör neve. Ez lehet változtatni bármikor a kezdeti állapot UI.
  • 14.sor — Ez a vödör kulcsa. Ugyanazon vödörkulcsnak kell lennie minden csomópontnál, amelyet ugyanazon az irányítópulton szeretne megjeleníteni.
  • 15.sor — Ez a kezdeti Állapotfiók-hozzáférési kulcs. Másolja be ezt a kulcsot a kezdeti Állapotfiókjából.
  • 17.vonal — Ez az Ön tartózkodási helyének nyomása (hPa) a tenger szintjén. Ezt az információt a legtöbb időjárási weboldalon megtalálhatja.
  • 18.sor — Ez az idő az érzékelő leolvasása között. Ennek megfelelően változtassa meg.
  • 19.sor — itt megadhat metrikus vagy angolszász mértékegységeket.

miután beállította a 12-19 sorokat a Python szkriptben a Pi-n, mentse és lépjen ki a szövegszerkesztőből. Futtassa a szkriptet a következő paranccsal:

$ python3 bme280sensor.py

most adatokat küld egy kezdeti állapotú irányítópultra. Az irányítópult testreszabásával kapcsolatos részletekért látogasson el a cikk utolsó szakaszába.

Sense HAT Solution

A megoldás felépítéséhez a következő elemekre lesz szüksége:
-Raspberry Pi Sense HAT
-6″ 40 tűs IDE Férfi-Női hosszabbító kábel (opcionális a hőmérséklet pontosságához)

a Sense HAT használatának első lépése az, hogy fizikailag telepítse a Pi-re. A Pi kikapcsolt állapotában rögzítse a kalapot az alábbiak szerint.

Sense HAT kapcsolat a Raspberry Pi — vel

ha úgy dönt, hogy a megoldást a fentiek szerint használja, észreveheti, hogy a Sense HAT hőmérsékleti értékei kissé magasak lesznek-ez azért van, mert vannak. A tettes az a hő, amely a Pi CPU-jából származik, felmelegíti a levegőt a Sense HAT körül, amikor a Pi tetején ül. Ahhoz, hogy a hőmérséklet-érzékelő hasznos legyen, el kell távolítanunk a kalapot a Pi-től, vagy meg kell próbálnunk kalibrálni a hőmérséklet-érzékelő leolvasását. Egy jó megoldás, hogy az érzékelő távol a Pi egy kábel, amely lehetővé teszi a Sense kalap lóg távol a Pi. Egy 6″, 40 tűs IDE férfi-női hosszabbító kábel kábel fogja csinálni a trükköt.

Raspberry Pi a Sense HATHOZ csatlakozó hosszabbító kábellel

miután eldöntötte a két lehetőséget, kapcsolja be a Pi-t. Telepítenünk kell a Python könyvtárat, hogy megkönnyítsük az érzékelő értékeinek olvasását a Sense HAT-ból. Először is gondoskodnia kell arról, hogy minden naprakész legyen a Raspbian verzióján:

$ sudo apt-get update

Ezután telepítse a sense HAT Python könyvtárat:

$ sudo apt-get install sense-hat

indítsa újra a Pi-t. Készen állunk a Sense HAT tesztelésére az érzékelő adatainak beolvasásával és az adatok kezdeti állapotba küldésével.

hozzon létre egy sensehat nevű fájlt, majd nyissa meg a szövegszerkesztőben a parancssorba való follwoing beírásával:

$ nano sensehat.py

másolja be az alábbi kódot a szövegszerkesztőbe.

az első sorban figyelje meg, hogy a SenseHat könyvtárat importáljuk a szkriptbe. Mielőtt futtatná ezt a szkriptet, be kell állítanunk a felhasználói paramétereket.

pontosabban be kell állítania az ACCESS_KEY-t a kezdeti Állapotfiók-hozzáférési kulcsra. Meg lehet változtatni BUCKET_NAME és SENSOR_LOCATION_NAME a tényleges érzékelő helyét. Mentse és lépjen ki a szövegszerkesztőből.

A Pi parancssorában futtassa a parancsfájlt:

$ sudo python sensehat.py

most adatokat küld egy kezdeti állapotú irányítópultra. Az irányítópult testreszabásával kapcsolatos részletekért látogasson el a cikk utolsó szakaszába.

testreszabhatja a kezdeti állapot irányítópultját

A beépített Raspberry Pi hőmérséklet-érzékelővel most már beléphet a kezdeti Állapotfiókba, és megnézheti adatait. Kattintson a jobb gombbal egy csempére a diagram típusának megváltoztatásához, majd kattintson a csempék szerkesztése elemre a csempék átméretezéséhez és mozgatásához. Azt javaslom, hogy használja a mérő termosztátot a hőmérséklethez, a mérő folyadék szintjét pedig a páratartalomhoz. Vonaldiagramokat hozhat létre mind a hőmérséklet, mind a páratartalom tekintetében, hogy lássa az időbeli változásokat. Háttérképet is hozzáadhat az irányítópulthoz.

beállíthatja a Trigger riasztásokat, így SMS-t vagy e-mailt kaphat, ha a hőmérséklet egy bizonyos küszöb alá vagy fölé esik. LÉPJEN az adatvödörbe, majd kattintson a Beállítások gombra. Innen menjen a triggerek fülre. Adja meg a figyelni kívánt stream kulcsot, a használni kívánt operátort, valamint a küszöbértéket. Kattintson a pluszjelre a Trigger hozzáadásához. Ezután adja meg e-mail címét vagy telefonszámát, hogy megkapja a riasztást, majd kattintson a pluszjelre. Miután beállította az összes triggert, kattintson az alján található Kész gombra.

kezdeti állapot hőmérséklet irányítópult

most, hogy létrehozott egy Raspberry Pi hőmérséklet-érzékelőt egy érzékelő és egy Raspberry Pi használatával, elkezdheti gondolkodni azon, hogy milyen egyéb környezeti adatokat figyelhet meg legközelebb.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post Kertész mester: a Cassia fákat könnyű termeszteni
Next post Adaptív tanulás