Tartalomjegyzék:
- 1. lépés: Állítsa be a Firebase és Twilio fiókokat
- 2. lépés: Állítsa be a Pis
- 3. lépés: Python Script for Pi1
- 4. lépés: Python Script for Pi2
- 5. lépés: tesztelje a Pis -t
- 6. lépés: Az R-PiAlerts IOS alkalmazás létrehozása
- 7. lépés: Tesztelje az alkalmazást
- 8. lépés: Következtetés
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)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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
- 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).
- 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.
- 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
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:
- Regisztráljon egy ingyenes Firebase -fiókhoz
- Menjen a konzolhoz. Hozzon létre egy új projektet, és adjon neki nevet.
- A bal oldali menüben kattintson az "Áttekintés" gombra
- 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:
- 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
- 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.
- A bal oldali menüben lépjen az "Adatbázis" elemre
- 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:
- Iratkozzon fel ingyenes fiókra Twilio webhelyén
- Másolja fiókjátSID és authToken
- Kattintson a "Próba korlátozások" elemre, és válassza az "első Twilio telefonszám megszerzése" lehetőséget
- Másolja az új telefonszámot
2. lépés: Á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
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
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
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
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
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:
Visuino Behatolásjelző rendszer kiépítése Arduino használatával: 8 lépés
Visuino építsen behatolásérzékelő rendszert Arduino használatával: Ebben az oktatóanyagban egy XYC-WB-DC mikrohullámú radar mozgásérzékelőt használunk, amely az Arduino UNO-hoz és a Visuino-hoz van csatlakoztatva, hogy észleljen minden 5 m körüli mozgást, beleértve a vékony falakat is
Egygombos női biztonsági biztonsági rendszer: 3 lépés
Egygombos női biztonsági biztonsági rendszer: Egyérintéses riasztó Női biztonsági rendszer 8051 mikrovezérlővelA mai világban a nők biztonsága a legfontosabb kérdés az országban. Ma a nőket zaklatják és zavarják, és néha, amikor sürgős segítségre van szükség. Nincs kötelező helymeghatározás
PIR alapú biztonsági rendszer: 7 lépés
PIR alapú biztonsági rendszer: Ez a modul a PIR érzékelőn alapul és nagyon pontos, zümmögő modulból és tartalék áramellátásból áll a nagyobb biztonság érdekében
Arduino PIR biztonsági rendszer autós kürt segítségével: 7 lépés (képekkel)
Arduino PIR biztonsági rendszer autós kürtöt használva: Rendben, tehát ebben a projektben tolvajriasztást fogunk készíteni PIR -érzékelő, Arduino, relé és autós kürt segítségével
RFID biztonsági rendszer (Arduino alapú): 6 lépés (képekkel)
RFID biztonsági rendszer (Arduino alapú): Egy igazán szép eszköz otthonában