Raspberry Pi

A hőmérséklet ellenőrzése a Raspberry Pi-ben

A hőmérséklet ellenőrzése a Raspberry Pi-ben


A hőmérséklet figyelése számos Raspberry Pi projektben követelmény lehet. Raspberry Pi-ben viszonylag könnyű elvégezni, és a projekthez szükséges alkatrészek nem túl költségesek.Ez a cikk bemutatja, hogyan használhatja a DS18B20 digitális hőmérő modult a hőmérséklet mérésére a Raspberry Pi segítségével. A cikk azt is bemutatja, hogyan hozhat létre webalkalmazást a hőmérséklet megjelenítésére.

Amire szüksége lesz:

A cikk példáinak kipróbálásához a következőkre lesz szükség:

  1. Egy Raspberry Pi egykártyás számítógép
  2. Hálózati adapter a Raspberry Pi készülékhez
  3. Egy microSD kártya Raspberry Pi operációs rendszerrel
  4. Hálózati kapcsolat a Raspberry Pi eszközön
  5. Egy kenyérdeszka
  6. 3 db nő-nő összekötő vezeték
  7. Néhány férfi-férfi összekötő vezeték
  8. 10k-os ellenállás
  9. DS18B20 digitális hőmérő modul

DS18B20 digitális hőmérő kivezetések

Ha a DS18B20 digitális hőmérőt az alábbi képen látható módon tartja, az első csap lesz köszörülve (GND), a második csap lesz ADAT, és a harmadik csap lesz VCC.

Kördiagramm

A hőmérséklet-monitor kapcsolási rajzát az alábbi kép mutatja.

Itt a PIN2 / 5V a Raspberry Pi eszközének csatlakoznia kell a PIN3 / VCC a digitális hőmérő modul.

A PIN7 / GPIO4 A Raspberry Pi eszközének csatlakoznia kell a PIN2 / ADATOK a digitális hőmérő modul.

A PIN9 / GND a Raspberry Pi eszközének csatlakoznia kell a PIN1 / GND a digitális hőmérő modul.

A 10kΩ ellenállás között kell kapcsolódni PIN2 és PIN3 a digitális hőmérő modul.

Tartsa a Raspberry Pi-t az alábbi képen látható módon. Ezután a bal felső csap lesz PIN1. A csap a mellett PIN1 lesz PIN2. Majd ha egy sort előre lép, akkor a bal lesz PIN3 és a megfelelő lesz PIN4, stb.

Miután az összes alkatrészt csatlakoztatta a Raspberry Pi eszközhöz, annak kb

Nézze meg közelebbről, hogyan helyeztem el az alkatrészeket a kenyérlapon.

Miután az összes alkatrészt csatlakoztatta a Raspberry Pi eszközhöz, kapcsolja be a Raspberry Pi eszközt. Ezután csatlakozzon a Raspberry Pi eszközhöz VNC vagy SSH segítségével.

Hőmérséklet adatok leolvasása a DS18B20 digitális hőmérőből

A DS18B20 hőmérő modul az egyvezetékes kommunikációs protokollt használja az adatok elküldéséhez a Raspberry Pi-hez. Alapértelmezés szerint az 1 vezetékes interfész nincs engedélyezve. A felületet egyszerűen engedélyezheti a Raspberry Pi konfigurációs eszközből.

Az 1 vezetékes interfész engedélyezéséhez futtassa raspi-config a következő paranccsal:

$ sudo raspi-config

Válassza a lehetőséget Interfacing Options és nyomja meg .

Válassza a lehetőséget 1-vezeték és nyomja meg .

Válassza a lehetőséget és nyomja meg .

nyomja meg .

Kilépés a raspi-config segédprogram, nyomja meg a gombot .

A változások életbe lépéséhez indítsa újra a Raspberry Pi-t az alábbiak szerint:

$ sudo reboot

Annak ellenőrzésére, hogy a w1_gpio és w1_therm a kernelmodulok betöltődnek, futtassa a következő parancsot:

$ sudo lsmod | grep w1

Ha valamilyen oknál fogva az w1_therm A modul nincs betöltve, akkor manuálisan töltheti be a következő paranccsal:

$ sudo modprobe w1_therm

Miután engedélyezte 1 vezetékes kommunikáció és betöltötte a w1_therm modul, egy új eszköz (28-00000ba693e9, esetemben) fel kell sorolni a / sys / busz / w1 / eszközök könyvtárat, amint az az alábbi képernyőképen látható.

$ ls / sys / busz / w1 / eszközök /

Keresse meg az új könyvtárat az alábbiak szerint:

$ cd / sys / busz / w1 / devices / 28-00000ba693e9

Meg kellene találnia a hőfok fájlt a könyvtárban, amint az az alábbi képernyőképen látható.

$ ls -lh

A hőfok fájl egy egyszerű szöveges fájl. A hőmérsékleti adatokat a macska parancsot, az alábbiak szerint:

$ macska hőmérséklet

Mint látható, a hőmérsékleti adatok a konzolra vannak nyomtatva. Itt, 30375 eszközök 30.375 ° C.

Használhat programozási nyelvet, például Python vagy Node.js, hogy elemezze ezeket a hőmérsékleti adatokat, és felhasználja azokat az alkalmazásában. A cikk következő szakaszában megmutatom, hogyan kell ezt megtenni.

A hőmérsékleti adatok programozási nyelv segítségével történő elemzéséhez szükség lesz a hőfok fájl. Ezt megtalálhatja a readlink parancsot, az alábbiak szerint:

$ readlink -f hőmérséklet

Hozzon létre egy webalkalmazást a hőmérsékleti adatok megjelenítéséhez:

Ebben a szakaszban megtanulhatja, hogyan kell elemezni a hőmérsékleti adatokat a DS18B20 hőmérő modulból, és megjeleníteni egy webalkalmazásban.

Ebben a példában létrehozok egy API-t, amely elemzi a hőmérsékleti adatokat az API-ból elérhető DS18B20 hőmérő modulból. Létrehozok egy webalkalmazást is, amely beolvassa a hőmérsékleti adatokat az API-ból, és szépen megjeleníti azokat. A Csomópontot fogom használni.js programozási nyelv erre. A kódokat feltöltöttem a GitHub táromba: shovon8 / ds18b20-raspberrypi-api. Érdemes megnézni, ha problémái vannak a kódok másolásával és beillesztésével ebből a cikkből.

Csomópont.A js alapértelmezés szerint nincs telepítve a Raspberry Pi OS-re. De elérhető a Raspberry Pi OS hivatalos csomagtárában. Könnyedén telepítheti a Node-ot.js a Raspberry Pi OS csomagtárból.

Először frissítse az APT csomagtárház gyorsítótárát a következő paranccsal:

$ sudo apt frissítés

Ezután telepítse a Node-ot.js és NPM a következő paranccsal:

$ sudo apt install nodejs npm

A telepítés megerősítéséhez nyomja meg a gombot Y majd nyomja meg .

Az APT csomagkezelő letölti és telepíti az összes szükséges csomagot. Eltarthat egy ideig, amíg elkészül.

Ezen a ponton Node.js és NPM kell telepíteni.

Egyszer Node.js és NPM telepítve van, ellenőrizze, hogy a csomópont és npm parancsok állnak rendelkezésre, az alábbiak szerint:

$ node --verzió
$ npm - verzió

Frissítse az NPM-et a következő paranccsal:

$ sudo npm install - globális npm

Az NPM-et frissíteni kell.

Mint láthatja, az NPM az 5. verziótól frissült.8.0-tól a 6. verzióig.14.8.

$ node --version $ npm --version

Most az a Csomópont.A js és az NPM telepítve van, hozza létre az új projekt könyvtárat ~ / ds18b20, alábbiak szerint:

$ mkdir -v ~ / ds18b20

Navigáljon a ~ / ds18b20 könyvtárat, az alábbiak szerint:

$ cd ~ / ds18b20

Hozza létre az üreset csomag.json fájl a következő paranccsal:

$ npm init - y

Telepítse a Expressz.js könyvtár a projekthez a következő paranccsal:

$ npm install --save express

Az Express.A js könyvtárat most telepíteni kell.

Hozza létre az új fájlt szerver.js a projekt könyvtárban, az alábbiak szerint:

$ nano szerver.js

Írja be a következő kódsorokat a szerver.js fájl.

let express = igényelni ('express');
legyen fs = igény ('fs');
let szerver = express ();
const PORT = 8080;
const WEBROOT = './nyilvános';
szerver.get ('/', express.statikus (WEBROOT));
szerver.get ('/ hőmérséklet', (req, res) =>
hagyja tempDataPath = '/ sys / busz / w1 / eszközök / 28-00000ba693e9 / hőmérséklet';
legyen hőmérséklet = fs.readFileSync (tempDataPath, encoding: 'utf8', flag: 'r') / 1000;
res.json (hőmérséklet, tartományStart: -55, tartományVég: 125);
);
szerver.hallgat (PORT, () =>
konzol.napló ('$ PORT porton futó kiszolgáló');
);

Ha végzett, nyomja meg a gombot + x utána Y és hogy mentse a szervert.js fájl.

Itt az 1. sor importál Expressz, a 2. sor pedig a fs modul.

A 4. sor inicializálja az expresszt.

A 6. és 7. sor határozza meg a KIKÖTŐ és WEBROOT állandó változók, ill. Az API és a webszerver futni fog KIKÖTŐ (ami 8080, ebben a cikkben), és a webszerver a WEBROOT (ami a nyilvános/ ebben a cikkben a projekt könyvtárban).

A 9. sor az expressz konfigurálására szolgál a statikus tartalmak kiszolgálására WEBROOT.

A 11-15. Sor határozza meg az API végpontot /hőfok, amelyek felhasználásával a hőmérsékleti adatok JSON formátumba kerülnek.

A 12. sorban a tempDataPath változó tartja az abszolút utat a hőfok a DS18B20 digitális hőmérő modul fájlja, a cikk korábbi szakaszában látható.

A 13. sorban a hőmérsékleti adatokat a hőfok fájl a Csomópont használatával.js fs modul, és a hőmérsékleti adatokat a hőfok változó.

A 14. sorban a hőmérsékleti adatok JSON formátumban vannak kinyomtatva. A DS18B20 digitális hőmérő modul -55 ° C és 125 ° C közötti hőmérsékleteket képes mérni. Hozzátettem, hogy a JSON kimenetben a rangeStart és tartományVége tulajdonságait.

Végül a 17-19. Sor futtatja az API-t és a webszervert KIKÖTŐ (ami 8080, ebben a cikkben).

Hozzon létre egy nyilvános/ könyvtár a projekt könyvtárban, az alábbiak szerint:

$ mkdir -v public

Futtassa a szerver.js programot a következő paranccsal:

$ node szerver.js

A szervernek a porton kell futnia 8080.

A DS18B20 hőmérő modul hőmérsékleti adatait a /hőfok az API végpontja.

Futtassa a teszteléshez, hogy megkapja-e a hőmérsékleti adatokat az API-tól becsavar, alábbiak szerint:

$ curl -s http: // localhost: 8080 / hőmérséklet | json_pp

Mint látható, a hőmérsékleti adatok a konzolra JSON formátumban kerülnek kinyomtatásra. Tehát az API működik.

nyomja meg + C a kiszolgáló leállításához.

Most létrehozok egy weboldalt, amely az API szervert kéri a hőmérsékleti adatokhoz, és szépen megjeleníti azokat az oldalon. A hőmérsékleti adatok 5 másodpercenként frissülnek.

Újat csinálni index.html fájl a nyilvános/ a projekt könyvtárát, az alábbiak szerint:

$ nano public / index.html

Írja be a következő kódsorokat a index.html fájl.




Hőmérséklet-figyelő







00.00 ° C


A hőmérséklet 5 másodpercenként frissül



Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a index.html fájl.

A HTML fájl index.html könnyen érthető. Ez a formátum, amelyben a hőmérsékleti adatok megjelennek a webalkalmazásban.

Itt az előrehaladási sáv megjelenítésére az 53-55, az 57-60 pedig a hőmérséklet kijelzésére szolgál.

Az 5–49. Sorok a webalkalmazás szép díszítésére szolgálnak a CSS (Cascading Style Sheet) használatával.

A 62–109. Sorokat használják a webalkalmazás működőképessé tételére. A JavaScript kódokat a folyamatjelző sáv animálásához, a hőmérsékleti adatok lekéréséhez az API-ból és az információk megjelenítésére használják.

A 63-as vonal fut a fő- funkciót, amint a webalkalmazás betöltődik a böngészőbe.

A fő- funkció nagyon hosszú. A 65-től a 108-ig terjed. A fő funkción belül van néhány más funkciónk is, például getTemperature, updateTemperature, updateProgress, kb, és Rajt.

A updateProgress függvény, a 83–86. sorokban az előrehaladás százalékát veszi bemenetként, és frissíti a folyamatjelző sávot.

A updateTemperature függvény a 77–81. sorokban veszi a hőmérsékleti adatokat bemenetként, és frissíti a webalkalmazást a hőmérsékleti adatokkal.

A getTemperature függvény a 66-75. sorokban kérést küld a /hőfok az API végpontja, és megkapja a hőmérsékleti adatokat. Miután megkapta az adatokat, felhívja a updateTemperature függvény az adatokkal. A updateTemperature funkció ezután frissíti a webalkalmazást az új hőmérsékleti adatokkal.

A kb funkció a 88-99. sorokban animálja a folyamatjelző sávot, és 5 másodpercenként kéri a hőmérsékleti adatokat az API-tól.

A Rajt függvény a 101–104. sorokban elindítja a webalkalmazást.

Nyissa meg a csomag.json fájl a nano szövegszerkesztővel az alábbiak szerint:

$ nano csomag.json

változás fő- nak nek szerver.js és adja hozzá az új szkriptet szolgál ban,-ben szkriptek szakasz, az alábbi képernyőképen látható módon.

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a csomag.json fájl.

Most, hogy minden készen van, futtassa a webalkalmazást és az API-t a következő paranccsal:

$ npm futtatás

A szervernek a 8080-as porton kell futnia.

Most nyisson meg egy webböngészőt a Raspberry Pi eszközön, és keresse fel a http: // localhost: 8080 webhelyet. A DS18B20 digitális hőmérő modul hőmérsékleti adatait meg kell jeleníteni a böngészőben, amint az az alábbi képernyőképen látható.

A hőmérsékleti adatokat 5 másodpercenként frissíteni kell.

Mint látható, a hőmérséklet 5 másodpercenként változik.

Ha a hálózaton lévő másik számítógépről szeretne hozzáférni a webalkalmazáshoz, akkor tudnia kell a Raspberry Pi készülékének IP-címét.

A Raspberry Pi eszköz IP-címét a következő paranccsal találhatja meg:

$ hostname -I

Mint látható, a Raspberry Pi készülékem IP-címe 192.168.0.107. Ez más lesz számodra. Tehát mindenképpen cserélje le az IP-címet.

Miután megismerte a Raspberry Pi készülékének IP-címét, képesnek kell lennie arra, hogy a böngésző segítségével a hálózat bármely számítógépről hozzáférjen a webalkalmazáshoz. Csak keresse fel a http: // 192 oldalt.168.0.107: 8080, és a webalkalmazásnak meg kell jelenítenie a DS18B20 digitális hőmérő modul hőmérsékleti adatait.

Következtetés

Ebben a cikkben megtanulta, hogyan kell használni a Raspberry Pi DS18B20 digitális hőmérő modulját a hőmérséklet mérésére. Azt is megtanulta, hogyan kell létrehozni egy csomópontot.js API a hőmérsékleti adatok megjelenítésére egy webalkalmazásban, amely hozzáfér a hőmérsékleti adatokhoz az API-ból és megjeleníti azokat. Ez a cikk segít a Raspberry Pi hőmérséklet-monitorozásának elkezdésében a DS18B20 digitális hőmérő modullal és az IoT a Raspberry Pi készülékkel.

A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...