Përmbajtje:
- Furnizimet
- Hapi 1: Pajisje kompjuterike
- Hapi 2: Konfigurimi i softuerit Raspberry Pi OS
- Hapi 3: Konfiguroni bazën e të dhënave për të lejuar hyrjen në distancë
- Hapi 4: Kontrolloni sensorët
- Hapi 5: UFW Firewall
- Hapi 6: S duke i dhënë fund të dhënave të temperaturës si JSON
- Hapi 7: Dërgoni të dhëna nga të dy sensorët
- Hapi 8: Fillimi automatik
- Hapi 9: Shfaqni të dhënat në Freeboard.io (1)
- Hapi 10: Shfaqni të dhënat në Freeboard.io (2)
- Hapi 11: Ndërtoni projektin në një kuti
- Hapi 12: Përfundoi
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
Kjo është përpjekja ime e parë për të shkruar një Udhëzues dhe kështu ju lutem më lehtësoni! Nëse mendoni se kjo nuk është shumë e keqe, atëherë ju lutemi votoni për mua në Konkursin e Autorit të Herës së Parë.
Ky është projekti im Lock-Down për të monitoruar nga distanca 2 temperatura në një serë, një në nivelin e dyshemesë dhe një nën çati. Megjithëse kisha përdorur Raspberry Pi (RPi) më parë, ky projekt përfshinte disa elementë që nuk i kisha përdorur dhe gjatë rrugës, gjeta disa mësime që ishin të vjetruara ose thjesht të gabuara. Ky është koleksioni im i njohurive për të bërë një monitor të dyfishtë të temperaturës në distancë nga një Sensorë Pi Zero & 2 DS18B20+ One Wire Digital Temperatura që u mor gjatë rrugës.
Gjërat që mësova për:
- Vënia në dispozicion e të dhënave nga një pajisje si pjesë e Internetit të Gjërave (IoT)
- Ndërfaqe 1-tela me 2 pajisje
- Dallueshmëria e të dhënave
- Të dhënat JSON
- Vendosja e murit mbrojtës UFW
- Përdorimi i Freeboard.io për të shfaqur të dhënat
- Konfigurimi i RPi për të autorunuar programin
Ka sasi të mëdha të të dhënave që mund të gjenden me një kërkim të thjeshtë në të gjitha këto tema, por ajo që nuk është aq e qartë është se si të kombinohen të gjitha këto elemente të ndara.
Furnizimet
- Ju do të keni nevojë për një Raspberry Pi (me një monitor, miun dhe tastierën për konfigurimin, por jo kur ekzekutoni projektin e përfunduar)
- Një lidhje interneti që funksionon.
- Një PSU me një lidhës Micro USB
- 2 nga sensorët e temperaturës dixhitale DS18B20+ One Wire. Kam gjetur se Amazon ishte më e lira
- Rezistencë 4K7 ohm ose kam përdorur 2 rezistorë 10K ohm.
- Dërrasë e vogël buke dhe disa tela meshkuj/femra për testim në stol
- Pjesë e vogël e dërrasës për montimin përfundimtar
- Mjete të thjeshta për bashkim dhe heqje telash.
- Kuti e vogël plastike për të vendosur dizajnin e përfunduar
Hapi 1: Pajisje kompjuterike
Unë tashmë kisha një Raspberry Pi Zero W (me valë), por jam i sigurt se ky projekt i thjeshtë do të funksionojë mirë në cilindo RPI. Kutia e copave të çuditshme elektronike në punëtorinë time kishte gjithçka tjetër (bukë, tel, PSU etj) dhe kështu gjithçka që më duhej të blija ishte dy sensorë 2 x DS18B20 nga Amazon. Këto janë patate të skuqura normale DS18B20 të montuara në mënyrë të përshtatshme në një strehim të papërshkueshëm nga uji dhe kabllo 3m. Ka 3 tela nga kabllo:
- E kuqe - fuqia - lidheni me pinin 3.3v 1
- E zezë - kthim - lidheni me kunjin e tokës 6
- E verdha - të dhëna - lidheni me pin GPIO4 7
Sensorët përdorin ndërfaqen 1-Wire dhe ishin shumë të lehtë për t'u lidhur dhe për të marrë të dhëna. Ka disa faqe në Web me detaje për lidhjen e 1 pajisje, por shumë pak për lidhjen e 2 (ose më shumë).
Për testimin në stol, qarku u mblodh duke përdorur një dërrasë buke. Udhëzimet që gjeta deklaruan se përdorin një rezistencë 4K7 për të anashkaluar linjën e të dhënave, por nuk mund të gjeja një të tillë dhe të përdorur në mënyrë paralele 2* 10K dhe funksionoi mirë. Ka shumë burime në Web për të përdorur një dërrasë për të mbledhur qarqet RPi dhe kështu që unë nuk do t'i përsëris këtu.
Diagrami i krijuar duke përdorur Diagramin e Qarkut
Hapi 2: Konfigurimi i softuerit Raspberry Pi OS
Ndërsa e kisha përdorur këtë RPi më parë, vendosa të filloj me një instalim të pastër të OS, riformatova kartën SD dhe instalova një version të pastër të NOOBS. Unë pastaj instalova versionin e plotë të desktopit të Raspian (opsioni i lartë) pasi kjo gjithashtu do të instalonte PIP & GIT që versioni lite nuk e bën. Edhe pse nuk kisha nevojë për Ndërfaqen Grafike të Përdoruesit (GUI) për projektin, është një mënyrë e thjeshtë për të konfiguruar të gjitha opsionet dhe me një kartë SD 16gb nuk kishte mungesë hapësire.
Vendosa qasjen WI-FI, pastaj ekzekutova instalimin e plotë dhe pastaj magjistarin me përditësime dhe azhurnime, etj. Duke përdorur GUI, unë konfigurova RPI sipas nevojës vetëm sepse përdorimi i GUI është më i thjeshtë se Ndërfaqja e Linjës së Komandës (CLI). Shkova në dritaren e konfigurimit nga menyja dhe pastaj:
- Në skedën e sistemit, ndryshova fjalëkalimin, e vendosa në boot në CLI dhe e pakontrolluar Auto Login
- Në skedën e ndërfaqeve, aktivizova 1-tela
- Klikuar në rregull dhe rifilluar
Nëse keni nevojë të ktheheni në GUI në çdo kohë, thjesht shkruani startx në CLI
startx
Hapi 3: Konfiguroni bazën e të dhënave për të lejuar hyrjen në distancë
Gjeta një hyrje vërtet të dobishme në blog në faqen Dataplicity në https://blog.dataplicity.com/how-to-build-a-raspb… dhe përdor disa pjesë të kësaj. Seksioni 3 i blogut përshkruan vendosjen e Dataplicity për qasje në distancë në RPi. Unë kurrë nuk kam përdorur Dataplicity më parë, por duhet të them, e rekomandoj plotësisht si një mjet shumë i thjeshtë i qasjes në distancë. Edhe pse pamjet e ekranit (në blogun e mësipërm) janë pak të vjetruara, parimi është i mirë.
Në kompjuterin tuaj, shkoni te Dataplicity.com dhe krijoni një llogari (mund të përdorni shfletuesin në GUI, por më ngadalë në RPi Zero). Pastaj klikoni në butonin "shtoni pajisje të re" dhe një linjë kodi shfaqet në dritaren që shfaqet. Pastaj shkoni te CLI në RPi dhe shkruani rreshtin e tekstit. Nëse gjithçka është në rregull, logoja e Dataplicity do të shfaqet dhe programi i instalimit do të funksionojë.
Kthehu në kompjuterin tuaj, pajisja e re tani duhet të shfaqet në faqen e internetit të Dataplicity. Klikoni pajisjen dhe duhet të shihni një ekran terminal për RPi -në tuaj.
Ka disa gjëra që duhen shënuar këtu:
- Për t'u regjistruar, shkruani "su pi" (për qasje te superpërdoruesi) dhe do t'ju kërkohet fjalëkalimi (siç është vendosur më herët)
- Ju duhet të aktivizoni vrimën e krimbave (për t'u përdorur më vonë)
- Ju do të keni nevojë për adresën Wormhole për shfaqjen e të dhënave më vonë (kliko me të djathtën për të kopjuar kur është e nevojshme)
Ju mund ta përdorni këtë qasje në distancë për të gjitha hapat e mëposhtëm dhe është shumë më e lehtë për kopjimin e të dhënave, programeve, sesa drejtpërdrejt në RPi.
Hapi 4: Kontrolloni sensorët
Tani mund të përdorni Dataplicity qasje në distancë në RPI për të gjitha pjesët e ardhshme.
Nëse gjithçka është e lidhur mirë, duhet të jeni në gjendje të shihni temperaturat që kthehen nga DS18B20. Unë punova përmes mësimit Pi Hut, por shumica e kësaj nuk kërkohej. Nëse doni detajet e plota ato mund të gjenden këtu:
Pjesët më të rëndësishme janë të shkoni në drejtorinë e pajisjeve dhe sigurohuni që të shfaqen 2 sensorë të ndryshëm.
cd/sys/bus/w1/pajisje/
Kjo duhet të tregojë 2 pajisje që fillojnë me 28- dhe master bus. Shfaqjet e mia:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Këta 2 numra ID janë të rëndësishëm dhe do të nevojiten më vonë! Pastaj ndryshoni në një nga drejtoritë e sensorëve:
cd 28-011453ebfdaa
(për shembull) dhe pastaj për të lexuar vlerën nga sensori
mace w1_sllave
Duhet të ketë 2 rreshta teksti të treguar:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d PO
53 01 4b 46 7f ff 0c 10 2d t = 21187
PO tregon se sensori po lexon saktë dhe 21187 tregon temperaturën në Celsius prej 21.187 (pjesëtoni me 1000) Përsëriteni këtë për të kontrolluar sensorin e dytë. Nëse të dy lexojnë ok atëherë mund të kalojmë në leximin e të dhënave me Python3.
Kam kopjuar dhe përshtatur kodin e mëposhtëm që gjeta në Web, por nuk mbaj mend se nga. Nëse kjo duket si kodi juaj, atëherë kërkoj falje pasi nuk ishte menduar për plagjiaturë; ju lutem më tregoni dhe unë do ta njoh punën tuaj.
Krijoni një drejtori të quajtur projekte dhe ndryshoni në atë drejtori.
mkdir ~/projekte
cd ~/projekte
Në këtë drejtori, përdorni redaktuesin e tekstit (nano) për të krijuar dhe modifikuar një skedar të quajtur thermo-test.py
sudo nano termo-test.py
Kjo duhet të ketë hapur redaktorin dhe ndërsa përdorni Dataplicity, thjesht mund të kopjoni kodin e mëposhtëm më poshtë (thermo-test.py) dhe ngjiteni në redaktues. Ju do të duhet të ndryshoni 2 emrat e pajisjeve (duke filluar nga 28-…) me ato të shënuara më lart. Kur gjithçka duket e saktë, shtypni ctrl+X për të përfunduar, Y për të ruajtur dhe kthyer për të përdorur emrin ekzistues. Nëse preferoni të përdorni GUI atëherë Thonny do të bëjë të njëjtën gjë.
Për të drejtuar programin e testimit:
sudo python3 termo-test.py
Gjithçka është mirë, kjo duhet të ekzekutojë skedarin duke përdorur python 3 dhe të printojë në ekran temperaturat 2 çdo 10 sekonda. Mund të provoni se gjithçka është në rregull duke vendosur 1 sensor në ujë të ftohtë ose duke ngrohur butësisht me tharëse flokësh. Nëse gjithçka duket në rregull, atëherë mund të vazhdojmë!
Hapi 5: UFW Firewall
Meqenëse ky RPi do të lidhej përgjithmonë me internetin, vendosa që një Firewall do të ishte një ide e mirë dhe një e thjeshtë për t'u përdorur është Firewall i pakomplikuar (ufw). Ekziston një mësim shumë i thjeshtë këtu
Nuk po hyj në thellësi të madhe pasi ky nuk është qëllimi i këtij Udhëzuesi, por me pak fjalë:
Instaloni murin e zjarrit me:
sudo apt-get install ufw
Vendosni rregullat e paracaktuara:
sudo ufw default lejoni daljen
sudo ufw default refuzoj hyrjen
Hapni portën 80 për Dataplicity
sudo ufw lejoni 80
Aktivizo murin e zjarrit
sudo ufw aktivizo
Kontrolloni statusin dhe sigurohuni që gjithçka po funksionon
sudo ufw status
Hapi 6: S duke i dhënë fund të dhënave të temperaturës si JSON
Kthehuni në blogun dhe seksionin 5 të Tim Fernando.
Ndiqni hapat siç u tha (përveçse ne kemi krijuar tashmë drejtorinë e projekteve) dhe të gjithë duhet të funksionojnë mirë. Duke përdorur GIT do të shkarkoni skedarët e aplikacionit të Tim dhe PIP do të sigurohet që të gjitha programet e kërkuara të jenë instaluar në RPi tuaj. Atëherë zbulova se më duhej të rindizja për t'u siguruar që paketat ishin të gjitha të konfiguruara në mënyrë korrekte.
Pastaj ekzekutoni programin e Tim dhe RPi juaj duhet të sigurojë të dhëna JSON për sensorin e parë.
cd home/pi/projects/temperature-serve-pi
Temperatura sudo gunicorn: aplikacioni -b 0.0.0.0:80
Mund të vazhdoni përmes blogut në seksionin 6 ku do të gjeni se po jepen të dhëna për 1 nga sensorët.
Ju gjithashtu mund të përdorni JSON Viewer për të parë të dhënat https://codebeautify.org/jsonviewer Klikoni butonin "ngarkoni URL" dhe ngjiteni në adresën e Wormhole të shënuar më parë. Në panelin e majtë, duhet të shihni dy shënime, një për Celsius dhe një për Fahrenheit.
Hapi 7: Dërgoni të dhëna nga të dy sensorët
Bazuar në kodin në temperature.py dhe thermo-test.py, krijova 2temps.py Redaktuar si më parë në drejtorinë /projects /temperature-serve-pi, ngjitur në kod dhe ruajtur. Pastaj vrapova
sudo gunicorn 2temps: app -b 0.0.0.0:80
Tani kur ri-drejtova JSON Viewer mora vlera për temp1 & temp2
Sukses:)
Hapi 8: Fillimi automatik
Ndërsa energjia në serë fiket herë pas here, doja që RPi të ngarkonte automatikisht programin dhe të fillonte të provonte të dhënat. Mënyra më e thjeshtë duket se është të redaktoni skedarin rc.local dhe të shtoni kodin e kërkuar në fund, mbi vijën 0 të daljes.
cd etj
sudo nan rc.lokal
pastaj shtesa
fle 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Në fund i thotë kompjuterit të ekzekutojë skriptin në një nën -guaskë në mënyrë që kompjuteri juaj të mos presë që funksioni të përfundojë dhe të vazhdojë me nisjen
- Fjetja 10 [sekonda] sigurohet që të gjitha operacionet e mëparshme të kenë përfunduar para fillimit të shërbimit.
Dilni dhe ruani si më parë. Pastaj rindizni dhe rifilloni JSON Viewer për të kontrolluar se gjithçka është në rregull.
Nëse doni më shumë informacion mbi programet e drejtimit automatik, ka një tutorial të mrekullueshëm këtu
Hapi 9: Shfaqni të dhënat në Freeboard.io (1)
Hapat në blogun e Tim funksionojnë mirë, në mënyrë të përmbledhur; krijoni një llogari në www.freeboard.io dhe më pas krijoni një Freeboard të ri, të cilin e kam quajtur SHEDTEMPERATURES.
Së pari, shtoni një burim të të dhënave, klikoni ADD në të djathtën e sipërme dhe nga dritarja që shfaqet zgjidhni JSON si lloj, jepni burimin e të dhënave një EMRI, shtoni adresën e krimbit të hershëm si URL dhe klikoni JO për TRY THINGPROXY. Temperaturat ndryshojnë vetëm shumë ngadalë dhe kështu Freskoni çdo 15 sekonda është mirë. Kliko Ruaj.
Hapi 10: Shfaqni të dhënat në Freeboard.io (2)
Klikoni ADD PANE dhe pastaj + për të shtuar widget -in e parë. Ju mund të zgjidhni dhe luani me lloje të ndryshme, por unë zbulova se Gauge ishte mirë. Jepni një TITULL, NJITSI (C), MINIMUM dhe MAXIMUM të përshtatshëm që i përshtaten aplikimit tuaj. Për DATASOURCE, klikoni + dhe burimi i krijuar më sipër do të shfaqet.
Hapja zbritëse tani duhet të tregojë 2 burimet e të dhënave JSON (temp2 & temp2) të ndërtuara më herët. Zgjidhni burimin e duhur dhe klikoni ruaj.
Përsëriteni këtë për matësin e dytë dhe jemi gati.
Të dhënat tani duhet të shfaqen në 2 matësit dhe nëse akoma e keni PRi të lidhur me një monitor, duhet të shihni kërkesat nga Freeboard.io kur ato mbërrijnë.
Hapi 11: Ndërtoni projektin në një kuti
Deri në këtë pikë, RPi dhe përbërësit e tjerë ishin mbledhur të gjithë në stol duke përdorur një dërrasë buke. Një pjesë e vogël e dërrasës së shiritit u përdor më pas për të zëvendësuar dërrasën e bukës dhe plumbat të gjithë u ngjitën në vend.
U gjet një kuti e vogël ruajtëse e Lego e vogël rozë që kishte shumë hapësirë dhe ku RPI nuk do të nxehej shumë. vrimat u shpuan në anët e kutisë dhe shtyllat e montimit prej najloni 3 mm u përdorën për të mbajtur RPi dhe stripboard në vend.
Ka vetëm 3 lidhje të kërkuara nga GPIO, 3.3v, GND & të dhëna.
- 3.3vdc pin 1
- Kodi GND 6
- Të dhënat (GPIO4) pin 7
Vrima u shtuan gjithashtu në kutinë për energjinë USB dhe kabllot në sensorët e temperaturës. Sapo gjithçka u vendos në vend, një sasi e vogël ngjitëse silikoni u shtua për të siguruar që merimangat të mos mendonin se ishte një vend i bukur i ngrohtë për të kaluar dimrin!
Hapi 12: Përfundoi
Kutia u vendos në serrë dhe u mundësua nga një karikues USB. Dy sensorët u vendosën njëri pranë majës së serrës dhe tjetri në një tenxhere me bimë për të kontrolluar se sa të ftohtë ishin fidanët gjatë natës.
Ky është udhëzuesi im i parë dhe shpresoj që ju të mendoni se është në rregull. Nëse gjeni ndonjë gabim, ju lutem më tregoni dhe unë do të ndryshoj aty ku kërkohet. Hapi tjetër mund të jetë regjistrimi i të dhënave çdo (të themi) 60 sekonda, por kjo do të vijë më vonë.
Recommended:
Osciloskopi me Gjurmë të Dyfishtë: 11 hapa (me fotografi)
Osciloskopi i Gjurmimit të Dyfishtë: Kur ndërtova mini oshiloskopin tim të mëparshëm, doja të shihja se sa mirë mund ta bëja mikrokontrolluesin tim më të vogël ARM një STM32F030 (F030), dhe bëri një punë të bukur. Në një nga komentet u sugjerua që një " Pilulë Blu " me një STM32F103
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card - Simulimi DHT11 Regjistruesi i të dhënave në Proteus: 5 hapa
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card | Simulimi i regjistruesit të të dhënave DHT11 në Proteus: Hyrje: përshëndetje, ky është Liono Maker, këtu është lidhja në YouTube. Ne po bëjmë projekt krijues me Arduino dhe po punojmë në sisteme të ngulitura. Data-Logger: Një regjistrues i të dhënave (gjithashtu regjistrues i të dhënave ose regjistrues i të dhënave) është një pajisje elektronike që regjistron të dhëna me kalimin e kohës me
Blerja e të Dhënave dhe Sistemi i Vizualizimit të të Dhënave për një Biçikletë Garash MotoStudente Elektrike: 23 hapa
Sistemi i marrjes së të dhënave dhe vizualizimi i të dhënave për një motoçikletë MotoStudent Electric Racing: Një sistem i marrjes së të dhënave është një koleksion i pajisjeve dhe programeve kompjuterike që punojnë së bashku për të mbledhur të dhëna nga sensorë të jashtëm, për t'i ruajtur dhe përpunuar ato më pas në mënyrë që të mund të vizualizohen dhe analizohen, duke lejuar inxhinierët të bëjnë
EASY Arduino OLED Sensori i të dhënave të të dhënave: 4 hapa
EASY Arduino OLED Sensori i të dhënave: Nëse keni punuar ndonjëherë me Arduino, me siguri keni dashur që ai të shfaqë leximet e sensorit. Ndërsa përdorni LCD -in e vjetër klasik Nokia 5110, mund të keni vënë re se lidhja e të gjithë atyre telave është e çrregullt dhe kërkon shumë kunja. Sigurisht, ka një më të mirë
Qendra e Mbledhjes së të Dhënave të Sensorit të IoT me ESP8266 & PubNub: 9 Hapa (me fotografi)
Qendra e Grumbullimit të të Dhënave të Sensorit të IoT me ESP8266 & PubNub: Shumica e mësimeve në ESP8266 janë ose në nivelin e fillestarëve (duke u ndezur nga distanca një led) ose shumë komplekse për dikë që po kërkon diçka për të përmirësuar dhe përmirësuar mbi aftësitë e tij të ndezjes së dritës. Kjo synon të udhëzojë për të kapërcyer këtë hendek për të krijuar