Përmbajtje:

Monitorimi i Raspberry Pi në shtëpi me Dropbox: 7 hapa
Monitorimi i Raspberry Pi në shtëpi me Dropbox: 7 hapa

Video: Monitorimi i Raspberry Pi në shtëpi me Dropbox: 7 hapa

Video: Monitorimi i Raspberry Pi në shtëpi me Dropbox: 7 hapa
Video: LEGO STAR WARS TCS BE WITH YOU THE FORCE MAY 2024, Nëntor
Anonim
Monitorimi i Raspberry Pi në shtëpi me Dropbox
Monitorimi i Raspberry Pi në shtëpi me Dropbox

Ky tutorial do t'ju tregojë se si të krijoni një sistem të thjeshtë dhe të zgjerueshëm të monitorimit të shtëpisë duke përdorur një Raspberry Pi, një kamer në internet, disa përbërës elektrikë dhe llogarinë tuaj Dropbox. Sistemi i përfunduar do t'ju lejojë të kërkoni dhe shikoni nga distanca imazhe nga kamera juaj e internetit, duke përdorur gjithashtu një sensor dixhital të temperaturës jashtë raftit për të monitoruar temperaturën e shtëpisë tuaj në internet, të gjitha duke përdorur Dropbox.

Ky ishte projekti i parë që mendova pasi mora një model Raspberry Pi 2 B. Qëllimi im ishte të krijoja një sistem monitorimi të bazuar në Python, të cilin mund ta kontrolloja dhe të merrja të dhëna nga interneti. Ndërsa ka shumë mënyra të ndryshme për ta bërë këtë, vendosa të përdor Dropbox si ndërfaqe midis Pi dhe internetit pasi ato kanë një API të thjeshtë Python e cila ju lejon të ngarkoni, modifikoni dhe kërkoni për skedarë në dosje të veçanta duke përdorur disa rreshta të kodin.

Unë gjithashtu doja që zgjidhja ime të ishte e lehtë dhe e thjeshtë, dhe të shmangja grumbullimin e Pi tim me biblioteka dhe programe të panevojshme. Komponenti softuer i këtij projekti përbëhet nga një skript i vetëm Python, që do të thotë se ju mund të vazhdoni të përdorni Pi tuaj si normal, edhe kur sistemi i monitorimit po funksionon.

Për këtë projekt do t'ju duhet:

Një mjedër Pi. Çdo model duhet të funksionojë, unë kam përdorur një çantë fillestare të gjitha-në-një, por ndoshta ju keni nevojë vetëm për njësinë qendrore

Një ueb kamera USB. Bleva një ADVENT AWC72015 të lirë, i cili ndodhi që funksionoi mirë. Mund të jetë një ide e mirë të konsultoni këtë listë të kamerave të internetit të cilat janë konfirmuar se punojnë me Pi. Vini re se disa kërkojnë një shpërndarës USB të mundësuar (imi funksionon mirë pa)

Një llogari në Dropbox. Unë përdor llogarinë time standarde falas pasi ky projekt nuk kërkon shumë hapësirë ruajtjeje

Një sensor dixhital i temperaturës DS18B20 dhe një rezistencë 4.7k. Mund të blini sensorin këtu, dhe mund të jetë e vlefshme të kapni edhe një paketë me rezistorë të ndryshëm

Disa pajisje për ndërtimin e qarkut. Unë do të rekomandoja të përdorni një dërrasë buke dhe disa kabllo kërcyes për ta bërë procesin e ndërtimit të qarkut sa më të lehtë të jetë e mundur

[Nëse vendosni të blini ndonjë nga këto produkte, do ta vlerësoja shumë nëse i qaseni listimeve duke përdorur lidhjet e mësipërme - në atë mënyrë, unë marr një pjesë të vogël të fitimeve pa asnjë kosto shtesë për ju!]

Hapi 1: Konfiguroni pajisjen

Vendosni pajisjen
Vendosni pajisjen

Hapi i parë është të siguroni që Pi juaj dhe pajisjet periferike të jenë konfiguruar.

Së pari, lidhni Pi -në tuaj në internet. Kjo është e nevojshme për të siguruar që programi i monitorimit të marrë kërkesat tuaja dhe të ngarkojë të dhëna në Dropbox. Unë përdor një lidhje ethernet për të siguruar besueshmërinë, por një lidhje Wi-Fi gjithashtu duhet të funksionojë mirë, duke pasur përparësinë e përmirësimit të transportueshmërisë. Nëse zgjidhni Wi-Fi, unë do të rekomandoja këtë dongle USB për Pi.

Tjetra, lidhni kamerën tuaj në internet me Pi duke e lidhur atë në një nga portat USB. Ndërsa udhëzimet e kamerës sime të Advent nuk thoshin në mënyrë eksplicite se do të funksiononte me Linux, gjithçka që më duhej të bëja ishte ta lidhja atë dhe të filloja Pi. Asnjë instalim i mëtejshëm nuk ishte i nevojshëm. Kamera të tjera në internet mund të ndryshojnë. Ju mund të kontrolloni nëse kamera juaj e internetit është zbuluar nga Linux duke përdorur komandën e mëposhtme:

lsusb

Në imazhin e mësipërm, kamera ime e internetit është e shënuar si '0c45: 6340 Microdia'

Së fundi, mund ta lidhni sensorin tuaj të temperaturës DS18B20 me kokën GPIO të Pi. Unë përdor tryezën time për ta bërë procesin e krijimit të qarqeve më të lehtë, dhe unë do t'ju rekomandoja të bëni të njëjtën gjë, veçanërisht pasi DS18B20 kërkon që një rezistencë 4.7k të vendoset midis dy prej tre kunjave të tij. Kjo lidhje siguron një diagram të mirë të instalimeve elektrike që tregon se si mund të përdoret një dërrasë buke për t'u lidhur me këtë sensor të temperaturës.

Faqja tjetër e mësimit të mësipërm gjithashtu mbulon hapat e nevojshëm për të lexuar të dhënat nga DS18B20 dhe ju tregon se si të kontrolloni që ai po funksionon. Isshtë e rëndësishme të kryeni këto hapa para se të përdorni DS18B20 për këtë projekt. Ne gjithashtu do të integrojmë shembullin e shkrimit Python nga tutoriali në programin tonë të monitorimit, kështu që ju mund të dëshironi të keni një kontroll të shpejtë mbi këtë kod.

Ju lutemi mbani shënim edhe numrin unik të DS18B20 tuaj. Theshtë numri që fillon me '28-'që hasni gjatë mësimit të konfigurimit. Ju do të duhet ta futni atë në programin e ardhshëm Python për ta lejuar atë të lexojë në temperaturë.

Hapi 2: Vendosni Dropbox

Vendosni Dropbox
Vendosni Dropbox

Në mënyrë që Pi juaj të ndërfaqet me Dropbox, duhet të krijoni një aplikacion të ri Dropbox. Kjo do t'ju japë detajet e nevojshme që Pi juaj të kryejë menaxhimin e skedarëve në internet duke përdorur Python. Duke supozuar se keni krijuar një llogari Dropbox dhe jeni regjistruar, mund të krijoni një aplikacion të ri duke përdorur opsionin e menysë 'Zhvilluesit'. Shihni imazhin e mësipërm për një përmbledhje të hapave të rëndësishëm.

Brenda menysë "Zhvilluesit", zgjidhni "Aplikacionet e mia", pastaj shtypni butonin "Krijo aplikacion". Për të plotësuar formularin që rezulton, zgjidhni 'Dropbox API' e ndjekur nga 'Dosja e aplikacioneve'. Së fundi, ju mund të zgjidhni një emër unik për aplikacionin tuaj brenda Dropbox. Klikoni "Krijo aplikacion".

Pastaj do të çoheni në faqen e cilësimeve të aplikacionit tuaj brenda Dropbox. Ekziston vetëm një gjë tjetër që duhet të bëni këtu - krijoni vetes një Token Access. Për ta bërë këtë, lëvizni poshtë në seksionin "OAuth 2" dhe nën "Shenja e hyrjes së gjeneruar", klikoni butonin "Gjeneroni".

Kjo do t'ju paraqesë me një varg të gjatë karakteresh të cilat nevojiten për të hyrë në llogarinë tuaj Dropbox duke përdorur Python. Shënoni këtë Shenjë të Hyrjes pasi do t'ju duhet ta specifikoni më vonë në kodin tuaj. Nëse e humbni shenjën, mund të lundroni përsëri te cilësimet e aplikacionit tuaj duke klikuar "Aplikacionet e mia" në seksionin "Zhvilluesit" të Dropbox dhe të krijoni një shenjë të re.

Mund t'i lini cilësimet e tjera ashtu siç janë. Për të konfirmuar që aplikacioni juaj ka krijuar dosjet e nevojshme në llogarinë tuaj Dropbox, lundroni në faqen tuaj të ruajtjes dhe kërkoni dosjen "Aplikacionet". Brenda kësaj dosje duhet të jetë një nën-dosje me emrin që keni zgjedhur për aplikacionin tuaj të ri. Këtu do të vendosen të gjithë skedarët për sistemin tuaj të monitorimit.

Hapi 3: Përgatitja e Dosjes tuaj të Aplikacionit Dropbox

Përgatitja e Dosjes tuaj të Aplikacionit Dropbox
Përgatitja e Dosjes tuaj të Aplikacionit Dropbox

Pasi të keni konfiguruar aplikacionin tuaj Dropbox, është koha të mendoni se si do ta përdorni dosjen që rezulton në llogarinë tuaj Dropbox për të bashkëvepruar me Pi tuaj. Kjo arrihet fare thjesht. Skripti Python i cili do të funksionojë në Pi do të përdorë një nëngrup komandash nga API i Dropbox për të kërkuar dhe modifikuar emrat e disa skedarëve të zbrazët, pa shtrirje në dosjen e aplikacionit tuaj. Ne do t'i quajmë këto skedarë 'skedarë parametrash' pasi secila prej tyre do t'ju lejojë të kontrolloni një aspekt të ndryshëm të sjelljes së sistemit të monitorimit. Imazhi i mësipërm tregon katër skedarët e parametrave të cilët duhet të jenë të pranishëm në dosjen tuaj të aplikacionit Dropbox për këtë projekt. Krijimi i tyre është i thjeshtë:

Duke filluar me dosjen tuaj të aplikacionit plotësisht bosh, hapni një program redaktues teksti në kompjuterin tuaj. Ndërsa kjo mund të bëhet duke përdorur Pi, e pata më të lehtë të përdor laptopin tim Windows për këtë fazë të konfigurimit. Pasi redaktuesi i tekstit është i hapur (kam përdorur Notepad në Windows 7), gjithçka që duhet të bëni është të ruani një skedar teksti plotësisht të zbrazët kudo në kompjuterin tuaj. Si shembulli ynë i parë, ne do të krijojmë parametrin e parë në imazhin e kokës. Emërtoni skedarin 'vonesë = 10' kur e ruani.

Për ta përmbledhur, tani duhet të keni një skedar teksti të zbrazët të ruajtur në kompjuterin tuaj me emrin 'vonesë = 10'. Skedari gjithashtu do të ketë një zgjerim '.txt' i cili mund të jetë ose jo i dukshëm.

Hapi tjetër është të ngarkoni këtë skedar në dosjen tuaj të aplikacionit Dropbox. Kjo është si çdo ngarkim tjetër i Dropbox. Thjesht lundroni në dosjen e aplikacionit tuaj dhe klikoni "Ngarko" dhe zgjidhni skedarin tuaj "vonesë = 10".

Kur ky skedar të jetë ngarkuar, duhet të hiqni shtesën '.txt' e cila tani duhet të jetë e dukshme në emrin e skedarit. Për ta bërë këtë, thjesht klikoni me të djathtën në skedar dhe zgjidhni 'Rename'. Hiqeni pjesën '.txt' të emrit të skedarit. Tani duhet të liheni me një skedar të quajtur 'vonesë = 10' pa zgjerim të skedarit, siç tregohet në imazhin e kokës.

Skedari i parametrit 'vonesë' është një nga katër që do të përdoret nga programi i monitorimit. Për të krijuar të tjerët, thjesht mund të kopjoni dhe riemërtoni skedarin tuaj të 'vonesës' duke klikuar me të djathtën mbi të. Pasi të keni krijuar tre kopje, emërtojini ato siç tregohet në imazhin e kokës në mënyrë që dosja e aplikacionit tuaj të jetë identike me atë të treguar në fillim të këtij hapi.

Hapi 4: Fillimi me Kodin

Siç u diskutua, thelbi i sistemit tonë të monitorimit do të përbëhet nga një skript i vetëm Python i cili do të ndërlidhet me Dropbox. Në mënyrë që programi i monitorimit të jetë aktiv, ky skenar do të duhet të ekzekutohet në sfond në Pi tuaj. Unë mendoj se është përshkruar më saktë si një skenar "daemon", që do të thotë që ju thjesht mund ta vendosni atë në punë dhe ta harroni atë. Skenari i është bashkangjitur këtij hapi, kështu që nuk ka kuptim të përsërisni kodin këtu. Tani mund të jetë një kohë e mirë për ta shkarkuar atë dhe për t'u njohur me të.

Para se të jeni në gjendje të ekzekutoni skriptin, është e rëndësishme të siguroheni që keni të instaluar bibliotekat përkatëse Python. Ato që ju nevojiten janë të listuara në krye të shkrimit të bashkangjitur. Ata janë:

importoni dropbox

import pygame.camera import os kohë importi

Instalimi Python në Pi tim përfshinte tashmë pygame, os dhe kohë kështu që e vetmja që duhej të instaloja ishte Dropbox. Unë e bëra këtë duke përdorur udhëzimet e tyre shumë të thjeshta të instalimit me pip.

Pasi të krijohen bibliotekat tuaja, do t'ju duhet të redaktoni dy rreshtat e parë të skriptit të bashkangjitur që të përputhen me shenjën tuaj të hyrjes në Dropbox dhe identifikuesin unik të sensorit tuaj të temperaturës DS18B20. Këto janë dy rreshtat që duhet të redaktohen:

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

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

Vetëm zëvendësoni **** me vlerat e sakta. Në këtë pikë, ju jeni në të vërtetë gati të filloni të përdorni programin e monitorimit! Në vend që të hidheni, ju rekomandoj që të vazhdoni në hapin tjetër për një pasqyrë të përgjithshme të kodit.

E RORTNDSISHME: Kur e ekzekutoni këtë skenar, dëshironi që ai të ekzekutohet në sfond në mënyrë që a) të mund të vazhdoni të përdorni Pi, dhe b) kur të mbyllni sesionin tuaj SSH, skripti do të vazhdojë të ekzekutohet. Ky është komanda që përdor kur ekzekutoj skriptin:

nohup python DropCamTherm.py &

Kjo arrin tre gjëra: Do të ekzekutojë skriptin ('python DropCamTherm.py'), do të kthejë kontrollin në vijën e komandës menjëherë në mënyrë që të vazhdoni të përdorni Pi ('&'), dhe do të dërgojë dalje të Python që do të normalisht të shfaqet në vijën e komandës në një skedar të quajtur 'nohup.out'. Kjo mund të lexohet duke përdorur një redaktues teksti Linux (i preferuari im është nano), dhe do të krijohet automatikisht në drejtorinë nga e cila skenari po ekzekutohet.

Hapi 5: Gërmimi më i thellë në kod

Kur hapni skriptin, do të vini re se ai përbëhet nga tre funksione së bashku me një bllok kodi i cili i zbaton këto funksione kur skripti ekzekutohet. Funksionet përdorin API -në Dropbox dhe dhe hyjnë në skedarin e regjistrit të temperaturës të DS18B20 në mënyrë që të dëgjojnë komandat nga Dropbox dhe të ngarkojnë leximin më të fundit të temperaturës. Më poshtë është një përmbledhje e asaj që bëjnë funksionet dhe si përdoren ato për të bërë sistemin e monitorimit të funksionojë:

- sondazhi_parametri ():

Ky funksion tregon qëllimin e skedarëve të parametrave Dropbox që krijuam në hapin 3. Ai kërkon dosjen e aplikacionit Dropbox për një skedar që përmban tekstin 'param ='. Pastaj nxjerr tekstin pas '=' dhe përpiqet ta shndërrojë atë në një numër të plotë. Ju mund të shihni që kjo na lejon të kontrollojmë programin duke shtuar numrat përkatës në fund të skedarëve të parametrave me dorë. Hapi tjetër do të përmbajë një manual të shkurtër udhëzues që ju tregon se si të përdorni secilin nga skedarët e parametrave për të kontrolluar një aspekt të programit.

- set_parameter ():

Ky funksion i lejon programit të riemërtojë një skedar parametri nga brenda Python. E bën këtë në disa raste, kryesisht për të zvogëluar nevojën për riemërim të tepërt manual të skedarëve.

- set_latest_temp ():

Ky funksion përdor set_parameter () për të ngarkuar temperaturën më të fundit në dosjen e aplikacionit Dropbox duke e shtuar atë në skedarin e parametrit "temperaturë". Funksioni lexon temperaturën më të fundit nga skedari i regjistrit të DS18B20 (i cili është i disponueshëm në Linux në rrugën e treguar nga ndryshorja THERMOMETER_FILE).

Pjesa e fundit e programit përmban kodin i cili do të ekzekutohet kur skenari të ekzekutohet. Pas disa hapave të konfigurimit të kërkuar për sensorin DS18B20, ai hap një sesion të Dropbox duke përdorur Access Token -in tuaj dhe përdor pygame për të kërkuar kamerën tuaj në internet. Nëse një kamerë uebi gjendet, ajo do të hyjë në një lak ku përdor poll_parameter () për të nxjerrë informacione nga Dropbox dhe për të vepruar në të.

E RORTNDSISHME: Ju do të vini re rreshtin e mëposhtëm të kodit:

kamera = pygame.camera. Kamera (lista e kamerave [0], (864, 480))

… Kjo përpiqet të krijojë një ndërfaqe të përdorshme të kamerës nga kamera e parë në internet që zbulon pygame. Rezolucioni mund të ketë nevojë të ndryshohet që të përputhet me kamerën tuaj në internet. Eksperimentoni me një numër vlerash për të gjetur atë që funksionon më mirë.

Hapi 6: Përdorimi i skedarëve të parametrave të Dropbox

Pra, tani duhet të keni një skenar pune i cili, kur ekzekutohet duke përdorur udhëzimet nga hapi 4, do të lejojë që Pi juaj të fillojë të monitorojë dosjen e aplikacionit për hyrjet tuaja. Në ekzekutimin tuaj të parë, dosja e aplikacionit duhet të përmbajë skedarët e mëposhtëm të parametrave:

vonesë = 10

exitprogram = 0 kërkesë për imazh = 0 temperaturë = 0

Ndërveprimi me programin arrihet duke riemërtuar manualisht skedarët e parametrave përmes Dropbox. Për ta bërë këtë, thjesht klikoni me të djathtën në njërën prej skedarëve dhe zgjidhni 'riemëroni'. Çdo skedar parametrash ka një funksion të ndryshëm:

- vonesa:

Ky skedar i tregon programit të monitorimit sa sekonda duhet të presë midis secilës përsëritje të lakut të monitorimit. Kur e di që nuk do të ndërveproj shumë me programin, e vendos atë në 60 ose 120. Kur e di që dua të kërkoj të dhëna nga Pi shpesh, e vendos atë në 10.

- programi i daljes:

Kjo duhet të vendoset në 1 ose 0. Nëse programi zbulon se është vendosur në 1, do të përfundojë skenarin. Nëse e vendosni atë në 1 dhe skenari del, do t'ju duhet të regjistroheni përsëri në Pi për ta nisur atë. Ky parametër ekziston në mënyrë që të përfundoni me hijeshi programin e monitorimit kur nuk keni më nevojë që ai të funksionojë (për shembull, nëse jeni kthyer në shtëpi dhe nuk doni të monitoroni kamerën në internet nga distanca).

- kërkesë për imazhe:

Ky është ndoshta parametri më i rëndësishëm. Kjo duhet të vendoset në 1 ose 0. Nëse programi zbulon se është vendosur në 1, do të kërkojë një imazh nga kamera në internet dhe do ta ngarkojë atë në dosjen e aplikacionit (me titullin 'image.jpg'). Nëse ekziston një 'image.jpg' tjetër, ai do ta mbishkruajë atë.

- temperatura:

Ky është leximi i temperaturës DS18B20 i vendosur nga funksioni set_latest_temp (). Ju kurrë nuk duhet të ndryshoni këtë skedar parametri - ai vendoset automatikisht nga programi.

Vini re se nëse vendosni 'programin e daljes' ose 'kërkesën për imazh' në 1, programi automatikisht do t'i kthejë në 0 para se të ekzekutojë kodin përkatës. Kjo është për lehtësi. Ju gjithashtu mund të vini re se kodi përmban shumë blloqe "provo" dhe "përveç" që rrethojnë shumë nga funksionet kritike. Kjo është për të siguruar që skenari të mos bëjë përjashtime (dhe kështu të ndalojë së funksionuari) nëse diçka shkon keq (siç është një problem i lidhjes në internet që parandalon hyrjen në Dropbox).

Hapi 7: Përfundimi

Ky projekt ka paraqitur një mënyrë për të kontrolluar një Raspberry Pi duke përdorur Python dhe Dropbox. Ndërsa pajisja e përdorur në këtë projekt është një sensor i temperaturës dhe një kamerë USB, ka shumë aplikacione të tjera për këtë metodë të kontrollit të Pi. Në fakt, çdo komponent harduerik që është i arritshëm përmes GPIO mund të kontrollohet duke përdorur një strukturë të ngjashme programi, duke e bërë sistemin shumë të lehtë për tu zgjeruar.

Si hap tjetër, ju gjithashtu mund të përdorni një bibliotekë GUI siç është Tkinter së bashku me API -në Dropbox për të krijuar një program klienti i cili do t'ju lejojë të modifikoni skedarët e parametrave pa pasur nevojë të regjistroheni në Dropbox.

Shpresoj që ky tutorial të ketë qenë i qartë, dhe nëse keni ndonjë pyetje ose dëshironi që unë të sqaroj diçka, ju lutemi postoni një koment!

Recommended: