Sisukord:
- Samm: seadistage Firebase'i ja Twilio kontod
- 2. samm: seadistage oma Pis
- Samm: Pythoni skript Pi1 jaoks
- Samm: Pythoni skript Pi2 jaoks
- Samm: testige Pis
- 6. samm: R-PiAlerts IOS-i rakenduse loomine
- Samm: testige rakendust
- 8. samm: järeldus
Video: R-PiAlerts: ehitage WiFi-põhine turvasüsteem vaarikapisikutega: 8 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Töölaua taga töötades kuulete äkki kauget müra. Kas keegi tuli just koju? Minu auto seisab mu maja ees, kas keegi tungis mu autosse? Kas te ei soovi, et teile teatatakse telefoni või laua taha, et saaksite otsustada, kas uurida või mitte? No küsimust enam pole! R-PiAlerts on kohal!
Mis on R-PiAlerts? R-PiAlerts on Firebase'i pilve ümber ehitatud Raspberry Pi3-põhine turvasüsteem. Kui tuvastatakse liikumine, teavitab süsteem kasutajat võimalikust sissemurdmisest tekstisõnumi ja vilkuva LED-ekraaniga (omamoodi vaikne visuaalne häire). Kui kasutaja saab teate, saab ta seda uurida. Kõik tuvastatud liikumised logitakse Firebase'i andmebaasi. Lisaks liikumislogi vaatamisele veebibrauseris pääseb kasutaja liikumislogi juurde ka iOS -i rakenduse kaudu. Otsustasin selle ehitada, kuna hiljutine sissetungide arv nii minu sõidukitesse kui ka kodudesse on suurenenud.
Miks just Pi3? Mul oli vaja midagi väikest, mis suudab liikumist tuvastada ja vajadusel aku tühjaks saada. Seejärel saan seadme ukse taha või autosse peita. Samuti peab üksus saama mulle teatisi või hoiatusi saata. Pi3 saab kõiki neid asju teha sisseehitatud WiFi -ühenduse ja USB -aku tühjenemise võimega. Muud põhjused, miks ma valisin Pi3:
- Pi on suhteliselt odav
- Seda on lihtne juurutada ja laiendada
- See on tarkvara seisukohast konfigureeritav
- Võimalus kasutada kuvasid ja andureid. See projekt kasutab SenseHat
- Kasutage peata (ilma monitori, klaviatuuri või hiireta)
Kuidas see töötab
- Ideaalis vajab kasutaja Firebase'i andmebaasiga ühendatud kahte Raspberry Pis'i, kuid töötab ka üks Pi.
- SenseHati kasutades tuvastab esimene Pi (Pi1) kiirendusmõõturiga liikumise, teine Pi (Pi2) kuvab liikumisteateid.
- Kui Pi1 tuvastab liikumise, teeb see 3 asja
- logi liikumine andmebaasi
- looge andmebaasi Pi2 kuvamiseks märguandekanne
- saata kasutajale tekstisõnum, mis teavitab kasutajat liikumisest.
- Kui Pi2 tuvastab andmebaasist kuvatava teate, juhtub kaks asja
- Pi2 LED -ekraan näitab märguannet pidevalt
- Kasutaja saab teate kustutada, vajutades nuppu Pi2 SenseHat. See kustutab ka teatise kirje andmebaasis.
- IOS -i rakendusega saab kasutaja seda teha
- juurdepääs andmebaasile; lugege ja kustutage liikumislogi
- kasutaja saab saata Pi1, et kuvada teade Pi1 LED -ekraanil.
Praktilised rakendused
- Kui pargite oma auto wifi levialasse. Kinnitage aku Pi1 külge (vt pilti). Peida Pi1 oma autosse. Asetage Pi2 kuhugi hõlpsasti nähtavale kohale, näiteks laua kõrvale (vt pilti).
- Teine rakendus on paigutada Pi1 oma majja ukse kõrvale. Pi on nii pisike, et enamik inimesi ei märka seda, eriti kui see on hinge külje taga (vt pilti). Seejärel asetage oma Pi2 töölaua taha.
- Kas koer satub majja kohta, kus see pole arvatavasti? Asetage Pi1 sellesse piirkonda. Pange Pi kindlasti tugevasse karpi, et teie koer seda ei näriks.
Niikaua kui teie Pis on WiFi -levialas, võivad nad liikumisest hoiatada või teid teavitada. Kui teil pole teist Pi -d, saate lihtsalt kasutada Pi1 -d liikumise tuvastamiseks ja mobiiltelefoni kaudu SMS -märguannete saamiseks.
Materjalide arve
- Kaks (2) Raspberry Pi 3 -d, mis töötavad Raspbianiga (Raspberry Pi 2 töötab ka wifi -dongliga)
- Kaks (2) SenseHats
- Mac ja iOS seade
Vajalik tarkvara
- Pyrebase'i kogu (ühendatakse Firebase'iga)
- SenseHati raamatukogu (kiirendusmõõturi ja LED -ekraani kasutamiseks)
- Twilio raamatukogu (SMS -ide saatmiseks)
- Python 3, sisseehitatud uusima Raspbianiga
- Raspian koos IDLE -ga
- Xcode8 ja Cocoapods teie Macis
- Valmisolek õppida ja uurida
See pole ainus Pi -põhine turvalahendus. Kui teil on ideid, ettepanekuid või soovite lihtsalt minu koodi muuta, jätke palun kommentaar allpool! =)
Samm: seadistage Firebase'i ja Twilio kontod
Esiteks, enne kui hakkame oma Pisiga askeldama, peame seadistama Firebase'i ja Twilio. Firebase on Google'i taustaprogramm teenusena. Firebase sisaldab selliseid funktsioone nagu andmebaas, pilvesõnumid, autentimine, salvestus jne. Selle projekti jaoks peame kasutama ainult Firebase'i reaalajas andmebaasi ja autentimist. Firebase'i andmebaasi lugemiseks ja sinna kirjutamiseks on vaja autentimist. Firebase'i seadistamiseks tehke järgmist.
- Registreeruge tasuta Firebase'i kontole
- Minge konsooli. Looge uus projekt ja pange sellele nimi.
- Klõpsake vasakpoolses menüüs nuppu "Ülevaade"
- Klõpsake "Lisa Firebase oma veebirakendusse", kopeerige oma APIKey ja projectid (mitte URL). Projekti ID asub erinevates URL -ides, näiteks andmebaasis:
- Klõpsake vasakpoolses menüüs nuppu "Autentimine". Minge jaotisse "Sisselogimismeetod" ja lubage "E -post/parool"
- Looge jaotises „Kasutaja” uus kasutajakonto teie valitud e -posti/parooliga. Seda mandaati kasutate andmebaasi sisselogimiseks.
- Minge vasakpoolses menüüs jaotisse "Andmebaas"
- See on teie andmebaas. Praegu on see tühi. Kui see on täidetud, kuvatakse see JSON -vormingus. URL peaks olema sama, mida varem nägite.
Twilio võimaldab arendajatel oma klientidele sõnumeid saata. Kasutame seda SMS -i saatmiseks teie telefonile, kui Pi tuvastab liikumise. Twilio annab teile SMS -i saatmiseks telefoninumbri. Twilio seadistamiseks toimige järgmiselt.
- Registreeruge tasuta konto saamiseks Twilio saidil
- Kopeerige oma kontoSID ja authToken
- Klõpsake "Proovipiirangud" ja valige "hangi oma esimene Twilio telefoninumber"
- Kopeerige oma uus telefoninumber
2. samm: seadistage oma Pis
Enne Pis programmeerimise alustamist peame tegema mõningaid seadistusi. Veenduge, et teil oleks oma Pis -i jaoks parooliga sisse logitud. Esiteks ühendame füüsiliselt SenseHat lauad Pisiga. Järgmisena installime vajalikud raamatukogud SenseHat, Twilio ja Pyrebase. Firebase'i reaalajas andmebaas on loodud mobiilseadmete või veebisaitide jaoks. Siiski saame pilve andmebaasi lugeda ja kirjutada Rest API kaudu koos abiteekiga nagu Pyrebase.
Veenduge, et SenseHats on teie Pisiga ühendatud. Kui teil on ebatavaline juhtum, peate võib -olla enne SenseHat ühendamist Pi eemaldama.
Raamatukogude installimine Kõik raamatukogu installid tehakse terminalis
- Käivitage oma Pis, kui te pole seda juba teinud.
- Käivitamisel saate selle värvilise LED -vikerkaare oma SenseHatile! (vaata pilti)
-
Minge terminali ja värskendage/dist-upgrade, tippige:
- sudo apt-get update
- sudo apt-get dist-upgrade
-
Pärast täienduste tegemist sisestage SenseHati teekide installimiseks järgmine:
sudo apt-get install sense-hat
-
Pyrebase'i installimiseks tippige:
sudo pip install pyrebase
-
Lõpuks installige Twilio
sudo pip install twilio
Samm: Pythoni skript Pi1 jaoks
Nagu me varem mainisime, on Pi1 see Pi, mida kasutatakse liikumise tuvastamiseks. Liikumise määramiseks kasutatakse SenseHati kiirendusmõõturi väärtusi. Seega on Pi1 kood kiirendusmõõturi g jõu väärtustele juurdepääsemiseks ja tuvastatud liikumiste logimiseks Firebase'i andmebaasi. Siin on ülevaade protsessi kulust:
- Kui Pi1 tuvastab liikumise, lisab see kirje Firebase'i andmebaasi "Alerts" lapsele.
- Pi1 värskendab ka "teatepi2" last teatamisega liikumise kohta.
- Pi2, seejärel loeb "teatepi2" ja kuvab teate oma LED -maatriksekraanil.
Lisasin teile jälgimiseks Pi1 Pythoni skripti. Skripti kommentaarid selgitavad, mida kood teeb.
Täiendavad märkused ja ülevaated Pi1 skripti kohta
- Firebase'i ja Twilio seadistamiseks. Sisestage sobivad API -võtmed, ID -d, paroolid jne, mille kopeerisite eelmistest sammudest.
-
Mis puutub Firebase'i autentimisse, siis täiendava turvalisuse huvides võite nende mandaatide kõva kodeerimise asemel küsida kasutaja sisendit. Iga kord, kui me andmebaasist kirjutame või loeme, peame selle lisama
kasutaja ['idtoken'] koos th
get (), push (), set () meetodeid.
- Protsessori temperatuuri on vaja, et saaksime sekkuda, kui Pi autos või suletud keskkonnas üle kuumeneda.
- Võtame ka G -jõudude absoluutväärtuse, kuna me ei pea teadma negatiivseid väärtusi. Peame ainult teadma, kas on olemas G -jõud.
- Kui avaldus kontrollib kiirendusmõõturi väärtusi. Kui G jõud on mis tahes suunas suuremad kui 1, registreerib Pi1 liikumisaja ja kuvab oma LED -ekraanil hüüumärgi. See värskendab ka "teatepi2" last. Kui "teatepi2" värskendatakse, loeb Pi2 selle ja kuvab "!!!" oma LED-ekraanil, et teavitada kasutajat võimalikust liikumisest/sissemurdmisest. Pi1 saadab kasutajale ka SMS -teate liikumise kohta.
- Push () meetodi kasutamisel genereerib Firebase automaatselt uue kirjega lapse. See oli vajalik, et logitud liikumisandmed oleksid unikaalsed. seevastu meetod set () kirjutab varasemad andmed üle.
- Andmebaasi kontrollimiseks on vaja 10 -sekundilist tsüklit, nii et teie Pi ei küsi Firebase'ilt korduvalt andmeid. Kui saadate Firebase'i pidevalt rämpsposti, logib Google teid välja umbes 10 minuti pärast.
- Firebase viskab kasutaja ka iga 60 minuti järel välja, kui märki ei värskendata. Värskendus on seatud 1800 sekundile (30 minutit).
Samm: Pythoni skript Pi2 jaoks
Kui vaatate fotot, siis Pi2 kuvab teate võimaliku liikumise kohta.
Pi2 skript on peaaegu täpselt sama mis Pi1, välja arvatud see, et skript ei tuvasta liikumist. Pi2 kuvab või lähtestab ainult "teatepi2" lapse teavitusteated. Kuna see on ainus erinevus, selgitan seda allpool.
- Iga 10 sekundi järel kontrollib Pi2 kuvatavat märget "teatepi2". Kui kuvatakse teatis, kuvab Pi2 seda pidevalt, et kasutaja seda näeks.
- Ainult kasutaja sekkumine juhtnupu vajutamisega kustutab teate ja lähtestab selle andmebaasi poolel.
Samm: testige Pis
Aeg testida Pis.
- Käivitage skriptid vastavalt Pisile.
- Logige sisse Firebase'i ja minge oma projektide andmebaasi jaotisse.
- Raputage oma Pi1, peaksite nägema Pi1 LED -ekraanil punast hüüumärki. Samuti peaksite saama SMS -sõnumi.
- Kontrollige andmebaasi, hoiatuskirjed peaksid ilmuma. Värskendada tuleks ka "teatepi2".
- Heitke pilk Pi2 -le. Samuti peaksite kerima "!!!" Selle teate kustutamiseks vajutage lihtsalt juhtnuppu. "teatepi2" tuleks lähtestada. Kinnitamiseks kontrollige oma Firebase'i.
- Kui leiate, et Pi1 on liigutuste suhtes liiga tundlik, suurendage Pi1 skripti läve suuremaks kui 1G.
Kui kõik läheb hästi, ei jookse teie skriptid kokku. Nüüd on teil toimiv teavitussüsteem. Kui Pi1 tuvastab liigutusi või vibratsiooni, saate Pi2 -le SMS -teate ja visuaalse LED -teate.
6. samm: R-PiAlerts IOS-i rakenduse loomine
Aeg iOS -i rakenduse loomiseks! Rakendus saab olema üsna lihtne. Sellel on LoginViewController ja ItemsTableViewController. ItemsTableViewController kuvab hoiatusteated "hoiatuste" lapselt. Rakendusest saab kustutada ka andmebaasi kirjed. Peavalu säästmiseks, kui plaanite vaadata Firebase'i veebipõhiseid õpetusi, otsige kindlasti õpetusi, mis on dateeritud pärast 2016. aasta märtsi, kuna eelmisel aastal olid sel ajal suured muudatused. Kõik, mis on enne 2016. aasta märtsi, on pärand. Olen huvitatud kiiretest failidest. Vaadake koodis olevad kommentaarid üle. Kui soovite üksikasjalikku õpetust andmebaasi lugeva Firebase'i rakenduse loomise kohta, vaadake Ray Wunderlichi õpetust.
Seadistage oma iOS -i projekti ülevaade
- Looge Xcode'is ühe vaatega iOS -i projekt.
- Kopeerige kimbu identifikaator
- Minge veebisaidil oma Firebase'i projekti ja looge kimpide identifikaatoriga fail info.plist.
- Lisage oma projektile fail GoogleService-info.plist. See info.plist töötab ainult teie loodud Firebase'i projektiga.
- Sulgege Xcode ja installige Firebase Cocoapodsi kaudu. Installige kindlasti Auth ja Database.
-
Taaskäivitage Xcode ja konfigureerige oma AppDelegate.swift Firebase jaoks. See võtab ainult 2 rida koodi.
Importige Firebase an
FIRApp.configure (). Valikuliselt on Firebasel püsivusfunktsioon, mis võtab ainult ühe koodirida
FIRDatabase.database (). PersistenceEnabled = true
- Üksikasjalikud installimise juhised leiate Firebase'i veebisaidilt
Kuidas rakendus Firebase'i andmebaasiga suhtleb:
- Rakendus peab kasutaja autentima.
- Pärast autentimist teeb rakendus Firebase'i andmebaasist hetktõmmise ja salvestab selle objektina.
- Nimetatud objekt täidab massiivi. Tabelivaate täitmiseks kasutatakse nimetatud massiivi.
- Vaatleja jälgib Firebase'i andmebaasi muudatusi ja loob hetktõmmise.
- Kui muudatused on tuvastatud, lisatakse massiiv uuest hetktõmmist.
- Tabelivaade laaditakse muudatuste kuvamiseks uuesti.
Üldine ülevaade rakenduse koostamisest
- Vaadake pilti selle kohta, kuidas rakendus Xcode'i liidese koostajas on paigutatud.
- Looge ViewController liidese koostajas ja suunake kohandatud klass üksusele LoginViewController.swift.
- Lisage tekstiväljad e -posti ja parooli jaoks. Ärge unustage parooliväljale sisse lülitada "Turvaline tekstisisestus". Lisage sisselogimisnupp.
- Linkige tekstiväljad ja nupp LoginViewController.swift -iga. Autentimisega tegeleb LoginViewController.swift.
- Lisage liidese koostajas navigeerimiskontroller. Looge segment LoginViewControllerist navigeerimiskontrollerile. Andke segmendile kindlasti identifikaator.
- Määrake navigeerimiskontrolleriga kaasas olnud uue tabelivaate kohandatud klass punkti ItemsTableViewController.swift. Mul on ka ItemsTableViewControlleril 2 nuppu: Logi välja ja nupp Lisa. Linkige nupud üksusega ItemsTableViewController.swift.
- Seoses LoginViewController.swift koodiga. Kasutaja sisestab sisselogimisandmed ja Firebase tagastab kasutaja. Kui kasutaja on kohal, teeb ta identifikaatoriga segmendi. (vt lisatud koodi)
- Lisage klass Item.swift (vt lisatud koodi)
- Seoses ItemsTableViewController koodiga on see üsna tavaline tabelivaate kood. Seal on vaatleja, kes jälgib andmebaasi muudatusi, mis on salvestatud hetkepildina üksuseobjektina. Seejärel lisab objekt Objekt tabelivaate täitmiseks massiivi. Nupp Lisa määrab Firebase'i andmebaasis kirje Pi1 lugemiseks ja kuvamiseks. Itsitamiseks lisasin ka koodi (vt lisatud koodi)
Samm: testige rakendust
Käivitage oma rakendus
- Logige sisse ja raputage oma Pi1. Peaksite nägema uute hoiatusteadete ilmumist.
- Puudutage lisamisnuppu ja vaadake, kuidas teie Pi1 kuvab teie sõnumi.
- Pühkige vasakule, vaadake kirjeid „Märguanded” eemaldatakse.
- Kas saate kiiresti järjest liiga palju märguandeid? reguleerida kiirendusmõõturi läve või pikendada uneaega Pi1 skriptis.
8. samm: järeldus
Vinge! Nüüd on meil Pis, mis suudab liikumist tuvastada ja teile liikumisteateid saata. Lisaks saate oma iOS -seadmega hoiatusteate logis hallata! Aeg Pis kasutusele võtta. Pange Pi1 oma ukse kõrvale ja Pi2 oma tööpiirkonna ümber. Järgmine kord, kui keegi sisse tuleb, saate olukorraga tutvuda! Või veel parem, proovige oma autoga Pi piirkonda varjata akut. Lööge paar korda uksi, vaadake, mis juhtub!
See on alles algus võimalustele, mida saate teha Raspberry Pi ja Firebase'iga. SenseHat sisaldab ka keskkonnaandureid, güroskoopi ja kompassi. Saate seadistada oma Pis keskkonna teatud muudatuste logimiseks. Kas soovite oma mängu tõhustada? Kui teie Pi tuvastab liigutusi, kasutage kaameraga pilte ja laske Pi -l fotosid saata. Proovige nägude tuvastamiseks kasutada ka arvuti nägemisalgoritmi. kui see on kellegi tuttava nägu, saate sellest märku! Lõbutse hästi!
Soovitan:
Arduino kodu turvasüsteem: 7 sammu (koos piltidega)
Arduino kodu turvasüsteem: see on kodu turvasüsteem, mis kasutab Arduino Mega 2560, mis käivitab alarmi, kui mõni uks avatakse või ruumis tuvastatakse liikumine, kui süsteem on aktiveeritud. See on tore projekt kõigile ülikooli viimasel aastal. saate seda uuendada
Näotuvastuse turvasüsteem Raspberry Pi -ga külmkapi jaoks: 7 sammu (piltidega)
Näotuvastusturbe süsteem külmikule koos Raspberry Pi -ga: Internetti sirvides avastasin, et turvasüsteemide hinnad varieeruvad vahemikus 150–600 dollarit ja rohkem, kuid mitte kõiki lahendusi (isegi väga kalleid) ei saa teistega integreerida nutikad tööriistad teie kodus! Näiteks ei saa te seadistada
Raspberry Pi laseri turvasüsteem: 13 sammu (koos piltidega)
Raspberry Pi laseriturvasüsteem: Täname, et tutvusite minu juhendatavaga. Selle juhendi lõpuks konstrueerite videol näidatud e -posti hoiatusfunktsiooniga vaarika pi laser tripwire süsteemi. Selle juhendi täitmiseks peate olema tuttav
Arduino PIR turvasüsteem autosignaali abil: 7 sammu (piltidega)
Arduino PIR turvasüsteem, mis kasutab autosignaali: Olgu, nii et selles projektis teeme vargaalarmi, kasutades PIR -andurit, Arduinot, releed ja autosignaali
RFID turvasüsteem (Arduino baasil): 6 sammu (koos piltidega)
RFID turvasüsteem (Arduino baasil): tõeliselt kena seade, mis on teie kodus isegi olemas