Obsah:

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

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

Video: R-PiAlerts: Vybudujte bezpečnostní systém založený na WiFi s Raspberry Pis: 8 kroků (s obrázky)
Video: R-PiAlerts 2024, Listopad
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

Při práci u stolu najednou uslyšíte vzdálený hluk. Přišel někdo právě domů? Moje auto je zaparkované před mým domem, vnikl mi někdo do auta? Přejete si, abyste dostali oznámení na svůj telefon nebo na stůl, abyste se mohli rozhodnout, zda budete vyšetřovat? No otázka už ne! R-PiAlerts je tady!

Co je R-PiAlerts? R-PiAlerts je bezpečnostní systém založený na Raspberry Pi3 postavený na cloudu Firebase. Pokud je detekován pohyb, systém upozorní uživatele na potenciální vloupání pomocí textové zprávy a blikajícího LED displeje (svého druhu tichý vizuální alarm). Jakmile uživatel obdrží oznámení, může to prošetřit. Všechny detekované pohyby budou zaznamenány do databáze Firebase. Kromě prohlížení protokolu pohybu ve webovém prohlížeči má uživatel také přístup k protokolu pohybu prostřednictvím aplikace pro iOS. Rozhodl jsem se to postavit kvůli nedávnému nárůstu vloupání do vozidel i domů v mé oblasti.

Proč Pi3? Potřeboval jsem něco malého, co dokáže detekovat pohyb a v případě potřeby vybít baterii. Potom mohu jednotku schovat za dveře nebo do auta. Také jednotka musí být schopna mi zasílat oznámení nebo výstrahy. Pi3 může dělat všechny tyto věci s vestavěným wifi a jeho schopností vybít baterii USB. Další důvody, proč jsem si vybral Pi3:

  • Pi je relativně levný
  • Jeho nasazení a rozšíření je snadné
  • Je konfigurovatelný z hlediska softwaru
  • Schopnost používat displeje a senzory. Tento projekt bude používat SenseHat
  • Ovládejte bez hlavy (bez monitoru, klávesnice nebo myši)

Jak to funguje

  • V ideálním případě bude uživatel potřebovat 2 Raspberry Pis připojené k databázi Firebase, ale bude fungovat i jeden Pi.
  • S využitím SenseHat bude první Pi (Pi1) detekovat pohyb pomocí akcelerometru, zatímco druhý Pi (Pi2) bude zobrazovat upozornění na pohyb.
  • Když Pi1 detekuje pohyb, provede 3 věci

    • pohyb protokolu do databáze
    • vytvořte v databázi záznam oznámení pro zobrazení Pi2
    • poslat uživateli textovou zprávu upozorňující uživatele na pohyb.
  • Když Pi2 detekuje oznámení, které se má zobrazit z databáze, stanou se dvě věci

    • LED displej Pi2 bude oznámení zobrazovat nepřetržitě
    • Uživatel může oznámení vymazat stisknutím tlačítka Pi2 SenseHat. Tím se také vymaže záznam oznámení v databázi.
  • S aplikací pro iOS může uživatel

    • přístup k databázi; přečtěte a odstraňte protokol pohybu
    • uživatel může odeslat Pi1, aby zobrazil zprávu na LED displeji Pi1.

Praktické aplikace

  1. Pokud zaparkujete auto v dosahu wifi. Připojte baterii k Pi1 (viz obrázek). Skrýt Pi1 v autě. Umístěte Pi2 na snadno viditelné místo, například vedle stolu (viz obrázek).
  2. Další aplikací je umístění Pi1 ve vašem domě na stranu dveří. Pi je tak malý, že si ho většina lidí nevšimne, zvláště pokud je za závěsovou stranou (viz obrázek). Poté položte Pi2 na pracovní stůl.
  3. Pes se dostal na místo v domě, o kterém se to předpokládá? Umístěte Pi1 do této oblasti. Ujistěte se, že jste Pi vložili do robustní krabice, aby to váš pes nerozžvýkal.

Dokud jsou vaše Pis v dosahu wifi, mohou vás upozornit nebo vás upozornit na pohyb. Pokud nemáte druhé Pi, můžete pomocí Pi1 detekovat pohyb a přijímat upozornění prostřednictvím SMS prostřednictvím mobilního telefonu.

Kusovník

  • Dva (2) Raspberry Pi 3 s běžícím Raspbian (Raspberry Pi 2 bude fungovat i s wifi dongle)
  • Dva (2) SenseHats
  • Zařízení Mac a iOS

Potřebný software

  • Knihovna Pyrebase (připojení k Firebase)
  • Knihovna SenseHat (pro přístup k akcelerometru a LED displeji)
  • Knihovna Twilio (pro odesílání SMS)
  • Python 3, integrovaný s nejnovějším Raspbianem
  • Raspbian s IDLE
  • Xcode8 a Cocoapods na vašem Macu
  • Ochota učit se a zkoumat

Boční poznámka Toto není jediné bezpečnostní řešení založené na Pi. Pokud máte nějaké nápady, návrhy nebo chcete pouze upravit můj kód, zanechte prosím komentář níže! =)

Krok 1: Nastavení účtů 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

Nejprve, než začneme hrát s Pisem, musíme nastavit Firebase a Twilio. Firebase je backend společnosti Google jako služba. Firebase obsahuje takové funkce, jako je databáze, cloudové zprávy, ověřování, úložiště atd. Pro tento projekt budeme potřebovat pouze databázi a autentizaci Firebase v reálném čase. Ke čtení a zápisu do vaší databáze Firebase bude nutné ověření. Nastavení Firebase:

  1. Zaregistrujte si bezplatný účet Firebase
  2. Přejděte na konzolu. Vytvořte nový projekt a pojmenujte jej.
  3. V nabídce vlevo klikněte na „Přehled“
  4. Klikněte na „Přidat Firebase do vaší webové aplikace“, zkopírujte si APIKey a projectid (nikoli URL). ID projektu se nachází na různých adresách URL, jako je databáze:
  5. V nabídce vlevo klikněte na „Ověření“. Přejděte na „Způsob přihlášení“a povolte „E -mail/heslo“
  6. V části „Uživatel“vytvořte nový uživatelský účet s e -mailem/heslem podle vašeho výběru. Tyto přihlašovací údaje použijete k přihlášení do databáze.
  7. V levé nabídce přejděte na „Databáze“
  8. Toto je vaše databáze. Právě teď je prázdný. Po vyplnění bude ve formátu JSON. Adresa URL by měla být stejná jako ta, kterou jste viděli dříve.

Twilio umožňuje vývojářům posílat zprávy svým zákazníkům. Použijeme ho k odeslání SMS na váš telefon, když Pi detekuje pohyb. Twilio vám poskytne telefonní číslo pro rozesílání SMS. Nastavení Twilio:

  1. Zaregistrujte si bezplatný účet na webu Twilio
  2. Zkopírujte si ID účtu a authToken
  3. Klikněte na „Zkušební omezení“a vyberte „získat první telefonní číslo Twilio“
  4. Zkopírujte si nové telefonní číslo

Krok 2: Nastavte si Pis

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

Než můžeme začít programovat Pis, musíme udělat nějaké nastavení. Ujistěte se, že máte heslo pro přihlášení k Pis. Nejprve fyzicky připojíme desky SenseHat k Pis. Dále nainstalujeme potřebné knihovny SenseHat, Twilio a Pyrebase. Databáze Firebase v reálném čase byla navržena pro mobilní zařízení nebo webové stránky. Můžeme však číst a zapisovat cloudovou databázi prostřednictvím Rest API s pomocnou knihovnou, jako je Pyrebase.

Připojte SenseHat Ujistěte se, že jsou SenseHats připojeny k vaší Pis. Pokud máte neobvyklý případ, možná budete muset před připojením SenseHat odebrat Pi.

Instalace knihoven Všechny instalace knihoven budou provedeny v Terminálu

  • Pokud jste to ještě neudělali, spusťte Pis.
  • Po spuštění získáte tuto barevnou LED duhu na svém SenseHat! (viz obrázek)
  • Přejděte na terminál a aktualizujte/dist-upgrade, zadejte:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • Po dokončení upgradů nainstalujte knihovny SenseHat zadáním následujícího příkazu:

    sudo apt-get install sense-hat

  • Chcete -li nainstalovat Pyrebase, zadejte:

    sudo pip install pyrebase

  • Nakonec nainstalujte Twilio

    sudo pip install twilio

Krok 3: Python Script pro Pi1

Jak jsme zmínili dříve, Pi1 bude Pi, které bude použito k detekci pohybu. K určení pohybu budou použity hodnoty akcelerometru SenseHat. Kód pro Pi1 tedy bude kolem přístupu k hodnotám síly akcelerometru g a zaznamenávání pohybů detekovaných do databáze Firebase. Zde je přehled toku procesů:

  • Pokud Pi1 detekuje pohyb, přidá záznam do podřízeného objektu „výstrah“ve Firebase DB.
  • Pi1 také aktualizuje podřízené zařízení "nounpipi2 "pomocí oznamovací zprávy týkající se pohybu.
  • Pi2 poté přečte „Notifypi2“a zobrazí oznámení na svém LED maticovém displeji.

Zahrnul jsem skript Pi1 Python, který můžete sledovat. Komentáře ve skriptu vysvětlují, co kód dělá.

Další poznámky a postřehy pro skript Pi1

  • Pro nastavení Firebase a Twilio. Vyplňte příslušné klíče API, ID, hesla atd., Které jste zkopírovali z předchozích kroků.
  • Pokud jde o autentizaci Firebase, pro zvýšení zabezpečení můžete místo pevného kódování těchto přihlašovacích údajů požádat o vstup uživatele. Při každém zápisu nebo čtení z databáze budeme muset zahrnout

    uživatel ['idtoken'] s th

    get (), push (), set () metody.

  • Je nutná teplota CPU, abychom mohli zasáhnout v případě, že se Pi přehřívá v autě nebo v uzavřeném prostředí.
  • Bereme také absolutní hodnotu sil G, protože nepotřebujeme znát záporné hodnoty. Potřebujeme jen vědět, jestli existují síly G.
  • Pokud příkaz zkontroluje hodnoty akcelerometru. Pokud jsou síly G větší než 1 v libovolném směru, Pi1 zaznamená čas pohybu a na svém vlastním LED displeji zobrazí vykřičník. Rovněž bude aktualizován podřízený prvek "Notifypi2". Když se aktualizuje „Notifypi2“, Pi2 ji přečte a zobrazí „!!!“na svém LED displeji upozorní uživatele na možný pohyb/vloupání. Pi1 také pošle uživateli SMS upozornění na pohyb.
  • Při použití metody push () Firebase automaticky vygeneruje dítě s novým záznamem. To bylo nutné, takže zaznamenaná data o pohybu budou jedinečná. metoda set () na druhé straně přepíše předchozí data.
  • 10sekundová smyčka ke kontrole databáze je nezbytná, aby váš Pi opakovaně nevyžadoval data z Firebase. Pokud budete nepřetržitě spamovat Firebase, Google vás odhlásí asi za 10 minut.
  • Firebase také vykopne uživatele každých 60 minut, pokud token není obnoven. Obnovení mám nastaveno na 1800 sekund (30 minut).

Krok 4: Python Script pro Pi2

Python Script pro Pi2
Python Script pro Pi2

Pokud se podíváte na fotografii, jde o zobrazení Pi2 s upozorněním na možný pohyb.

Skript Pi2 je téměř úplně stejný jako Pi1, kromě toho, že skript nedetekuje pohyb. Pi2 zobrazuje nebo resetuje pouze oznamovací zprávy od podřízeného objektu "Notifypi2". Protože to je jediný rozdíl, vysvětlím to níže.

  • Každých 10 sekund kontroluje Pi2, zda se má zobrazit „Notifypi2“. Pokud se zobrazí zpráva s upozorněním, Pi2 ji bude zobrazovat nepřetržitě, aby ji uživatel viděl.
  • Zprávu smaže a resetuje na straně databáze pouze zásah uživatele stisknutím tlačítka joysticku.

Krok 5: Otestujte Pis

Image
Image
Otestujte Pis
Otestujte Pis

Čas vyzkoušet Pis.

  • Spusťte skripty pro příslušnou Pis.
  • Přihlaste se do Firebase a přejděte do sekce databáze projektů.
  • Zatřeste Pi1, na LED displeji Pi1 byste měli vidět červený vykřičník. Také byste měli dostat SMS zprávu.
  • Zkontrolujte databázi, měly by se začít zobrazovat výstražné položky. Aktualizováno by mělo být také „Notifypi2“.
  • Podívejte se na Pi2. Měli byste také posouvat "!!!" Chcete -li tuto zprávu vymazat, stiskněte joystick. "Notifypi2" by mělo být resetováno. Potvrďte to na Firebase.
  • Pokud se vám zdá Pi1 příliš citlivý na pohyb, zvyšte práh na více než 1G ve skriptu Pi1.

Pokud vše půjde dobře, vaše skripty se nerozbijí. Nyní máte funkční oznamovací systém. Jakmile Pi1 detekuje pohyby nebo vibrace, dostanete oznámení SMS zprávou a vizuální upozornění LED na Pi2.

Krok 6: Sestavení aplikace R-PiAlerts IOS

Sestavení aplikace R-PiAlerts IOS
Sestavení aplikace R-PiAlerts IOS

Čas na vytvoření aplikace pro iOS! Aplikace bude poměrně jednoduchá. Bude mít LoginViewController a ItemsTableViewController. ItemsTableViewController zobrazí výstražná upozornění od podřízeného "upozornění". Z aplikace lze také odstranit položky databáze. Abyste si ušetřili bolesti hlavy, plánujete -li se podívat na online návody pro Firebase, určitě se poohlédněte po návodech datovaných po březnu 2016, protože loni v tu dobu došlo k zásadním změnám. Cokoli do března 2016 bude zastaralé. Mám zájem o rychlé soubory. Zkontrolujte prosím komentáře v kódu. Pokud chcete podrobný návod, jak vytvořit aplikaci Firebase, která čte databázi, podívejte se na návod Raye Wunderlicha.

Nastavte si přehled projektu iOS

  • Vytvořte jeden projekt iOS v Xcode.
  • Zkopírujte identifikátor svazku
  • Přejděte na svůj projekt Firebase na webu a vytvořte soubor info.plist s identifikátorem balíčku.
  • Přidejte do svého projektu soubor GoogleService-info.plist. Tento info.plist funguje pouze s konkrétním projektem Firebase, který jste vytvořili.
  • Zavřete Xcode a nainstalujte Firebase přes Cocoapods. Ujistěte se, že jste nainstalovali Auth a Database.
  • Restartujte Xcode a poté nakonfigurujte svůj AppDelegate.swift pro Firebase. Trvá to jen 2 řádky kódu.

    Importovat Firebase an

    FIRApp.configure (). Volitelně má Firebase funkci trvalosti, která zabere pouze 1 řádek kódu

    FIRDatabase.database (). PersistenceEnabled = true

  • Podrobné instalační kroky najdete na webových stránkách Firebase

Jak aplikace interaguje s databází Firebase:

  • Aplikace bude muset uživatele ověřit.
  • Po ověření aplikace pořídí snímek databáze Firebase a uloží jej jako objekt „Item“.
  • Uvedený objekt vyplní pole. Uvedené pole bude použito k vyplnění zobrazení tabulky.
  • Pozorovatel bude sledovat změny v databázi Firebase a vytvoří snímek.
  • Jakmile jsou zjištěny změny, bude pole připojeno z nového snímku.
  • Tableview bude poté znovu načten, aby ukázal změny.

Obecný přehled o tom, jak vytvořit aplikaci

  • Podívejte se na obrázek o tom, jak je aplikace rozložena v nástroji Xcode pro tvorbu rozhraní.
  • Vytvořte ViewController v Tvůrci rozhraní a nasměrujte vlastní třídu na LoginViewController.swift.
  • Přidejte textová pole pro e -mail a heslo. Nezapomeňte v poli pro heslo zapnout „Zabezpečený textový vstup“. Přidejte tlačítko pro přihlášení.
  • Propojte textová pole a tlačítko s LoginViewController.swift. O autentizaci se postará LoginViewController.swift.
  • Přidejte ovladač navigace do nástroje pro tvorbu rozhraní. Vytvořte přechod z aplikace LoginViewController do navigačního ovladače. Nezapomeňte dát segue identifikátor.
  • Nastavte vlastní třídu nového zobrazení tabulky, která byla dodána s navigačním ovladačem, na bod ItemsTableViewController.swift. Mám také 2 tlačítka na ItemsTableViewController: Odhlášení a tlačítko Přidat. Propojte tlačítka s ItemsTableViewController.swift.
  • Pokud jde o kód LoginViewController.swift. Uživatel zadá přihlašovací údaje a Firebase vrátí uživatele. Pokud je uživatel přítomen, provede identifikaci pomocí identifikace. (viz přiložený kód)
  • Přidejte třídu Item.swift (viz připojený kód)
  • Pokud jde o kód ItemsTableViewController, je to docela standardní kód zobrazení tabulky. Bude existovat pozorovatel, který bude sledovat změny ve vaší databázi uložené jako snímek jako objekt Item. Potom objekt Item připojí pole k vyplnění zobrazení tabulky. Tlačítko Přidat nastaví položku v databázi Firebase pro čtení a zobrazení Pi1. Pro chichotání jsem také přidal kód (viz přiložený kód)

Krok 7: Otestujte aplikaci

Otestujte aplikaci
Otestujte aplikaci
Otestujte aplikaci
Otestujte aplikaci
Otestujte aplikaci
Otestujte aplikaci

Spusťte aplikaci

  • Přihlaste se a zatřeste svým Pi1. Měli byste začít zobrazovat nová výstražná oznámení.
  • Klepněte na tlačítko Přidat a sledujte, jak váš Pi1 zobrazuje vaši zprávu.
  • Přejeďte prstem doleva, viz položky „Upozornění“budou odstraněny.
  • Dostáváte příliš mnoho oznámení rychle za sebou? upravit práh akcelerometru nebo prodloužit dobu spánku ve skriptu Pi1.

Krok 8: Závěr

Závěr
Závěr
Závěr
Závěr

Skvělý! Nyní máme Pis, který dokáže detekovat pohyb a zasílat vám upozornění na pohyby. Kromě toho můžete pomocí svého zařízení iOS spravovat protokol výstražných zpráv! Čas nasadit Pis. Umístěte Pi1 vedle svých dveří a Pi2 kolem svého pracovního prostoru. Až příště někdo přijde, můžete se podívat na situaci! Nebo ještě lépe, zkuste se schovat u Pi ve svém autě s baterií. Několikrát zabouchněte dveře, uvidíte, co se stane!

To je jen začátek možností, co můžete s Raspberry Pi a Firebase dělat. SenseHat také obsahuje senzory prostředí, gyroskopy a kompas. Svůj Pis můžete nastavit tak, aby zaznamenával určité změny prostředí. Chcete posílit svoji hru? Když váš Pi detekuje pohyby, použijte fotoaparát k zachycení obrázků a pošlete jim text pi fotografií. Zkuste také rozpoznat tváře pomocí algoritmu počítačového vidění. pokud je to tvář někoho známého, můžete dostat oznámení! Bavte se!

Doporučuje: