
Satura rādītājs:
- Piegādes
- 1. darbība. Aparatūra
- 2. darbība: Raspberry Pi OS programmatūras iestatīšana
- 3. darbība. Iestatiet Dataplicity, lai atļautu attālo piekļuvi
- 4. darbība: pārbaudiet sensorus
- 5. solis: UFW ugunsmūris
- 6. solis: S beidz temperatūras datus kā JSON
- 7. darbība: nosūtiet datus no abiem sensoriem
- 8. darbība: automātiskā palaišana
- 9. darbība: parādiet datus vietnē Freeboard.io (1)
- 10. darbība: parādiet datus vietnē Freeboard.io (2)
- 11. solis: izveidojiet projektu kastē
- 12. solis: pabeigts
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Šis ir mans pirmais mēģinājums uzrakstīt pamācību, tāpēc, lūdzu, esiet mierīgi! Ja jūs domājat, ka tas nav pārāk slikti, lūdzu, balsojiet par mani Pirmreizējo autoru konkursā.
Šis ir mans Lock-Down projekts, lai attālināti uzraudzītu 2 temperatūras siltumnīcā, vienu grīdas līmenī un vienu zem jumta. Lai gan iepriekš biju izmantojis Raspberry Pi’s (RPi), šis projekts ietvēra vairākus elementus, kurus es nebiju izmantojis, un pa ceļam es atradu vairākas pamācības, kas bija novecojušas vai vienkārši nepareizas. Šī ir mana zināšanu kolekcija, lai no Pi Zero & 2 DS18B20+ viena stieples digitālajiem temperatūras sensoriem izgatavotu strādājošu divu tālvadības temperatūras monitoru.
Lietas, par kurām uzzināju:
- Datu pieejamība no ierīces kā lietu interneta (IoT) daļa
- 1 vadu interfeiss ar 2 ierīcēm
- Dataplicity
- JSON dati
- UFW ugunsmūra iestatīšana
- Freeboard.io izmantošana datu parādīšanai
- RPi konfigurēšana programmas automātiskai palaišanai
Ir milzīgs datu apjoms, ko var atrast, vienkārši meklējot visas šīs tēmas, taču nav tik skaidrs, kā apvienot visus šos atsevišķos elementus.
Piegādes
- Jums būs nepieciešams Raspberry Pi (ar monitoru, peli un tastatūru iestatīšanai, bet ne, palaižot gatavo projektu)
- Darbīgs interneta savienojums.
- PSU ar Micro USB savienotāju
- 2 no DS18B20+ viena stieples digitālajiem temperatūras sensoriem. Es atklāju, ka Amazon bija lētākais
- 4K7 omu rezistors vai es izmantoju 2 10K omu rezistorus.
- Neliels maizes dēlis un daži vīriešu/sieviešu vadi testēšanai uz stenda
- Neliels sloksnes plāksnes gabals galīgajai montāžai
- Vienkārši instrumenti lodēšanai un stieples noņemšanai.
- Neliela plastmasas kastīte gatavā dizaina izvietošanai
1. darbība. Aparatūra


Man jau bija Raspberry Pi Zero W (ar bezvadu), taču esmu pārliecināts, ka šis vienkāršais projekts darbosies labi jebkurā RPI. Nepāra elektronisko bitu kastē manā darbnīcā bija viss pārējais (maizes dēlis, vads, PSU utt.), Un tāpēc viss, kas man bija jāpērk, bija divi 2 x DS18B20 sensori no Amazon. Šīs ir parastās DS18B20 mikroshēmas, kas ir ērti uzstādītas ūdensnecaurlaidīgā korpusā un 3 m kabeli. No kabeļa ir 3 vadi:
- Sarkans - barošana - pievienojiet 3.3V kontaktam 1
- Melns - atgriešanās - pievienojiet zemējuma tapai 6
- Dzeltens - dati - izveidojiet savienojumu ar GPIO4 7. tapu
Sensori izmanto 1 vadu saskarni, un tos bija ļoti viegli savienot un iegūt datus no tiem. Tīmeklī ir vairākas lapas ar informāciju par vienas ierīces pieslēgšanu, bet ļoti maz par 2 (vai vairāk) savienošanu.
Pārbaudei uz stenda ķēde tika salikta, izmantojot maizes dēli. Manis atrastās apmācības norādīja, ka datu līnijas novirzīšanai tiek izmantots 4K7 rezistors, bet es nevarēju atrast vienu un tik paralēli izmantotu 2* 10K, un tas darbojās lieliski. Tīmeklī ir daudz resursu, lai izmantotu maizes dēli RPi shēmu montāžai, un tāpēc es tos šeit neatkārtošu.
Diagramma izveidota, izmantojot shēmas shēmu
2. darbība: Raspberry Pi OS programmatūras iestatīšana



Tā kā iepriekš biju izmantojis šo RPi, nolēmu sākt ar tīru OS instalēšanu, pārformatēju SD karti un instalēju tīru NOOBS versiju. Pēc tam es instalēju pilnu Raspian darbvirsmas versiju (augšējā opcija), jo tas arī instalētu PIP & GIT, kas nav vienkāršākajā versijā. Lai gan projektam man nebija nepieciešama grafiskā lietotāja saskarne (GUI), tas ir vienkāršs veids, kā iestatīt visas iespējas, un ar 16 GB SD karti vietas netrūka.
Es iestatīju WI-FI piekļuvi, pēc tam palaidu pilnu instalēšanu un pēc tam vedni ar atjauninājumiem un jauninājumiem utt. Izmantojot GUI, es pēc vajadzības iestatīju RPI tikai tāpēc, ka GUI lietošana ir vienkāršāka nekā komandrindas saskarne (CLI). Es izvēlnē devos uz konfigurācijas logu un pēc tam:
- Sistēmas cilnē es nomainīju paroli, iestatīju sāknēšanu uz CLI un neatzīmēju automātisko pieteikšanos
- Cilnē Saskarnes es iespējoju 1 vadu
- Noklikšķiniet uz Labi un atkārtoti palaidiet
Ja jums jebkurā laikā jāatgriežas GUI, vienkārši ierakstiet startx CLI
startx
3. darbība. Iestatiet Dataplicity, lai atļautu attālo piekļuvi



Es atradu patiešām noderīgu emuāra ierakstu vietnē Dataplicity vietnē https://blog.dataplicity.com/how-to-build-a-raspb… un izmantoju dažas šīs daļas. Emuāra 3. sadaļā ir aprakstīta Dataplicity iestatīšana attālinātai piekļuvei RPi. Es nekad iepriekš neesmu izmantojis Dataplicity, bet jāsaka, ka es to ļoti iesaku kā ļoti vienkāršu attālās piekļuves rīku. Lai gan ekrānuzņēmumi (emuārā iepriekš) ir nedaudz novecojuši, princips ir labs.
Datorā dodieties uz vietni Dataplicity.com un izveidojiet kontu (varat izmantot pārlūkprogrammu GUI, bet diezgan lēni, izmantojot RPi Zero). Pēc tam noklikšķiniet uz pogas “Pievienot jaunu ierīci”, un uznirstošajā logā tiek parādīta koda rinda. Pēc tam pārejiet uz CLI uz RPi un ierakstiet teksta rindu. Ja viss ir kārtībā, tiks parādīts Dataplicity logotips un tiks palaista instalēšanas programma.
Atkal datorā jaunajai ierīcei tagad vajadzētu parādīties vietnē Dataplicity. Noklikšķiniet uz ierīces, un jums vajadzētu redzēt RPi termināļa ekrānu.
Šeit jāņem vērā dažas lietas:
- Lai pieteiktos, ierakstiet "su pi" (lai piekļūtu superlietotājam), un jums tiks prasīts ievadīt paroli (kā noteikts iepriekš)
- Jums ir jāiespējo tārpu caurums (lai to izmantotu vēlāk)
- Lai vēlāk parādītu datus, jums būs nepieciešama tārpa cauruma adrese (ar peles labo pogu noklikšķiniet, lai kopētu, ja nepieciešams)
Šo attālo piekļuvi varat izmantot visām tālāk norādītajām darbībām, un datu, programmu utt. Kopēšana ir daudz vienkāršāka nekā tieši RPi.
4. darbība: pārbaudiet sensorus
Tagad visām nākamajām sadaļām varat izmantot Dataplicity attālinātu piekļuvi RPI.
Ja viss ir savienots pareizi, jums vajadzētu redzēt temperatūru, kas tiek atgriezta no DS18B20. Es strādāju, izmantojot Pi Hut apmācību, taču lielākā daļa no tā nebija nepieciešama. Ja vēlaties iegūt pilnīgu informāciju, tos var atrast šeit:
Svarīgi ir doties uz ierīču direktoriju un pārliecināties, vai tiek parādīti 2 dažādi sensori.
cd/sys/bus/w1/devices/
Tam vajadzētu parādīt 2 ierīces, sākot ar 28, un kopnes galveno. Manējais rāda:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Šie 2 ID numuri ir svarīgi un būs nepieciešami vēlāk! Pēc tam pārejiet uz vienu no sensoru katalogiem:
cd 28-011453ebfdaa
(piemēram) un pēc tam nolasīt sensora vērtību
kaķis w1_slave
Jāparāda 2 teksta rindiņas:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d JĀ
53 01 4b 46 7f ff 0c 10 2d t = 21187
JĀ rāda, ka sensors nolasa pareizi, un 21187 rāda temperatūru pēc Celsija 21,187 (daliet ar 1000) Atkārtojiet to, lai pārbaudītu otro sensoru. Ja abi lasa labi, mēs varam pāriet uz datu lasīšanu, izmantojot Python3.
Es nokopēju un pielāgoju šādu tīmeklī atrasto kodu, bet neatceros, no kurienes. Ja tas izskatās pēc jūsu koda, tad es atvainojos, jo nebija paredzēts plaģiāts; lūdzu, dariet man to zināmu, un es atzīšu jūsu darbu.
Izveidojiet direktoriju ar nosaukumu projekti un pārejiet uz šo direktoriju.
mkdir ~/projekti
cd ~/projekti
Šajā direktorijā izmantojiet teksta redaktoru (nano), lai izveidotu un rediģētu failu ar nosaukumu thermo-test.py
sudo nano thermo-test.py
Tam vajadzēja atvērt redaktoru, un, kad izmantojat Dataplicity, varat vienkārši nokopēt tālāk norādīto kodu (thermo-test.py) un ielīmēt redaktorā. Jums būs jāmaina 2 ierīču nosaukumi (sākot no 28 līdz…) uz iepriekš minētajiem. Kad viss izskatās pareizi, nospiediet ctrl+X, lai pabeigtu, Y, lai saglabātu un atgrieztos, lai izmantotu esošo nosaukumu. Ja vēlaties izmantot GUI, Thonny darīs to pašu.
Lai palaistu testa programmu:
sudo python3 termotests.py
Ja viss ir kārtībā, fails jāizpilda, izmantojot python 3, un ik pēc 10 sekundēm drukā uz ekrāna 2 temperatūras. Jūs varat pārbaudīt, vai viss ir kārtībā, ievietojot 1 sensoru ledus ūdenī vai viegli sasildot ar fēnu. Ja viss šķiet kārtībā, tad varam turpināt!
5. solis: UFW ugunsmūris

Tā kā šis RPi bija pastāvīgi savienots ar internetu, es nolēmu, ka ugunsmūris būtu laba ideja, un vienkāršs lietojums ir nekomplicēts ugunsmūris (ufw). Šeit ir ļoti vienkārša apmācība
Es neiedziļinos lielā dziļumā, jo tas nav šīs pamācības mērķis, bet īsumā:
Instalējiet ugunsmūri ar:
sudo apt-get install ufw
Iestatiet noklusējuma noteikumus:
sudo ufw noklusējuma atļaut izejošo
sudo ufw noklusējuma noliegt ienākošo
Atveriet portu 80 Dataplicity
sudo ufw atļaut 80
Iespējot ugunsmūri
sudo ufw iespējot
Pārbaudiet statusu un pārliecinieties, vai viss darbojas
sudo ufw statuss
6. solis: S beidz temperatūras datus kā JSON

Atpakaļ uz Tima Fernando emuāru un 5. sadaļu.
Izpildiet norādītās darbības (izņemot gadījumus, kad mēs jau esam izveidojuši projektu direktoriju), un visiem vajadzētu darboties labi. Izmantojot GIT, jūs lejupielādēsit Tima lietojumprogrammu failus, un PIP pārliecināsies, ka jūsu RPi ir instalētas visas nepieciešamās programmas. Pēc tam es atklāju, ka man ir jārestartē, lai pārliecinātos, ka visas paketes ir pareizi iestatītas.
Pēc tam palaidiet Tima programmu, un jūsu RPi jāsniedz JSON dati pirmajam sensoram.
cd mājas lapa/pi/projekti/temperatūra-serv-pi
sudo gunicorn temperatūra: lietotne -b 0.0.0.0:80
Jūs varat turpināt emuāru līdz 6. sadaļai, kur atradīsit datus par vienu no sensoriem.
Varat arī izmantot JSON Viewer, lai skatītu datus https://codebeautify.org/jsonviewer Noklikšķiniet uz pogas “ielādēt URL” un ielīmējiet iepriekš norādīto tārpa cauruma adresi. Kreisajā rūtī vajadzētu redzēt divus ierakstus, vienu pēc Celsija un otru pēc Fārenheita.
7. darbība: nosūtiet datus no abiem sensoriem

Pamatojoties uz kodu temperatūrā.py un thermo-test.py, es izveidoju 2temps.py Rediģēts tāpat kā iepriekš direktorijā /projekti /temperatūra-serve-pi, ielīmēts kodā un saglabāts. Tad es skrēju
sudo gunicorn 2temps: lietotne -b 0.0.0.0:80
Tagad, kad es atkārtoti palaidu JSON Viewer, es saņēmu vērtības temp1 un temp2
Veiksmi:)
8. darbība: automātiskā palaišana

Tā kā siltumnīcas barošana laiku pa laikam tiek izslēgta, es vēlējos, lai RPi automātiski ielādētu programmu un sāktu pierādīt datus. Vienkāršākais veids, šķiet, ir rediģēt rc.local failu un pievienot vajadzīgo kodu apakšā tieši virs izejas 0 rindas.
cd utt
sudo nan rc.local
tad pievienojumprogramma
gulēt 10
cd sākumlapa/pi/projekti/Temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Beigās liek datoram palaist skriptu apakščaulā, lai dators negaidītu, līdz funkcija beigsies, un turpinās ar sāknēšanu
- Miega režīms 10 [sekundes] pirms pakalpojuma uzsākšanas nodrošina, ka visas iepriekšējās darbības ir pabeigtas.
Izejiet un saglabājiet kā iepriekš. Pēc tam restartējiet un atkārtoti palaidiet JSON Viewer, lai pārbaudītu, vai viss ir kārtībā.
Ja vēlaties iegūt vairāk informācijas par automātiski palaistām programmām, šeit ir lieliska apmācība
9. darbība: parādiet datus vietnē Freeboard.io (1)

Kopsavilkumā soļi Tima emuārā darbojas labi; izveidojiet kontu vietnē www.freeboard.io un pēc tam izveidojiet jaunu Freeboard, es nosaucu savu SHEDTEMPERATURES.
Vispirms pievienojiet datu avotu, augšējā labajā stūrī noklikšķiniet uz PIEVIENOT un uznirstošajā logā kā veidu izvēlieties JSON, piešķiriet datu avotam VĀRDU, pievienojiet tārpa cauruma adresi kā URL un noklikšķiniet uz NĒ, lai izmēģinātu THINGPROXY. Temperatūra mainās tikai ļoti lēni, un tāpēc ATJAUNOJIET KATRAS 15 SECONDS. Noklikšķiniet uz SAGLABĀT.
10. darbība: parādiet datus vietnē Freeboard.io (2)




Noklikšķiniet uz PIEVIENOT PANEU un pēc tam uz +, lai pievienotu pirmo logrīku. Jūs varat izvēlēties un spēlēt ar dažādiem TYPE, bet es atklāju, ka Gauge bija tikai labi. Norādiet savai lietojumprogrammai piemērotu NOSAUKUMU, VIENĪBAS (C), MINIMUM un MAXIMUM. Lai iegūtu datu bāzi, noklikšķiniet uz +, un tiks parādīts iepriekš izveidotais avots.
Tagad nolaižamajā izvēlnē jāparāda 2 iepriekš izveidotie JSON datu avoti (temp2 un temp2). Atlasiet atbilstošo avotu un noklikšķiniet uz Saglabāt.
Atkārtojiet to otrajam mērinstrumentam, un mēs esam gatavi.
Dati tagad jāparāda 2 mērierīcēs, un, ja jums joprojām ir pieslēgts PRi monitoram, jums vajadzētu redzēt Freeboard.io pieprasījumus, kad tie tiek saņemti.
11. solis: izveidojiet projektu kastē




Līdz šim RPi un pārējās sastāvdaļas bija samontētas uz stenda, izmantojot maizes dēli. Pēc tam maizes dēļa nomaiņai tika izmantots neliels sloksnes plāksnes gabals, un visi vadi tika pielodēti.
Tika atrasta spilgti rozā maza Lego uzglabāšanas kaste, kurā bija daudz vietas un kurā RPI nekļūtu pārāk karsts. kastes sānos tika urbti caurumi, un RPi un sloksnes turēšanai vietā tika izmantoti 3 mm neilona stiprinājuma pīlāri.
No GPIO ir nepieciešami tikai 3 savienojumi, 3.3v, GND un dati.
- 3.3Vdc tapa 1
- GND tapa 6
- Datu (GPIO4) 7. tapa
Kastītē tika pievienoti arī USB barošanas avoti un kabeļi temperatūras sensoriem. Kad viss bija salikts savās vietās, tika pievienots neliels daudzums silikona hermētiķa, lai zirnekļi nedomātu, ka tā ir jauka, silta vieta, kur pārziemot!
12. solis: pabeigts


Kastīte tika ievietota siltumnīcā un tika darbināta no USB lādētāja. Abi sensori tika novietoti viens pie siltumnīcas augšpuses, bet otrs - uz augu poda, lai pārbaudītu, cik auksti stādi kļūst naktī.
Šī ir mana pirmā pamācība, un es ceru, ka jūs domājat, ka viss ir kārtībā. Ja atrodat kādas kļūdas, lūdzu, paziņojiet man, un es vajadzības gadījumā labošu. Nākamais solis varētu būt datu reģistrēšana ik pēc 60 sekundēm, bet tas notiks vēlāk.
Ieteicams:
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti - DHT11 datu reģistrētāja simulācija Proteus: 5 soļi

Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti | DHT11 datu reģistrētāja simulācija Proteus: Ievads: čau, tas ir Liono Maker, šeit ir YouTube saite. Mēs veidojam radošu projektu ar Arduino un strādājam pie iegultām sistēmām. Datu reģistrētājs: Datu reģistrētājs (arī datu reģistrētājs vai datu ierakstītājs) ir elektroniska ierīce, kas laika gaitā reģistrē datus
Datu iegūšanas un datu vizualizācijas sistēma elektriskajam motociklam MotoStudent: 23 soļi

Datu iegūšanas un datu vizualizācijas sistēma MotoStudent elektriskajam sacīkšu velosipēdam: Datu iegūšanas sistēma ir aparatūras un programmatūras kopums, kas darbojas kopā, lai apkopotu datus no ārējiem sensoriem, pēc tam tos uzglabātu un apstrādātu, lai tos varētu vizualizēt grafiski un analizēt, ļaujot inženieriem izgatavot
IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizualizācijai: 4 soļi

IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizam: Jūs varat viegli izveidot viedo displeju IoT tīklu datu vizualizācijai, lai papildinātu savus pētījumus datu zinātnē vai jebkurā kvantitatīvā jomā. Varat izsaukt " push " no jūsu zemes gabaliem klientiem tieši no jūsu
EAL-Industri4.0-RFID datu paraugu ņemšanas datu bāze: 10 soļi (ar attēliem)

EAL-Industri4.0-RFID datu paraugu ņemšana līdz datubāzei: Dette projekt omhandler opsamling af v æ gtdata, registreering af identiteter vha. RFID, satraucoši dati un lv MySQL datu bāze. mezgls RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application
IoT iespējots sensoru datu vākšanas centrs ar ESP8266 un PubNub: 9 soļi (ar attēliem)

IoT iespējots sensoru datu vākšanas centrs ar ESP8266 un PubNub: Lielākā daļa ESP8266 pamācību ir iesācēju līmenī (attālināti mirgo LED) vai ir pārāk sarežģītas kādam, kurš meklē kaut ko, ko uzlabot un uzlabot, vadot mirgojošas iemaņas. pamācāms mērķis ir pārvarēt šo plaisu līdz radīšanai