Sadržaj:
- Korak 1: Postavljanje Firebase i Twilio računa
- Korak 2: Postavite svoju Pis
- Korak 3: Python skripta za Pi1
- Korak 4: Python skripta za Pi2
- Korak 5: Testirajte Pis
- Korak 6: Izgradnja aplikacije ROS-IOS za iOS
- Korak 7: Testirajte aplikaciju
- Korak 8: Zaključak
Video: R-PiAlerts: Izgradite sigurnosni sustav temeljen na WiFi-ju s Raspberry Pis: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Dok radite za svojim stolom, odjednom čujete udaljenu buku. Je li netko upravo došao kući? Moj auto je parkiran ispred moje kuće, je li netko provalio u moj auto? Ne želite li da imate obavijest na telefonu ili za radnim stolom kako biste mogli odlučiti hoćete li istražiti ili ne? Pa nema više pitanja! R-PiAlerts je ovdje!
Što su R-PiAlerts? R-PiAlerts je sigurnosni sustav temeljen na Raspberry Pi3 izgrađen oko Firebaseovog oblaka. Ako se otkrije kretanje, sustav će obavijestiti korisnika o potencijalnom upadu tekstualnom porukom i trepćućim LED zaslonom (svojevrsni tihi vizualni alarm). Nakon što korisnik primi obavijest, može istražiti. Svi otkriveni pokreti bit će zabilježeni u Firebase bazi podataka. Osim pregledavanja dnevnika kretanja u web pregledniku, korisnik može pristupiti zapisniku kretanja i putem iOS aplikacije. Odlučio sam ovo izgraditi zbog nedavnog porasta provala u vozila i domove u mom području.
Zašto Pi3? Trebalo mi je nešto malo što može otkriti kretanje i isprazniti bateriju ako je potrebno. Zatim mogu sakriti jedinicu iza vrata ili u automobil. Također jedinica mi mora omogućiti slanje obavijesti ili upozorenja. Pi3 može učiniti sve ove stvari s ugrađenim WiFi -jem i sposobnošću da se napaja iz USB baterije. Drugi razlozi zašto sam odabrao Pi3:
- Pi je relativno jeftin
- Lako se postavlja i povećava
- Može se konfigurirati sa stajališta softvera
- Sposobnost korištenja zaslona i senzora. Ovaj će projekt koristiti SenseHat
- Rad bez glave (bez monitora, tipkovnice ili miša)
Kako radi
- U idealnom slučaju korisniku će trebati 2 Raspberry Pis povezana s Firebase bazom podataka, ali će raditi i jedan Pi.
- Koristeći SenseHat, prvi Pi (Pi1) će otkriti kretanje akcelerometrom, dok će drugi Pi (Pi2) prikazati obavijesti o kretanju.
-
Kad Pi1 detektira kretanje, čini 3 stvari
- bilježenje kretanja u bazu podataka
- stvoriti unos obavijesti u bazi podataka za prikaz Pi2
- poslati korisniku tekstualnu poruku u kojoj se korisnik obavještava o kretanju.
-
Kad Pi2 otkrije obavijest za prikaz iz baze podataka, događaju se dvije stvari
- Pi2 LED LED zaslon stalno će prikazivati obavijest
- Korisnik može izbrisati obavijest pritiskom na gumb Pi2 SenseHat. Ovo će također izbrisati unos obavijesti u bazi podataka.
-
S aplikacijom za iOS korisnik može
- pristupiti bazi podataka; čitati i brisati dnevnik kretanja
- korisnik može poslati Pi1 da prikaže poruku na Pi1 LED zaslonu.
Praktične aplikacije
- Ako parkirate automobil na ulici unutar WiFi dometa. Pričvrstite bateriju na Pi1 (vidi sliku). Sakrij Pi1 u svom automobilu. Postavite Pi2 na mjesto koje se lako može vidjeti, primjerice pored vašeg stola (vidi sliku).
- Druga je primjena postavljanje Pi1 u vašu kuću sa strane vrata. Pi je toliko sićušan da ga većina ljudi neće primijetiti, posebno ako se nalazi iza šarki (vidi sliku). Zatim postavite svoj Pi2 na radni stol.
- Pas ulazi u mjesto u kući za koje se ne pretpostavlja? Postavite Pi1 u to područje. Stavite Pi u čvrstu kutiju kako ga vaš pas ne bi žvakao.
Sve dok su vaši Pis u dometu WiFi -ja, mogu vas upozoriti ili obavijestiti o kretanju. Ako nemate drugi Pi, možete samo upotrijebiti Pi1 za otkrivanje kretanja i primanje SMS obavijesti putem mobitela.
Prednacrt materijala
- Dva (2) Raspberry Pi 3 -a koji rade na Raspbian -u (Raspberry Pi 2 će također raditi s wifi ključem)
- Dva (2) SenseHat -a
- Mac i iOS uređaj
Potreban softver
- Knjižnica Pyrebase (povezivanje s Firebaseom)
- SenseHat knjižnica (za pristup mjeraču ubrzanja i LED zaslonu)
- Biblioteka Twilio (za slanje SMS -a)
- Python 3, ugrađen s najnovijim Raspbian -om
- Raspbian s IDLE
- Xcode8 i Cocoapods na vašem Macu
- Spremnost na učenje i istraživanje
Sporedna napomenaOvo nije jedino sigurnosno rješenje temeljeno na Pi. Ako imate bilo kakvih ideja, prijedloga ili samo želite preraditi moj kôd, ostavite komentar ispod! =)
Korak 1: Postavljanje Firebase i Twilio računa
Prije svega, prije nego što počnemo petljati s našim Pisom, moramo postaviti Firebase i Twilio. Firebase je Googleova pozadina kao usluga. Firebase uključuje takve značajke kao što su baza podataka, slanje poruka u oblaku, provjera autentičnosti, pohrana itd. Za ovaj projekt trebat ćemo samo koristiti Firebaseovu bazu podataka u stvarnom vremenu i provjeru autentičnosti. Za čitanje i pisanje u vašu Firebase bazu podataka bit će potrebna autentifikacija. Da biste postavili Firebase:
- Registrirajte se za besplatni Firebase račun
- Idite na konzolu. Napravite novi projekt i dajte mu ime.
- Na lijevom izborniku kliknite "Pregled"
- Kliknite "Dodaj Firebase u svoju web aplikaciju", kopirajte svoj APIKey i projectid (ne url). ID projekta nalazi se u različitim URL -ovima, poput baze podataka:
- Na lijevom izborniku kliknite "Autentifikacija". Idite na "Način prijave" i omogućite "E -pošta/lozinka"
- Pod "Korisnik" stvorite novi korisnički račun s e -poštom/lozinkom po vašem izboru. Ovu ćete vjerodajnicu koristiti za prijavu u bazu podataka.
- Na izborniku slijeva idite na "Baza podataka"
- Ovo je vaša baza podataka. Trenutno je prazna. Kad se ispuni, bit će u JSON formatu. URL bi trebao biti isti kao onaj koji ste vidjeli ranije.
Twilio omogućuje programerima slanje poruka svojim korisnicima. Koristit ćemo ga za slanje SMS -a na vaš telefon kada Pi detektira kretanje. Twilio će vam dati telefonski broj za slanje SMS -a. Za postavljanje Twilio:
- Prijavite se za besplatni račun na web stranici Twilio
- Kopirajte svoj accountSID i authToken
- Kliknite na "Probna ograničenja" i odaberite "preuzmite svoj prvi Twilio telefonski broj"
- Kopirajte svoj novi telefonski broj
Korak 2: Postavite svoju Pis
Prije nego što počnemo programirati Pis, moramo napraviti neke postavke. Provjerite imate li lozinku za prijavu za svoj Pis. Prvo ćemo fizički spojiti ploče SenseHat s Pisom. Zatim ćemo instalirati potrebne knjižnice SenseHat, Twilio i Pyrebase. Firebase baza podataka u stvarnom vremenu dizajnirana je za mobilne uređaje ili web stranice. Međutim, bazu podataka u oblaku možemo čitati i pisati putem Rest API -ja s pomoćnom bibliotekom poput Pyrebase.
Spojite SenseHatUvjerite se da su SenseHat spojeni na vaš Pis. Ako imate neobičan slučaj, možda ćete morati ukloniti Pi prije povezivanja SenseHat -a.
Instaliranje knjižnica Sve instalacije knjižnice bit će izvedene u terminalu
- Pokrenite svoj Pis ako već niste.
- Nakon pokretanja, dobit ćete ovu šarenu LED dugu na svom SenseHat -u! (vidi sliku)
-
Idite na terminal i ažurirajte/dist-upgrade, upišite:
- sudo apt-get ažuriranje
- sudo apt-get dist-upgrade
-
Nakon nadogradnje upišite sljedeće za instaliranje knjižnica SenseHat:
sudo apt-get install sense-hat
-
Da biste instalirali Pyrebase, upišite:
sudo pip install pyrebase
-
Na kraju, instalirajte Twilio
sudo pip instaliraj twilio
Korak 3: Python skripta za Pi1
Kao što smo ranije spomenuli, Pi1 će biti Pi koji će se koristiti za detekciju kretanja. Vrijednosti akcelerometra SenseHat -a koristit će se za određivanje kretanja. Prema tome, kôd za Pi1 bit će oko pristupa vrijednostima g sile akcelerometra i bilježenja otkrivenih pokreta u Firebase bazu podataka. Ovdje je pregled tijeka procesa:
- Ako Pi1 detektira kretanje, dodat će unos djetetu "upozorenja" u Firebase DB.
- Pi1 će također ažurirati dijete "notifypi2" s porukom obavijesti o kretanju.
- Pi2, zatim čita "notifypi2" i prikazuje obavijest na svom LED matričnom zaslonu.
Uključio sam Pi1 Python skriptu koju možete slijediti. Komentari u skripti objašnjavaju što kod radi.
Dodatne napomene i uvidi u Pi1 skriptu
- Za postavljanje Firebase i Twilio. Unesite odgovarajuće API ključeve, ID -ove, lozinke itd. Koje ste kopirali iz prethodnih koraka.
-
Što se tiče Firebase provjere autentičnosti, radi dodatne sigurnosti, možete zatražiti unos korisnika umjesto hard kodiranja ovih vjerodajnica. Svaki put kad budemo pisali ili čitali iz baze podataka, morat ćemo ih uključiti
user ['idtoken'] s th
get (), push (), set () metodama.
- Temperatura procesora je potrebna kako bismo mogli intervenirati u slučaju da se Pi pregrije u automobilu ili zatvorenom okruženju.
- Uzimamo i apsolutnu vrijednost G sila budući da ne moramo znati negativne vrijednosti. Trebamo samo znati postoje li G sile.
- Ako će naredba provjeriti vrijednosti akcelerometra. Ako su sile G veće od 1 u bilo kojem smjeru, Pi1 će zabilježiti vrijeme kretanja i prikazati uskličnik na svom LED zaslonu. Također će ažurirati dijete "notifypi2". Kad se "notifypi2" ažurira, Pi2 će ga pročitati i prikazati "!!!" na svom LED zaslonu za obavještavanje korisnika o mogućem kretanju/provaljivanju. Pi1 će također poslati korisniku SMS obavijest o kretanju.
- Kada koristite metodu push (), Firebase će automatski generirati dijete s novim unosom. To je potrebno kako bi zabilježeni podaci o kretanju bili jedinstveni. metoda set () će s druge strane prebrisati prethodne podatke.
- Za provjeru baze podataka potrebna je petlja od 10 sekundi kako vaš Pi više puta ne bi tražio podatke od Firebasea. Ako stalno šaljete neželjenu poštu Firebaseu, Google će vas odjaviti za otprilike 10 minuta.
- Firebase će također izbaciti korisnika svakih 60 minuta ako se token ne osvježi. Imam osvježavanje postavljeno na 1800 sekundi (30 minuta).
Korak 4: Python skripta za Pi2
Ako pogledate fotografiju, to je Pi2 koji prikazuje obavijest o mogućem kretanju.
Pi2 skripta je približno ista kao i Pi1, osim što skripta ne detektira kretanje. Pi2 prikazuje ili poništava samo poruke obavijesti od "notifypi2" djeteta. Budući da je to jedina razlika, to ću objasniti u nastavku.
- Svakih 10 sekundi Pi2 će provjeravati "notifypi2" za prikaz. Ako se prikaže poruka obavijesti, Pi2 će je neprestano prikazivati tako da je korisnik vidi.
- Samo korisnička intervencija pritiskom na tipku upravljačke tipke će poruku izbrisati i poništiti na strani baze podataka.
Korak 5: Testirajte Pis
Vrijeme je za testiranje Pis.
- Pokrenite skripte za Pis.
- Prijavite se na Firebase i idite na odjeljak baze podataka o projektima.
- Protresite svoj Pi1, trebali biste vidjeti crveni uskličnik na Pi1 LED zaslonu. Trebali biste dobiti i SMS poruku.
- Provjerite bazu podataka, unosi upozorenja bi se trebali početi pojavljivati. "notifypi2" također treba ažurirati.
- Pogledajte Pi2. Također biste trebali pomicati "!!!" Da biste izbrisali ovu obavijest, samo pritisnite navigacijsku tipku. "notifypi2" treba resetirati. Za potvrdu provjerite svoj Firebase.
- Ako smatrate da je Pi1 previše osjetljiv na kretanje, povećajte prag na više od 1G u Pi1 skripti.
Ako sve prođe dobro, vaše se skripte neće srušiti. Sada imate radni sustav obavijesti. Nakon što Pi1 detektira pokrete ili vibracije, dobit ćete obavijest SMS porukom i vizualnu LED obavijest na Pi2.
Korak 6: Izgradnja aplikacije ROS-IOS za iOS
Vrijeme je za izradu iOS aplikacije! Aplikacija će biti prilično jednostavna. Imat će LoginViewController i ItemsTableViewController. ItemsTableViewController prikazat će obavijesti upozorenja od podređenog "upozorenja". Također se mogu izbrisati unosi u bazu podataka iz aplikacije. Da biste si uštedjeli glavobolju, ako namjeravate pogledati internetske vodiče za Firebase, svakako potražite vodiče koji su datirani nakon ožujka 2016. jer je u to vrijeme došlo do velikih promjena. Sve prije ožujka 2016. bit će naslijeđe. Zanimaju me brze datoteke. Pregledajte komentare u kodu. Ako želite detaljan vodič o tome kako izgraditi Firebase aplikaciju koja čita bazu podataka, pogledajte vodič Ray Wunderlicha.
Postavite pregled svog iOS projekta
- Izradite iOS projekt s jednim prikazom u Xcode -u.
- Kopirajte identifikator paketa
- Idite na svoj Firebase projekt na web stranici i stvorite datoteku info.plist s identifikatorom snopa.
- Dodajte datoteku GoogleService-info.plist u svoj projekt. Ovaj info.plist radi samo s određenim Firebase projektom koji ste stvorili.
- Zatvorite Xcode i instalirajte Firebase putem Cocoapodsa. Obavezno instalirajte Auth i bazu podataka.
-
Ponovno pokrenite Xcode, a zatim konfigurirajte svoj AppDelegate.swift za Firebase. Potrebna su samo 2 retka koda.
Uvezite Firebase an
FIRApp.configure (). Izborno, Firebase ima značajku postojanosti koja zauzima samo 1 redak koda
FIRDatabase.database (). PersistenceEnabled = true
- Detaljni koraci instalacije mogu se pronaći na Firebase web stranici
Način interakcije aplikacije s Firebase bazom podataka:
- Aplikacija će morati autentificirati korisnika.
- Nakon provjere autentičnosti, aplikacija snima snimku Firebase baze podataka i pohranjuje je kao objekt "Stavka".
- Navedeni objekt će ispuniti niz. Navedeni niz će se koristiti za popunjavanje prikaza tablice.
- Promatrač će pratiti promjene u bazi podataka Firebase i stvoriti snimku.
- Kad se promjene otkriju, niz će se dodati iz nove snimke.
- Tableview će se tada ponovno učitati kako bi se prikazale promjene.
Opći pregled načina izrade aplikacije
- Pogledajte sliku o tome kako je aplikacija postavljena u Xcode -ovom alatu za izradu sučelja.
- Izradite ViewController u alatu za izgradnju sučelja i usmjerite prilagođenu klasu na LoginViewController.swift.
- Dodajte tekstualna polja za e -poštu i lozinku. Ne zaboravite uključiti "Sigurni unos teksta" za polje lozinke. Dodajte gumb za prijavu.
- Povežite tekstualna polja i gumb sa LoginViewController.swift. LoginViewController.swift će rukovati autentifikacijom.
- Dodajte kontroler navigacije u graditelj sučelja. Napravite segu od LoginViewControllera do Navigacijskog kontrolera. Obavezno dajte segueu identifikator.
- Prilagođenu klasu novog tabličnog prikaza koji je došao s navigacijskim kontrolerom postavite na točku ItemsTableViewController.swift. Također imam 2 gumba na ItemsTableViewController: Odjava i gumb Dodaj. Povežite gumbe s ItemsTableViewController.swift.
- Vezano za kod LoginViewController.swift. Korisnik će unijeti vjerodajnice za prijavu, a Firebase će vratiti korisnika. Ako je korisnik prisutan, izvršit će pregled s identifikatorom. (vidi kôd u prilogu)
- Dodajte klasu Item.swift (pogledajte priloženi kôd)
- Što se tiče koda ItemsTableViewController, to je prilično standardni kod za prikaz tablice. Postojat će promatrač koji će pratiti promjene u vašoj bazi podataka spremljene kao snimak kao objekt stavke. Tada će objekt Item dodati niz kako bi ispunio prikaz tablice. Gumb Dodaj postavlja unos u bazi podataka Firebase za Pi1 za čitanje i prikaz. Za hihotanje sam dodao i kôd (vidi priloženi kôd)
Korak 7: Testirajte aplikaciju
Pokrenite svoju aplikaciju
- Prijavite se i protresite svoj Pi1. Trebali biste vidjeti da se pojavljuju nove obavijesti o upozorenjima.
- Dodirnite gumb za dodavanje i gledajte kako vaš Pi1 prikazuje vašu poruku.
- Prijeđite prstom ulijevo, pogledajte stavke "Upozorenja" kako se uklanjaju.
- Brzo primate previše obavijesti? prilagoditi prag akcelerometra ili povećati vrijeme mirovanja u Pi1 skripti.
Korak 8: Zaključak
Super! Sada imamo Pis koji može detektirati kretanje i slati vam obavijesti o kretnjama. Povrh toga, možete upravljati zapisnikom poruka upozorenja sa svojim iOS uređajem! Vrijeme je za razmještanje Pis. Stavite Pi1 pored vrata, a Pi2 oko radnog područja. Sljedeći put kad netko dođe, možete provjeriti situaciju! Ili još bolje, pokušajte se sakriti u Pi u svom automobilu s baterijom. Zalupi vratima nekoliko puta, vidi što će se dogoditi!
Ovo je samo početak mogućnosti o tome što možete učiniti s Raspberry Pi i Firebaseom. SenseHat također uključuje senzore okoliša, žiroskope i kompas. Možete postaviti svoj Pis da bilježi određene promjene u okruženju. Želite pojačati svoju igru? Kad vaš Pi detektira pokrete, upotrijebite kameru za snimanje slika i neka Pi tekst pošalje fotografije. Također pokušajte koristiti algoritam računalnog vida za prepoznavanje lica. ako je to lice nekoga koga poznajete, možete dobiti obavijest! Zabavi se!
Preporučeni:
Sustav pristupa temeljen na ultrazvuku: 6 koraka (sa slikama)
Sustav pristupa temeljen na ultrazvuku: Ovog puta predstavljam vam sustav pristupa temeljen na ultrazvuku. Mislim da bi mogao biti zanimljiv. Temelji se na ultrazvučnim valovima pa je to beskontaktni pristupni sustav koji ne treba nikakav drugi elektronički uređaj, već bilo koji predmet, čak i vaše ruke da probam
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)
Glazbeni generator temeljen na vremenu (Midi Generator temeljen na ESP8266): Bok, danas ću vam objasniti kako napraviti vlastiti mali glazbeni generator temeljen na vremenu. Baziran je na ESP8266, koji je poput Arduina, a reagira na temperaturu, kišu i intenzitet svjetla. Ne očekujte da će to učiniti cijele pjesme ili akorde
Sigurnosni sustav za prepoznavanje lica za hladnjak s Raspberry Pi: 7 koraka (sa slikama)
Sigurnosni sustav za prepoznavanje lica za hladnjak s Raspberry Pi: Pretražujući internet otkrio sam da cijene sigurnosnih sustava variraju od 150 do 600 USD i više, ali ne mogu se sva rješenja (čak ni ona vrlo skupa) integrirati s drugim pametni alati u vašem domu! Na primjer, ne možete postaviti
Sigurnosni sustav temeljen na PIR -u: 7 koraka
Sigurnosni sustav temeljen na PIR -u: Ovaj je modul temeljen na PIR senzoru i vrlo je precizan, sastoji se od modula zujalice i pričuvnog napajanja za veću sigurnost
Sigurnosni sustav lasera Raspberry Pi: 13 koraka (sa slikama)
Sigurnosni sustav lasera Raspberry Pi: Hvala što ste provjerili moje upute. Do kraja ovog uputstva izradit ćete malinski pi laser tripwire sustav s funkcijom upozorenja putem e -pošte koja je prikazana u videu. Da biste dovršili ovo uputstvo, morate biti u obitelji