Sisällysluettelo:

R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä: 8 vaihetta (kuvilla)
R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä: 8 vaihetta (kuvilla)

Video: R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä: 8 vaihetta (kuvilla)

Video: R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä: 8 vaihetta (kuvilla)
Video: Will #chatgpt replace programming jobs? 2024, Marraskuu
Anonim
Image
Image
R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä
R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä
R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä
R-PiAlerts: Rakenna WiFi-pohjainen turvajärjestelmä vadelmapisillä

Kun työskentelet työpöytäsi ääressä, kuulet yhtäkkiä kaukaisen äänen. Tuliko joku juuri kotiin? Autoni on pysäköity taloni eteen, onko joku murtautunut autooni? Etkö halua, että saat ilmoituksen puhelimeesi tai työpöydällesi, jotta voit päättää, tutkitko asian vai et? No kysymys ei enää! R-PiAlerts on täällä!

Mikä on R-PiAlerts R-PiAlerts on Raspberry Pi3 -pohjainen turvajärjestelmä, joka on rakennettu Firebasen pilven ympärille. Jos liikettä havaitaan, järjestelmä ilmoittaa käyttäjälle mahdollisesta tunkeutumisesta tekstiviestillä ja vilkkuvalla LED-näytöllä (eräänlainen hiljainen visuaalinen hälytys). Kun käyttäjä saa ilmoituksen, hän voi tutkia asiaa. Kaikki havaitut liikkeet kirjataan Firebase -tietokantaan. Sen lisäksi, että käyttäjä voi tarkastella liikelokia verkkoselaimessa, hän voi käyttää liikelokia myös iOS -sovelluksen kautta. Päätin rakentaa tämän, koska äskettäin lisääntyi murtautumisia sekä ajoneuvoihin että koteihin ympärilläni.

Miksi Pi3? Tarvitsin jotain pientä, joka havaitsee liikkeen ja tyhjentää akun tarvittaessa. Sitten voin piilottaa laitteen oven taakse tai autoon. Yksikön on myös voitava lähettää minulle ilmoituksia tai hälytyksiä. Pi3 voi tehdä kaikki nämä asiat sisäänrakennetulla wifi -yhteydellä ja sen kyvystä käyttää USB -akkua. Muita syitä miksi valitsin Pi3: n:

  • Pi on suhteellisen halpa
  • Se on helppo ottaa käyttöön ja laajentaa
  • Se on konfiguroitavissa ohjelmiston näkökulmasta
  • Mahdollisuus käyttää näyttöjä ja antureita. Tämä projekti käyttää SenseHatia
  • Käytä päätä (ilman näyttöä, näppäimistöä tai hiirtä)

Kuinka se toimii

  • Ihannetapauksessa käyttäjä tarvitsee 2 Vadelma Pis -laitetta yhdistettynä Firebase -tietokantaan, mutta myös yksi Pi toimii.
  • SenseHatin avulla ensimmäinen Pi (Pi1) tunnistaa liikkeen kiihtyvyysmittarilla, kun taas toinen Pi (Pi2) näyttää liikeilmoitukset.
  • Kun Pi1 havaitsee liikkeen, se tekee 3 asiaa
    • kirjaa liikkeen tietokantaan
    • luo tietokantaan ilmoitusmerkintä Pi2: n näytettäväksi
    • lähettää käyttäjälle tekstiviestin, jossa ilmoitetaan käyttäjälle liikkeestä.
  • Kun Pi2 havaitsee tietokannasta näytettävän ilmoituksen, tapahtuu kaksi asiaa
    • Pi2: n LED -näyttö näyttää ilmoituksen jatkuvasti
    • Käyttäjä voi poistaa ilmoituksen painamalla Pi2 SenseHat -painiketta. Tämä tyhjentää myös ilmoituksen tietokannasta.
  • IOS -sovelluksen avulla käyttäjä voi

    • pääsy tietokantaan; lue ja poista liikeloki
    • käyttäjä voi lähettää Pi1: n näyttämään viestin Pi1: n LED -näytöllä.

Käytännön sovellukset

  1. Jos pysäköit autosi kadulle wifi -verkon sisällä. Kiinnitä akku Pi1: een (katso kuva). Piilota Pi1 autoosi. Aseta Pi2 jonnekin helposti näkyville, kuten työpöytäsi viereen (katso kuva).
  2. Toinen sovellus on sijoittaa Pi1 kotiisi oven viereen. Pi on niin pieni, että useimmat ihmiset eivät huomaa sitä varsinkin jos se on saranapuolen takana (katso kuva). Aseta sitten Pi2 työpöydällesi.
  3. Koira joutuu paikkaan talossa, jonka ei pitäisi tapahtua? Aseta Pi1 kyseiselle alueelle. Varmista, että laitat Pi tukevaan laatikkoon, jotta koirasi ei pureskele sitä.

Niin kauan kuin Pis -laitteesi ovat wifi -alueella, ne voivat varoittaa tai ilmoittaa sinulle liikkeestä. Jos sinulla ei ole toista Pi: tä, voit vain käyttää Pi1: tä liikkeen havaitsemiseen ja tekstiviesti -ilmoitusten vastaanottamiseen matkapuhelimesi kautta.

Materiaaliluettelo

  • Kaksi (2) Raspberry Pi 3: ta, jotka käyttävät Raspbiania (Raspberry Pi 2 toimii myös wifi -sovittimen kanssa)
  • Kaksi (2) SenseHatsia
  • Mac- ja iOS -laite

Tarvittava ohjelmisto

  • Pyrebase -kirjasto (yhteys Firebaseen)
  • SenseHat -kirjasto (kiihtyvyysmittarin ja LED -näytön käyttämiseen)
  • Twilio -kirjasto (tekstiviestien lähettämiseen)
  • Python 3, sisäänrakennettu uusimmalla Raspbianilla
  • Raspbian ja IDLE
  • Xcode8 ja Cocoapods Macissa
  • Halukkuus oppia ja tutkia

Sivuhuomautus Tämä ei ole ainoa Pi -pohjainen suojausratkaisu. Jos sinulla on ideoita, ehdotuksia tai haluat vain muokata koodiani, jätä kommentti alle! =)

Vaihe 1: Määritä Firebasen ja Twilio -tilit

Määritä Firebasen ja Twilio -tilit
Määritä Firebasen ja Twilio -tilit
Määritä Firebasen ja Twilio -tilit
Määritä Firebasen ja Twilio -tilit

Ensinnäkin, ennen kuin aloitamme piilottamisen Pis -laitteemme kanssa, meidän on asennettava Firebasen ja Twilion asetukset. Firebase on Googlen taustajärjestelmä palveluna. Firebasessa on sellaisia ominaisuuksia kuin tietokanta, pilviviestit, todennus, tallennus jne. Tässä projektissa meidän on käytettävä vain Firebasen reaaliaikaista tietokantaa ja todennusta. Todennus vaaditaan Firebase -tietokannan lukemiseen ja kirjoittamiseen. Firebasen määrittäminen:

  1. Rekisteröi ilmainen Firebase -tili
  2. Siirry konsoliin. Luo uusi projekti ja anna sille nimi.
  3. Klikkaa vasemmanpuoleisen valikon alta "Yleiskatsaus"
  4. Napsauta "Lisää Firebasen verkkosovellukseesi", kopioi APIKey ja projectid (ei URL -osoite). Projektitunnus sijaitsee eri URL -osoitteissa, kuten tietokannassa:
  5. Napsauta vasemmanpuoleisen valikon alta "Todennus". Mene "Kirjaudu sisään" ja ota käyttöön "Sähköposti/salasana"
  6. Luo "Käyttäjä" -kohdassa uusi käyttäjätili valitsemallasi sähköpostiosoitteella/salasanalla. Käytät tätä tunnistetietoa kirjautuaksesi tietokantaan.
  7. Siirry vasemmanpuoleisen valikon alta "Tietokanta"
  8. Tämä on tietokantasi. Se on tyhjä juuri nyt. Täytettynä se on JSON -muodossa. URL -osoitteen on oltava sama kuin aiemmin näkemäsi.

Twilio antaa kehittäjille mahdollisuuden lähettää viestejä asiakkailleen. Käytämme sitä lähettääksesi tekstiviestejä puhelimeesi, kun Pi havaitsee liikkeen. Twilio antaa sinulle puhelinnumeron tekstiviestien lähettämistä varten. Twilion asetukset:

  1. Hanki ilmainen tili Twilio -sivustolta
  2. Kopioi tilisi SID ja authToken
  3. Napsauta "Kokeilurajoitukset" ja valitse "hanki ensimmäinen Twilio -puhelinnumerosi"
  4. Kopioi uusi puhelinnumerosi

Vaihe 2: Aseta Pis

Aseta Pis
Aseta Pis
Aseta Pis
Aseta Pis

Ennen kuin voimme aloittaa Pis -ohjelmoinnin, meidän on tehtävä joitakin asetuksia. Varmista, että sinulla on salasana kirjautumiseen Pis -laitteellesi. Ensin liitämme SenseHat -levyt fyysisesti Pis -laitteeseen. Seuraavaksi asennamme tarvittavat SenseHat-, Twilio- ja Pyrebase -kirjastot. Firebasen reaaliaikainen tietokanta on suunniteltu mobiililaitteille tai verkkosivustoille. Voimme kuitenkin lukea ja kirjoittaa pilvitietokannan Rest -sovellusliittymän kautta Pyrebasen kaltaisen apukirjaston avulla.

Yhdistä SenseHat Varmista, että SenseHats on kytketty Pis -laitteeseesi. Jos sinulla on epätavallinen kotelo, sinun on ehkä poistettava Pi ennen SenseHatin yhdistämistä.

Kirjastojen asennus Kaikki kirjaston asennukset tehdään päätelaitteessa

  • Käynnistä Pis, jos et ole jo.
  • Käynnistyksen yhteydessä saat tämän värikkään LED -sateenkaaren SenseHat -laitteeseesi! (katso kuva)
  • Siirry päätelaitteeseen ja päivitä/päivitä, kirjoita:

    • sudo apt-get päivitys
    • sudo apt-get dist-upgrade
  • Kun päivitykset on tehty, asenna SenseHat -kirjastot kirjoittamalla seuraava:

    sudo apt-get install sense-hat

  • Asenna Pyrebase kirjoittamalla:

    sudo pip asenna pyrebase

  • Asenna lopuksi Twilio

    sudo pip asenna twilio

Vaihe 3: Python -skripti Pi1: lle

Kuten aiemmin mainitsimme, Pi1 on Pi, jota käytetään havaitsemaan liike. SenseHatin kiihtyvyysmittarin arvoja käytetään liikkeen määrittämiseen. Siten Pi1 -koodi tulee olemaan kiihtyvyysmittarin g voima -arvojen käyttäminen ja havaittujen liikkeiden kirjaaminen Firebase -tietokantaan. Tässä on yleiskatsaus prosessin kulkuun:

  • Jos Pi1 havaitsee liikkeen, se lisää merkinnän Firebase DB: n "hälytykset" -lapselle.
  • Pi1 päivittää myös "alertpi2" -lapselle ilmoituksen liikettä koskevasta ilmoituksesta.
  • Pi2, lukee sitten "ilmoituksen2" ja näyttää ilmoituksen sen LED -matriisinäytöllä.

Olen lisännyt Pi1 Python -skriptin seurattavaksi. Käsikirjoituksen kommentit selittävät, mitä koodi tekee.

Lisähuomautuksia ja oivalluksia Pi1 -komentosarjasta

  • Firebase- ja Twilio -asetuksiin. Täytä sopivat sovellusliittymäavaimet, tunnukset, salasanat jne., Jotka olet kopioinut edellisistä vaiheista.
  • Mitä tulee Firebase -todennukseen, lisää turvallisuutta varten voit pyytää käyttäjän antamia tietoja kirjautumistietojen kovan koodauksen sijaan. Joka kerta kun kirjoitamme tai luemme tietokannasta, meidän on sisällytettävä se

    käyttäjä ['idtoken'] th: n kanssa

    saada (), työntää (), asettaa () menetelmiä.

  • Suorittimen lämpötilaa tarvitaan, jotta voimme puuttua tilanteeseen, jossa Pi ylikuumenee autossa tai suljetussa ympäristössä.
  • Otamme myös G -voimien absoluuttisen arvon, koska meidän ei tarvitse tietää negatiivisia arvoja. Meidän tarvitsee vain tietää, onko olemassa G -voimia.
  • If -lause tarkistaa kiihtyvyysmittarin arvot. Jos G -voimat ovat suurempia kuin 1 mihin tahansa suuntaan, Pi1 kirjaa liikkeen ajan ja näyttää huutomerkin omalla LED -näytöllä. Se päivittää myös "ilmoituksen2" -lapsen. Kun ilmoitus2 päivitetään, Pi2 lukee sen ja näyttää "!!!" LED-näytössä ilmoittaakseen käyttäjälle mahdollisesta liikkeestä/murtautumisesta. Pi1 lähettää käyttäjälle myös tekstiviestillä ilmoituksen liikkeestä.
  • Kun käytetään push () -menetelmää, Firebase luo automaattisesti uuden merkinnän sisältävän lapsen. Tätä tarvitaan, jotta kirjattavat liiketiedot ovat ainutlaatuisia. set () -menetelmä sen sijaan korvaa aiemmat tiedot.
  • Kymmenen sekunnin silmukka tietokannan tarkistamiseen on tarpeen, jotta Pi ei pyydä toistuvasti tietoja Firebasesta. Jos roskapostitat jatkuvasti Firebasea, Google kirjaa sinut ulos noin 10 minuutissa.
  • Firebase myös potkaisee käyttäjän ulos 60 minuutin välein, jos tunnusta ei päivitetä. Päivitys on asetettu 1800 sekuntiin (30 minuuttia).

Vaihe 4: Python -skripti Pi2: lle

Python -skripti Pi2: lle
Python -skripti Pi2: lle

Jos katsot kuvaa, Pi2 näyttää ilmoituksen mahdollisesta liikkeestä.

Pi2: n komentosarja on melkein täsmälleen sama kuin Pi1, paitsi että skripti ei havaitse liikettä. Pi2 näyttää tai nollaa vain ilmoitusviestit, jotka on lähetetty "paziņpi2" -lapselta. Koska se on ainoa ero, selitän sen alla.

  • Pi2 tarkistaa 10 sekunnin välein "ilmoituksen2". Jos näytössä on ilmoitusviesti, Pi2 näyttää sen jatkuvasti, jotta käyttäjä näkee sen.
  • Vain käyttäjän puuttuminen ohjaussauvan painamiseen poistaa viestin ja nollaa sen tietokannan puolella.

Vaihe 5: Testaa Pis

Image
Image
Testaa Pis
Testaa Pis

Aika testata Pis.

  • Suorita vastaavan Pis -ohjelman komentosarjat.
  • Kirjaudu Firebaseen ja siirry projektisi tietokantaosioon.
  • Ravista Pi1 -laitettasi, sinun pitäisi nähdä punainen huutomerkki Pi1 -LED -näytössä. Sinun pitäisi myös saada tekstiviesti.
  • Tarkista tietokanta, hälytysmerkintöjen pitäisi alkaa näkyä. "Ilmoitus2" on myös päivitettävä.
  • Katso Pi2. Sinun pitäisi myös vierittää "!!!" Voit poistaa tämän ilmoitusviestin painamalla ohjainta. "Ilmoitus2" tulee nollata. Tarkista Firebasestasi.
  • Jos Pi1 on mielestäsi liian herkkä liikkeelle, nosta kynnys yli 1G: een Pi1 -skriptissä.

Jos kaikki menee hyvin, skriptisi eivät kaadu. Nyt sinulla on toimiva ilmoitusjärjestelmä. Kun Pi1 havaitsee liikkeitä tai tärinää, saat tekstiviesti -ilmoituksen ja visuaalisen LED -ilmoituksen Pi2: ssa.

Vaihe 6: Rakenna R-PiAlerts IOS -sovellus

R-PiAlerts IOS -sovelluksen rakentaminen
R-PiAlerts IOS -sovelluksen rakentaminen

Aika rakentaa iOS -sovellus! Sovellus tulee olemaan melko yksinkertainen. Siinä on LoginViewController ja ItemsTableViewController. ItemsTableViewController näyttää hälytysilmoitukset "hälytykset" -lapselta. Voit myös poistaa tietokannan merkintöjä sovelluksesta. Jos haluat säästää päänsärkyä, jos aiot tarkastella Firebasen online -opetusohjelmia, muista etsiä maaliskuun 2016 jälkeen päivitettyjä opetusohjelmia, koska viime vuonna tapahtui suuria muutoksia siihen aikaan. Kaikki ennen maaliskuuta 2016 on perintöä. Olet kiinnostunut nopeista tiedostoista, tarkista koodin kommentit. Jos haluat yksityiskohtaisen opetusohjelman Firebase -sovelluksen rakentamisesta, joka lukee tietokannan, tutustu Ray Wunderlichin opetusohjelmaan.

Asenna iOS -projektisi yleiskatsaus

  • Luo yhden näkymän iOS -projekti Xcodessa.
  • Kopioi nipun tunniste
  • Siirry Firebase -projektiin verkkosivustolla ja luo info.plist -tiedosto, jossa on nipputunniste.
  • Lisää GoogleService-info.plist-tiedosto projektiin. Tämä info.plist toimii vain tietyn luomasi Firebase -projektin kanssa.
  • Sulje Xcode ja asenna Firebase Cocoapodsin kautta. Muista asentaa Auth ja Database.
  • Käynnistä Xcode uudelleen ja määritä AppDelegate.swift for Firebase. Se vaatii vain 2 riviä koodia.

    Tuo Firebasen an

    FIRApp.configure (). Valinnaisesti Firebasessa on pysyvyysominaisuus, joka vie vain yhden koodirivin

    FIRDatabase.database (). PersistenceEnabled = true

  • Yksityiskohtaiset asennusvaiheet löytyvät Firebasen verkkosivustolta

Kuinka sovellus on vuorovaikutuksessa Firebasen tietokannan kanssa:

  • Sovelluksen on todennettava käyttäjä.
  • Kun sovellus on todennettu, se ottaa tilannekuvan Firebase -tietokannasta ja tallentaa sen "kohde" -objektina.
  • Mainittu objekti täyttää taulukon. Mainittua taulukkoa käytetään taulukkonäkymän täyttämiseen.
  • Tarkkailija seuraa muutoksia Firebase -tietokantaan ja luo tilannekuvan.
  • Kun muutokset on havaittu, taulukko liitetään uuteen tilannekuvaan.
  • Taulukkonäkymä ladataan sitten uudelleen, jotta muutokset näkyvät.

Yleistä sovelluksen rakentamisesta

  • Katso kuvaa siitä, miten sovellus on asetettu Xcoden käyttöliittymän rakennustyökalussa.
  • Luo ViewController käyttöliittymärakentajassa ja osoita mukautettu luokka kohtaan LoginViewController.swift.
  • Lisää tekstikenttiä sähköpostille ja salasanalle. Älä unohda ottaa "Suojattu tekstinsyöttö" käyttöön salasanakentässä. Lisää kirjautumispainike.
  • Linkitä tekstikentät ja -painike LoginViewController.swiftiin. LoginViewController.swift hoitaa todennuksen.
  • Lisää navigointiohjain käyttöliittymän rakennustyökaluun. Luo segmentti LoginViewControllerista navigointiohjaimeen. Varmista, että annat segmentille tunnisteen.
  • Aseta navigointiohjaimen mukana toimitetun uuden taulukkonäkymän mukautettu luokka osoittamaan ItemsTableViewController.swift. Minulla on myös 2 painiketta ItemsTableViewControllerissa: Kirjaudu ulos ja Lisää -painike. Linkitä painikkeet kohteeseen ItemsTableViewController.swift.
  • Mitä tulee LoginViewController.swift -koodiin. Käyttäjä syöttää kirjautumistiedot ja Firebase palauttaa käyttäjän. Jos käyttäjä on läsnä, se suorittaa segmentin tunnisteella. (katso koodi liitteenä)
  • Lisää luokka Item.swift (katso koodi liitteenä)
  • Mitä tulee ItemsTableViewController -koodiin, se on melko tavallinen taulukonäkymäkoodi. Siellä on tarkkailija, joka valvoo tietokantaasi muutoksia, jotka on tallennettu tilannekuvaksi kohdeobjektina. Tämän jälkeen tuoteobjekti liittää taulukon taulukonäkymän täyttämiseksi. Lisää -painike asettaa merkinnän Firebase -tietokantaan, jonka Pi1 voi lukea ja näyttää. Kikatuksille lisäsin myös koodin (katso liitteenä oleva koodi)

Vaihe 7: Testaa sovellus

Testaa sovellus
Testaa sovellus
Testaa sovellus
Testaa sovellus
Testaa sovellus
Testaa sovellus

Suorita sovelluksesi

  • Kirjaudu sisään ja ravista Pi1 -laitettasi. Sinun pitäisi alkaa näkyä uusia hälytysilmoituksia.
  • Napauta Lisää -painiketta ja katso, miten Pi1 näyttää viestisi.
  • Pyyhkäise vasemmalle, katso Hälytykset -kohdat poistetaan.
  • Saatko liian monta ilmoitusta nopeasti peräkkäin? säädä kiihtyvyysmittarin kynnystä tai lisää uniaikaa Pi1 -skriptissä.

Vaihe 8: Johtopäätös

Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös

Mahtava! Nyt meillä on Pis, joka havaitsee liikkeen ja lähettää sinulle ilmoituksia liikkeistä. Tämän lisäksi voit hallita hälytysviestilokiasi iOS -laitteellasi! Aika ottaa Pis käyttöön. Aseta Pi1 oven viereen ja Pi2 työalueesi ympärille. Seuraavan kerran, kun joku tulee sisään, voit tarkistaa tilanteen! Tai vielä parempi, yritä piiloutua Pi: hen autossasi akulla. Sulje ovet muutaman kerran, katso mitä tapahtuu!

Tämä on vasta alkua mahdollisuuksille, joita voit tehdä Raspberry Pi: n ja Firebasen kanssa. SenseHat sisältää myös ympäristöanturit, gyroskoopin ja kompassin. Voit määrittää Pis: n kirjaamaan tietyt muutokset ympäristöön. Haluatko tehostaa peliäsi? Kun Pi havaitsee liikkeitä, käytä kameraa ottamaan kuvia ja pyydä Pi -tekstiä ottamaan valokuvat. Yritä myös käyttää tietokonenäköalgoritmia kasvojen tunnistamiseen. jos se on jonkun tutun kasvot, voit saada ilmoituksen! Pidä hauskaa!

Suositeltava: