Kazalo:

R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis: 8 korakov (s slikami)
R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis: 8 korakov (s slikami)

Video: R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis: 8 korakov (s slikami)

Video: R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis: 8 korakov (s slikami)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, November
Anonim
Image
Image
R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis
R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis
R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis
R-PiAlerts: Zgradite varnostni sistem na osnovi WiFi z Raspberry Pis

Med delom za mizo nenadoma zaslišite oddaljen hrup. Je kdo ravno prišel domov? Moj avto je parkiran pred mojo hišo, je kdo vlomil v moj avto? Ali ne želite, da imate obvestilo na telefonu ali na mizi, da se lahko odločite, ali boste raziskali ali ne? No, ne sprašujte več! R-PiAlerts je tu!

Kaj so R-PiAlerts? R-PiAlerts je varnostni sistem na osnovi Raspberry Pi3, zgrajen okoli Firebaseovega oblaka. Če zazna gibanje, bo sistem uporabnika obvestil o morebitnem vlomu z besedilnim sporočilom in utripajočim LED zaslonom (nekakšen tihi vizualni alarm). Ko uporabnik prejme obvestilo, lahko preiskuje. Vsi zaznani premiki bodo zabeleženi v bazi podatkov Firebase. Poleg ogleda dnevnika gibanja v spletnem brskalniku lahko uporabnik dostopa tudi do dnevnika gibanja prek aplikacije iOS. Za to sem se odločil zaradi nedavnega porasta vlomov v vozila in domove po mojem območju.

Zakaj Pi3? Potreboval sem nekaj majhnega, kar bi lahko zaznalo gibanje in po potrebi izpraznilo baterijo. Nato lahko enoto skrijem za vrata ali v avto. Prav tako mi mora enota pošiljati obvestila ali opozorila. Pi3 lahko vse to stori z vgrajenim brezžičnim omrežjem in zmožnostjo, da se izprazni iz baterije USB. Drugi razlogi, zakaj sem se odločil za Pi3:

  • Pi je relativno poceni
  • Je enostaven za namestitev in razširitev
  • Nastavljiv je s programskega vidika
  • Sposobnost uporabe zaslonov in senzorjev. Ta projekt bo uporabljal SenseHat
  • Delajte brez glave (brez monitorja, tipkovnice ali miške)

Kako deluje

  • V idealnem primeru bo uporabnik potreboval 2 Raspberry Pis, povezana z bazo podatkov Firebase, vendar bo deloval tudi en sam Pi.
  • S pomočjo SenseHat bo prvi Pi (Pi1) zaznal gibanje s merilnikom pospeška, drugi Pi (Pi2) pa bo prikazal obvestila o gibanju.
  • Ko Pi1 zazna gibanje, naredi 3 stvari

    • premik dnevnika v bazo podatkov
    • ustvarite vnos obvestila v bazi podatkov za prikaz Pi2
    • uporabniku poslati besedilno sporočilo z obvestilom o gibanju.
  • Ko Pi2 zazna obvestilo za prikaz iz baze podatkov, se zgodi dve stvari

    • LED -zaslon Pi2 bo neprekinjeno prikazal obvestilo
    • Uporabnik lahko počisti obvestilo s pritiskom na gumb Pi2 SenseHat. S tem boste izbrisali tudi vnos obvestila v zbirko podatkov.
  • Z aplikacijo za iOS lahko uporabnik

    • dostop do baze podatkov; prebrati in izbrisati dnevnik gibanja
    • uporabnik lahko pošlje Pi1, da prikaže sporočilo na LED zaslonu Pi1.

Praktične aplikacije

  1. Če avto parkirate na ulici v dosegu WiFi. Pritrdite baterijo na Pi1 (glejte sliko). Skrij Pi1 v avtu. Postavite Pi2 na mesto, ki je lahko vidno, na primer poleg mize (glejte sliko).
  2. Druga aplikacija je, da postavite Pi1 v svojo hišo ob strani vrat. Pi je tako majhen, da ga večina ljudi ne bo opazila, še posebej, če je za stranjo tečajev (glej sliko). Nato postavite svoj Pi2 na delovno mizo.
  3. Ali pes vstopi na mesto v hiši, za kar se ne domneva? Na to območje postavite Pi1. Poskrbite, da boste Pi dali v trdno škatlo, da je vaš pes ne žveči.

Dokler je vaš Pis v dosegu wifi -ja, vas lahko opozori ali obvesti o gibanju. Če nimate drugega Pi, lahko uporabite Pi1 za zaznavanje gibanja in prejemanje obvestil SMS prek mobilnega telefona.

Račun za materiale

  • Dva (2) Raspberry Pi 3s, ki poganjajo Raspbian (Raspberry Pi 2 bo deloval tudi z wifi ključem)
  • Dva (2) senzorska klobuka
  • Naprava Mac in iOS

Potrebna programska oprema

  • Knjižnica Pyrebase (povezuje se s Firebase)
  • Knjižnica SenseHat (za dostop do merilnika pospeška in LED zaslona)
  • Knjižnica Twilio (za pošiljanje SMS)
  • Python 3, vgrajen z najnovejšo različico Raspbian
  • Raspbian z IDLE
  • Xcode8 in Cocoapods na vašem Macu
  • Pripravljenost za učenje in raziskovanje

Stranska opomba To ni edina varnostna rešitev na osnovi Pi. Če imate kakršne koli ideje, predloge ali samo želite preoblikovati mojo kodo, pustite komentar spodaj! =)

1. korak: Nastavite račune Firebase in Twilio

Nastavite račune Firebase in Twilio
Nastavite račune Firebase in Twilio
Nastavite račune Firebase in Twilio
Nastavite račune Firebase in Twilio

Najprej, preden se začnemo poigravati z našim Pisom, moramo nastaviti Firebase in Twilio. Firebase je Googlov zaledje kot storitev. Firebase vključuje takšne funkcije, kot so zbirka podatkov, pošiljanje sporočil v oblaku, preverjanje pristnosti, shranjevanje itd. Za ta projekt bomo morali uporabiti samo bazo podatkov Firebase v realnem času in preverjanje pristnosti. Za branje in pisanje v vašo bazo podatkov Firebase bo potrebno preverjanje pristnosti. Za nastavitev Firebase:

  1. Registrirajte se za brezplačen račun Firebase
  2. Pojdite na konzolo. Ustvarite nov projekt in mu dajte ime.
  3. V levem meniju kliknite »Pregled«
  4. Kliknite »Dodaj Firebase v svojo spletno aplikacijo«, kopirajte svoj APIKey in projectid (ne url). ID projekta se nahaja na različnih URL -jih, kot je zbirka podatkov:
  5. V levem meniju kliknite »Preverjanje pristnosti«. Pojdite na "Način prijave" in omogočite "E -pošta/geslo"
  6. Pri »Uporabnik« ustvarite nov uporabniški račun z e -pošto/geslom po vaši izbiri. To poverilnico boste uporabili za prijavo v bazo podatkov.
  7. V levem meniju pojdite na "Baza podatkov"
  8. To je vaša baza podatkov. Trenutno je prazno. Ko je napolnjen, bo v formatu JSON. URL mora biti enak tistemu, ki ste ga videli prej.

Twilio razvijalcem omogoča pošiljanje sporočil svojim strankam. Uporabili ga bomo za pošiljanje SMS -a na vaš telefon, ko Pi zazna gibanje. Twilio vam bo poslal telefonsko številko za pošiljanje SMS. Za nastavitev Twilio:

  1. Prijavite se za brezplačen račun na spletnem mestu Twilio
  2. Kopirajte svoj ID računa in authToken
  3. Kliknite "Omejitve preizkusa" in izberite "pridobite svojo prvo telefonsko številko Twilio"
  4. Kopirajte svojo novo telefonsko številko

2. korak: Nastavite svoj Pis

Nastavite svoj Pis
Nastavite svoj Pis
Nastavite svoj Pis
Nastavite svoj Pis

Preden lahko začnemo programirati Pis, moramo narediti nekaj nastavitev. Poskrbite, da imate geslo za prijavo na svoj Pis. Najprej bomo fizično povezali plošče SenseHat s Pisom. Nato bomo namestili potrebne knjižnice SenseHat, Twilio in Pyrebase. Baza podatkov Firebase v realnem času je bila zasnovana za mobilne naprave ali spletna mesta. Lahko pa beremo in pišemo bazo podatkov v oblaku prek API -ja Rest s knjižnico pomočnikov, kot je Pyrebase.

Priključite SenseHat Prepričajte se, da so SenseHats povezani z vašim Pisom. Če imate nenavaden etui, boste morda morali odstraniti Pi, preden povežete SenseHat.

Namestitev knjižnic Vse namestitve knjižnice bodo izvedene v terminalu

  • Zaženite svoj Pis, če tega še niste storili.
  • Ob zagonu dobite to pisano LED mavrico na vašem SenseHat -u! (glej sliko)
  • Pojdite na terminal in posodobite/dist-upgrade, vnesite:

    • sudo apt-get posodobitev
    • sudo apt-get dist-upgrade
  • Po končani nadgradnji za namestitev knjižnic SenseHat vnesite naslednje:

    sudo apt-get install sense-hat

  • Če želite namestiti Pyrebase, vnesite:

    sudo pip namestite pyrebase

  • Nazadnje namestite Twilio

    sudo pip namestite twilio

3. korak: Python Script za Pi1

Kot smo že omenili, bo Pi1 Pi, ki se bo uporabljal za zaznavanje gibanja. Vrednosti merilnika pospeška SenseHat bodo uporabljene za določanje gibanja. Tako bo koda za Pi1 okoli dostopa do vrednosti sile merilnika pospeška in beleženja zaznanih gibov v zbirki podatkov Firebase. Tu je pregled poteka procesa:

  • Če Pi1 zazna gibanje, bo dodal vnos otroku "opozoril" v DB Firebase.
  • Pi1 bo tudi posodobil otroka "notifypi2" z obvestilom o premiku.
  • Pi2 nato prebere "notifypi2" in prikaže obvestilo na svojem LED matričnem zaslonu.

Vključil sem skript Py1 Python, ki mu lahko sledite. Komentarji v skriptu pojasnjujejo, kaj počne koda.

Dodatne opombe in vpogledi v skript Pi1

  • Za nastavitev Firebase in Twilio. Vnesite ustrezne ključe API, ID -je, gesla itd., Ki ste jih kopirali iz prejšnjih korakov.
  • Kar zadeva preverjanje pristnosti Firebase, lahko za dodatno varnost namesto trdega kodiranja teh poverilnic zahtevate vnos uporabnika. Vsakič, ko pišemo ali beremo iz baze podatkov, jih bomo morali vključiti

    user ['idtoken'] s th

    get (), push (), set () metode.

  • Temperatura procesorja je potrebna, da lahko posredujemo, če se Pi pregreje v avtomobilu ali zaprtem okolju.
  • Vzamemo tudi absolutno vrednost sil G, saj nam ni treba poznati negativnih vrednosti. Vedeti moramo le, ali obstajajo sile G.
  • Če stavek preveri vrednosti merilnika pospeška. Če so sile G večje od 1 v kateri koli smeri, bo Pi1 zabeležil čas gibanja in na svojem LED zaslonu prikazal klicaj. Posodobil bo tudi podrejenega "notifypi2". Ko je "notifypi2" posodobljen, ga bo Pi2 prebral in prikazal "!!!" na LED zaslonu, da uporabnika obvesti o možnem premiku/vlomu. Pi1 bo uporabniku poslal tudi SMS obvestilo o gibanju.
  • Pri uporabi metode push () bo Firebase samodejno ustvaril otroka z novim vnosom. To je potrebno, da bodo zabeleženi podatki o gibanju edinstveni. metoda set () pa bo prepisala prejšnje podatke.
  • Za preverjanje baze podatkov je potrebna 10 -sekundna zanka, da vaš Pi ne zahteva večkrat podatkov od Firebase. Če neprekinjeno pošiljate neželeno pošto Firebase, vas bo Google odjavil v približno 10 minutah.
  • Firebase bo uporabnika izločil tudi vsakih 60 minut, če žetona ne osvežite. Osvežitev imam nastavljeno na 1800 sekund (30 minut).

4. korak: Python Script za Pi2

Skript Python za Pi2
Skript Python za Pi2

Če pogledate fotografijo, je to Pi2, ki prikazuje obvestilo o možnem premiku.

Skript Pi2 je skoraj popolnoma enak Pi1, le da skript ne zazna gibanja. Pi2 prikaže ali ponastavi samo obvestilna sporočila otroka "notifypi2". Ker je to edina razlika, bom to razložil spodaj.

  • Vsakih 10 sekund bo Pi2 preveril, ali se "notifypi2" prikaže. Če se prikaže obvestilno sporočilo, ga bo Pi2 prikazal neprekinjeno, tako da ga uporabnik vidi.
  • Samo uporabnikov pritisk na gumb krmilne palice bo sporočilo izbrisal in ponastavil na strani baze podatkov.

5. korak: Preizkusite Pis

Image
Image
Preizkusite Pis
Preizkusite Pis

Čas je, da preizkusite Pis.

  • Zaženite skripte za Pis.
  • Prijavite se v Firebase in pojdite v razdelek zbirke podatkov o projektih.
  • Pretresite Pi1, na LED zaslonu Pi1 bi morali videti rdeč klicaj. Morali bi dobiti tudi sporočilo SMS.
  • Preverite bazo podatkov, vnosi opozoril bi se morali začeti prikazovati. Posodobiti je treba tudi "notifypi2".
  • Oglejte si Pi2. Pomaknite se tudi do "!!!" Če želite počistiti to obvestilo, samo pritisnite krmilno palčko. "notifypi2" je treba ponastaviti. Za potrditev preverite Firebase.
  • Če se vam zdi Pi1 preveč občutljiv na gibanje, v skriptu Pi1 povečajte prag na več kot 1G.

Če bo vse v redu, se vaši skripti ne zrušijo. Zdaj imate delujoč sistem obveščanja. Ko Pi1 zazna premike ali vibracije, boste na Pi2 prejeli obvestilo SMS in vizualno LED obvestilo.

6. korak: Ustvarjanje aplikacije R-PiAlerts IOS

Ustvarjanje aplikacije R-PiAlerts IOS
Ustvarjanje aplikacije R-PiAlerts IOS

Čas je za izdelavo aplikacije za iOS! Aplikacija bo dokaj preprosta. Imela bo LoginViewController in ItemsTableViewController. ItemsTableViewController bo prikazal opozorila od podrejenega "opozorila". Iz aplikacije lahko izbrišete tudi vnose v zbirko podatkov. Če želite prihraniti glavobol, če nameravate pogledati spletne vadnice za Firebase, poiščite vaje po marcu 2016, saj so se lani v tem času zgodile velike spremembe. Vse do marca 2016 bo dediščina. Zanimajo me hitre datoteke, preglejte komentarje v kodi. Če želite podrobno vadnico o tem, kako sestaviti aplikacijo Firebase, ki bere zbirko podatkov, si oglejte vadnico Raya Wunderlicha.

Nastavite pregled projekta iOS

  • Ustvarite projekt iOS z enim pogledom v Xcode.
  • Kopirajte identifikator svežnja
  • Pojdite na svoj projekt Firebase na spletnem mestu in ustvarite datoteko info.plist z identifikatorjem svežnja.
  • V svoj projekt dodajte datoteko GoogleService-info.plist. Ta info.plist deluje samo z določenim projektom Firebase, ki ste ga ustvarili.
  • Zaprite Xcode in namestite Firebase prek Cocoapods. Namestite Auth in Database.
  • Znova zaženite Xcode in nato konfigurirajte AppDelegate.swift za Firebase. Potrebuje le 2 vrstici kode.

    Uvozi Firebase an

    FIRApp.configure (). Po želji ima Firebase funkcijo vztrajnosti, ki zajema le 1 vrstico kode

    FIRDatabase.database (). PersistenceEnabled = true

  • Podrobne korake namestitve najdete na spletnem mestu Firebase

Kako aplikacija sodeluje z bazo podatkov Firebase:

  • Aplikacija bo morala preveriti pristnost uporabnika.
  • Ko je potrjena, aplikacija posname posnetek zbirke podatkov Firebase in jo shrani kot predmet »Element«.
  • Omenjeni objekt bo zapolnil matriko. Omenjena matrika bo uporabljena za zapolnitev pogleda mize.
  • Opazovalec bo opazoval spremembe baze podatkov Firebase in ustvaril posnetek.
  • Ko zaznate spremembe, bo matrika dodana iz novega posnetka.
  • Tableview se nato znova naloži, da prikaže spremembe.

Splošni oris o tem, kako zgraditi aplikacijo

  • Oglejte si sliko o tem, kako je aplikacija postavljena v graditelju vmesnikov Xcode.
  • Ustvarite ViewController v graditelju vmesnikov in razred po meri usmerite na LoginViewController.swift.
  • Dodajte besedilna polja za e -pošto in geslo. Ne pozabite vklopiti "Varnega vnosa besedila" za polje za geslo. Dodajte gumb za prijavo.
  • Povežite besedilna polja in gumb z LoginViewController.swift. PrijavaViewController.swift bo obravnaval preverjanje pristnosti.
  • V orodje za ustvarjanje vmesnikov dodajte krmilnik za krmarjenje. Ustvarite zastoj od LoginViewControllerja do krmilnika za krmarjenje. Poskrbite, da bo segue dal identifikator.
  • Razred po meri novega pogleda mize, ki je priložen krmilniku za krmarjenje, nastavite na točko ItemsTableViewController.swift. Na ItemsTableViewControllerju imam tudi 2 gumba: Odjava in gumb Dodaj. Gumbe povežite z ItemsTableViewController.swift.
  • V zvezi s kodo LoginViewController.swift. Uporabnik bo vnesel poverilnice za prijavo in Firebase bo vrnil uporabnika. Če je uporabnik prisoten, bo izvedel pregled z identifikatorjem. (glej priloženo kodo)
  • Dodajte razred Item.swift (glejte priloženo kodo)
  • Kar zadeva kodo ItemsTableViewController, je to precej standardna koda za ogled mize. Opazovalec bo spremljal spremembe vaše baze podatkov, shranjene kot posnetek kot predmet Item. Nato bo objekt Item dodal matriko, da bo zapolnil pogled tabele. Gumb Dodaj nastavi vnos v zbirki podatkov Firebase za branje in prikaz Pi1. Za hihitanje sem dodal tudi kodo (glej priloženo kodo)

7. korak: Preizkusite aplikacijo

Preizkusite aplikacijo
Preizkusite aplikacijo
Preizkusite aplikacijo
Preizkusite aplikacijo
Preizkusite aplikacijo
Preizkusite aplikacijo

Zaženite svojo aplikacijo

  • Prijavite se in pretresite svoj Pi1. Videti bi morali nova obvestila o opozorilih.
  • Dotaknite se gumba za dodajanje in si oglejte, kako vaš Pi1 prikaže vaše sporočilo.
  • Povlecite v levo in si oglejte odstranitev vnosov »Opozorila«.
  • Ali prejemate preveč obvestil v hitrem zaporedju? prilagodite prag merilnika pospeška ali povečajte čas spanja v skriptu Pi1.

8. korak: Zaključek

Zaključek
Zaključek
Zaključek
Zaključek

Odlično! Zdaj imamo Pis, ki lahko zazna gibanje in vam pošlje obvestila o gibanju. Poleg tega lahko z napravo iOS upravljate v dnevniku opozorilnih sporočil! Čas je za uvedbo Pis. Pi1 postavite zraven vrat, Pi2 pa okoli delovnega območja. Ko naslednjič pride kdo, lahko preverite situacijo! Ali še bolje, poskusite se skriti pri Pi v avtu z baterijo. Nekajkrat zaloputnite vrata, poglejte, kaj se bo zgodilo!

To je le začetek možnosti, kaj lahko storite z Raspberry Pi in Firebase. SenseHat vključuje tudi okoljske senzorje, žiroskope in kompas. Svoj Pis lahko nastavite tako, da beleži določene spremembe v okolju. Želite okrepiti svojo igro? Ko vaš Pi zazna premike, uporabite fotoaparat za zajem slik in naj Pi besedilo pošlje fotografije. Za prepoznavanje obrazov poskusite uporabiti tudi algoritem računalniškega vida. če gre za obraz nekoga, ki ga poznate, ste lahko obveščeni! Zabavaj se!

Priporočena: