INHOUDSOPGAWE:

R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis: 8 stappe (met foto's)
R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis: 8 stappe (met foto's)

Video: R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis: 8 stappe (met foto's)

Video: R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis: 8 stappe (met foto's)
Video: Это как Парк Юрского периода. 🦖🦕 - Mexico Rex GamePlay 🎮📱 🇷🇺 2024, Desember
Anonim
Image
Image
R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis
R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis
R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis
R-PiAlerts: Bou 'n WiFi-gebaseerde sekuriteitstelsel met framboospis

As u by u lessenaar werk, hoor u skielik 'n verre geluid. Het iemand net huis toe gekom? My motor staan voor my huis, het iemand by my motor ingebreek? Wens u nie dat u 'n kennisgewing op u telefoon of by u lessenaar gekry het sodat u kan besluit of u dit wil ondersoek nie? Wel, vra nie meer nie! R-PiAlerts is hier!

Wat is R-PiAlerts? R-PiAlerts is 'n Raspberry Pi3-gebaseerde sekuriteitstelsel wat rondom Firebase se wolk gebou is. As beweging opgespoor word, sal die stelsel die gebruiker in kennis stel van 'n moontlike inbraak met 'n teksboodskap en 'n knipperende LED-skerm (soortgelyke visuele alarm). Sodra die gebruiker 'n kennisgewing ontvang het, kan hy of sy ondersoek instel. Alle bewegings wat opgespoor word, word by die Firebase -databasis aangeteken. Behalwe dat u die bewegingslogboek in 'n webblaaier kan sien, kan die gebruiker ook toegang tot die bewegingslogboek kry via 'n iOS -app. Ek het besluit om dit te bou as gevolg van die onlangse toename in inbrake in voertuie en huise in my omgewing.

Waarom die Pi3? Ek het iets klein nodig gehad wat beweging kan waarneem en indien nodig 'n battery kan opraak. Dan kan ek die eenheid agter 'n deur of in 'n motor wegsteek. Die eenheid moet ook kennisgewings of waarskuwings vir my kan stuur. Die Pi3 kan al hierdie dinge doen met die ingeboude wifi en die vermoë om 'n USB -battery af te laai. Ander redes waarom ek die Pi3 gekies het:

  • Die Pi is relatief goedkoop
  • Dit is maklik om te implementeer en op te skaal
  • Dit is konfigureerbaar vanuit die sagteware -oogpunt
  • Die vermoë om skerms en sensors te gebruik. Hierdie projek sal die SenseHat gebruik
  • Werk sonder kop (sonder monitor, sleutelbord of muis)

Hoe werk dit

  • Ideaal gesproke benodig die gebruiker 2 Framboos -Pis wat gekoppel is aan die Firebase -databasis, maar 'n enkele Pi sal ook werk.
  • Deur die SenseHat te gebruik, sal die eerste Pi (Pi1) beweging met die versnellingsmeter opspoor, terwyl die tweede Pi (Pi2) kennisgewings van beweging sal vertoon.
  • As die Pi1 beweging opspoor, doen dit 3 dinge

    • logbeweging na die databasis
    • skep 'n kennisgewinginskrywing op die databasis wat Pi2 kan vertoon
    • stuur 'n sms -boodskap aan die gebruiker wat die gebruiker in kennis stel van beweging.
  • As Pi2 'n kennisgewing opspoor om uit die databasis te vertoon, gebeur daar twee dinge

    • Die LED -skerm van Pi2 sal die kennisgewing voortdurend wys
    • Gebruiker kan die kennisgewing uitvee deur op die knoppie van Pi2 SenseHat te druk. Dit sal ook die kennisgewinginskrywing op die databasis uitvee.
  • Met die iOS -app kan die gebruiker

    • toegang tot die databasis; lees en verwyder die bewegingslogboek
    • die gebruiker kan Pi1 stuur om 'n boodskap op Pi1 se LED -skerm te vertoon.

Praktiese toepassings

  1. Parkeer u motor binne die wifi -bereik. Koppel 'n battery aan Pi1 (sien foto). Steek Pi1 in u motor weg. Plaas Pi2 op 'n plek wat maklik sigbaar is, soos langs u lessenaar (sien foto).
  2. 'N Ander toepassing is om Pi1 in u huis aan die kant van 'n deur te plaas. Die Pi is so klein dat die meeste mense dit nie sal agterkom nie, veral as dit agter die skarnierkant is (sien foto). Plaas dan u Pi2 by u lessenaar.
  3. Hond wat op 'n plek in die huis kom, is dit nie veronderstel om te wees nie? Plaas 'n Pi1 in daardie gebied. Maak seker dat u die Pi in 'n stewige boks sit sodat u hond dit nie kou nie.

Solank u Pis binne die wifi -bereik is, kan hulle u in kennis stel van beweging. As u nie 'n tweede Pi het nie, kan u slegs Pi1 gebruik om beweging op te spoor en SMS -kennisgewings via u selfoon te ontvang.

Staatsbrief

  • Twee (2) Raspberry Pi 3's met Raspbian (Raspberry Pi 2 werk ook met 'n wifi -dongle)
  • Twee (2) SenseHats
  • Mac- en iOS -toestel

Sagteware benodig

  • Pyrebase -biblioteek (maak verbinding met Firebase)
  • SenseHat -biblioteek (vir toegang tot versnellingsmeter en LED -skerm)
  • Twilio -biblioteek (vir die stuur van SMS)
  • Python 3, ingebou met die nuutste Raspbian
  • Raspbian met IDLE
  • Xcode8 en Cocoapods op u Mac
  • Bereidwilligheid om te leer en te verken

Kantopmerking Dit is nie die enigste op Pi gebaseerde beveiligingsoplossing nie. As u idees, voorstelle het of net my kode wil verander, laat 'n opmerking hieronder! =)

Stap 1: Stel Firebase- en Twilio -rekeninge op

Stel Firebase- en Twilio -rekeninge op
Stel Firebase- en Twilio -rekeninge op
Stel Firebase- en Twilio -rekeninge op
Stel Firebase- en Twilio -rekeninge op

Eerstens moet ons Firebase en Twilio opstel voordat ons met ons Pis begin peuter. Firebase is die rugsteun van Google as 'n diens. Firebase bevat funksies soos databasis, wolkboodskappe, verifikasie, berging, ens. Vir hierdie projek hoef ons slegs Firebase se intydse databasis en verifikasie te gebruik. Verifikasie sal nodig wees om na u Firebase -databasis te lees en te skryf. Om Firebase op te stel:

  1. Registreer vir 'n gratis Firebase -rekening
  2. Gaan na die konsole. Skep 'n nuwe projek en gee dit 'n naam.
  3. Klik in die linkerkieslys op die "Oorsig"
  4. Klik op "Voeg Firebase by u webprogram", kopieer u APIKey en projectid (nie die url nie). Projek -ID is geleë in die verskillende URL's, soos die databasis:
  5. Klik in die linkerkieslys op die "Verifikasie". Gaan na "Aanmeldingsmetode" en aktiveer "E -pos/wagwoord"
  6. Skep 'n nuwe gebruikersrekening onder 'Gebruiker' met die e -posadres/wagwoord van u keuse. U sal hierdie geloofsbrief gebruik om by die databasis aan te meld.
  7. Gaan na die linkerkieslys na die "Databasis"
  8. Dit is u databasis. Dit is nou leeg. As dit gevul is, sal dit in JSON -formaat wees. Die URL moet dieselfde wees as die een wat u vroeër gesien het.

Met Twilio kan ontwikkelaars boodskappe na hul kliënte stuur. Ons sal dit gebruik om SMS na u telefoon te stuur wanneer die Pi beweging opspoor. Twilio sal u 'n telefoonnommer gee om 'n SMS te stuur. Om Twilio op te stel:

  1. Teken 'n gratis rekening op Twilio se webwerf
  2. Kopieer u accountSID en authToken
  3. Klik op 'Proefbeperkings' en kies 'Kry u eerste Twilio -telefoonnommer'
  4. Kopieer u nuwe telefoonnommer

Stap 2: Stel u pis op

Stel u pis op
Stel u pis op
Stel u pis op
Stel u pis op

Voordat ons die Pis kan begin programmeer, moet ons 'n bietjie opstel. Maak seker dat u 'n wagwoord -aanmelding vir u Pis het. Eerstens verbind ons die SenseHat -borde met die Pis. Vervolgens installeer ons die nodige SenseHat-, Twilio- en Pyrebase -biblioteke. Firebase -intydse databasis is ontwerp vir mobiele toestelle of webwerwe. Ons kan die wolkdatabasis egter deur die Rest API lees en skryf met 'n helperbiblioteek soos Pyrebase.

Koppel die SenseHat Maak seker dat die SenseHats aan u Pis gekoppel is. As u 'n ongewone geval het, moet u die Pi moontlik verwyder voordat u die SenseHat aansluit.

Die installering van biblioteke Alle biblioteekinstallasies word in die terminale uitgevoer

  • Begin jou Pis as jy dit nog nie gedoen het nie.
  • By die opstart kry u hierdie kleurvolle LED -reënboog op u SenseHat! (sien foto)
  • Gaan na die terminale en werk op/dist-upgrade, tik:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • Nadat die opgraderings gedoen is, tik die volgende om SenseHat -biblioteke te installeer:

    sudo apt-get install sense-hat

  • Om Pyrebase te installeer, tik:

    sudo pip installeer pyrebase

  • Laastens, installeer Twilio

    sudo pip installeer twilio

Stap 3: Python Script vir Pi1

Soos ons vroeër genoem het, is Pi1 die Pi wat gebruik sal word om beweging op te spoor. Die waardes van die SenseHat se versnellingsmeter sal gebruik word om beweging te bepaal. Die kode vir Pi1 is dus om toegang tot die versnellingsmeter g kragwaardes te verkry en die bewegings wat opgespoor word, by die Firebase -databasis aan te teken. Hier is 'n oorsig van die prosesvloei:

  • As Pi1 beweging opspoor, voeg dit 'n inskrywing by die kind 'waarskuwings' in die Firebase DB.
  • Pi1 sal ook die 'notifypi2' kind opdateer met 'n kennisgewingboodskap oor die beweging.
  • Pi2, lees dan "notifypi2" en vertoon die kennisgewing op sy LED -matriksskerm.

Ek het die Pi1 Python -script ingesluit sodat u dit kan volg. Kommentaar in die skrif verduidelik wat die kode doen.

Bykomende aantekeninge en insigte vir die Pi1 -skrif

  • Vir die opstelling van Firebase en Twilio. Vul die toepaslike API -sleutels, ID's, wagwoorde, ens. In wat u uit die vorige stappe gekopieer het.
  • Wat Firebase -verifikasie betref, kan u vir ekstra sekuriteit vra vir gebruikersinvoer in plaas van om hierdie geloofsbriewe hard te kodeer. Elke keer as ons uit die databasis skryf of lees, moet ons dit insluit

    gebruiker ['idtoken'] met th

    get (), push (), set () metodes.

  • CPU -temperatuur is nodig, sodat ons kan ingryp as die Pi oorverhit word in 'n motor of 'n geslote omgewing.
  • Ons neem ook die absolute waarde van die G -kragte, aangesien ons nie negatiewe waardes hoef te ken nie. Ons hoef net te weet of daar G -kragte is.
  • As verklaring die versnellingsmeter se waardes sal kontroleer. As G -kragte groter is as 1 in enige rigting, teken Pi1 die bewegingstyd aan en vertoon 'n uitroepteken op sy eie LED -skerm. Dit sal ook die 'notifypi2' kind opdateer. As "notifypi2" opgedateer word, sal Pi2 dit lees en "!!!" op sy LED-skerm om die gebruiker in kennis te stel van moontlike beweging/inbraak. Pi1 sal die gebruiker ook 'n SMS -kennisgewing van beweging stuur.
  • As u die push () -metode gebruik, sal Firebase 'n kind outomaties genereer met 'n nuwe inskrywing. Dit is nodig, sodat die aangetekende bewegingsdata uniek sal wees. die set () -metode aan die ander kant sal vorige data oorskryf.
  • 'N Lus van 10 sekondes om die databasis na te gaan, is nodig, sodat u Pi nie herhaaldelik data van Firebase versoek nie. As u voortdurend op Firebase strooipos, sal Google u binne ongeveer 10 minute afmeld.
  • Firebase skop die gebruiker ook elke 60 minute uit as die teken nie opgedateer word nie. Ek het die opdatering op 1800 sekondes (30 minute) gestel.

Stap 4: Python Script vir Pi2

Python Script vir Pi2
Python Script vir Pi2

As u na die foto kyk, is dit van Pi2 wat 'n kennisgewing van moontlike beweging vertoon.

Die skrif van Pi2 is amper presies dieselfde as Pi1, behalwe dat die skrif geen beweging opspoor nie. Pi2 vertoon of stel slegs kennisgewingsboodskappe van die "notifypi2" -kind in of stel dit terug. Aangesien dit die enigste verskil is, sal ek dit hieronder verduidelik.

  • Elke 10 sekondes sal Pi2 'notifypi2' nagaan om te vertoon. As daar 'n kennisgewingboodskap is om te vertoon, sal die Pi2 dit voortdurend vertoon sodat die gebruiker dit kan sien.
  • Slegs die gebruiker se ingryping deur op die joystick -knoppie te druk, sal die boodskap aan die databasiskant duidelik word en herstel word.

Stap 5: Toets die pis

Image
Image
Toets die Pis
Toets die Pis

Tyd om die Pis te toets.

  • Begin die skrifte vir die onderskeie Pis.
  • Teken in op Firebase en gaan na die afdeling vir projekte se databasis.
  • Skud jou Pi1, jy sal 'n rooi uitroepteken op die Pi1 LED -skerm sien. U moet ook 'n SMS -boodskap kry.
  • Gaan die databasis na; waarskuwingsinskrywings moet begin verskyn. 'notifypi2' moet ook opgedateer word.
  • Kyk na Pi2. U moet ook '!!!' blaai Druk hierdie joystick om die kennisgewingboodskap uit te vee. "notifypi2" moet herstel word. Gaan na u Firebase om te bevestig.
  • As u vind dat die Pi1 te sensitief is vir beweging, verhoog die drempel tot meer as 1G in die Pi1 -skrif.

As alles goed verloop, val u skrifte nie neer nie. U het nou 'n werkende kennisgewingstelsel. Sodra Pi1 bewegings of trillings opspoor, kry u 'n SMS -boodskap en 'n visuele LED -kennisgewing op Pi2.

Stap 6: Bou die R-PiAlerts IOS-app

Bou die R-PiAlerts IOS-app
Bou die R-PiAlerts IOS-app

Tyd om die iOS -app te bou! Die app sal redelik eenvoudig wees. Dit sal 'n LoginViewController en 'n ItemsTableViewController hê. ItemsTableViewController sal waarskuwingskennisgewings van die kind "waarskuwings" vertoon. U kan ook databasisinskrywings uit die app verwyder. As u van plan is om hoofpyn te bespaar, moet u, indien u van plan is om aanlyn -tutoriale vir Firebase te kyk, soek na tutoriale wat na Maart 2016 gedateer is, aangesien daar verlede jaar groot veranderinge was. Enigiets voor Maart 2016 is nalatenskap. Ek is geïnteresseerd in die vinnige lêers; kyk na die opmerkings in die kode. As u 'n gedetailleerde handleiding wil hê oor hoe u 'n Firebase -app bou wat die databasis lees, kyk dan na die tutoriaal van Ray Wunderlich.

Stel u iOS -projekoorsig op

  • Skep 'n enkele uitsig -iOS -projek in Xcode.
  • Kopieer die bundel -identifiseerder
  • Gaan na u Firebase -projek op die webwerf en skep 'n info.plist -lêer met die bundel -identifiseerder.
  • Voeg die GoogleService-info.plist-lêer by u projek. Hierdie info.plist werk slegs met die spesifieke Firebase -projek wat u geskep het.
  • Sluit Xcode af en installeer Firebase via Cocoapods. Maak seker dat u Auth en Database installeer.
  • Herbegin Xcode en stel dan u AppDelegate.swift vir Firebase op. Dit neem slegs 2 reëls kode.

    Voer Firebase in 'n

    FIRApp.configure (). Opsioneel het Firebase 'n standhoudingsfunksie wat slegs 1 reël kode bevat

    FIRDatabase.database (). PersistenceEnabled = true

  • Gedetailleerde installasie stappe kan gevind word op Firebase se webwerf

Hoe die app met die Firebase -databasis in wisselwerking tree:

  • Die app moet die gebruiker verifieer.
  • Sodra die app geverifieer is, neem die app 'n momentopname van die Firebase -databasis en stoor dit as 'n "Item" -voorwerp.
  • Die voorwerp vul 'n skikking. Die skikking sal gebruik word om die tabel te vul.
  • 'N Waarnemer kyk na veranderinge aan die Firebase -databasis en maak 'n momentopname.
  • Sodra veranderinge opgespoor is, word die skikking van die nuwe momentopname bygevoeg.
  • Tableview sal dan herlaai word om die veranderinge aan te toon.

Algemene uiteensetting oor hoe om die app te bou

  • Kyk na die prentjie van hoe die app in die koppelvlakbouer van Xcode uiteengesit is.
  • Skep 'n ViewController in die koppelvlakbouer en wys die pasgemaakte klas na LoginViewController.swift.
  • Voeg teksvelde by vir e -pos en wagwoord. Moenie vergeet om 'Secure Text Entry' vir die wagwoordveld aan te skakel nie. Voeg 'n aanmeldknoppie by.
  • Koppel die teksvelde en knoppie aan die LoginViewController.swift. LoginViewController.swift sal die verifikasie hanteer.
  • Voeg 'n navigasiebeheerder by die koppelvlakbouer. Skep 'n segue van die LoginViewController na die Navigasie Controller. Maak seker dat u die segue 'n identifiseerder gee.
  • Stel die pasgemaakte klas van die nuwe tabelweergawe wat by die navigasiebeheerder gekom het, op ItemsTableViewController.swift. Ek het ook 2 knoppies op die ItemsTableViewController: afmeld en 'n knoppie Voeg. Koppel die knoppies aan ItemsTableViewController.swift.
  • Met betrekking tot die LoginViewController.swift -kode. Die gebruiker sal die aanmeldbewyse invoer en Firebase sal 'n gebruiker terugstuur. As 'n gebruiker teenwoordig is, voer hy 'n segue met die identifiseerder uit. (sien kode aangeheg)
  • Voeg die Item.swift -klas by (sien aangehegte kode)
  • Wat die ItemsTableViewController -kode betref, is dit 'n redelik standaard tabelbeskouingskode. Daar sal 'n waarnemer wees om veranderinge aan u databasis te monitor wat as 'n momentopname as 'n item -voorwerp gestoor word. Dan voeg die item -voorwerp die skikking by om die tabelweergawe te vul. Die Add -knoppie stel 'n inskrywing in die Firebase -databasis in wat Pi1 kan lees en vertoon. Vir giggel het ek ook kode bygevoeg (sien aangehegte kode)

Stap 7: Toets die app

Toets die app
Toets die app
Toets die app
Toets die app
Toets die app
Toets die app

Begin jou app

  • Teken in en skud jou Pi1. U moet begin sien dat nuwe kennisgewings verskyn.
  • Tik op die add -knoppie en kyk hoe u Pi1 u boodskap vertoon.
  • Swiep na links, sien 'Waarskuwings' -inskrywings word verwyder.
  • Ontvang u te veel kennisgewings vinnig? pas die drempel van die versnellingsmeter aan of verhoog die slaaptyd in die Pi1 -skrif.

Stap 8: Gevolgtrekking

Afsluiting
Afsluiting
Afsluiting
Afsluiting

Ontsagwekkende! Nou het ons Pis wat beweging kan opspoor en kennisgewings van bewegings kan stuur. Boonop kan u op u waarskuwingslogboek met u iOS -toestel bestuur! Tyd om die Pis te ontplooi. Sit Pi1 langs u deur en Pi2 om u werkarea. Die volgende keer as iemand inkom, kan u die situasie nagaan! Of beter nog, probeer om by Pi in u motor weg te steek met 'n battery. Maak die deure 'n paar keer oop, kyk wat gebeur!

Dit is slegs die begin van die moontlikhede wat u met 'n Raspberry Pi en Firebase kan doen. Die SenseHat bevat ook omgewingsensors, gyros en 'n kompas. U kan u Pis opstel om sekere veranderings in die omgewing aan te meld. Wil u u spel versterk? As u Pi bewegings opspoor, gebruik 'n kamera om foto's te neem en laat die Pi die teks vir u foto's. Probeer ook 'n rekenaarvisie -algoritme gebruik om gesigte te herken. As dit 'n gesig is van iemand wat u ken, kan u in kennis gestel word! Hê pret!

Aanbeveel: