Vaarika Pi

Raspberry Pi temperatuuri jälgimine

Raspberry Pi temperatuuri jälgimine


Temperatuuride jälgimine võib olla nõutav paljudes teie Raspberry Pi projektides. Raspberry Pi's on seda suhteliselt lihtne teha ja selle projekti jaoks vajalikud komponendid pole liiga kulukad.See artikkel näitab teile, kuidas kasutada DS18B20 digitaalse termomeetri moodulit temperatuuri jälgimiseks Raspberry Pi abil. Artiklis demonstreeritakse ka seda, kuidas temperatuuri kuvamiseks veebirakendus luua.

Asjad, mida vajate:

Selle artikli näidete proovimiseks vajate järgmist:

  1. Raspberry Pi üheplaadiline arvuti
  2. Toiteadapter seadme Raspberry Pi jaoks
  3. MicroSD-kaart, millele on installitud Raspberry Pi OS
  4. Võrguühendus Raspberry Pi seadmes
  5. Leivalauale
  6. 3 tk naissoost naissoost ühendusjuhtmeid
  7. Mõned mees-mees ühendusjuhtmed
  8. 10k takisti
  9. Digitaalse termomeetri moodul DS18B20

DS18B20 digitaalse termomeetri kinnitusdetailid

Kui hoiate digitaalset termomeetrit DS18B20 alloleval pildil näidatud viisil, lihvitakse esimene tihvt (GND), teine ​​tihvt saab olema ANDMED, ja kolmas tihvt saab olema VCC.

Vooluringi skeem

Temperatuurimonitori skeem on näidatud alloleval pildil.

Siin, PIN2 / 5V Raspberry Pi seadme seade peaks olema ühendatud PIN3 / VCC digitaalse termomeetri mooduli.

The PIN7 / GPIO4 Raspberry Pi seadme seade peaks olema ühendatud PIN2 / ANDMED digitaalse termomeetri mooduli.

The PIN9 / GND Raspberry Pi seadme seade peaks olema ühendatud PIN1 / GND digitaalse termomeetri mooduli.

A 10kΩ takisti peaks olema ühendatud PIN2 ja PIN3 digitaalse termomeetri mooduli.

Peaksite oma Raspberry Pi hoidma alloleval pildil näidatud viisil. Seejärel saab ülemise vasaku tihvti PIN1. Tihvt otse kõrval PIN1 saab PIN2. Siis, kui liigute ühe rea võrra edasi, on vasakpoolne PIN3 ja see õige saab olema PIN4, ja nii edasi.

Kui olete kõik komponendid oma Raspberry Pi seadmega ühendanud, peaks see välja nägema umbes selline:

Vaadake lähemalt, kuidas asetasin komponendid leivalauale.

Kui olete kõik komponendid oma Raspberry Pi seadmega ühendanud, lülitage Raspberry Pi seade sisse. Seejärel ühendage oma Raspberry Pi seadmega VNC või SSH kaudu.

Temperatuuriandmete lugemine digitaalsest termomeetrist DS18B20

Termomeetri moodul DS18B20 kasutab Raspberry Pi-le andmete edastamiseks 1-juhtmelist sideprotokolli. Vaikimisi pole ühe juhtmega liides lubatud. Liidese saate hõlpsalt lubada Raspberry Pi seadistustööriistast.

1-juhtmelise liidese lubamiseks käivitage raspi-config järgmise käsuga:

$ sudo raspi-config

Valige Liidestamisvõimalused ja vajutage .

Valige 1-traat ja vajutage .

Valige ja vajutage .

Vajutage .

Väljumine raspi-config utiliit, vajutage .

Muudatuste jõustumiseks taaskäivitage oma Raspberry Pi järgmiselt:

$ sudo taaskäivitage

Kontrollimaks, kas w1_gpio ja w1_therm kerneli moodulid on laaditud, käivitage järgmine käsk:

$ sudo lsmod | grep w1

Kui mingil põhjusel, siis w1_therm moodulit ei laadita, saate selle käsitsi laadida järgmise käsuga:

$ sudo modprobe w1_therm

Kui olete lubanud 1-juhtmeline side ja laadis w1_therm moodul, uus seade (28-00000ba693e9, minu puhul) tuleks loetleda / sys / buss / w1 / seadmed kataloogi, nagu näete alloleval ekraanipildil.

$ ls / sys / buss / w1 / seadmed /

Navigeerige uude kataloogi järgmiselt:

$ cd / sys / buss / w1 / seadmed / 28-00000ba693e9

Peaksite leidma a temperatuur fail kataloogis, nagu näete alloleval ekraanipildil.

$ ls -lh

The temperatuur fail on lihttekstifail. Temperatuuriandmeid saate lugeda, kasutades kass järgmine käsk:

$ kassi temperatuur

Nagu näete, trükitakse konsoolile temperatuuri andmed. Siin, 30375 tähendab 30.375 ° C.

Võite kasutada programmeerimiskeelt, näiteks Python või Node.js, et neid temperatuuriandmeid sõeluda ja oma rakenduses kasutada. Kuidas seda teha, näitan teile selle artikli järgmises jaotises.

Temperatuuriandmete programmeerimiskeele abil sõelumiseks vajate absoluutset teed temperatuur faili. Selle leiate lehelt readlink järgmine käsk:

$ readlink -f temperatuur

Temperatuuriandmete kuvamiseks looge veebirakendus:

Selles jaotises saate teada, kuidas termomeetri moodulist DS18B20 temperatuuri andmeid sõeluda ja veebirakenduses kuvada.

Selles näites koostan API, mis sõelub temperatuuriandmeid termomeetri moodulist DS18B20, millele pääseb juurde API-st. Koostan ka veebirakenduse, mis tõmbab temperatuuri andmed API-st ja kuvab need kenasti. Ma kasutan sõlme.js programmeerimiskeel selleks. Koodid laaditakse üles minu GitHubi hoidlasse shovon8 / ds18b20-raspberrypi-api. Võite uurida, kui teil on raskusi sellest artiklist koodide kopeerimise ja kleepimisega.

Sõlm.js pole vaikimisi Raspberry Pi OS-i installitud. Kuid see on saadaval Raspberry Pi OS ametlikus paketihoidlas. Node saate hõlpsalt installida.js Raspberry Pi OS paketihoidlast.

Kõigepealt värskendage APT paketi hoidla vahemälu järgmise käsuga:

$ sudo apt värskendus

Järgmisena installige Node.js ja NPM järgmise käsuga:

$ sudo apt install nodejs npm

Installimise kinnitamiseks vajutage Y ja seejärel vajutage .

APT paketihaldur laadib alla ja installib kõik vajalikud paketid. Selle täitmine võib võtta mõnda aega.

Sel hetkel Node.js ja NPM tuleks paigaldada.

Kord sõlme.js ja NPM on installitud, kontrollige, kas sõlm ja npm käsud on saadaval järgmiselt:

$ node --versioon
$ npm - versioon

NPM-i täiendamine järgmise käsuga:

$ sudo npm install - globaalne npm

NPM-i tuleks uuendada.

Nagu näete, on NPM-i uuendatud versioonist 5.8.0 versioonini 6.14.8.

$ node --versioon $ npm --versioon

Nüüd see sõlm.js ja NPM on installitud, looge uus projekti kataloog ~ / ds18b20, järgnevalt:

$ mkdir -v ~ / ds18b20

Navigeerige lehele ~ / ds18b20 kataloogi järgmiselt:

$ cd ~ / ds18b20

Looge tühi pakend.json fail järgmise käsuga:

$ npm init - a

Installige Ekspress.js projekti teek järgmise käsuga:

$ npm install - salvestage Express

Ekspress.js raamatukogu peaks nüüd olema installitud.

Looge uus fail server.js projekti kataloogis järgmiselt:

$ nano server.js

Sisestage lahtrisse järgmised koodiread server.js faili.

las väljendada = nõuda ('väljendada');
olgu fs = nõuda ('fs');
lase serveril = express ();
const PORT = 8080;
const WEBROOT = './avalik';
server.get ('/', väljenda.staatiline (WEBROOT));
server.saada ('/ temperatuur', (req, res) =>
olgu tempDataPath = '/ sys / buss / w1 / seadmed / 28-00000ba693e9 / temperatuur';
lase temperatuuril = fs.readFileSync (tempDataPath, kodeerimine: 'utf8', lipp: 'r') / 1000;
res.json (temperatuur, vahemikStart: -55, vahemikEnd: 125);
);
server.kuula (PORT, () =>
konsool.log ('server töötab sadamas $ PORT');
);

Kui olete lõpetanud, vajutage + X järgneb Y ja serveri salvestamiseks.js-fail.

Siin imporditakse 1. rida väljendada, ja rida 2 impordib fs moodul.

4. rida lähtestab ekspressi.

Ridadel 6 ja 7 on määratletud SADAM ja WEBROOT vastavalt muutujad. API ja veebiserver töötavad edasi SADAM (mis on 8080, selles artiklis) ja veebiserver serveerib staatilist sisu WEBROOT (mis on avalik/ selles artiklis projekti kataloogis olev kataloog).

Rida 9 kasutatakse ekspresside konfigureerimiseks serveri staatilise sisu teenimiseks WEBROOT.

Real 11-15 määratletakse API lõpp-punkt / temperatuur, mida kasutatakse temperatuuri andmete saamiseks JSON-vormingus.

12. reas on tempDataPath muutuja hoiab absoluutset teed temperatuur digitaalse termomeetri mooduli DS18B20 fail, mis on näidatud selle artikli eelmises osas.

Reas 13 loetakse temperatuuriandmed temperatuur faili sõlme abil.js fs moodul ja temperatuuriandmed salvestatakse temperatuur muutuv.

Real 14 trükitakse temperatuuriandmed JSON-vormingus. Digitaalse termomeetri mooduliga DS18B20 saab mõõta temperatuure vahemikus -55 ° C kuni 125 ° C. Olen lisanud, et JSON-i väljundis, kasutades vahemikAlusta ja vahemikEnd omadused.

Lõpuks töötab rida 17-19 API ja veebiserveri SADAM (mis on 8080, selles artiklis).

Loo avalik/ projekti kataloogis järgmiselt:

$ mkdir -v public

Käivitage server.js programmi järgmise käsuga:

$ sõlme server.js

Server peaks töötama pordis 8080.

Termomeetri mooduli DS18B20 temperatuuriandmetele pääseb juurde / temperatuur API lõpp-punkt.

Proovige, kas saate temperatuuri andmeid API-lt, käivitage lokkima, järgnevalt:

$ curl -s http: // localhost: 8080 / temperatuur | json_pp

Nagu näete, trükitakse konsoolile temperatuuriandmed JSON-vormingus. Niisiis, API töötab.

Vajutage + C serveri peatamiseks.

Nüüd koostan veebilehe, mis küsib temperatuuriandmeid API-serverilt ja kuvab need kenasti lehel. Temperatuuriandmeid värskendatakse iga 5 sekundi järel.

Looge uus indeks.HTML faili avalik/ projekti kataloog järgmiselt:

$ nano avalik / register.HTML

Sisestage lahtrisse järgmised koodiread indeks.HTML faili.




Temperatuurimonitor







00.00 ° C


Temperatuuri värskendatakse iga 5 sekundi järel



Kui olete lõpetanud, vajutage + X järgneb Y ja salvestada indeks.HTML faili.

HTML-fail indeks.HTML on kergesti mõistetav. See on vorming, milles temperatuuriandmeid veebirakenduses kuvatakse.

Siin kasutatakse edenemisriba kuvamiseks ridu 53-55 ja temperatuuri kuvamiseks ridu 57-60.

Ridu 5–49 kasutatakse veebirakenduse kenaks kaunistamiseks, kasutades CSS-i (kaskaadstiilileht).

Ridu 62–109 kasutatakse veebirakenduse funktsionaalseks muutmiseks. JavaScripti koode kasutatakse edenemisriba animeerimiseks, temperatuuriandmete hankimiseks API-st ja teabe kuvamiseks.

63. liin kulgeb peamine funktsioon, kui veebirakendus on brauserisse laaditud.

The peamine funktsioon on väga pikk. See ulatub joonelt 65 kuni jooneni 108. Põhifunktsiooni sees on meil mõned muud funktsioonid, näiteks getTemperature, updateTemperature, updateProgress, rakendus, ja algus.

The updateProgress Funktsioon ridadel 83–86 võtab sisendina edusammude protsendi ja uuendab edenemisriba.

The updateTemperature Funktsioon ridadel 77–81 võtab sisendiks temperatuuri andmed ja värskendab veebirakendust temperatuuriandmetega.

The getTemperature funktsioon ridades 66-75 esitab päringu / temperatuur API lõpp-punkt ja saab temperatuuri andmed. Kui andmed on kätte saadud, helistab see updateTemperature funktsioon koos andmetega. The updateTemperature funktsioon värskendab seejärel veebirakendust uute temperatuuriandmetega.

The rakendus Funktsioon real 88-99 animeerib edenemisriba ja küsib temperatuuri andmeid API-lt iga 5 sekundi järel.

The algus Funktsioon ridadel 101–104 käivitab veebirakenduse.

Ava pakend.json fail nano tekstiredaktoriga järgmiselt:

$ nano pakett.json

Muuda peamine kuni server.js ja lisage uus skript serveerima aastal skriptid jaotises, nagu on märgitud alloleval ekraanipildil.

Kui olete lõpetanud, vajutage + X järgneb Y ja salvestada pakend.json faili.

Nüüd, kui kõik on valmis, käivitage veebirakendus ja API järgmise käsuga:

$ npm jooksu teenimine

Server peaks töötama pordil 8080.

Nüüd avage oma Raspberry Pi seadmes veebibrauser ja külastage aadressi http: // localhost: 8080. Digitaalse termomeetri mooduli DS18B20 temperatuuri andmed tuleks kuvada teie veebibrauseris, nagu näete alloleval ekraanipildil.

Temperatuuriandmeid tuleks ajakohastada iga 5 sekundi järel.

Nagu näete, muutub temperatuur iga 5 sekundi järel.

Kui soovite veebirakendusele juurde pääseda teisest võrgu arvutist, peate teadma oma Raspberry Pi seadme IP-aadressi.

Oma Raspberry Pi seadme IP-aadressi leiate järgmise käsuga:

$ hostinimi -I

Nagu näete, on minu Raspberry Pi seadme IP-aadress 192.168.0.107. See on teie jaoks erinev. Niisiis, asendage IP-aadress nüüdsest.

Kui olete oma Raspberry Pi seadme IP-aadressi teada saanud, peaksite veebirakenduse abil saama sirvida veebirakendust oma võrgu mis tahes arvutist. Lihtsalt külastage aadressi http: // 192.168.0.107: 8080 ja veebirakendus peaks näitama temperatuuri andmeid digitaalse termomeetri moodulist DS18B20.

Järeldus

Selles artiklis õppisite temperatuuri mõõtmiseks kasutama Raspberry Pi digitaalse termomeetri moodulit DS18B20. Samuti õppisite sõlme loomist.js API temperatuuriandmete kuvamiseks veebirakenduses, mis pääseb temperatuuriandmetele juurde API-st ja kuvab need. See artikkel peaks aitama teil alustada Raspberry Pi temperatuuri jälgimist DS18B20 digitaalse termomeetri mooduliga ja IoT koos Raspberry Pi-ga.

Tomb Raider for Linuxi õpetus
Shadow of the Tomb Raider on kaheteistkümnes täiendus seeria Tomb Raider - tegevus- ja seiklusmängude frantsiisile, mille on loonud Eidos Montreal. Ni...
Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...
Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...