Obsah:

R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis: 8 krokov (s obrázkami)
R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis: 8 krokov (s obrázkami)

Video: R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis: 8 krokov (s obrázkami)

Video: R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis: 8 krokov (s obrázkami)
Video: Garmin Epix vs Apple Watch Ultra спортивное сравнение 2022 2024, November
Anonim
Image
Image
R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis
R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis
R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis
R-PiAlerts: Vybudujte bezpečnostný systém založený na WiFi s Raspberry Pis

Pri práci za stolom zrazu počujete vzdialený hluk. Prišiel niekto práve domov? Moje auto je zaparkované pred mojím domom, vlámal sa niekto do môjho auta? Nechcete, aby vám na telefón alebo na stôl prišli oznámenia, aby ste sa mohli rozhodnúť, či to vyšetrujete alebo nie? No otázka už nie! R-PiAlerts je tu!

Čo je R-PiAlerts? R-PiAlerts je bezpečnostný systém založený na Raspberry Pi3 postavený na platforme Firebase Cloud. Ak je detekovaný pohyb, systém upozorní užívateľa na možné vlámanie pomocou textovej správy a blikajúceho LED displeja (druh tichého vizuálneho alarmu). Akonáhle používateľ dostane upozornenie, môže to začať skúmať. Všetky zistené pohyby budú zaznamenané do databázy Firebase. Okrem prezerania denníka pohybu vo webovom prehliadači má používateľ k protokolu pohybu prístup aj prostredníctvom aplikácie pre iOS. Rozhodol som sa to postaviť kvôli nedávnemu nárastu vlámaní do vozidiel a domov v mojej oblasti.

Prečo Pi3? Potreboval som niečo malé, čo dokáže detekovať pohyb a v prípade potreby vybiť batériu. Potom môžem jednotku skryť za dvere alebo do auta. Zariadenie mi tiež musí vedieť odosielať upozornenia alebo upozornenia. Pi3 dokáže všetky tieto veci vďaka vstavanej sieti Wi -Fi a schopnosti vybíjať batériu USB. Ďalšie dôvody, prečo som si vybral Pi3:

  • Pi je relatívne lacný
  • Je ľahké ho nasadiť a rozšíriť
  • Je konfigurovateľný zo softvérového hľadiska
  • Schopnosť používať displeje a senzory. Tento projekt bude používať SenseHat
  • Ovládajte bez hlavy (bez monitora, klávesnice alebo myši)

Ako to funguje

  • V ideálnom prípade bude užívateľ potrebovať 2 Raspberry Pis pripojené k databáze Firebase, ale bude fungovať aj jeden Pi.
  • Použitím SenseHat prvý Pi (Pi1) detekuje pohyb pomocou akcelerometra, zatiaľ čo druhý Pi (Pi2) zobrazí oznámenia o pohybe.
  • Keď Pi1 detekuje pohyb, urobí 3 veci

    • pohyb protokolu do databázy
    • vytvorte v databáze záznam s upozornením, ktorý bude Pi2 zobrazovať
    • pošlite používateľovi textovú správu s upozornením na pohyb.
  • Keď Pi2 zistí upozornenie, ktoré sa má zobraziť z databázy, stanú sa dve veci

    • LED displej Pi2 bude nepretržite zobrazovať upozornenie
    • Používateľ môže upozornenie vymazať stlačením tlačidla Pi2 SenseHat. Týmto sa tiež vymaže záznam v databáze.
  • Vďaka aplikácii pre iOS môže používateľ

    • prístup k databáze; prečítajte a odstráňte denník pohybov
    • používateľ môže odoslať Pi1 a zobraziť správu na LED displeji Pi1.

Praktické aplikácie

  1. Ak zaparkujete auto na ulici v dosahu WiFi. Pripojte batériu k Pi1 (pozri obrázok). Skryte Pi1 vo svojom aute. Pi2 umiestnite na ľahko viditeľné miesto, napríklad vedľa pracovného stola (pozri obrázok).
  2. Ďalšou aplikáciou je umiestniť Pi1 do vášho domu na stranu dverí. Pi je taký malý, že si ho väčšina ľudí nevšimne, najmä ak je za kĺbovou stranou (pozri obrázok). Potom položte Pi2 na pracovný stôl.
  3. Pes sa dostane na miesto v dome, o ktorom sa to predpokladá? Umiestnite Pi1 do tejto oblasti. Uložte Pi do robustnej škatule, aby ju váš pes nežil.

Pokiaľ sú vaše Pis v dosahu wifi, môžu vás upozorniť alebo upozorniť na pohyb. Ak nemáte druhé Pi, môžete jednoducho použiť Pi1 na detekciu pohybu a prijímanie upozornení SMS prostredníctvom mobilného telefónu.

Kusovník

  • Dva (2) Raspberry Pi 3s so systémom Raspbian (Raspberry Pi 2 bude fungovať aj s wifi kľúčom)
  • Dva (2) SenseHats
  • Zariadenie Mac a iOS

Potrebný softvér

  • Knižnica Pyrebase (pripojenie k Firebase)
  • Knižnica SenseHat (na prístup k akcelerometru a LED displeju)
  • Knižnica Twilio (na odosielanie SMS)
  • Python 3, vstavaný s najnovším Raspbianom
  • Raspbian s IDLE
  • Xcode8 a Cocoapods na vašom Macu
  • Ochota učiť sa a skúmať

Bočná poznámka Toto nie je jediné riešenie zabezpečenia založené na Pi. Ak máte nejaké nápady, návrhy alebo chcete iba zmeniť môj kód, zanechajte komentár nižšie! =)

Krok 1: Nastavte účty Firebase a Twilio

Nastavte si účty Firebase a Twilio
Nastavte si účty Firebase a Twilio
Nastavte si účty Firebase a Twilio
Nastavte si účty Firebase a Twilio

Najprv, než sa začneme hrať s Pisom, musíme nastaviť Firebase a Twilio. Firebase je backend spoločnosti Google ako služba. Firebase obsahuje také funkcie, ako je databáza, cloudové správy, autentifikácia, úložisko atď. Na tento projekt budeme potrebovať iba databázu a autentifikáciu Firebase v reálnom čase. Na čítanie a zápis do databázy Firebase bude potrebné overenie. Ak chcete nastaviť Firebase:

  1. Zaregistrujte si bezplatný účet Firebase
  2. Prejdite na konzolu. Vytvorte nový projekt a pomenujte ho.
  3. V ponuke vľavo kliknite na „Prehľad“
  4. Kliknite na „Pridať Firebase do vašej webovej aplikácie“, skopírujte svoje APIKey a projectid (nie URL). ID projektu sa nachádza na rôznych adresách URL, ako je napríklad databáza:
  5. V ľavej ponuke kliknite na položku „Overenie“. Prejdite na „Spôsob prihlásenia“a povoľte „E -mail/heslo“
  6. V časti „Používateľ“vytvorte nový používateľský účet s e -mailom/heslom podľa vášho výberu. Tieto poverenia použijete na prihlásenie sa do databázy.
  7. V ľavej ponuke prejdite na položku „Databáza“
  8. Toto je vaša databáza. Práve je prázdny. Po vyplnení bude vo formáte JSON. Adresa URL by mala byť rovnaká ako adresa, ktorú ste videli predtým.

Twilio umožňuje vývojárom odosielať správy svojim zákazníkom. Použijeme ho na odosielanie SMS na váš telefón, keď Pi zaznamená pohyb. Twilio vám poskytne telefónne číslo na odosielanie SMS. Ak chcete nastaviť Twilio:

  1. Zaregistrujte si bezplatný účet na stránkach Twilio
  2. Skopírujte svoje ID účtu a authToken
  3. Kliknite na „Skúšobné obmedzenia“a vyberte „získať prvé telefónne číslo Twilio“
  4. Skopírujte svoje nové telefónne číslo

Krok 2: Nastavte svoje Pis

Nastavte si Pis
Nastavte si Pis
Nastavte si Pis
Nastavte si Pis

Predtým, ako začneme programovať Pis, musíme urobiť nejaké nastavenie. Uistite sa, že máte heslo pre prihlásenie do systému Pis. Najprv fyzicky prepojíme dosky SenseHat s Pis. Ďalej nainštalujeme potrebné knižnice SenseHat, Twilio a Pyrebase. Databáza Firebase v reálnom čase bola navrhnutá pre mobilné zariadenia alebo webové stránky. Cloudovú databázu však môžeme čítať a zapisovať prostredníctvom rozhrania Rest API s pomocnou knižnicou, ako je Pyrebase.

Pripojte SenseHatUistite sa, že SenseHats sú pripojené k vašej Pis. Ak máte neobvyklý prípad, možno budete musieť Pi pred pripojením SenseHat odstrániť.

Inštalácia knižníc Všetky inštalácie knižnice sa vykonajú v termináli

  • Ak ste to ešte neurobili, spustite Pis.
  • Po spustení získate túto farebnú LED dúhu vo svojom SenseHat! (viď obrázok)
  • Prejdite na terminál a aktualizujte/aktualizujte na diaľku, zadajte:

    • sudo apt-get aktualizácia
    • sudo apt-get dist-upgrade
  • Po dokončení inovácií nainštalujte knižnice SenseHat nasledujúcim príkazom:

    sudo apt-get install sense-hat

  • Ak chcete nainštalovať Pyrebase, zadajte:

    sudo pip install pyrebase

  • Nakoniec nainštalujte Twilio

    sudo pip install twilio

Krok 3: Skript Python pre Pi1

Ako sme už uviedli, Pi1 bude Pi, ktoré sa bude používať na detekciu pohybu. Na určenie pohybu budú použité hodnoty akcelerometra SenseHat. Kód pre Pi1 bude teda okolo prístupu k hodnotám sily akcelerometra g a zaznamenávaniu zistených pohybov do databázy Firebase. Tu je prehľad toku procesov:

  • Ak Pi1 detekuje pohyb, pridá záznam k dieťaťu „výstrah“v databáze Firebase DB.
  • Pi1 tiež aktualizuje dieťa „Notifypi2“notifikačnou správou ohľadom pohybu.
  • Pi2 potom číta „Notifypi2“a zobrazí upozornenie na svojom LED maticovom displeji.

Zahrnul som skript Pi1 Python, ktorý môžete sledovať. Komentáre v skripte vysvetľujú, čo kód robí.

Ďalšie poznámky a postrehy pre skript Pi1

  • Pre nastavenia Firebase a Twilio. Vyplňte príslušné kľúče API, ID, heslá atď., Ktoré ste skopírovali z predchádzajúcich krokov.
  • Pokiaľ ide o autentifikáciu Firebase, kvôli zvýšeniu zabezpečenia môžete namiesto pevného kódovania týchto poverení požiadať o vstup používateľa. Pri každom zápise alebo čítaní z databázy budeme musieť zahrnúť

    užívateľ ['idtoken'] s th

    get (), push (), set () metódy.

  • Teplota CPU je potrebná, aby sme mohli zasiahnuť v prípade prehriatia Pi v aute alebo uzavretom prostredí.
  • Berieme tiež absolútnu hodnotu síl G, pretože nepotrebujeme poznať záporné hodnoty. Potrebujeme iba vedieť, či existujú sily G.
  • Príkaz If skontroluje hodnoty akcelerometra. Ak sú sily G väčšie ako 1 v ľubovoľnom smere, Pi1 zaznamená čas pohybu a na svojom vlastnom LED displeji zobrazí výkričník. Aktualizuje sa aj dieťa „Notifypi2“. Keď sa aktualizuje „Notifypi2“, Pi2 ju prečíta a zobrazí „!!!“na svojom LED displeji upozorniť užívateľa na možný pohyb/vlámanie. Pi1 tiež pošle používateľovi SMS upozornenie na pohyb.
  • Pri použití metódy push () Firebase automaticky vygeneruje dieťa s novým záznamom. To bolo potrebné, aby zaznamenané údaje o pohybe boli jedinečné. metóda set () naopak prepíše predchádzajúce údaje.
  • Na kontrolu databázy je potrebná 10 -sekundová slučka, aby váš Pi opakovane nevyžadoval údaje z Firebase. Ak budete neustále spamovať Firebase, Google vás odhlási asi za 10 minút.
  • Firebase tiež vykopne používateľa každých 60 minút, ak sa token neobnoví. Obnovenie mám nastavené na 1800 sekúnd (30 minút).

Krok 4: Python Script pre Pi2

Python Script pre Pi2
Python Script pre Pi2

Ak sa pozriete na fotografiu, zobrazuje obrázok Pi2 upozornenie na možný pohyb.

Skript Pi2 je do značnej miery rovnaký ako Pi1, ibaže skript nedetekuje pohyb. Pi2 zobrazuje alebo resetuje iba notifikačné správy od dieťaťa „Notifypi2“. Pretože to je jediný rozdiel, vysvetlím to nižšie.

  • Každých 10 sekúnd kontroluje Pi2, či sa má zobrazovať, „oznámeniapi2“. Ak sa zobrazí upozornenie, Pi2 ho bude zobrazovať nepretržite, aby ho používateľ videl.
  • Správa sa vymaže a vynuluje na strane databázy iba vtedy, keď používateľ stlačí tlačidlo joysticku.

Krok 5: Otestujte Pis

Image
Image
Otestujte Pis
Otestujte Pis

Čas na testovanie Pis.

  • Spustite skripty pre príslušnú Pis.
  • Prihláste sa do Firebase a prejdite do sekcie databázy svojich projektov.
  • Zatraste Pi1, na LED displeji Pi1 by ste mali vidieť červený výkričník. Tiež by ste mali dostať SMS správu.
  • Skontrolujte databázu, mali by sa začať zobrazovať výstražné záznamy. Aktualizovať by sa mal aj „Notifypi2“.
  • Pozrite sa na Pi2. Tiež by ste mali posúvať "!!!" Ak chcete túto notifikačnú správu vymazať, stačí stlačiť joystick. „Notifypi2“by sa mal resetovať. Potvrďte svoje Firebase.
  • Ak sa vám zdá Pi1 príliš citlivý na pohyb, v skripte Pi1 zvýšte prahovú hodnotu na viac ako 1G.

Ak všetko pôjde dobre, vaše skripty sa nezlyhajú. Teraz máte funkčný systém upozornení. Akonáhle Pi1 detekuje pohyby alebo vibrácie, dostanete upozornenie SMS správou a vizuálne upozornenie LED na Pi2.

Krok 6: Zostavenie aplikácie R-PiAlerts IOS

Vytvorenie aplikácie R-PiAlerts IOS
Vytvorenie aplikácie R-PiAlerts IOS

Čas na vytvorenie aplikácie pre iOS! Aplikácia bude pomerne jednoduchá. Bude mať LoginViewController a ItemsTableViewController. ItemsTableViewController zobrazí výstražné upozornenia od dieťaťa „výstrahy“. Z aplikácie je možné tiež odstrániť položky databázy. Aby ste si ušetrili bolesti hlavy, ak sa plánujete pozrieť na online návody pre Firebase, určite si pozrite návody z marca 2016, pretože v minulom roku v tom čase došlo k zásadným zmenám. Čokoľvek do marca 2016 bude dedičstvom. Mám záujem o rýchle súbory. Prečítajte si komentáre v kóde. Ak chcete podrobný návod, ako vytvoriť aplikáciu Firebase, ktorá číta databázu, pozrite si návod Ray Wunderlicha.

Nastavte si prehľad projektu iOS

  • Vytvorte jeden projekt iOS pre zobrazenie v Xcode.
  • Skopírujte identifikátor balíka
  • Prejdite na svojom webe k svojmu projektu Firebase a vytvorte súbor info.plist s identifikátorom balíka.
  • Pridajte do svojho projektu súbor GoogleService-info.plist. Tento info.plist funguje iba s konkrétnym projektom Firebase, ktorý ste vytvorili.
  • Zatvorte Xcode a nainštalujte Firebase prostredníctvom Cocoapods. Nezabudnite nainštalovať aplikáciu Auth and Database.
  • Reštartujte Xcode a potom nakonfigurujte svoj AppDelegate.swift pre Firebase. Trvá to iba 2 riadky kódu.

    Importovať Firebase an

    FIRApp.configure (). Firebase má voliteľne funkciu trvalosti, ktorá zaberie iba 1 riadok kódu

    FIRDatabase.database (). PersistenceEnabled = true

  • Podrobné kroky inštalácie nájdete na webovej stránke Firebase

Ako aplikácia interaguje s databázou Firebase:

  • Aplikácia bude musieť autentifikovať používateľa.
  • Po autentifikácii si aplikácia urobí snímku databázy Firebase a uloží ju ako objekt „Item“.
  • Uvedený objekt vyplní pole. Uvedené pole sa použije na vyplnenie zobrazenia tabuľky.
  • Pozorovateľ bude sledovať zmeny v databáze Firebase a vytvorí snímku.
  • Hneď ako sú zistené zmeny, pole bude pripojené k novej snímke.
  • Tableview sa potom znova načíta, aby ukázal zmeny.

Všeobecný prehľad o tom, ako vytvoriť aplikáciu

  • Pozrite sa na obrázok, ako je aplikácia rozložená v nástroji na tvorbu rozhraní Xcode.
  • V nástroji na tvorbu rozhraní vytvorte ViewController a nasmerujte vlastnú triedu na LoginViewController.swift.
  • Pridajte textové polia pre e -mail a heslo. V poli pre heslo nezabudnite zapnúť „Zabezpečený vstup textu“. Pridajte prihlasovacie tlačidlo.
  • Spojte textové polia a tlačidlo s prepínačom LoginViewController.swift. LoginViewController.swift sa postará o autentifikáciu.
  • Pridajte ovládač navigácie do nástroja na tvorbu rozhraní. Vytvorte prestávku z programu LoginViewController do navigačného ovládača. Segue zadajte identifikátor.
  • Nastavte vlastnú triedu nového zobrazenia tabuľky, ktorá bola dodaná s navigačným ovládačom, na bod ItemsTableViewController.swift. Na ItemsTableViewController mám tiež 2 tlačidlá: Odhlásiť sa a tlačidlo Pridať. Prepojte tlačidlá s ItemsTableViewController.swift.
  • Pokiaľ ide o swiftový kód LoginViewController.swift. Používateľ zadá prihlasovacie údaje a Firebase vráti používateľa. Ak je používateľ prítomný, vykoná prechod s identifikátorom. (pozri priložený kód)
  • Pridajte triedu Item.swift (pozri priložený kód)
  • Pokiaľ ide o kód ItemsTableViewController, je to celkom štandardný kód pre zobrazenie tabuľky. Bude existovať pozorovateľ, ktorý bude monitorovať zmeny vo vašej databáze uložený ako snímka ako objekt položky. Potom objekt Item pripojí pole na vyplnenie zobrazenia tabuľky. Tlačidlo Pridať nastaví záznam v databáze Firebase, ktorý môže Pi1 čítať a zobrazovať. Pri smiechu som tiež pridal kód (pozri priložený kód)

Krok 7: Otestujte aplikáciu

Otestujte aplikáciu
Otestujte aplikáciu
Otestujte aplikáciu
Otestujte aplikáciu
Otestujte aplikáciu
Otestujte aplikáciu

Spustite aplikáciu

  • Prihláste sa a zatraste svojim Pi1. Mali by ste začať vidieť nové výstražné upozornenia.
  • Klepnite na tlačidlo pridať a sledujte, ako váš Pi1 zobrazuje vašu správu.
  • Prejdite prstom doľava a pozrite sa na položky „Upozornenia“, ktoré budú odstránené.
  • Dostávate príliš veľa upozornení v rýchlom slede za sebou? upravte prah akcelerometra alebo predĺžte dobu spánku v skripte Pi1.

Krok 8: Záver

Záver
Záver
Záver
Záver

Úžasné! Teraz máme Pis, ktorý dokáže detekovať pohyb a odosielať vám oznámenia o pohyboch. Okrem toho môžete vo svojom protokole výstražných správ spravovať svoje zariadenie iOS! Čas nasadiť Pis. Položte Pi1 vedľa svojich dverí a Pi2 okolo pracovného priestoru. Keď nabudúce niekto príde, môžete sa pozrieť na situáciu! Alebo ešte lepšie, pokúste sa skryť u auta Pi v aute pomocou batérie. Niekoľkokrát zabuchnite dvere, uvidíte, čo sa stane!

Toto je len začiatok možností, čo môžete s Raspberry Pi a Firebase robiť. SenseHat tiež obsahuje snímače prostredia, gyroskopy a kompas. Svoju Pis môžete nastaviť tak, aby zaznamenávala určité zmeny v prostredí. Chcete posilniť svoju hru? Akonáhle váš Pi zistí pohyby, použite fotoaparát na zachytenie obrázkov a dajte im text, aby vám poslali fotografie. Skúste tiež rozpoznať tváre pomocou algoritmu počítačového videnia. ak je to tvár niekoho známeho, môžeš dostať upozornenie! Bavte sa!

Odporúča: