Orodha ya maudhui:
- Hatua ya 1: Sanidi vifaa
- Hatua ya 2: Sanidi Dropbox
- Hatua ya 3: Kuandaa kabrasha lako la programu ya Dropbox
- Hatua ya 4: Kuanza na Nambari
- Hatua ya 5: Kuchimba kwa undani zaidi kwenye Nambari
- Hatua ya 6: Kutumia Faili za Kigezo cha Dropbox
- Hatua ya 7: Hitimisho
Video: Ufuatiliaji wa Nyumbani wa Raspberry Pi na Dropbox: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Mafunzo haya yatakuonyesha jinsi ya kuunda mfumo rahisi na mpana wa ufuatiliaji wa nyumba ukitumia Raspberry Pi, kamera ya wavuti, vifaa vichache vya umeme na akaunti yako ya Dropbox. Mfumo uliomalizika utakuruhusu kuomba kwa mbali na kuona picha kutoka kwa kamera yako ya wavuti wakati pia unatumia sensorer ya joto ya dijiti ya rafu kufuatilia hali ya joto ya nyumba yako kwenye wavuti, wote wakitumia Dropbox.
Huu ulikuwa mradi wa kwanza niliofikiria baada ya kupokea mfano wa Raspberry Pi 2 B. Lengo langu lilikuwa kuunda mfumo wa ufuatiliaji unaotegemea Python ambao ningeweza kudhibiti na kupokea data kutoka kwa wavuti. Ingawa kuna njia nyingi tofauti za kufanya hivyo, niliamua kutumia Dropbox kama kiunganishi kati ya Pi na wavuti kwani wana API rahisi ya Python ambayo hukuruhusu kupakia, kurekebisha na kutafuta faili kwenye folda maalum kwa kutumia mistari michache ya msimbo.
Pia nilitaka suluhisho langu liwe nyepesi na rahisi, na epuka kujazana kwa Pi yangu na maktaba na programu zisizohitajika. Sehemu ya programu ya mradi huu ina hati moja ya chatu, ikimaanisha kuwa unaweza kuendelea kutumia Pi yako kama kawaida, hata wakati mfumo wa ufuatiliaji unafanya kazi.
Kwa mradi huu utahitaji:
Pi ya Raspberry. Mfano wowote unapaswa kufanya kazi, nilitumia kitanzi cha kila mmoja, lakini labda unahitaji kitengo cha kati tu
Kamera ya mtandao ya USB. Nilinunua nafuu ADVENT AWC72015, ambayo ilitokea kufanya kazi vizuri. Inaweza kuwa wazo nzuri kushauriana na orodha hii ya kamera za wavuti ambazo zimethibitishwa kufanya kazi na Pi. Kumbuka kuwa zingine zinahitaji kitovu cha USB (mgodi hufanya kazi bila)
Akaunti ya Dropbox. Ninatumia akaunti yangu ya kawaida ya bure kwani mradi huu hauhitaji nafasi kubwa ya kuhifadhi
Sensor ya joto ya dijiti ya DS18B20 na kontena la 4.7k. Unaweza kununua sensorer hapa, na inaweza kuwa na thamani ya kunyakua pakiti ya vipinga anuwai pia
Vifaa vingine vya ujenzi wa mzunguko. Napenda kupendekeza kutumia ubao wa mkate na nyaya zingine za kuruka ili kufanya mchakato wa ujenzi wa mzunguko iwe rahisi iwezekanavyo
[Ukiamua kununua yoyote ya bidhaa hizi, ningeithamini sana ikiwa utafikia orodha ukitumia viungo hapo juu - kwa njia hiyo, nitapata sehemu ndogo ya faida bila gharama zaidi kwako!]
Hatua ya 1: Sanidi vifaa
Hatua ya kwanza ni kuhakikisha kuwa Pi yako na vifaa vinavyohusiana vimewekwa.
Kwanza, unganisha Pi yako kwenye wavuti. Hii ni muhimu kuhakikisha kuwa mpango wa ufuatiliaji unaweza kupokea maombi yako na kupakia data kwa Dropbox. Ninatumia unganisho la ethernet kuhakikisha kuegemea, lakini unganisho la Wi-Fi linapaswa kufanya kazi vizuri pia, wakati pia kuwa na faida ya kuboreshwa kwa usafirishaji. Ikiwa unachagua Wi-Fi, ningependekeza dongle hii ya USB kwa Pi.
Ifuatayo, unganisha kamera yako ya wavuti kwa Pi kwa kuiingiza kwenye moja ya bandari za USB. Wakati maagizo yangu ya webcam ya Advent hayakusema wazi kwamba itafanya kazi na Linux, nilichostahili kufanya ni kuiziba na kuwasha Pi. Hakuna ufungaji zaidi uliohitajika. Kamera nyingine za wavuti zinaweza kutofautiana. Unaweza kuangalia ikiwa kamera yako ya wavuti imeonekana na Linux kwa kutumia amri ifuatayo:
lsusb
Katika picha hapo juu, kamera yangu ya wavuti imeorodheshwa kama '0c45: 6340 Microdia'
Mwishowe, unaweza kuunganisha sensor yako ya joto ya DS18B20 kwa kichwa cha GPIO cha Pi. Ninatumia ubao wangu wa mkate kufanya mchakato wa kuunda mizunguko iwe rahisi, na ninapendekeza ufanye vivyo hivyo, haswa kwani DS18B20 inahitaji kontena la 4.7k kuwekwa kati ya pini zake tatu. Kiunga hiki kinatoa mchoro mzuri wa wiring unaonyesha jinsi ubao wa mkate unaweza kutumiwa kuungana na sensorer hii ya joto.
Ukurasa unaofuata wa mafunzo hapo juu pia inashughulikia hatua zinazohitajika kusoma data kutoka DS18B20, na kukuonyesha jinsi ya kuangalia kuwa inafanya kazi. Ni muhimu kutekeleza hatua hizi za usanidi kabla ya kutumia DS18B20 kwa mradi huu. Pia tutajumuisha sampuli ya hati ya chatu kutoka kwa mafunzo kwenye programu yetu ya ufuatiliaji, kwa hivyo unaweza kutaka kuwa na skim haraka juu ya nambari hii.
Tafadhali pia kumbuka nambari yako ya kipekee ya DS18B20. Ni nambari inayoanza na '28 - 'ambayo unapata wakati wa mafunzo ya usanidi. Utahitaji kuiingiza kwenye programu inayokuja ya Python kuiruhusu isome katika hali ya joto.
Hatua ya 2: Sanidi Dropbox
Ili Pi yako iunganishwe na Dropbox, unahitaji kuanzisha programu mpya ya Dropbox. Hii itakupa maelezo yanayohitajika kwa Pi yako kutekeleza usimamizi wa faili mkondoni ukitumia Python. Kwa kudhani umeunda akaunti ya Dropbox na umeingia, unaweza kuunda programu mpya kwa kutumia chaguo la menyu ya 'Wasanidi Programu'. Tazama picha hapo juu kwa muhtasari wa hatua muhimu.
Ndani ya menyu ya 'Wasanidi Programu, chagua' Programu Zangu ', kisha bonyeza kitufe cha' Unda programu '. Ili kujaza fomu inayosababishwa, chagua 'Dropbox API' ikifuatiwa na 'Folda ya App'. Mwishowe, unaweza kuchagua jina la kipekee kwa programu yako ndani ya Dropbox. Bonyeza 'Unda programu'.
Kisha utapelekwa kwenye ukurasa wa mipangilio ya programu yako ndani ya Dropbox. Kuna jambo moja tu zaidi unahitaji kufanya hapa - jijengee Ishara ya Ufikiaji. Ili kufanya hivyo, nenda chini kwenye sehemu ya 'OAuth 2' na chini ya 'Teni ya ufikiaji iliyotengenezwa', bonyeza kitufe cha 'Tengeneza'.
Hii itawasilisha kwa kamba ndefu ya herufi ambazo zinahitajika kufikia akaunti yako ya Dropbox ukitumia Python. Andika muhtasari wa Hati hii ya Ufikiaji kwani utahitaji kutaja baadaye katika nambari yako. Ukipoteza ishara, unaweza kurudi kwenye mipangilio ya programu yako kwa kubofya 'Programu Zangu' katika sehemu ya Waendelezaji wa Dropbox na utoe ishara mpya.
Unaweza kuacha mipangilio mingine ilivyo. Ili kudhibitisha kuwa programu yako imeunda folda muhimu kwenye akaunti yako ya Dropbox, nenda kwenye ukurasa wako wa kuhifadhi na utafute folda ya 'Programu'. Ndani ya folda hii inapaswa kuwa folda ndogo na jina ulilochagua kwa programu yako mpya. Hapa ndipo faili zote za mfumo wako wa ufuatiliaji zitawekwa.
Hatua ya 3: Kuandaa kabrasha lako la programu ya Dropbox
Mara tu unapoweka programu yako ya Dropbox, ni wakati wa kufikiria ni jinsi gani utatumia folda inayosababisha kwenye akaunti yako ya Dropbox kuingiliana na Pi yako. Hii imekamilika kwa urahisi kabisa. Hati ya Python ambayo itaendesha kwenye Pi itatumia seti ya amri kutoka kwa Dropbox API kutafuta na kurekebisha majina ya faili tupu, zisizo na ugani kwenye folda yako ya programu. Tutaita faili hizi 'faili za parameta' kwani kila moja itakuruhusu kudhibiti hali tofauti ya tabia ya mfumo wa ufuatiliaji. Picha hapo juu inaonyesha faili nne za parameta ambazo zinahitaji kuwapo kwenye folda yako ya programu ya Dropbox kwa mradi huu. Kuunda ni rahisi:
Kuanzia folda yako ya programu tupu kabisa, fungua programu ya kuhariri maandishi kwenye kompyuta yako. Wakati hii inaweza kufanywa kwa kutumia Pi, nimeona ni rahisi kutumia kompyuta yangu ndogo ya Windows kwa awamu hii ya usanidi. Mara tu kihariri cha maandishi kikiwa wazi (nilitumia Notepad kwenye Windows 7), unachohitaji kufanya ni kuhifadhi faili tupu kabisa ya maandishi mahali popote kwenye kompyuta yako. Kama mfano wetu wa kwanza, tutaunda parameter ya kwanza kwenye picha ya kichwa. Taja faili 'kuchelewesha = 10' unapoihifadhi.
Ili kurudia, sasa unapaswa kuwa na faili tupu ya maandishi iliyohifadhiwa kwenye kompyuta yako na jina 'delay = 10'. Faili hiyo pia itakuwa na kiendelezi cha '. Txt' ambacho kinaweza au kisionekane.
Hatua inayofuata ni kupakia faili hii kwenye folda yako ya programu ya Dropbox. Hii ni kama upakiaji mwingine wowote wa Dropbox. Nenda tu kwenye folda ya programu yako na ubonyeze 'Pakia' na uchague faili yako ya 'delay = 10'.
Wakati faili hii imepakia, lazima uondoe kiendelezi cha '.txt' ambacho sasa kinapaswa kuonekana katika jina la faili. Ili kufanya hivyo, bonyeza tu faili na uchague 'Badili jina'. Ondoa sehemu ya '.txt' ya jina la faili. Sasa unapaswa kushoto na faili inayoitwa 'kuchelewesha = 10' bila kiendelezi cha faili, kama inavyoonyeshwa kwenye picha ya kichwa.
Faili ya parameter ya "kuchelewesha" ni moja kati ya nne ambayo itatumika na mpango wa ufuatiliaji. Ili kuunda zingine, unaweza kunakili na kubadilisha jina la faili yako ya "kuchelewesha" kwa kubofya kulia. Ukishaunda nakala tatu, wape jina kama inavyoonyeshwa kwenye picha ya kichwa ili folda ya programu yako ifanane na ile iliyoonyeshwa mwanzoni mwa hatua hii.
Hatua ya 4: Kuanza na Nambari
Kama ilivyojadiliwa, msingi wa mfumo wetu wa ufuatiliaji utakuwa na hati moja ya Python ambayo itaunganisha na Dropbox. Ili programu ya ufuatiliaji iwe hai, hati hii italazimika kuendeshwa nyuma kwenye Pi yako. Nadhani imeelezewa kwa usahihi zaidi kama hati ya 'daemon', ikimaanisha unaweza kuiweka tu na kusahau juu yake. Hati imeambatishwa na hatua hii, kwa hivyo hakuna maana ya kurudia nambari hapa. Sasa inaweza kuwa wakati mzuri wa kuipakua na kujitambulisha nayo.
Kabla ya kuweza kuendesha hati, ni muhimu kuhakikisha kuwa una maktaba ya Python inayofaa iliyosanikishwa. Zile unayohitaji zimeorodheshwa juu ya hati iliyoambatanishwa. Wao ni:
kuagiza dropbox
kuagiza pygame.camera kuagiza os muda wa kuagiza
Ufungaji wa Python kwenye Pi yangu tayari ulijumuisha pygame, os na wakati kwa hivyo moja tu niliyopaswa kusanikisha ilikuwa Dropbox. Nilifanya hivi kwa kutumia maagizo yao rahisi sana ya ufungaji na bomba.
Mara tu maktaba yako yamewekwa, utahitaji kuhariri mistari miwili ya juu ya hati iliyoambatanishwa ili kufanana na Toni ya Upataji wa Dropbox na kitambulisho chako cha kipekee cha sensa ya joto ya DS18B20. Hizi ndio mistari miwili ambayo inahitaji kuhaririwa:
APP_ACCESS_TOKEN = '**********'
THERMOMETER_FILE = '/ sys / basi / w1 / vifaa / 28 - ********** / w1_slave'
Badilisha tu **** s na maadili sahihi. Kwa wakati huu, uko tayari kuanza kutumia programu ya ufuatiliaji! Badala ya kurukaruka tu, ningependekeza uendelee hatua inayofuata kwa muhtasari wa jumla wa nambari.
MUHIMU: Unapoendesha hati hii, unataka iendeshwe nyuma ili a) uweze kuendelea kutumia Pi, na b) unapofunga kikao chako cha SSH, hati itaendelea kuendeshwa. Hii ndio amri ninayotumia wakati ninaendesha hati:
nohup chatu DropCamTherm.py &
Hii inatimiza mambo matatu: Itatumia hati ('python DropCamTherm.py'), itarudisha udhibiti kwa laini ya amri mara moja ili uweze kuendelea kutumia Pi ('&'), na itatuma matokeo ya Python ambayo kawaida huonyeshwa kwenye mstari wa amri kwenye faili inayoitwa 'nohup.out'. Hii inaweza kusomwa kwa kutumia kihariri cha maandishi ya Linux (ninayopenda zaidi ni nano), na itaundwa kiatomati kwenye saraka ambayo maandishi yanaendeshwa.
Hatua ya 5: Kuchimba kwa undani zaidi kwenye Nambari
Unapofungua hati, utagundua kuwa ina kazi tatu pamoja na kificho cha nambari ambacho hutekeleza kazi hizi wakati hati inaendeshwa. Kazi hutumia Dropbox API na kufikia faili ya kumbukumbu ya joto ya DS18B20 ili kusikiliza maagizo kutoka kwa Dropbox na kupakia usomaji wa hivi karibuni wa joto. Hapa chini kuna muhtasari wa kazi zinafanya kazi gani, na jinsi zinavyotumika kufanya mfumo wa ufuatiliaji ufanye kazi:
- param_paramu ():
Kazi hii inaonyesha kusudi la faili za kiolezo za Dropbox tulizounda katika hatua ya 3. Inatafuta folda ya programu ya Dropbox kwa faili iliyo na maandishi 'param ='. Halafu inachukua maandishi baada ya '=' na inajaribu kuibadilisha kuwa nambari kamili. Unaweza kuona kwamba hii inatuwezesha kudhibiti programu kwa kuongeza nambari zinazofaa hadi mwisho wa faili za parameta kwa mikono. Hatua inayofuata itakuwa na mwongozo mfupi wa maagizo unaokuonyesha jinsi ya kutumia kila faili ya parameta kudhibiti hali ya programu.
- seti ya parameter ():
Kazi hii inaruhusu programu kubadilisha jina la faili ya parameta kutoka ndani ya Python. Inafanya hivi mara kadhaa, haswa kupunguza hitaji la kupeana jina tena kwa faili.
- set_latest_temp ():
Kazi hii inafanya matumizi ya set_parameter () kupakia halijoto ya hivi karibuni kwenye folda ya programu ya Dropbox kwa kuiongezea kwenye faili ya parameter ya "joto". Kazi inasoma joto la hivi karibuni kutoka kwa faili ya logi ya DS18B20 (ambayo inapatikana kwenye Linux kwenye njia iliyoelekezwa na ubadilishaji wa THERMOMETER_FILE).
Sehemu ya mwisho ya programu hiyo ina nambari ambayo itatekelezwa wakati hati inaendeshwa. Baada ya hatua kadhaa za usanidi zinazohitajika kwa sensorer ya DS18B20, inafungua kikao cha Dropbox kwa kutumia Token yako ya Ufikiaji na hutumia pygame kutafuta kamera yako ya wavuti. Ikiwa kamera ya wavuti inapatikana, itaingia kitanzi ambapo inatumia poll_parameter () kutoa habari kutoka kwa Dropbox na kuifanyia kazi.
MUHIMU: Utagundua mstari ufuatao wa nambari:
kamera = pygame.camera. Camera (cam_list [0], (864, 480))
… Hii inajaribu kuunda kiolesura cha kamera kinachoweza kutumika kutoka kwa kamera ya wavuti ya kwanza ambayo pygame hugundua. Azimio linaweza kuhitaji kubadilishwa ili lilingane na kamera yako ya wavuti. Jaribu na maadili kadhaa ili upate kinachofanya kazi vizuri.
Hatua ya 6: Kutumia Faili za Kigezo cha Dropbox
Kwa hivyo sasa unapaswa kuwa na hati inayofanya kazi ambayo, ikitumiwa kwa kutumia maagizo kutoka hatua ya 4, itaruhusu Pi yako kuanza kufuatilia folda ya programu kwa pembejeo zako. Kwenye kukimbia kwako kwa kwanza, folda ya programu inapaswa kuwa na faili zifuatazo za parameta:
kuchelewesha = 10
programu ya kutoka = picha 0 ombi = joto 0 = 0
Kuingiliana na programu hiyo kunapatikana kwa kubadilisha jina kwa mikono faili za kiolezo kupitia Dropbox. Ili kufanya hivyo, bonyeza-click moja ya faili na uchague 'rename'. Kila faili ya parameta ina kazi tofauti:
- kuchelewesha:
Faili hii inaambia mpango wa ufuatiliaji ni sekunde ngapi kusubiri kati ya kila upunguzaji wa kitanzi cha ufuatiliaji. Wakati najua kuwa sitawasiliana sana na programu, ninaiweka kwa 60 au 120. Wakati najua kuwa ninataka kuomba data kutoka kwa Pi mara nyingi, niliiweka hadi 10.
- mpango wa kutoka:
Hii inapaswa kuwekwa kwa 1 au 0. Ikiwa programu itagundua kuwa imewekwa kwa 1, itamaliza hati. Ukiiweka 1 na hati itatoka, utahitaji kuingia kwenye Pi tena ili kuihifadhi tena. Kigezo hiki kipo ili uweze kumaliza kwa uzuri mpango wa ufuatiliaji wakati hauitaji tena kuendeshwa (kwa mfano, ikiwa umerudi nyumbani na hautaki tena kufuatilia kamera ya wavuti kwa mbali).
ombi la picha:
Labda hii ni parameter muhimu zaidi. Hii inapaswa kuwekwa kwa 1 au 0. Ikiwa programu itagundua kuwa imewekwa kwa 1, itauliza picha kutoka kwa kamera ya wavuti na kuipakia kwenye folda ya programu (na kichwa 'image.jpg'). Ikiwa 'image.jpg' nyingine ipo, itaibadilisha.
- joto:
Huu ndio usomaji wa joto wa DS18B20 uliowekwa na set_latest_temp () kazi. Haupaswi kamwe kuhariri faili hii ya kigezo - imewekwa kiatomati na programu.
Kumbuka kuwa ikiwa utaweka 'exitprogram' au 'imagerequest' kwa 1, programu hiyo itawarudisha moja kwa moja kwa 0 kabla ya kutekeleza nambari inayofaa. Hii ni kwa urahisi. Unaweza pia kugundua kuwa nambari hiyo ina "vizuizi" vingi na "isipokuwa" vinavyozunguka kazi nyingi muhimu. Hii ni kuhakikisha kuwa hati hiyo haitatupa ubaguzi (na kwa hivyo itaacha kufanya kazi) ikiwa kitu kitaenda sawa (kama shida ya muunganisho wa mtandao kuzuia ufikiaji wa Dropbox).
Hatua ya 7: Hitimisho
Mradi huu umewasilisha njia ya kudhibiti Raspberry Pi kwa kutumia Python na Dropbox. Wakati vifaa vinavyotumiwa katika mradi huu ni sensorer ya joto na kamera ya wavuti ya USB, kuna matumizi mengine mengi ya njia hii ya kudhibiti Pi. Kwa kweli, sehemu yoyote ya vifaa ambayo inapatikana kupitia GPIO inaweza kudhibitiwa kwa kutumia muundo sawa wa programu, na kuufanya mfumo uwe rahisi sana kupanuka.
Kama hatua inayofuata, unaweza pia kutumia maktaba ya GUI kama Tkinter pamoja na Dropbox API kuunda programu ya mteja ambayo itakuruhusu kurekebisha faili za parameta bila hata kuhitaji kuingia kwenye Dropbox.
Natumahi kuwa mafunzo haya yamekuwa wazi, na ikiwa una maswali yoyote au ungependa nifafanue chochote, tafadhali tuma maoni!
Ilipendekeza:
Ufuatiliaji wa Nguo / Ufuatiliaji wa Kavu na ESP8266 & Sensor ya Kuongeza kasi: Hatua 6
Ufuatiliaji wa Nguo / Kavu ya Ufuatiliaji na ESP8266 & Sensor ya Kuongeza kasi: Washa nguo / dryer iko kwenye basement, na wewe, kama sheria, weka lundo la nguo ndani yake na baada ya hapo, unashiriki katika kazi yako nyingine ya nyumba. Unapuuza mavazi ambayo yalibaki yamejaa na kufyonza kwenye basement kwenye mashine yako
Kamera ya IP Kutumia Raspberry Pi Zero (Sehemu ya 1 ya Ufuatiliaji wa Nyumbani): Hatua 5
Kamera ya IP Kutumia Raspberry Pi Zero (Sehemu ya Ufuatiliaji wa Nyumbani 1): Hii ndio chapisho la kwanza kwenye safu mpya ya mini, ambapo tunaunda mfumo wa ufuatiliaji wa nyumba, haswa tukitumia Raspberry Pis. Katika chapisho hili, tunatumia sifuri ya Raspberry PI na kuunda kamera ya IP inayotiririsha video juu ya RTSP. Video ya pato ni ya juu zaidi q
Ufuatiliaji wa faragha umechukuliwa kutoka kwa Ufuatiliaji wa zamani wa LCD: Hatua 7 (na Picha)
Ufuatiliaji wa faragha umedukuliwa Kutoka kwa Ufuatiliaji wa Zamani wa LCD: Mwishowe unaweza kufanya kitu na mfuatiliaji huyo wa zamani wa LCD ulio na karakana. Unaweza kuibadilisha kuwa mfuatiliaji wa faragha! Inaonekana kuwa nyeupe kwa kila mtu isipokuwa wewe, kwa sababu umevaa " uchawi " glasi! Unachotakiwa kuwa nacho ni pa
RASPBERRY PI ALEXA NYUMBANI NYUMBANI: 4 Hatua
RASPBERRY PI ALEXA HOME AUTOMATION: Hii inayoweza kufundisha inashughulikia dhana za Amazon alexa eho dot, Raspberry pi Gpio kudhibiti kwa kutumia alexa.Tatizo kuu wakati wa kushughulikia alexa ni kila wakati unahitaji kuongeza ujuzi katika akaunti yako ya aws ambayo inahitaji muda mwingi, kwa kuanzisha c
Ufuatiliaji wa Joto la Chumba cha Raspberry Pi na Ufuatiliaji wa Picha ya Gnuplot na Uwezo wa Tahadhari ya Barua pepe: Hatua 7
Ufuatiliaji wa Chumba cha Raspberry Pi Udhibiti wa Joto na Pato la Picha ya Gnuplot na Uwezo wa Tahadhari ya Barua Pepe: Pale ninapofanya kazi, kuna chumba muhimu sana ambacho kina kompyuta nyingi. Joto la kawaida la chumba hiki lazima liwe baridi sana ili kuongeza utendaji wa mifumo hii. Niliulizwa kuja na mfumo wa ufuatiliaji ambao una uwezo wa