Tartalomjegyzék:

R-PiAlerts: WiFi alapú biztonsági rendszer kiépítése málna Pis segítségével: 8 lépés (képekkel)
R-PiAlerts: WiFi alapú biztonsági rendszer kiépítése málna Pis segítségével: 8 lépés (képekkel)

Videó: R-PiAlerts: WiFi alapú biztonsági rendszer kiépítése málna Pis segítségével: 8 lépés (képekkel)

Videó: R-PiAlerts: WiFi alapú biztonsági rendszer kiépítése málna Pis segítségével: 8 lépés (képekkel)
Videó: Мини ПК AC8-N на Intel N100 - часть 3. Proxmox, Home Assistant OS 2024, November
Anonim
Image
Image
R-PiAlerts: Építsen WiFi alapú biztonsági rendszert málna Pis-sel
R-PiAlerts: Építsen WiFi alapú biztonsági rendszert málna Pis-sel
R-PiAlerts: Építsen WiFi alapú biztonsági rendszert málna Pis-sel
R-PiAlerts: Építsen WiFi alapú biztonsági rendszert málna Pis-sel

Az asztalnál dolgozva hirtelen távoli zajt hall. Csak most jött haza valaki? Az autóm a házam előtt áll, betört valaki az autómba? Nem szeretné, ha értesítést kapna a telefonján vagy az asztalánál, hogy eldönthesse, vizsgálja -e vagy sem? Nos, ne kérdezz többet! Itt az R-PiAlerts!

Mi az R-PiAlerts? Az R-PiAlerts egy Raspberry Pi3 alapú biztonsági rendszer, amely a Firebase felhője köré épül. Ha mozgást észlel, a rendszer szöveges üzenettel és villogó LED-kijelzővel (valamilyen néma vizuális riasztás) értesíti a felhasználót az esetleges betörésről. Amint a felhasználó értesítést kap, megvizsgálhatja. Minden észlelt mozgás naplózásra kerül a Firebase adatbázisba. A mozgásnapló webböngészőben történő megtekintése mellett a felhasználó iOS -alkalmazáson keresztül is hozzáférhet a mozgásnaplóhoz. Úgy döntöttem, hogy ezt építem, mivel a közelmúltban megnövekedett a betörések száma a környéken lévő járművekbe és lakásokba.

Miért pont a Pi3? Valami kicsi kellett, ami érzékeli a mozgást, és szükség esetén lemerül. Ezután elrejthetem az egységet egy ajtó mögé vagy egy autóba. Az egységnek képesnek kell lennie arra is, hogy értesítéseket vagy riasztásokat küldjön nekem. A Pi3 mindezt megteheti a beépített wifivel és azzal, hogy képes lemerülni egy USB akkumulátorról. Egyéb okok, amiért a Pi3 -at választottam:

  • A Pi viszonylag olcsó
  • Könnyen telepíthető és méretezhető
  • Szoftveres szempontból konfigurálható
  • Kijelzők és érzékelők használatának képessége. Ez a projekt a SenseHat -ot fogja használni
  • Fej nélküli működés (monitor, billentyűzet vagy egér nélkül)

Hogyan működik

  • Ideális esetben a felhasználónak 2 Raspberry Pis -re lesz szüksége a Firebase adatbázishoz csatlakoztatva, de egyetlen Pi is működik.
  • A SenseHat segítségével az első Pi (Pi1) a gyorsulásmérővel érzékeli a mozgást, míg a második Pi (Pi2) a mozgásról szóló értesítéseket jeleníti meg.
  • Amikor a Pi1 mozgást észlel, 3 dolgot tesz

    • naplózza a mozgást az adatbázisba
    • hozzon létre egy értesítési bejegyzést az adatbázisban a Pi2 megjelenítéséhez
    • küldjön a felhasználónak egy szöveges üzenetet, amelyben értesíti a felhasználót a mozgásáról.
  • Amikor a Pi2 értesítést észlel az adatbázisból, két dolog történik

    • A Pi2 LED kijelzője folyamatosan megjeleníti az értesítést
    • A felhasználó törölheti az értesítést a Pi2 SenseHat gomb lenyomásával. Ezzel törli az értesítési bejegyzést az adatbázisban.
  • Az iOS alkalmazással a felhasználó megteheti

    • hozzáférés az adatbázishoz; olvassa el és törölje a mozgásnaplót
    • a felhasználó elküldheti a Pi1 -et, hogy üzenetet jelenítsen meg a Pi1 LED -kijelzőjén.

Praktikus alkalmazások

  1. Ha az utcán parkol az autójával a wifi hatótávolságán belül. Csatlakoztasson egy akkumulátort a Pi1 -hez (lásd a képet). Rejtsd el a Pi1 -et az autóban. Helyezze a Pi2 -t könnyen látható helyre, például az íróasztal mellé (lásd a képet).
  2. Egy másik alkalmazás a Pi1 elhelyezése a házban egy ajtó mellett. A Pi olyan apró, hogy a legtöbb ember nem veszi észre, különösen, ha a csuklópánt mögött van (lásd a képet). Ezután helyezze a Pi2 -t az íróasztalához.
  3. A kutya olyan helyre kerül a házban, amire nem lenne szabad? Helyezzen egy Pi1 -et erre a területre. Ügyeljen arra, hogy a Pi -t egy erős dobozba helyezze, hogy a kutyája ne rágja fel.

Amíg a Pis wifi hatótávolságon belül van, figyelmeztethetnek vagy értesíthetnek a mozgásról. Ha nincs második Pi -je, akkor a Pi1 segítségével egyszerűen észlelheti a mozgást, és SMS -értesítéseket fogadhat mobiltelefonján keresztül.

Darabjegyzékben

  • Két (2) Raspberry Pi 3s, amelyen Raspbian fut (a Raspberry Pi 2 wifi hardverkulccsal is működik)
  • Két (2) SenseHats
  • Mac és iOS eszköz

Szükséges szoftver

  • Pyrebase könyvtár (csatlakozás a Firebase -hez)
  • SenseHat könyvtár (gyorsulásmérő és LED kijelző eléréséhez)
  • Twilio könyvtár (SMS küldéséhez)
  • Python 3, beépítve a legújabb Raspbian szoftverrel
  • Raspbian az IDLE -vel
  • Xcode8 és Cocoapods a Mac számítógépén
  • Tanulási és felfedezési hajlandóság

Ez nem az egyetlen Pi -alapú biztonsági megoldás. Ha bármilyen ötlete, javaslata van, vagy csak szeretné módosítani a kódomat, kérjük, hagyjon megjegyzést alább! =)

1. lépés: Állítsa be a Firebase és Twilio fiókokat

Állítsa be a Firebase és Twilio fiókokat
Állítsa be a Firebase és Twilio fiókokat
Állítsa be a Firebase és Twilio fiókokat
Állítsa be a Firebase és Twilio fiókokat

Először is, mielőtt elkezdünk babrálni a Pis -sel, be kell állítanunk a Firebase -t és a Twilio -t. A Firebase a Google háttértára, mint szolgáltatás. A Firebase olyan funkciókat tartalmaz, mint az adatbázis, a felhőalapú üzenetküldés, a hitelesítés, a tárolás stb. Ehhez a projekthez csak a Firebase valós idejű adatbázisát és hitelesítését kell használnunk. A Firebase -adatbázis olvasásához és írásához hitelesítésre lesz szükség. A Firebase beállítása:

  1. Regisztráljon egy ingyenes Firebase -fiókhoz
  2. Menjen a konzolhoz. Hozzon létre egy új projektet, és adjon neki nevet.
  3. A bal oldali menüben kattintson az "Áttekintés" gombra
  4. Kattintson a „Firebase hozzáadása a webalkalmazáshoz” lehetőségre, másolja le az APIKey és a projectid (nem az URL -t). A projekt azonosítója megtalálható a különböző URL -ekben, például az adatbázisban:
  5. A bal oldali menüben kattintson a "Hitelesítés" gombra. Lépjen a "Bejelentkezési módszer" elemre, és engedélyezze az "E -mail/jelszó" lehetőséget
  6. A "Felhasználó" alatt hozzon létre egy új felhasználói fiókot az Ön által választott e -mail címmel/jelszóval. Ezt a hitelesítő adatot fogja használni az adatbázisba való bejelentkezéshez.
  7. A bal oldali menüben lépjen az "Adatbázis" elemre
  8. Ez az Ön adatbázisa. Jelenleg üres. Ha kitöltik, JSON formátumban lesz. Az URL -nek meg kell egyeznie a korábban látottakkal.

A Twilio lehetővé teszi a fejlesztőknek, hogy üzeneteket küldjenek ügyfeleiknek. Arra fogjuk használni, hogy SMS -t küldjön a telefonjára, amikor a Pi mozgást észlel. A Twilio megad egy telefonszámot SMS küldéséhez. A Twilio beállítása:

  1. Iratkozzon fel ingyenes fiókra Twilio webhelyén
  2. Másolja fiókjátSID és authToken
  3. Kattintson a "Próba korlátozások" elemre, és válassza az "első Twilio telefonszám megszerzése" lehetőséget
  4. Másolja az új telefonszámot

2. lépés: Állítsa be a Pis

Állítsa be a Pis
Állítsa be a Pis
Állítsa be a Pis
Állítsa be a Pis

Mielőtt elkezdenénk programozni a Pis -t, el kell végeznünk néhány beállítást. Győződjön meg arról, hogy jelszóval jelentkezett be a Pis -hez. Először fizikailag csatlakoztatjuk a SenseHat táblákat a Pis -hez. Ezután telepítjük a szükséges SenseHat, Twilio és Pyrebase könyvtárakat. A Firebase valós idejű adatbázisát mobileszközökhöz vagy webhelyekhez tervezték. Azonban olvashatjuk és írhatjuk a felhőalapú adatbázist a Rest API -n keresztül egy olyan segédkönyvtárral, mint a Pyrebase.

Győződjön meg arról, hogy a SenseHats csatlakozik a Pis -hez. Ha szokatlan esete van, akkor a SenseHat csatlakoztatása előtt el kell távolítania a Pi -t.

Könyvtárak telepítése Az összes könyvtár telepítése a terminálon történik

  • Indítsa el a Pis -t, ha még nem tette meg.
  • A rendszerindításkor ezt a színes LED szivárványt kapja a SenseHat készülékén! (lásd a képet)
  • Lépjen a terminálra, és frissítse/dist-upgrade, írja be:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • A frissítések befejezése után írja be a következőt a SenseHat könyvtárak telepítéséhez:

    sudo apt-get install sense-hat

  • A Pyrebase telepítéséhez írja be:

    sudo pip install pyrebase

  • Végül telepítse a Twilio -t

    sudo pip telepítse a twilio -t

3. lépés: Python Script for Pi1

Amint korábban említettük, a Pi1 lesz a Pi, amelyet a mozgás észlelésére használnak. A SenseHat gyorsulásmérője értékeit fogja használni a mozgás meghatározásához. Így a Pi1 kódja a gyorsulásmérő g erőértékeinek elérése és az észlelt mozgások naplózása lesz a Firebase adatbázisban. Íme egy áttekintés a folyamatok folyamatáról:

  • Ha a Pi1 mozgást észlel, bejegyzést ad hozzá a "riasztások" gyermekhez a Firebase DB -ben.
  • A Pi1 frissíti a "alertpi2" gyermeket a mozgással kapcsolatos értesítő üzenettel.
  • Pi2, majd olvassa az "értesítés2" -t, és jelenítse meg az értesítést a LED mátrix kijelzőjén.

Mellékeltem a Pi1 Python szkriptet, hogy kövesse. A szkript megjegyzései elmagyarázzák, mit csinál a kód.

További megjegyzések és betekintés a Pi1 szkripthez

  • A Firebase és a Twilio beállításához. Töltse ki a megfelelő API -kulcsokat, azonosítókat, jelszavakat stb., Amelyeket az előző lépésekből másolt.
  • Ami a Firebase hitelesítést illeti, a nagyobb biztonság érdekében kérheti a felhasználói bevitelt a hitelesítő adatok kemény kódolása helyett. Minden alkalommal, amikor írunk vagy olvasunk az adatbázisból, be kell illesztenünk

    user ['idtoken'] a th

    get (), push (), set () mód.

  • CPU hőmérsékletre van szükség, hogy beavatkozzunk, ha a Pi túlmelegszik egy autóban vagy zárt környezetben.
  • A G erők abszolút értékét is figyelembe vesszük, mivel nem kell ismernünk a negatív értékeket. Csak azt kell tudnunk, hogy vannak -e G erők.
  • Ha az utasítás ellenőrzi a gyorsulásmérő értékeit. Ha a G erők bármely irányban nagyobbak, mint 1, a Pi1 rögzíti a mozgási időt, és felkiáltójelet jelenít meg saját LED -kijelzőjén. Frissíti az "értesítési2" gyermeket is. Amikor az "értesítés2" frissítésre kerül, a Pi2 elolvassa és megjeleníti a "!!!" LED kijelzőjén, hogy értesítse a felhasználót az esetleges mozgásról/betörésről. A Pi1 SMS -t is küld a felhasználónak a mozgásról.
  • A push () metódus használatakor a Firebase automatikusan generál egy új bejegyzésű gyermeket. Erre szükség van, így a naplózott mozgási adatok egyediek lesznek. a set () metódus viszont felülírja a korábbi adatokat.
  • 10 másodperces ciklus szükséges az adatbázis ellenőrzéséhez, hogy a Pi ne kérjen ismételten adatokat a Firebase -től. Ha folyamatosan spameli a Firebase -t, a Google körülbelül 10 perc múlva kijelentkezteti Önt.
  • A Firebase 60 percenként kirúgja a felhasználót, ha a token nem frissül. A frissítés 1800 másodpercre van állítva (30 perc).

4. lépés: Python Script for Pi2

Python Script a Pi2 -hez
Python Script a Pi2 -hez

Ha megnézi a fényképet, az a Pi2, amely értesítést jelenít meg az esetleges mozgásról.

A Pi2 szkriptje nagyjából ugyanaz, mint a Pi1, kivéve, ha a szkript nem érzékel mozgást. A Pi2 csak az értesítési üzeneteket jeleníti meg vagy állítja vissza az "értesítési2" utódtól. Mivel ez az egyetlen különbség, ezt alább kifejtem.

  • A Pi2 10 másodpercenként megjeleníti az "értesítés2" jelzést. Ha megjelenik egy értesítési üzenet, a Pi2 folyamatosan megjeleníti, hogy a felhasználó láthassa.
  • Csak a joystick gomb megnyomásával végzett felhasználói beavatkozás törli és törli az üzenetet az adatbázis oldalon.

5. lépés: tesztelje a Pis -t

Image
Image
Teszteld a Pis -t
Teszteld a Pis -t

Ideje kipróbálni a Pis -t.

  • Futtassa a megfelelő Pis parancsfájljait.
  • Jelentkezzen be a Firebase -be, és lépjen a projektek adatbázisába.
  • Rázza fel a Pi1 készüléket, és piros felkiáltójelet kell látnia a Pi1 LED kijelzőjén. SMS -t is kell kapnia.
  • Ellenőrizze az adatbázist, a riasztási bejegyzéseknek meg kell jelenniük. Az "értesítőt2" is frissíteni kell.
  • Nézd meg a Pi2 -t. Görgetnie kell a "!!!" Az értesítési üzenet törléséhez nyomja meg a joystickot. Az "értesítés2" -t vissza kell állítani. Ellenőrizze a Firebase -t a megerősítéshez.
  • Ha a Pi1 -et túl érzékenynek találja a mozgásra, növelje a küszöböt 1G -nál nagyobbra a Pi1 szkriptben.

Ha minden jól megy, a szkriptek nem fognak összeomlani. Most van egy működő értesítési rendszere. Amint a Pi1 mozgást vagy rezgést észlel, kap egy SMS -értesítést és egy vizuális LED -értesítést a Pi2 -en.

6. lépés: Az R-PiAlerts IOS alkalmazás létrehozása

Az R-PiAlerts IOS alkalmazás létrehozása
Az R-PiAlerts IOS alkalmazás létrehozása

Ideje elkészíteni az iOS alkalmazást! Az alkalmazás meglehetősen egyszerű lesz. Lesz LoginViewController és ItemsTableViewController. Az ItemsTableViewController megjeleníti a riasztási értesítéseket a "riasztások" gyermekétől. Az adatbázisból származó bejegyzéseket az alkalmazásból is törölheti. A fejfájás megmentése érdekében, ha a Firebase online oktatóanyagait szeretné megnézni, feltétlenül keresse meg a 2016. március után kelt oktatóanyagokat, mivel tavaly nagy változások történtek ekkortájt. Minden, ami 2016 márciusa előtt öröklődik. Érdekelnek a gyors fájlok, kérjük, tekintse át a kódban található megjegyzéseket. Ha részletes oktatóanyagra van szüksége az adatbázist olvasó Firebase alkalmazás létrehozásáról, nézze meg Ray Wunderlich oktatóanyagát.

Állítsa be az iOS -projekt áttekintését

  • Hozzon létre egyetlen nézetű iOS -projektet az Xcode -ban.
  • Másolja a csomag azonosítóját
  • Nyissa meg a Firebase -projektet a webhelyen, és hozzon létre egy info.plist fájlt a csomag azonosítójával.
  • Adja hozzá a GoogleService-info.plist fájlt a projekthez. Ez az info.plist csak az Ön által létrehozott Firebase -projekttel működik.
  • Zárja be az Xcode alkalmazást, és telepítse a Firebase -t a Cocoapods segítségével. Győződjön meg róla, hogy telepítette az Auth és az adatbázis szolgáltatást.
  • Indítsa újra az Xcode -ot, majd konfigurálja az AppDelegate.swift for Firebase alkalmazást. Csak 2 sornyi kód szükséges.

    A Firebase importálása an

    FIRApp.configure (). Opcionálisan a Firebase rendelkezik egy perzisztencia funkcióval, amely csak 1 sornyi kódot tartalmaz

    FIRDatabase.database (). PersistenceEnabled = igaz

  • A részletes telepítési lépések megtalálhatók a Firebase webhelyén

Hogyan működik az alkalmazás a Firebase adatbázissal:

  • Az alkalmazásnak hitelesítenie kell a felhasználót.
  • A hitelesítés után az alkalmazás pillanatfelvételt készít a Firebase adatbázisról, és "Elem" objektumként tárolja.
  • Az említett objektum kitölt egy tömböt. Az említett tömb a táblázatnézet kitöltésére szolgál.
  • Egy megfigyelő figyeli a Firebase adatbázis változásait, és pillanatképet készít.
  • A változások észlelése után a tömb hozzáfűződik az új pillanatképből.
  • A táblázatnézet ezután újra betöltődik a változások megjelenítéséhez.

Általános vázlat az alkalmazás létrehozásáról

  • Vessen egy pillantást az alkalmazásra az Xcode kezelőfelület -készítőjében.
  • Hozzon létre egy ViewControllert a felületépítőben, és mutassa az egyéni osztályt a LoginViewController.swift parancsra.
  • Adjon hozzá szövegmezőket az e -mailhez és a jelszóhoz. Ne felejtse el bekapcsolni a "Biztonságos szövegbevitel" funkciót a jelszómezőben. Adjon hozzá egy bejelentkezési gombot.
  • Kapcsolja össze a szövegmezőket és a gombot a LoginViewController.swift fájlhoz. A LoginViewController.swift kezeli a hitelesítést.
  • Adjon hozzá navigációs vezérlőt az interfészkészítőben. Hozzon létre egy szegmenst a LoginViewController és a Navigation Controller között. Ügyeljen arra, hogy azonosítót adjon a szegmensnek.
  • Állítsa a navigációs vezérlőhöz mellékelt új táblázatnézet egyéni osztályát az ItemsTableViewController.swift pontra. 2 gombom is van az ItemsTableViewController -en: Kijelentkezés és egy Hozzáadás gomb. Kapcsolja össze a gombokat az ItemsTableViewController.swift fájlhoz.
  • A LoginViewController.swift kóddal kapcsolatban. A felhasználó megadja a bejelentkezési adatokat, és a Firebase visszaad egy felhasználót. Ha egy felhasználó jelen van, akkor szegmenst hajt végre az azonosítóval. (lásd a mellékelt kódot)
  • Adja hozzá a Item.swift osztályt (lásd a mellékelt kódot)
  • Ami az ItemsTableViewController kódot illeti, ez meglehetősen szabványos táblázatnézeti kód. Lesz egy megfigyelő, aki figyelemmel kíséri az adatbázis változásait, amelyeket pillanatképként ment el elemobjektumként. Ezután a Item objektum hozzáfűzi a tömböt a táblázatnézet kitöltéséhez. A Hozzáadás gomb bejegyzést állít be a Firebase adatbázisban, hogy a Pi1 olvassa és megjelenítse. A kuncogáshoz kódot is hozzáadtam (lásd a mellékelt kódot)

7. lépés: Tesztelje az alkalmazást

Tesztelje az alkalmazást
Tesztelje az alkalmazást
Tesztelje az alkalmazást
Tesztelje az alkalmazást
Tesztelje az alkalmazást
Tesztelje az alkalmazást

Futtassa az alkalmazást

  • Jelentkezzen be és rázza meg a Pi1 -et. El kell kezdenie látni az új riasztási értesítéseket.
  • Koppintson a Hozzáadás gombra, és nézze meg, hogy a Pi1 megjeleníti az üzenetét.
  • Csúsztassa ujját balra, lásd: „Figyelmeztetések” bejegyzések eltávolítása.
  • Túl sok értesítést kap gyors egymásutánban? állítsa be a gyorsulásmérő küszöbét, vagy növelje az alvási időt a Pi1 szkriptben.

8. lépés: Következtetés

Következtetés
Következtetés
Következtetés
Következtetés

Fantasztikus! Most van Pis, amely érzékeli a mozgást, és értesítéseket küld a mozgásokról. Ezenkívül kezelheti a figyelmeztető üzenetek naplóját iOS -eszközével! Ideje telepíteni a Pis -t. Tegye a Pi1 -et az ajtó mellé, a Pi2 -t pedig a munkaterület köré. Ha legközelebb valaki belép, megnézheti a helyzetet! Vagy ami még jobb, próbálja meg elrejteni a Pi -t az autójában egy akkumulátorral. Csukja be néhányszor az ajtót, nézze meg, mi történik!

Ez csak a kezdete annak a lehetőségnek, hogy mit lehet tenni a Raspberry Pi és a Firebase segítségével. A SenseHat környezeti érzékelőket, giroszkópot és iránytűt is tartalmaz. Beállíthatja a Pis -t, hogy rögzítse a környezet bizonyos változásait. Fokozni szeretné játékát? Amikor a Pi érzékeli a mozgásokat, használjon fényképezőgépet, és készítse el a Pi szöveggel a fényképeket. Próbáljon számítógépes látási algoritmust is használni az arcok felismerésére. ha ismerős személy arca, értesítést kaphat! Érezd jól magad!

Ajánlott: