Kazalo:
- 1. korak: Nastavite strojno opremo
- 2. korak: Nastavite Dropbox
- 3. korak: Priprava mape aplikacij Dropbox
- 4. korak: Začnite s kodo
- 5. korak: Poglobite se v kodo
- 6. korak: Uporaba datotek parametrov Dropbox
- 7. korak: Zaključek
Video: Domači nadzor Raspberry Pi z Dropboxom: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ta vadnica vam bo pokazala, kako ustvariti preprost in razširljiv sistem za nadzor doma z Raspberry Pi, spletno kamero, nekaj električnimi komponentami in vašim računom Dropbox. Končan sistem vam bo omogočil, da na daljavo zahtevate in si ogledujete slike s spletne kamere, hkrati pa uporabite tudi digitalni temperaturni senzor, ki je na voljo za spremljanje temperature vašega doma po internetu, vse z uporabo Dropboxa.
To je bil prvi projekt, ki sem si ga zamislil po prejemu modela Raspberry Pi 2 B. Moj cilj je bil ustvariti sistem za spremljanje na osnovi Pythona, ki bi ga lahko nadziral in prejemal podatke prek interneta. Čeprav obstaja veliko različnih načinov za to, sem se odločil uporabiti Dropbox kot vmesnik med Pi in internetom, saj imajo preprost API za Python, ki vam omogoča nalaganje, spreminjanje in iskanje datotek v določenih mapah z nekaj vrsticami Koda.
Želel sem tudi, da bi bila moja rešitev lahka in preprosta ter se izognil neredu mojega Pi z nepotrebnimi knjižnicami in programi. Programska komponenta tega projekta je sestavljena iz enega samega skripta Python, kar pomeni, da lahko še naprej uporabljate svoj Pi kot običajno, tudi ko deluje sistem za spremljanje.
Za ta projekt boste potrebovali:
Malina Pi. Vsak model bi moral delovati, uporabil sem začetni komplet vse v enem, morda pa potrebujete samo osrednjo enoto
Spletna kamera USB. Kupil sem poceni ADVENT AWC72015, ki je deloval v redu. Morda bi bilo dobro prebrati ta seznam spletnih kamer, za katere je potrjeno, da delujejo s Pi. Upoštevajte, da nekateri potrebujejo napajano zvezdišče USB (moje deluje brez njega)
Račun za Dropbox. Uporabljam svoj standardni brezplačni račun, saj ta projekt ne zahteva veliko prostora za shranjevanje
Digitalni temperaturni senzor DS18B20 in 4,7 k upor. Senzor lahko kupite tukaj in morda bi bilo vredno vzeti tudi paket različnih uporov
Nekaj dodatkov za gradnjo vezja. Priporočam uporabo plošče in nekaj mostičnih kablov za čim lažji postopek izgradnje vezja
[Če se odločite za nakup katerega od teh izdelkov, bi bil zelo hvaležen, če dostopate do njihovih seznamov prek zgornjih povezav - na ta način dobim majhen delež dobička brez dodatnih stroškov!]
1. korak: Nastavite strojno opremo
Prvi korak je zagotoviti, da je vaš Pi in z njim povezane zunanje naprave nastavljene.
Najprej povežite svoj Pi z internetom. To je potrebno za zagotovitev, da lahko program za spremljanje sprejme vaše zahteve in naloži podatke v Dropbox. Za zagotavljanje zanesljivosti uporabljam povezavo Ethernet, vendar bi morala biti tudi povezava Wi-Fi v redu, hkrati pa bi imela tudi prednost izboljšane prenosljivosti. Če izberete Wi-Fi, priporočam ta ključ USB za Pi.
Nato spletno kamero priključite na Pi tako, da jo priključite v eno od vrat USB. Medtem ko navodila moje spletne kamere Advent niso izrecno povedala, da bo delovala z Linuxom, sem jo morala samo priključiti in zagnati Pi. Nadaljnja namestitev ni bila potrebna. Druge spletne kamere se lahko razlikujejo. Z naslednjim ukazom lahko preverite, ali je vašo spletno kamero odkril Linux:
lsusb
Na zgornji sliki je moja spletna kamera navedena kot '0c45: 6340 Microdia'
Končno lahko svoj temperaturni senzor DS18B20 priključite na Pi -jevo glavo GPIO. S svojo ploščo olajšam postopek ustvarjanja vezij in priporočam, da storite enako, še posebej, ker DS18B20 zahteva, da je med dvema od treh zatičev nameščen 4,7 k upor. Na tej povezavi je dober diagram ožičenja, ki prikazuje, kako lahko uporabite ploščico za povezavo s tem temperaturnim senzorjem.
Naslednja stran zgornje vadnice zajema tudi korake, potrebne za branje podatkov iz DS18B20, in vam pokaže, kako preveriti, ali deluje. Pomembno je, da izvedete te korake nastavitve, preden lahko uporabite DS18B20 za ta projekt. V naš program za spremljanje bomo vključili tudi vzorec skripta Python iz vadnice, zato boste morda želeli hitro pregledati to kodo.
Upoštevajte tudi edinstveno številko vašega DS18B20. To je številka, ki se začne z '28-', na katero naletite med vadnico za nastavitev. Morali ga boste vnesti v prihajajoči program Python, da boste lahko brali pri temperaturi.
2. korak: Nastavite Dropbox
Če želite, da se vaš Pi poveže z Dropboxom, morate nastaviti novo aplikacijo Dropbox. To vam bo posredovalo podrobnosti, potrebne za vaš Pi za izvajanje spletnega upravljanja datotek z uporabo Pythona. Ob predpostavki, da ste ustvarili račun Dropbox in se prijavili, lahko ustvarite novo aplikacijo z možnostjo menija 'Razvijalci'. Za povzetek pomembnih korakov glejte zgornjo sliko.
V meniju »Razvijalci« izberite »Moje aplikacije«, nato pritisnite gumb »Ustvari aplikacijo«. Če želite izpolniti nastali obrazec, izberite 'Dropbox API', ki mu sledi 'App Folder'. Nazadnje, lahko izberete edinstveno ime za svojo aplikacijo v Dropboxu. Kliknite »Ustvari aplikacijo«.
Nato boste preusmerjeni na stran z nastavitvami aplikacije v Dropboxu. Tu morate storiti samo še eno stvar - ustvarite si žeton za dostop. Če želite to narediti, se pomaknite navzdol do razdelka »OAuth 2« in pod »Generiran žeton za dostop« kliknite gumb »Ustvari«.
To vam bo predstavilo dolg niz znakov, ki so potrebni za dostop do vašega računa Dropbox z uporabo Pythona. Zapišite si ta dostopni žeton, saj ga boste morali kasneje določiti v kodi. Če žeton izgubite, se lahko vrnete v nastavitve aplikacije tako, da v razdelku »Razvijalci« Dropbox kliknete »Moje aplikacije« in ustvarite nov žeton.
Druge nastavitve lahko pustite takšne, kot so. Če želite potrditi, da je vaša aplikacija ustvarila potrebne mape v vašem računu Dropbox, se pomaknite na domačo stran za shranjevanje in poiščite mapo »Aplikacije«. V tej mapi bi morala biti podmapa z imenom, ki ste ga izbrali za svojo novo aplikacijo. Tu bodo shranjene vse datoteke vašega nadzornega sistema.
3. korak: Priprava mape aplikacij Dropbox
Ko nastavite aplikacijo Dropbox, je čas, da razmislite, kako boste nastalo mapo v računu za Dropbox uporabili za interakcijo s svojim Pi. To se doseže precej preprosto. Skript Python, ki se bo izvajal na Pi, bo za iskanje in spreminjanje imen nekaterih praznih datotek brez razširitev v mapi z aplikacijami uporabil podnabor ukazov iz API-ja Dropbox. Te datoteke bomo imenovali "datoteke parametrov", saj vam bo vsaka omogočila nadzor nad drugačnim vidikom vedenja nadzornega sistema. Zgornja slika prikazuje štiri datoteke parametrov, ki morajo biti prisotne v mapi aplikacije Dropbox za ta projekt. Njihovo ustvarjanje je preprosto:
Ko je mapa aplikacije popolnoma prazna, odprite program za urejanje besedila v računalniku. Čeprav je bilo to mogoče storiti s Pi, mi je bilo lažje uporabljati prenosni računalnik z operacijskim sistemom Windows za to fazo nastavitve. Ko je urejevalnik besedila odprt (v operacijskem sistemu Windows 7 sem uporabil Notepad), morate le shraniti popolnoma prazno besedilno datoteko kjer koli v računalniku. Kot prvi primer bomo ustvarili prvi parameter v podobi glave. Ko shranite datoteko, jo poimenujte 'delay = 10'.
Če povzamemo, bi morali imeti v računalniku shranjeno prazno besedilno datoteko z imenom 'delay = 10'. Datoteka bo imela tudi razširitev ».txt«, ki je lahko vidna ali pa tudi ne.
Naslednji korak je nalaganje te datoteke v mapo aplikacije Dropbox. To je tako kot vsak drug prenos na Dropbox. Preprosto se pomaknite do mape aplikacije in kliknite »Naloži« ter izberite datoteko »zakasnitev = 10«.
Ko se ta datoteka naloži, morate odstraniti razširitev '.txt', ki bi morala biti zdaj vidna v imenu datoteke. Če želite to narediti, z desno miškino tipko kliknite datoteko in izberite »Preimenuj«. Odstranite del ».txt« imena datoteke. Zdaj bi vam morala ostati datoteka z imenom 'delay = 10' brez razširitve datoteke, kot je prikazano na sliki glave.
Datoteka parametrov "delay" je ena od štirih, ki jih bo uporabljal program za spremljanje. Če želite ustvariti druge, lahko preprosto kopirate in preimenujete datoteko z zakasnitvijo, tako da jo kliknete z desno miškino tipko. Ko ustvarite tri kopije, jih poimenujte, kot je prikazano na sliki glave, tako da je mapa vaše aplikacije enaka tisti, ki je prikazana na začetku tega koraka.
4. korak: Začnite s kodo
Kot smo že omenili, bo jedro našega sistema za spremljanje sestavljeno iz enega samega skripta Python, ki bo povezan z Dropboxom. Če želite, da bo program za spremljanje aktiven, bo moral ta skript delovati v ozadju na vašem Pi. Mislim, da je najbolj natančno opisan kot "daemon" skript, kar pomeni, da ga lahko preprosto nastavite in pozabite. Skript je priložen temu koraku, zato kode tukaj nima smisla ponavljati. Zdaj je morda pravi čas, da ga prenesete in se z njim seznanite.
Preden boste lahko zagnali skript, morate zagotoviti, da imate nameščene ustrezne knjižnice Python. Tiste, ki jih potrebujete, so navedene na vrhu priloženega skripta. So:
uvozi dropbox
uvoz pygame.camera uvoz os čas uvoza
Namestitev Pythona na mojem Pi je že vključevala pygame, os in čas, zato sem moral namestiti le Dropbox. To sem naredil z uporabo njihovih zelo preprostih navodil za namestitev s pipom.
Ko so knjižnice nastavljene, boste morali urediti zgornji dve vrstici priloženega skripta, da se ujemata z vašim žetonom za dostop Dropbox in edinstvenim identifikatorjem temperaturnega senzorja DS18B20. To sta dve vrstici, ki ju je treba urediti:
APP_ACCESS_TOKEN = '**********'
THERMOMETER_FILE = '/sys/bus/w1/devices/28-**********/w1_slave'
Samo zamenjajte **** s pravilnimi vrednostmi. Na tej točki ste dejansko pripravljeni na uporabo programa za spremljanje! Namesto, da bi samo skočili, vam priporočam, da nadaljujete na naslednji korak za splošen pregled kode.
POMEMBNO: Ko zaženete ta skript, želite, da se izvaja v ozadju, tako da a) lahko še naprej uporabljate Pi in b) ko zaprete sejo SSH, se bo skript še naprej zaganjal. To je ukaz, ki ga uporabljam, ko zaženem skript:
nohup python DropCamTherm.py &
S tem so dosežene tri stvari: zagnal bo skript ('python DropCamTherm.py'), takoj vrnil nadzor v ukazno vrstico, da boste lahko še naprej uporabljali Pi ('&'), in poslal izhode Pythona, ki bi običajno prikazani v ukazni vrstici v datoteki z imenom 'nohup.out'. To lahko preberete z urejevalnikom besedil Linux (moj najljubši je nano) in bo samodejno ustvarjen v imeniku, iz katerega se izvaja skript.
5. korak: Poglobite se v kodo
Ko odprete skript, boste opazili, da je sestavljen iz treh funkcij skupaj z blokom kode, ki te funkcije izvaja, ko se skript zažene. Funkcije uporabljajo Dropbox API in dostopajo do datoteke dnevnika temperature DS18B20, da poslušajo ukaze iz Dropboxa in naložijo najnovejše odčitke temperature. Spodaj je pregled, kaj funkcije počnejo in kako se uporabljajo za delovanje sistema za spremljanje:
- poll_parameter ():
Ta funkcija prikazuje namen datotek parametrov Dropbox, ki smo jih ustvarili v 3. koraku. V mapi aplikacije Dropbox išče datoteko, ki vsebuje besedilo 'param ='. Nato izvleče besedilo po '=' in ga poskuša pretvoriti v celo število. Vidite, da nam to omogoča nadzor nad programom, tako da ročno dodamo ustrezne številke na konec datotek parametrov. Naslednji korak bo vseboval kratek priročnik z navodili, ki prikazuje, kako z vsako datoteko parametrov upravljati vidik programa.
- set_parameter ():
Ta funkcija omogoča programu, da preimenuje datoteko parametrov znotraj Pythona. To počne nekajkrat, predvsem zato, da zmanjša potrebo po pretiranem ročnem preimenovanju datotek.
- set_latest_temp ():
Ta funkcija uporablja set_parameter () za nalaganje najnovejše temperature v mapo aplikacije Dropbox tako, da jo doda v datoteko parametrov 'temperature'. Funkcija bere najnovejšo temperaturo iz dnevniške datoteke DS18B20 (ki je na voljo v Linuxu na poti, ki jo kaže spremenljivka THERMOMETER_FILE).
Zadnji del programa vsebuje kodo, ki se bo izvajala ob zagonu skripta. Po nekaj korakih nastavitve, potrebnih za senzor DS18B20, odpre sejo Dropbox z vašim žetonom dostopa in uporabi pygame za iskanje po vaši spletni kameri. Če je spletna kamera najdena, bo vstopila v zanko, kjer s pomočjo poll_parameter () izvleče informacije iz Dropboxa in ukrepa.
POMEMBNO: Opazili boste naslednjo vrstico kode:
cam = pygame.camera. Camera (cam_list [0], (864, 480))
… To skuša ustvariti uporaben vmesnik kamere iz prve spletne kamere, ki jo zazna Pygame. Ločljivost bo morda treba spremeniti, da bo ustrezala vaši spletni kameri. Eksperimentirajte s številnimi vrednostmi, da ugotovite, kaj najbolje deluje.
6. korak: Uporaba datotek parametrov Dropbox
Zdaj bi morali imeti delujoč skript, ki bo ob zagonu po navodilih iz 4. koraka omogočil, da bo vaš Pi začel spremljati mapo aplikacij za vaše vnose. Mapa aplikacije mora ob prvem zagonu vsebovati naslednje datoteke parametrov:
zamuda = 10
exitprogram = 0 imagerequest = 0 temperatura = 0
Interakcija s programom se doseže z ročnim preimenovanjem datotek parametrov prek Dropboxa. Če želite to narediti, z desno miškino tipko kliknite eno od datotek in izberite »preimenuj«. Vsaka datoteka parametrov ima drugačno funkcijo:
- zamuda:
Ta datoteka nadzornemu programu pove, koliko sekund naj počaka med vsako ponovitvijo nadzorne zanke. Ko vem, da s programom ne bom veliko komuniciral, sem ga nastavil na 60 ali 120. Ko vem, da želim pogosto zahtevati podatke od Pi, sem nastavil na 10.
- izhodni program:
To je treba nastaviti na 1 ali 0. Če program zazna, da je nastavljen na 1, bo skript končal. Če ga nastavite na 1 in se skript zapre, se boste morali znova prijaviti v Pi, da ga znova zaženete. Ta parameter obstaja, tako da lahko nadzirate program za spremljanje, ko ga ne potrebujete več (na primer, če ste se vrnili domov in ne želite več spremljati spletne kamere na daljavo).
- zahteva za sliko:
To je morda najpomembnejši parameter. To je treba nastaviti na 1 ali 0. Če program zazna, da je nastavljen na 1, bo zahteval sliko od spletne kamere in jo naložil v mapo aplikacije (z naslovom 'image.jpg'). Če obstaja druga slika 'image.jpg', jo bo prepisala.
- temperatura:
To je temperaturni odčitek DS18B20, ki ga nastavi funkcija set_latest_temp (). Te datoteke parametrov vam nikoli ne bo treba urejati - program jo samodejno nastavi.
Upoštevajte, da če nastavite 'exitprogram' ali 'imagerequest' na 1, jih program samodejno vrne na 0, preden izvede ustrezno kodo. To je za udobje. Morda boste opazili tudi, da koda vsebuje veliko blokov "poskusi" in "razen", ki obkrožajo številne kritične funkcije. S tem želimo zagotoviti, da skript ne bo vrgel izjem (in se zato prenehal izvajati), če gre kaj narobe (na primer težava z internetno povezavo, ki preprečuje dostop Dropbox).
7. korak: Zaključek
Ta projekt je predstavil način za nadzor Raspberry Pi z uporabo Pythona in Dropboxa. Medtem ko je strojna oprema, uporabljena v tem projektu, temperaturni senzor in spletna kamera USB, obstaja veliko drugih aplikacij za ta način nadzora Pi. Pravzaprav je mogoče katero koli strojno komponento, ki je dostopna prek GPIO, nadzorovati s podobno programsko strukturo, zaradi česar je sistem zelo enostavno razširiti.
Kot naslednji korak lahko uporabite tudi knjižnico grafičnega vmesnika, kot je Tkinter, skupaj z API -jem Dropbox za ustvarjanje odjemalskega programa, ki vam omogoča spreminjanje datotek parametrov, ne da bi se morali prijaviti v Dropbox.
Upam, da je bila ta vadnica jasna in če imate kakršna koli vprašanja ali želite, da kaj pojasnim, napišite komentar!
Priporočena:
UPORABA KAMENEGA HMI Napravite sistem za domači nadzor: 9 korakov
UPORABA STONE HMI Naredite sistem za nadzor doma: Uvod v projekt V naslednji vadnici je prikazano, kako z modulom STONE STVC050WT-01 z zaslonom na dotik narediti preprost nadzorni sistem za gospodinjske aparate. STONE STVC050WT - 01 podporni modul zaslona na dotik je 5 palcev, ločljivost 480 * 272 na
Nadzor svetlosti PWM LED nadzor s potisnimi gumbi, Raspberry Pi in Scratch: 8 korakov (s slikami)
Nadzor svetlosti Upravljanje LED na osnovi PWM s potisnimi gumbi, Raspberry Pi in Scratch: poskušal sem najti način, kako svojim učencem razložiti, kako deluje PWM, zato sem si zadal nalogo, da poskušam nadzorovati svetlost LED z dvema gumboma - en gumb poveča svetlost LED, drugi pa ga zatemni. Za program
Domači nadzor doma z RaspberryPi in Cloud4Rpi: 5 korakov
DIY hišni nadzor z RaspberryPi in Cloud4Rpi: Nekega zimskega vikenda sem šel na svojo podeželsko hišo in ugotovil, da je tam zelo hladno. Nekaj se je zgodilo z elektriko in RCD ga je izklopil, ogrevanje pa je tudi izginilo. Imel sem srečo, da sem prišel tja, sicer čez nekaj dni
Hidroponski sistem za nadzor in nadzor rastlinjaka: 5 korakov (s slikami)
Hidroponski sistem za nadzor in nadzor rastlinjakov: V tem navodilu vam bom pokazal, kako sestaviti hidroponski sistem za nadzor in nadzor rastlinjakov. Pokazal vam bom izbrane komponente, diagram ožičenja, kako je bilo vezje zgrajeno, in skico Arduino, uporabljeno za programiranje Seeed
Domači nadzor prek Twitterja in YouTuba: 6 korakov
Domači nadzor prek Twitterja in YouTuba: Z najnovejšo različico programa Yoics za Windows lahko preprosto pretvorite katero koli spletno kamero v svoj osebni nadzorni sistem, kjer se videoposnetki samodejno naložijo v YouTube & obvestilo Twitter je poslano