Orodha ya maudhui:

Seva ya Takwimu ya Joto Dual: Hatua 12 (na Picha)
Seva ya Takwimu ya Joto Dual: Hatua 12 (na Picha)

Video: Seva ya Takwimu ya Joto Dual: Hatua 12 (na Picha)

Video: Seva ya Takwimu ya Joto Dual: Hatua 12 (na Picha)
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Juni
Anonim
Seva ya Takwimu ya Joto Dual
Seva ya Takwimu ya Joto Dual

Hili ni jaribio langu la kwanza la kuandika inayoweza kufundishwa na kwa hivyo tafadhali nirahisishie! Ikiwa unafikiria hii sio mbaya sana, basi tafadhali nipigie kura katika Mashindano ya Mwandishi wa Mara ya Kwanza.

Huu ni mradi wangu wa Lock-Down wa kudhibiti kwa mbali joto 2 kwenye chafu, moja kwa kiwango cha sakafu na moja chini ya paa. Ingawa nilikuwa nimetumia Raspberry Pi's (RPi) hapo awali, mradi huu ulihusisha vitu kadhaa ambavyo sikuwa nimetumia na njiani, nilipata mafunzo kadhaa ambayo yalikuwa yamepitwa na wakati au sio sawa tu. Huu ni mkusanyiko wangu wa maarifa ya kufanya mfuatiliaji wa joto la kijijini linalofanya kazi kutoka kwa Pi Zero & 2 DS18B20 + Sensorer moja za Joto la Dijiti ambazo zilipatikana njiani.

Mambo niliyojifunza kuhusu:

  • Kufanya data ipatikane kutoka kwa kifaa kama sehemu ya Mtandao wa Vitu (IoT)
  • 1-waya interface na vifaa 2
  • Uhalifu
  • Takwimu za JSON
  • Kuanzisha firewall ya UFW
  • Kutumia Freeboard.io kuonyesha data
  • Kusanidi RPi ili kuendesha mpango huo

Kuna idadi kubwa ya data ambayo inaweza kupatikana kwa utaftaji rahisi kwenye mada hizi zote, lakini ambayo sio wazi sana ni jinsi ya kuchanganya vitu hivi vyote tofauti.

Vifaa

  • Utahitaji Raspberry Pi (na mfuatiliaji, panya na kibodi ya kuanzisha lakini sio wakati wa kuendesha mradi uliomalizika)
  • Muunganisho wa mtandao unaofanya kazi.
  • PSU iliyo na kiunganishi cha Micro USB
  • 2 ya DS18B20 + Sensorer moja za Joto la Dijiti. Niligundua Amazon ilikuwa ya bei rahisi
  • Resistor ya 4K7 ohm au nilitumia vipingaji 2 10K ohm.
  • Bodi ndogo ya mkate na waya wachache wa kiume / wa kike kwa kupima kwenye benchi
  • Kipande kidogo cha ukanda wa kusanyiko la mwisho
  • Zana rahisi za kutengeneza na kutuliza waya.
  • Sanduku dogo la plastiki kuweka muundo uliomalizika

Hatua ya 1: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa

Tayari nilikuwa na Raspberry Pi Zero W (isiyo na waya) lakini nina hakika mradi huu rahisi utafanya kazi vizuri kwenye RPIs yoyote. Sanduku la vipande vya elektroniki visivyo vya kawaida kwenye semina yangu vilikuwa na kila kitu kingine (ubao wa mkate, waya, PSU nk) na kwa hivyo yote niliyokuwa na kununua ni sensorer mbili za 2 x DS18B20 kutoka Amazon. Hizi ni chips za kawaida za DS18B20 zilizowekwa vyema katika nyumba isiyo na maji na kebo ya 3m. Kuna waya 3 kutoka kwa kebo:

  • Nyekundu - nguvu - unganisha kwenye pini ya 3.3v 1
  • Nyeusi - kurudi - unganisha kwenye pini ya ardhi 6
  • Njano - data - unganisha kwenye pini ya GPIO4 7

Sensorer zinatumia kiunganishi cha waya-1 na zilikuwa rahisi sana kuunganishwa na kupata data kutoka. Kuna kurasa kadhaa kwenye wavuti zilizo na maelezo ya unganisho la kifaa 1 lakini kidogo sana juu ya kuunganisha 2 (au zaidi).

Kwa kupima kwenye benchi, mzunguko ulikusanywa kwa kutumia ubao wa mkate. Mafunzo niliyoyapata yalisema kutumia kontena la 4K7 kupendelea laini ya data, lakini sikuweza kupata moja na kutumika 2 * 10K sambamba na ilifanya kazi vizuri. Kuna rasilimali nyingi kwenye wavuti kwa kutumia ubao wa mkate kukusanya mizunguko ya RPi na kwa hivyo sitaizirudia hapa.

Mchoro ulioundwa kwa kutumia Mchoro wa Mzunguko

Hatua ya 2: Usanidi wa Programu ya Raspberry Pi OS

Usanidi wa Programu ya Raspberry Pi OS
Usanidi wa Programu ya Raspberry Pi OS
Usanidi wa Programu ya Raspberry Pi OS
Usanidi wa Programu ya Raspberry Pi OS
Usanidi wa Programu ya Raspberry Pi OS
Usanidi wa Programu ya Raspberry Pi OS

Kama nilivyokuwa nikitumia RPi hii hapo awali, niliamua kuanza na usanikishaji safi wa OS, nilibadilisha kadi ya SD na kusanikisha toleo safi la NOOBS. Kisha nikaweka toleo kamili la eneo-kazi la Raspian (chaguo la juu) kwani hii pia ingeweka PIP & GIT ambayo toleo la lite halifanyi. Ingawa sikuhitaji Kiolesura cha Mtumiaji wa Picha (GUI) kwa mradi huo, ni njia rahisi ya kuweka chaguzi zote na kwa kadi ya SD ya 16gb hakukuwa na upungufu wa nafasi.

Nilianzisha ufikiaji wa WI-FI kisha nikaweka usakinishaji kamili na kisha mchawi na visasisho na visasisho n.k. Kutumia GUI, ninaanzisha RPI kama inavyohitajika kwa sababu tu kutumia GUI ni rahisi kuliko Interface ya Command Line (CLI). Nilikwenda kwenye dirisha la usanidi kutoka kwenye menyu na kisha:

  • Kwenye kichupo cha mfumo, nilibadilisha nenosiri, kuweka boot kwa CLI na Kuingia kwa Moja kwa Moja bila kukaguliwa
  • Kwenye kichupo cha maingiliano, nimewezesha waya 1
  • Bonyeza sawa na upe tena booti

Ikiwa unahitaji kurudi kwa GUI wakati wowote andika tu startx kwenye CLI

startx

Hatua ya 3: Sanidi matumizi ya Ruhusu Ufikiaji wa Mbali

Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali
Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali
Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali
Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali
Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali
Sanidi Urahisishaji Ruhusu Ufikiaji wa Mbali

Nilipata ingizo la blogi linalosaidia sana kwenye wavuti ya Dataplicity kwenye https://blog.dataplicity.com/how-to-build-a-raspb… na nikatumia sehemu kadhaa za hii. Sehemu ya 3 ya blogi inaelezea kuweka usanidi kwa ufikiaji wa kijijini kwa RPi. Sijawahi kutumia Dataplicity hapo awali, lakini lazima niseme, ninapendekeza kabisa kama zana rahisi sana ya ufikiaji wa mbali. Ingawa viwambo vya skrini (kwenye blogi hapo juu) vimepitwa na wakati, kanuni hiyo ni sawa.

Kwenye PC yako, nenda kwa Dataplicity.com na uunda akaunti (unaweza kutumia kivinjari kwenye GUI, lakini polepole kwenye RPi Zero). Kisha bonyeza kitufe cha "ongeza kifaa kipya" na laini ya nambari imeonyeshwa kwenye kidirisha cha pop-up. Kisha nenda kwa CLI kwenye RPi na uandike mstari wa maandishi. Ikiwa yote ni sawa, nembo ya Dataplicity itaonyesha na programu ya kusakinisha itaendelea.

Rudi kwenye PC yako, kifaa kipya sasa kinapaswa kuonekana kwenye wavuti ya Dataplicity. Bonyeza kifaa na unapaswa kuona skrini ya terminal kwa RPi yako.

Kuna mambo machache ya kuzingatia hapa:

  • Kuingia, andika "su pi" (kwa ufikiaji wa superuser) na utaombwa kupata nenosiri (kama ilivyowekwa mapema)
  • Unahitaji kuwezesha Wormhole (itatumika baadaye)
  • Utahitaji anwani ya Wormhole kwa kuonyesha data baadaye (bonyeza-kulia kunakili inapohitajika)

Unaweza kutumia ufikiaji huu wa kijijini kwa hatua zote zifuatazo na ni rahisi sana kunakili data, programu nk kuliko moja kwa moja kwenye RPi.

Hatua ya 4: Angalia Sensorer

Sasa unaweza kutumia upatikanaji wa data kwa mbali kwa RPI kwa sehemu zote zinazofuata.

Ikiwa yote sasa yameunganishwa sawa, unapaswa kuona hali ya joto ikirudishwa kutoka DS18B20's. Nilifanya kazi kupitia mafunzo ya Pi Hut lakini mengi haya hayakuhitajika. Ikiwa unataka maelezo kamili yanaweza kupatikana hapa: https://thepihut.com/blogs/raspberry-pi-tutorials …….

Biti muhimu ni kwenda kwenye saraka ya vifaa na uhakikishe sensorer 2 tofauti zinaonyeshwa.

cd / sys / basi / w1 / vifaa /

Hii inapaswa kuonyesha vifaa 2 kuanzia 28- na bwana wa basi. Mgodi unaonyesha:

28-011453ebfdaa 28-0114543d5daa w1_bus_master1

Nambari hizi 2 za kitambulisho ni muhimu na zitahitajika baadaye! Kisha badilisha kwa moja ya saraka za sensorer:

cd 28-011453ebfdaa

(kwa mfano) na kisha kusoma thamani kutoka kwa sensa

paka w1_slave

Inapaswa kuwa na mistari 2 ya maandishi yaliyoonyeshwa:

53 01 4b 46 7f ff 0c 10 2d: crc = 2d NDIYO

53 01 4b 46 7f ff 0c 10 2d t = 21187

NDIYO inaonyesha sensa inasoma kwa usahihi na 21187 inaonyesha joto katika Celsius ya 21.187 (gawanya na 1000) Rudia hii kuangalia sensa ya pili. Ikiwa zote zinasoma sawa basi tunaweza kuendelea kusoma data na Python3.

Nilinakili na kurekebisha nambari ifuatayo ambayo nilipata kwenye Wavuti lakini siwezi kukumbuka kutoka wapi. Ikiwa hii inaonekana kama nambari yako, basi naomba radhi kwani hakuna wizi uliokusudiwa; tafadhali nijulishe na nitakubali kazi yako.

Unda saraka inayoitwa miradi na ubadilishe kwenye saraka hiyo.

mkdir ~ / miradi

cd ~ / miradi

Katika saraka hii, tumia kihariri cha maandishi (nano) kuunda na kuhariri faili inayoitwa thermo-test.py

Sudo nano thermo-test.py

Hii inapaswa kuwa imefungua mhariri na kwa vile unatumia Rataplicity, unaweza tu kunakili nambari ifuatayo hapa chini (thermo-test.py) na ubandike kwenye mhariri. Utahitaji kubadilisha majina 2 ya vifaa (kuanzia 28-…) kwa zile zilizoainishwa hapo juu. Wakati yote yanaonekana sawa, bonyeza ctrl + X kumaliza, Y kuokoa na kurudi kutumia jina lililopo. Ikiwa unapendelea kutumia GUI basi Thonny atafanya vivyo hivyo.

Ili kuendesha programu ya majaribio:

sudo python3 thermo-test.py

Kuwa sawa, hii inapaswa kutekeleza faili kwa kutumia chatu 3 na kuchapisha kwenye skrini joto 2 kila sekunde 10. Unaweza kujaribu yote ni sawa kwa kuweka sensorer 1 ndani ya maji ya barafu au upole joto kwa nywele. Ikiwa yote yanaonekana sawa, basi tunaweza kuendelea!

Hatua ya 5: UFW Firewall

Ukuta wa UFW
Ukuta wa UFW

Kwa kuwa RPi hii ingeunganishwa milele kwenye mtandao niliamua Firewall itakuwa wazo nzuri na rahisi kutumia ni Firewall isiyo ngumu (ufw). Kuna mafunzo rahisi sana hapa

Sitaingia ndani kwa kina kwani hii sio kusudi la Agizo hili, lakini kwa kifupi:

Sakinisha firewall na:

Sudo apt-get kufunga ufw

Weka sheria chaguomsingi:

default sudo ufw inaruhusu zinazotoka

chaguo-msingi cha sudo ufw kinakana zinazoingia

Fungua bandari ya 80 kwa Usaidizi

sudo ufw inaruhusu 80

Wezesha firewall

sudo ufw wezesha

Angalia hali na uhakikishe kuwa yote yanaendesha

hali ya sudo ufw

Hatua ya 6: S kumaliza Takwimu za Joto kama JSON

S kumaliza data ya Joto kama JSON
S kumaliza data ya Joto kama JSON

Rudi kwenye blogi ya Tim Fernando na sehemu ya 5.

Fuata hatua kama ilivyoelezwa (isipokuwa tumeunda saraka ya miradi) na zote zinapaswa kufanya kazi vizuri. Kutumia GIT utapakua faili za matumizi ya Tim na PIP itahakikisha mipango yote inayohitajika imewekwa kwenye RPi yako. Kisha nikaona ninahitaji kuwasha tena ili kuhakikisha kuwa vifurushi vyote viliwekwa kwa usahihi.

Kisha endesha programu ya Tim na RPi yako inapaswa kuwa ikitoa data ya JSON kwa sensa ya kwanza.

cd nyumbani / pi / miradi / joto-serve-pi

joto la gunicorn: programu -b 0.0.0.0:80

Unaweza kuendelea kupitia blogi hadi sehemu ya 6 ambapo utapata data inatolewa kwa sensorer 1.

Unaweza pia kutumia Mtazamaji wa JSON kuona data https://codebeautify.org/jsonviewer Bonyeza kitufe cha "shehena URL" na ubandike kwenye anwani ya Wormhole iliyoonyeshwa hapo awali. Katika kidirisha cha kushoto, unapaswa kuona viingilio viwili, moja kwa Celsius na moja ya Fahrenheit.

Hatua ya 7: Tuma Takwimu kutoka kwa Sensorer zote

Tuma Takwimu Kutoka kwa Sensorer Zote
Tuma Takwimu Kutoka kwa Sensorer Zote

Kulingana na nambari iliyo katika joto.py na thermo-test.py, niliunda 2temps.py Iliyobadilishwa kama hapo awali kwenye saraka ya / miradi / joto-serve-pi, iliyowekwa kwenye nambari na kuhifadhiwa. Kisha nikakimbia

sudo gunicorn 2temps: programu -b 0.0.0.0:80

Sasa nilipoendesha tena Mtazamaji wa JSON nilipata maadili ya temp1 & temp2

Mafanikio:)

Hatua ya 8: Anza kiotomatiki

Anzisha kiotomatiki
Anzisha kiotomatiki

Nguvu ya chafu inapozimwa mara kwa mara, nilitaka RPi ipakie programu moja kwa moja na kuanza kudhibitisha data. Njia rahisi inaonekana kuwa kuhariri faili ya rc.local na kuongeza nambari inayotakiwa chini kidogo juu ya mstari wa kutoka 0.

cd nk

sudo nan rc. mtaa

kisha ongeza-ndani

lala 10

cd nyumbani / pi / miradi / joto-serve-pi sudo gunicorn temp04: programu -b 0.0.0.0:80 &

  • Mwisho & mwisho huiambia kompyuta iendeshe maandishi kwenye ganda ndogo ili kompyuta yako isingoje kazi iishe na itaendelea na buti
  • Kulala [sekunde 10] hakikisha shughuli zote za awali zimekamilika kabla ya kuanza huduma.

Toka na uhifadhi kama hapo awali. Kisha reboot na uanze tena Mtazamaji wa JSON kuangalia yote ni sawa.

Ikiwa unataka habari zaidi juu ya programu zinazoendesha kiotomatiki kuna mafunzo mazuri hapa

Hatua ya 9: Onyesha Takwimu kwenye Freeboard.io (1)

Onyesha Takwimu kwenye Freeboard.io (1)
Onyesha Takwimu kwenye Freeboard.io (1)

Hatua katika blogi ya Tim hufanya kazi vizuri, kwa muhtasari; fungua akaunti kwenye www.freeboard.io na kisha uunda Freeboard mpya, niliita SHEDTEMPERATURES yangu.

Kwanza, ongeza hifadhidata, bonyeza ADD kulia juu na kutoka kwa pop-up chagua JSON kama aina, mpe rasilimali data JINA, ongeza anwani ya minyoo kutoka hapo awali kama URL na ubonyeze HAPANA KWA JARIBU THINGPROXY. Joto hubadilika polepole sana na kwa hivyo RUDISHA KILA SEKTA 15 ni sawa. Bonyeza SAVE.

Hatua ya 10: Onyesha Takwimu kwenye Freeboard.io (2)

Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)
Onyesha Takwimu kwenye Freeboard.io (2)

Bonyeza ADD PANE na kisha + kuongeza wijeti ya kwanza. Unaweza kuchagua na kucheza na anuwai za AINA lakini nimeona Upimaji ulikuwa sawa. Toa CHEO kinachofaa, VITENGO (C), KIWANGO na MAXIMUM ili kukidhi maombi yako. Kwa DATASOURCE, bonyeza + na chanzo iliyoundwa hapo juu kitaonekana.

Kushuka kunapaswa sasa kuonyesha vyanzo vya data 2 vya JSON (temp2 & temp2) vilivyojengwa mapema. Chagua chanzo kinachofaa na bonyeza kuokoa.

Rudia hii kwa kipimo cha pili na sisi sote tumeweka.

Takwimu zinapaswa kuonyeshwa kwenye viwango 2 na ikiwa bado una PRi iliyounganishwa na mfuatiliaji, unapaswa kuona maombi kutoka Freeboard.io wanapofika.

Hatua ya 11: Jenga Mradi ndani ya Sanduku

Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku
Jenga Mradi ndani ya Sanduku

Hadi wakati huu, RPi na vifaa vingine vilikuwa vimekusanyika kwenye benchi kwa kutumia ubao wa mkate. Kipande kidogo cha ubao kilitumika kuchukua nafasi ya ubao wa mkate na risasi zote ziliuzwa mahali.

Sanduku dogo la kuhifadhia Lego lenye rangi ya waridi lilipatikana ambalo lilikuwa na nafasi nyingi na ambapo RPI haitapata moto sana. mashimo yalitobolewa ndani ya kando ya sanduku na nguzo za kuweka nylon za 3mm zilitumika kushikilia RPi na ubao wa mahali.

Kuna uhusiano 3 tu unaohitajika kutoka kwa GPIO, 3.3v, GND na data.

  • Pini ya 3.3vdc 1
  • Pini ya GND 6
  • Takwimu (GPIO4) pini 7

Mashimo pia yaliongezwa kwenye sanduku la nguvu ya USB na nyaya kwenye sensorer za joto. Mara tu kila kitu kilipowekwa mahali, kiasi kidogo kwa silicone sealant kiliongezwa kuhakikisha buibui hawakufikiria ilikuwa mahali pazuri pa joto kutumia wakati wa baridi!

Hatua ya 12: Imemalizika

Imemalizika
Imemalizika
Imemalizika
Imemalizika

Sanduku liliwekwa kwenye chafu na kuwezeshwa kutoka kwa sinia ya USB. Sensorer mbili ziliwekwa moja karibu na juu ya chafu na nyingine kwenye sufuria ya mmea kuangalia jinsi miche ilivyokuwa baridi usiku.

Hii ni ya kwanza kufundishwa na natumahi unafikiri ni sawa. Ukipata makosa yoyote tafadhali nijulishe na nitabadilisha pale inapohitajika. Hatua inayofuata inaweza kuwa kuweka data kila seki (sema) sekunde 60, lakini hii itakuja baadaye.

Ilipendekeza: