Sisukord:

Raspberry Pi koduseire Dropboxiga: 7 sammu
Raspberry Pi koduseire Dropboxiga: 7 sammu

Video: Raspberry Pi koduseire Dropboxiga: 7 sammu

Video: Raspberry Pi koduseire Dropboxiga: 7 sammu
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, November
Anonim
Raspberry Pi koduseire Dropboxiga
Raspberry Pi koduseire Dropboxiga

See õpetus näitab teile, kuidas Raspberry Pi, veebikaamera, mõne elektrilise komponendi ja oma Dropboxi konto abil luua lihtne ja laiendatav kodu jälgimissüsteem. Valmis süsteem võimaldab teil oma veebikaamerast pilte eemalt taotleda ja vaadata, kasutades samal ajal ka riiulil olevat digitaalset temperatuuriandurit, et jälgida oma kodu temperatuuri Interneti kaudu, kasutades kõike Dropboxi.

See oli esimene projekt, mille peale Raspberry Pi 2 mudeli B saamist mõtlesin. Minu eesmärk oli luua Pythoni-põhine jälgimissüsteem, mida saaksin Interneti kaudu kontrollida ja andmeid vastu võtta. Kuigi selleks on palju erinevaid viise, otsustasin kasutada piibli ja Interneti vahelise liidesena Dropboxi, kuna neil on lihtne Pythoni API, mis võimaldab mõne rea rida kasutades teatud kaustades faile üles laadida, muuta ja otsida koodi.

Samuti soovisin, et minu lahendus oleks kerge ja lihtne ning väldiks minu Pi segamist tarbetute raamatukogude ja programmidega. Selle projekti tarkvarakomponent koosneb ühest Pythoni skriptist, mis tähendab, et saate oma Pi tavapäraselt kasutada ka siis, kui jälgimissüsteem töötab.

Selle projekti jaoks vajate:

Vaarika Pi. Iga mudel peaks toimima, ma kasutasin kõik-ühes stardikomplekti, kuid võib-olla vajate ainult keskseadet

USB -veebikaamera. Ostsin odava ADVENT AWC72015, mis juhtus hästi toimima. Võib olla hea mõte tutvuda selle veebikaamerate loendiga, mis on Pi -ga töötanud. Pange tähele, et mõned vajavad toitega USB -jaoturit (minu oma töötab hästi ka ilma)

Dropboxi konto. Ma kasutan oma tavalist tasuta kontot, kuna see projekt ei nõua palju salvestusruumi

DS18B20 digitaalne temperatuuriandur ja 4,7 k takisti. Anduri saate siit osta ja võib -olla tasub haarata kaasa ka erinevate takistite pakk

Mõned ahelate ehitamise tarvikud. Ahela loomise protsessi võimalikult lihtsaks tegemiseks soovitaksin kasutada leivaplaati ja mõnda hüppajakaablit

[Kui otsustate mõnda neist toodetest osta, oleksin väga tänulik, kui pääsete loeteludele juurde ülaltoodud linkide abil - nii saan väikese osa kasumist ilma lisakuludeta!]

Samm: seadistage riistvara

Seadistage riistvara
Seadistage riistvara

Esimene samm on tagada, et teie Pi ja sellega seotud välisseadmed oleksid seadistatud.

Esiteks ühendage oma Pi Internetiga. See on vajalik tagamaks, et jälgimisprogramm saaks teie taotlusi vastu võtta ja andmeid Dropboxi üles laadida. Usaldusväärsuse tagamiseks kasutan Etherneti ühendust, kuid ka WiFi-ühendus peaks hästi toimima, samas peaks selle eeliseks olema ka parem teisaldatavus. Kui valite WiFi, soovitaksin seda USB-donglit Pi jaoks.

Seejärel ühendage oma veebikaamera Pi -ga, ühendades selle ühe USB -pordiga. Kuigi minu advendiaja veebikaamera juhistes ei olnud selgesõnaliselt öeldud, et see töötab Linuxiga, pidin ma selle vaid ühendama ja Pi käivitama. Edasist paigaldamist polnud vaja. Teised veebikaamerad võivad erineda. Saate kontrollida, kas Linux on teie veebikaamera tuvastanud, kasutades järgmist käsku:

lsusb

Ülaltoodud pildil on minu veebikaamera loetletud kui "0c45: 6340 Microdia"

Lõpuks saate ühendada oma DS18B20 temperatuurianduri Pi GPIO päisega. Ma kasutan oma leivaplaati vooluahelate loomise hõlbustamiseks ja soovitan teil sama teha, eriti kuna DS18B20 nõuab, et kahe kolmest tihvti vahele asetataks 4,7 k takisti. Sellel lingil on hea ühendusskeem, mis näitab, kuidas saab selle temperatuurianduriga ühendamiseks kasutada leivaplaati.

Ülaltoodud õpetuse järgmine leht hõlmab ka toiminguid, mida on vaja andmete lugemiseks DS18B20 -st, ja näitab, kuidas kontrollida, kas see töötab. Enne seadme DS18B20 kasutamist selle projekti jaoks on oluline need seadistamisetapid läbi viia. Samuti integreerime juhendajast pärit Pythoni skripti näidisprogrammi oma jälgimisprogrammi, nii et võiksite selle koodi kiiresti üle vaadata.

Pange tähele ka oma DS18B20 unikaalset numbrit. Seadistusõpetuse käigus kohtate numbrit, mis algab '28-'. Peate selle sisestama eelseisvasse Pythoni programmi, et see saaks temperatuuri lugeda.

Samm: seadistage Dropbox

Dropboxi seadistamine
Dropboxi seadistamine

Selleks, et teie Pi saaks Dropboxiga liidestada, peate seadistama uue Dropboxi rakenduse. See annab teile üksikasjad, mida vajate, et teie Pi saaks Pythoni abil veebis failihaldust teostada. Eeldades, et olete loonud Dropboxi konto ja sisse loginud, saate uue rakenduse luua menüüvaliku „Arendajad” abil. Oluliste sammude kokkuvõtteks vaadake ülaltoodud pilti.

Valige menüüst „Arendajad” „Minu rakendused” ja vajutage nuppu „Loo rakendus”. Saadud vormi täitmiseks valige „Dropbox API” ja seejärel „Rakenduste kaust”. Lõpuks saate Dropboxis valida oma rakendusele unikaalse nime. Klõpsake „Loo rakendus“.

Seejärel suunatakse teid Dropboxi rakenduse seadete lehele. Siin on veel üks asi, mida peate tegema - genereerige endale juurdepääsuluba. Selleks kerige alla jaotisse „OAuth 2” ja klõpsake jaotises „Loodud juurdepääsuluba” nuppu „Loo”.

See esitab teile pika tähemärkide rea, mida on vaja teie Dropboxi kontole Pythoni abil juurde pääsemiseks. Märkige see juurdepääsuluba üles, kuna peate selle hiljem oma koodis täpsustama. Kui kaotate märgi, saate navigeerida tagasi oma rakenduse seadete juurde, klõpsates Dropboxi jaotises „Arendajad” valikul „Minu rakendused” ja genereerides uue märgi.

Teised seaded saate jätta nii, nagu need on. Kinnitamaks, et teie rakendus on teie Dropboxi kontole vajalikud kaustad loonud, liikuge oma salvestusruumi avalehele ja otsige kausta Rakendused. Selles kaustas peaks olema alamkaust uue rakenduse jaoks valitud nimega. Siia paigutatakse kõik teie jälgimissüsteemi failid.

Samm: Dropboxi rakenduse kausta ettevalmistamine

Dropboxi rakenduse kausta ettevalmistamine
Dropboxi rakenduse kausta ettevalmistamine

Kui olete Dropboxi rakenduse seadistanud, on aeg mõelda, kuidas kasutate oma Dropboxi konto kausta oma Pi -ga suhtlemiseks. See saavutatakse üsna lihtsalt. Pi peal käivitatav Pythoni skript kasutab Dropboxi API käskude alamhulka, et otsida ja muuta teie rakenduste kaustas olevate tühjade laiendita failide nimesid. Nimetame neid faile parameetrifailideks, kuna igaüks neist võimaldab teil kontrollida järelevalvesüsteemi käitumise erinevat aspekti. Ülaltoodud pilt näitab nelja parameetri faili, mis peavad selle projekti jaoks teie Dropboxi rakenduse kaustas olema. Nende loomine on lihtne:

Alustades oma rakenduste kaustast täiesti tühja, avage oma arvutis tekstiredaktoriprogramm. Kuigi seda sai teha Pi abil, leidsin, et selle seadistamisetapi jaoks on Windowsi sülearvuti kasutamine lihtsam. Kui tekstiredaktor on avatud (ma kasutasin Windows 7 -s Notepadit), pole vaja teha muud, kui salvestada täiesti tühi tekstifail oma arvutisse. Esimese näitena loome päise pildil esimese parameetri. Andke failile salvestamisel nimi „delay = 10”.

Kokkuvõtteks peaksite nüüd arvutisse salvestama tühja tekstifaili nimega „delay = 10”. Failil on ka laiend.txt, mis võib olla nähtav või mitte.

Järgmine samm on selle faili üleslaadimine rakenduse Dropboxi kausta. See on täpselt nagu iga teine Dropboxi üleslaadimine. Lihtsalt navigeerige oma rakenduse kausta ja klõpsake nuppu „Laadi üles” ning valige fail „delay = 10”.

Kui see fail on üles laaditud, peate eemaldama laiendi.txt, mis peaks nüüd failinimes olema nähtav. Selleks paremklõpsake faili ja valige „Nimeta ümber”. Eemaldage failinime osa.txt. Nüüd peaks teile jääma fail nimega „delay = 10” ilma faililaiendita, nagu on näidatud päise pildil.

Parameetrite fail „delay” on üks neljast, mida seireprogramm kasutab. Teiste loomiseks saate oma viivitusfaili lihtsalt kopeerida ja ümber nimetada, paremklõpsates seda. Kui olete loonud kolm koopiat, pange neile nimi, nagu on näidatud päise pildil, nii et teie rakenduse kaust oleks identne selle sammu alguses kuvatud kaustaga.

Samm 4: Koodiga alustamine

Nagu arutatud, koosneb meie jälgimissüsteemi tuum ühest Pythoni skriptist, mis liidetakse Dropboxiga. Et jälgimisprogramm oleks aktiivne, peab see skript teie Pi peal taustal töötama. Ma arvan, et seda on kõige täpsemalt kirjeldatud kui "deemoni" skripti, mis tähendab, et saate selle lihtsalt tööle panna ja selle unustada. Skript on sellele sammule lisatud, seega pole mõtet koodi siin korrata. Nüüd võib olla hea aeg see alla laadida ja sellega tutvuda.

Enne skripti käivitamist on oluline veenduda, et olete installinud asjakohased Pythoni teegid. Vajalikud on loetletud manustatud skripti ülaosas. Nemad on:

impordi dropbox

import pygame.camera import os importimise aeg

Pythoni installimine minu Pi -sse sisaldas juba pygame'i, osi ja aega, nii et ainus, mille pidin installima, oli Dropbox. Ma tegin seda, kasutades nende väga lihtsaid pip -i paigaldusjuhiseid.

Kui teie teegid on seadistatud, peate lisatud skripti kahte ülemist rida muutma, et need vastaksid teie Dropboxi juurdepääsulubale ja teie DS18B20 temperatuurianduri kordumatule identifikaatorile. Need on kaks rida, mida tuleb muuta:

APP_ACCESS_TOKEN = '**********'

THERMOMETER_FILE = '/sys/bus/w1/devices/28-**********/w1_slave'

Lihtsalt asendage tähed **** õigete väärtustega. Siinkohal olete tegelikult valmis kasutama seireprogrammi! Lihtsalt sissehüppamise asemel soovitaksin koodi üldise ülevaate saamiseks jätkata järgmise sammuga.

TÄHTIS: selle skripti käivitamisel soovite, et see töötaks taustal, nii et a) saate jätkata Pi kasutamist ja b) pärast SSH -seansi sulgemist jätkatakse skripti käivitamist. Seda käsku kasutan skripti käivitamisel:

nohup python DropCamTherm.py &

Sellega saavutatakse kolm asja: see käivitab skripti ('python DropCamTherm.py'), tagastab juhtimise kohe käsureale, et saaksite jätkata Pi ('&') kasutamist, ning saadab Pythoni väljundid, mis tavaliselt kuvatakse käsurealt faili nimega "nohup.out". Seda saab lugeda Linuxi tekstiredaktori abil (minu lemmik on nano) ja see luuakse automaatselt kataloogi, kust skripti käivitatakse.

Samm: süvendage koodi sügavamalt

Skripti avades märkate, et see koosneb kolmest funktsioonist koos koodiplokiga, mis neid funktsioone skripti käivitamisel rakendab. Funktsioonid kasutavad Dropboxi API -d ja pääsevad juurde DS18B20 temperatuurilogi faili, et kuulata Dropboxi käske ja laadida üles uusim temperatuurinäit. Allpool on ülevaade funktsioonidest ja nende kasutamisest seiresüsteemi toimimiseks:

- poll_parameter ():

See funktsioon näitab 3. etapis loodud Dropboxi parameetrifailide eesmärki. See otsib rakenduse Dropbox kaustast faili, mis sisaldab teksti „param =”. Seejärel ekstraheerib see teksti pärast "=" ja proovib teisendada selle täisarvuks. Näete, et see võimaldab meil programmi juhtida, lisades parameetrifailide lõppu käsitsi asjakohased numbrid. Järgmine samm sisaldab lühikest kasutusjuhendit, mis näitab teile, kuidas kasutada iga parameetrifaili programmi aspekti juhtimiseks.

- set_parameter ():

See funktsioon võimaldab programmil Pythoni parameetrifaili ümber nimetada. Seda tehakse paaril korral, peamiselt selleks, et vähendada vajadust failide liigse käsitsi ümbernimetamise järele.

- set_latest_temp ():

See funktsioon kasutab set_parameter (), et laadida uusim temperatuur Dropboxi rakenduse kausta, lisades selle parameetri faili "temperatuur". Funktsioon loeb DS18B20 logifailist (mis on Linuxis saadaval muutuja THERMOMETER_FILE) viimast temperatuuri.

Programmi viimane osa sisaldab koodi, mis käivitatakse skripti käivitamisel. Pärast mõningaid seadistamisetappe, mida DS18B20 andur vajab, avab see Dropboxi seansi, kasutades teie juurdepääsuluba, ja kasutab veebikaamera otsimiseks pügamängu. Kui veebikaamera leitakse, siseneb see silmusesse, kus kasutab poll_parameter () Dropboxist teabe hankimiseks ja selle alusel toimimiseks.

TÄHTIS: märkate järgmist koodirida:

nukk = pygame.camera. Camera (cam_list [0], (864, 480))

… See üritab luua kasutatava kaamera liidese esimesest veebikaamerast, mille pygame tuvastab. Võimalik, et eraldusvõimet tuleb muuta vastavalt teie veebikaamerale. Katsetage paljude väärtustega, et leida kõige paremini toimiv.

Samm: Dropboxi parameetrite failide kasutamine

Nüüd peaks teil olema toimiv skript, mis käivitab 4. sammu juhiseid kasutades Pi -l teie sisendite rakenduste kausta jälgima. Esmakordsel käivitamisel peaks rakenduste kaust sisaldama järgmisi parameetrite faile:

viivitus = 10

exitprogram = 0 imagerequest = 0 temperatuur = 0

Programmiga suhtlemine saavutatakse parameetrifailide käsitsi ümbernimetamisega Dropboxi kaudu. Selleks paremklõpsake ühte failidest ja valige „ümbernimetamine”. Igal parameetrifailil on erinev funktsioon:

- viivitus:

See fail ütleb jälgimisprogrammile, mitu sekundit tuleb oodata iga jälgimistsükli iteratsiooni vahel. Kui ma tean, et ma ei suhtle programmiga palju, seadsin selle väärtuseks 60 või 120. Kui ma tean, et tahan Pi -lt sageli andmeid küsida, seadsin selle väärtuseks 10.

- väljumisprogramm:

Selle väärtuseks tuleks seada 1 või 0. Kui programm tuvastab, et see on seatud väärtusele 1, lõpetab see skripti. Kui määrate selle väärtuseks 1 ja skript väljub, peate selle varundamise alustamiseks uuesti Pi -sse sisse logima. See parameeter eksisteerib selleks, et saaksite seireprogrammi ilusti lõpetada, kui te seda enam ei vaja (näiteks kui olete koju naasnud ega soovi enam veebikaamerat eemalt jälgida).

- pildi taotlus:

See on võib -olla kõige olulisem parameeter. Selle väärtuseks tuleks seada 1 või 0. Kui programm tuvastab, et see on seatud väärtusele 1, küsib ta veebikaamerast pilti ja laadib selle üles rakenduste kausta (pealkirjaga „image.jpg”). Kui on olemas veel üks „image.jpg”, kirjutab see selle üle.

- temperatuur:

See on DS18B20 temperatuuri näit, mille määrab funktsioon set_latest_temp (). Te ei pea seda parameetrifaili kunagi muutma - programm määrab selle automaatselt.

Pange tähele, et kui määrate 'exitprogram' või 'imagerequest' väärtuseks 1, tagastab programm need enne vastava koodi käivitamist automaatselt nulli. See on mugavuse huvides. Samuti võite märgata, et kood sisaldab palju proovimis- ja välja arvatud plokke, mis ümbritsevad paljusid olulisi funktsioone. Selle eesmärk on tagada, et skript ei teeks erandeid (ja seega ei töötaks), kui midagi läheb valesti (näiteks Interneti -ühenduse probleem, mis takistab juurdepääsu Dropboxile).

Samm 7: Järeldus

See projekt on esitanud viisi Raspberry Pi juhtimiseks Pythoni ja Dropboxi abil. Kuigi selles projektis kasutatav riistvara on temperatuuriandur ja USB -veebikaamera, on selle Pi juhtimismeetodi jaoks palju muid rakendusi. Tegelikult saab mis tahes riistvarakomponenti, millele on juurdepääs GPIO kaudu, juhtida sarnase programmistruktuuri abil, muutes süsteemi väga lihtsaks.

Järgmise sammuna võiksite kasutada ka graafilise kasutajaliidese raamatukogu, näiteks Tkinterit koos Dropboxi API -ga, et luua kliendiprogramm, mis võimaldaks teil parameetrifaile muuta ilma Dropboxi sisse logimata.

Loodan, et see õpetus on selge ja kui teil on küsimusi või soovite, et ma midagi selgitaksin, postitage kommentaar!

Soovitan: