Turinys:

„R-PiAlerts“: sukurkite „WiFi“pagrįstą saugos sistemą su „Raspberry Pis“: 8 žingsniai (su nuotraukomis)
„R-PiAlerts“: sukurkite „WiFi“pagrįstą saugos sistemą su „Raspberry Pis“: 8 žingsniai (su nuotraukomis)

Video: „R-PiAlerts“: sukurkite „WiFi“pagrįstą saugos sistemą su „Raspberry Pis“: 8 žingsniai (su nuotraukomis)

Video: „R-PiAlerts“: sukurkite „WiFi“pagrįstą saugos sistemą su „Raspberry Pis“: 8 žingsniai (su nuotraukomis)
Video: Revolutionize Windows System Repair: Using SFC/DISM" 2024, Lapkritis
Anonim
Image
Image
„R-PiAlerts“: sukurkite „WiFi“pagrįstą apsaugos sistemą su avietėmis
„R-PiAlerts“: sukurkite „WiFi“pagrįstą apsaugos sistemą su avietėmis
„R-PiAlerts“: sukurkite „WiFi“pagrįstą apsaugos sistemą su avietėmis
„R-PiAlerts“: sukurkite „WiFi“pagrįstą apsaugos sistemą su avietėmis

Dirbdamas prie savo stalo staiga išgirsti tolimą triukšmą. Ar kas nors ką tik grįžo namo? Mano automobilis stovi priešais mano namą, ar kas nors įsibrovė į mano automobilį? Ar nenorite, kad jūsų telefone ar prie stalo būtų gautas pranešimas, kad galėtumėte nuspręsti, ar tirti, ar ne? Na daugiau nebeklausk! „R-PiAlerts“yra čia!

Kas yra „R-PiAlerts“? „R-PiAlerts“yra „Raspberry Pi3“saugumo sistema, sukurta aplink „Firebase“debesį. Jei aptinkamas judėjimas, sistema informuos vartotoją apie galimą įsilaužimą, pranešdama tekstiniu pranešimu ir mirksinčiu LED ekranu (tam tikras tylus regėjimo aliarmas). Gavęs pranešimą vartotojas gali ištirti. Visi aptikti judesiai bus užregistruoti „Firebase“duomenų bazėje. Be judėjimo žurnalo peržiūros žiniatinklio naršyklėje, vartotojas taip pat gali pasiekti judėjimo žurnalą per „iOS“programą. Nusprendžiau tai statyti dėl to, kad pastaruoju metu padaugėjo įsilaužimų į transporto priemones ir namus mano rajone.

Kodėl Pi3? Man reikėjo kažko mažo, kuris galėtų aptikti judesį ir prireikus išsikrauti akumuliatorių. Tada galiu paslėpti įrenginį už durų arba automobilyje. Be to, įrenginys turi galėti siųsti man pranešimus ar įspėjimus. „Pi3“gali atlikti visus šiuos veiksmus naudodamas integruotą „Wi -Fi“ir galimybę paleisti USB akumuliatorių. Kitos priežastys, kodėl pasirinkau „Pi3“:

  • Pi yra palyginti nebrangus
  • Jį lengva įdiegti ir padidinti
  • Tai galima konfigūruoti programinės įrangos požiūriu
  • Galimybė naudoti ekranus ir jutiklius. Šiame projekte bus naudojama „SenseHat“
  • Valdymas be galvos (be monitoriaus, klaviatūros ar pelės)

Kaip tai veikia

  • Idealiu atveju vartotojui reikės 2 „Raspberry Pis“, prijungtų prie „Firebase“duomenų bazės, tačiau taip pat veiks vienas „Pi“.
  • Naudojant „SenseHat“, pirmasis „Pi“(Pi1) nustatys judesį akselerometru, o antrasis „Pi“(„Pi2“) parodys judesio pranešimus.
  • Kai „Pi1“aptinka judesį, jis atlieka 3 veiksmus

    • registruoti judėjimą į duomenų bazę
    • duomenų bazėje sukurkite pranešimo įrašą, kad „Pi2“būtų rodomas
    • nusiųskite vartotojui tekstinį pranešimą, informuojantį apie judėjimą.
  • Kai „Pi2“aptinka pranešimą, kurį reikia parodyti iš duomenų bazės, atsitinka du dalykai

    • „Pi2“LED ekranas nuolat rodys pranešimą
    • Vartotojas gali išvalyti pranešimą paspausdamas „Pi2 SenseHat“mygtuką. Tai taip pat išvalys pranešimo įrašą duomenų bazėje.
  • Naudodamas „iOS“programą vartotojas gali

    • prieiti prie duomenų bazės; perskaitykite ir ištrinkite judėjimo žurnalą
    • vartotojas gali nusiųsti „Pi1“, kad parodytų pranešimą „Pi1“LED ekrane.

Praktinės programos

  1. Jei gatvėje pastatysite automobilį belaidžio interneto ryšio zonoje. Prijunkite akumuliatorių prie „Pi1“(žr. Paveikslėlį). Paslėpkite „Pi1“savo automobilyje. Padėkite „Pi2“lengvai matomoje vietoje, pavyzdžiui, šalia savo stalo (žr.
  2. Kita programa yra pastatyti Pi1 savo namuose prie durų. „Pi“yra toks mažas, kad dauguma žmonių to nepastebės, ypač jei jis yra už vyrio pusės (žr. Tada padėkite „Pi2“prie darbo stalo.
  3. Šuo patenka į tą vietą namuose, kur to negalima daryti? Įdėkite Pi1 į tą vietą. Įsitikinkite, kad įdėjote „Pi“į tvirtą dėžę, kad jūsų šuo jo nekramtytų.

Kol jūsų „Pis“yra „Wi -Fi“diapazone, jie gali įspėti arba pranešti apie judėjimą. Jei neturite antrojo „Pi“, galite tiesiog naudoti „Pi1“, kad nustatytumėte judėjimą ir gautumėte SMS pranešimus per savo mobilųjį telefoną.

Sąmata

  • Du (2) „Raspberry Pi 3s“, kuriuose veikia „Raspbian“(„Raspberry Pi 2“taip pat veiks su „wifi“raktu)
  • Dvi (2) „SenseHats“
  • „Mac“ir „iOS“įrenginiai

Reikalinga programinė įranga

  • „Pyrebase“biblioteka (prisijungiama prie „Firebase“)
  • „SenseHat“biblioteka (prieigai prie akselerometro ir LED ekrano)
  • „Twilio“biblioteka (SMS siuntimui)
  • „Python 3“, integruotas su naujausia „Raspbian“
  • Raspbian su IDLE
  • „Xcode8“ir „Cocoapods“jūsų „Mac“
  • Noras mokytis ir tyrinėti

Šoninė pastaba Tai nėra vienintelis „Pi“pagrįstas saugumo sprendimas. Jei turite idėjų, pasiūlymų ar tiesiog norite pakeisti mano kodą, palikite komentarą žemiau! =)

1 veiksmas: nustatykite „Firebase“ir „Twilio“paskyras

Nustatykite „Firebase“ir „Twilio“paskyras
Nustatykite „Firebase“ir „Twilio“paskyras
Nustatykite „Firebase“ir „Twilio“paskyras
Nustatykite „Firebase“ir „Twilio“paskyras

Pirmiausia, prieš pradėdami grumtis su savo „Pis“, turime nustatyti „Firebase“ir „Twilio“. „Firebase“yra „Google“kaip paslauga. „Firebase“apima tokias funkcijas kaip duomenų bazė, pranešimų siuntimas iš debesies, autentifikavimas, saugojimas ir kt. Šiam projektui mums reikės naudoti tik „Firebase“realiuoju laiku veikiančią duomenų bazę ir autentifikavimą. Autentifikavimas bus reikalingas norint skaityti ir rašyti „Firebase“duomenų bazėje. Norėdami nustatyti „Firebase“:

  1. Užregistruokite nemokamą „Firebase“paskyrą
  2. Eikite į konsolę. Sukurkite naują projektą ir suteikite jam pavadinimą.
  3. Kairiajame meniu spustelėkite „Apžvalga“
  4. Spustelėkite „Pridėti„ Firebase “prie žiniatinklio programos“, nukopijuokite APIKey ir projectid (o ne URL). Projekto ID yra skirtinguose URL, pvz., Duomenų bazėje:
  5. Kairiajame meniu spustelėkite „Autentifikavimas“. Eikite į „Prisijungimo metodas“ir įjunkite „El. Paštas/slaptažodis“
  6. Skiltyje „Vartotojas“sukurkite naują vartotojo paskyrą su pasirinktu el. Pašto adresu/slaptažodžiu. Šiuos kredencialus naudosite prisijungdami prie duomenų bazės.
  7. Kairiajame meniu eikite į „Duomenų bazę“
  8. Tai yra jūsų duomenų bazė. Šiuo metu jis tuščias. Užpildytas jis bus JSON formatu. URL turėtų būti toks pat, kokį matėte anksčiau.

„Twilio“leidžia kūrėjams siųsti pranešimus savo klientams. Mes jį naudosime SMS žinutėms siųsti į jūsų telefoną, kai „Pi“aptiks judesį. „Twilio“suteiks jums telefono numerį SMS išsiųsti. Norėdami nustatyti „Twilio“:

  1. Užregistruokite nemokamą paskyrą „Twilio“svetainėje
  2. Nukopijuokite paskyrąSID ir authToken
  3. Spustelėkite „Bandomieji apribojimai“ir pasirinkite „gauti pirmąjį„ Twilio “telefono numerį“
  4. Nukopijuokite naują telefono numerį

2 žingsnis: nustatykite savo Pis

Nustatykite savo Pis
Nustatykite savo Pis
Nustatykite savo Pis
Nustatykite savo Pis

Prieš pradėdami programuoti Pis, turime atlikti tam tikrus nustatymus. Įsitikinkite, kad turite savo Pis slaptažodį. Pirmiausia fiziškai prijungsime „SenseHat“plokštes prie „Pis“. Toliau įdiegsime reikalingas „SenseHat“, „Twilio“ir „Pyrebase“bibliotekas. „Firebase“realaus laiko duomenų bazė buvo sukurta mobiliesiems įrenginiams ar svetainėms. Tačiau debesų duomenų bazę galime skaityti ir rašyti per „Rest API“su pagalbine biblioteka, tokia kaip „Pyrebase“.

Prijunkite „SenseHat“Įsitikinkite, kad „SenseHats“yra prijungtas prie jūsų „Pis“. Jei turite neįprastą atvejį, prieš prijungdami „SenseHat“, gali tekti pašalinti „Pi“.

Bibliotekų diegimas Visi bibliotekos įrenginiai bus atliekami terminale

  • Paleiskite savo Pis, jei to dar nepadarėte.
  • Įkėlę „SenseHat“gausite šią spalvingą LED vaivorykštę! (žr. paveikslėlį)
  • Eikite į terminalą ir atnaujinkite/dist-upgrade, įveskite:

    • sudo apt-get atnaujinimas
    • sudo apt-get dist-upgrade
  • Atlikę naujovinimą, įveskite toliau nurodytas programas, kad įdiegtumėte „SenseHat“bibliotekas:

    sudo apt-get install sense-hat

  • Norėdami įdiegti „Pyrebase“, įveskite:

    sudo pip įdiegti pyrebase

  • Galiausiai įdiekite „Twilio“

    sudo pip įdiegti twilio

3 žingsnis: „Python“scenarijus „Pi1“

Kaip minėjome anksčiau, Pi1 bus Pi, kuris bus naudojamas judėjimui aptikti. Judėjimui nustatyti bus naudojamos „SenseHat“akselerometro vertės. Taigi „Pi1“kodas bus prieinamas prie akselerometro g jėgos verčių ir registruojamas aptiktų judesių „Firebase“duomenų bazėje. Čia yra proceso eigos apžvalga:

  • Jei „Pi1“aptiks judesį, jis pridės įrašą prie „įspėjimų“vaiko „Firebase DB“.
  • „Pi1“taip pat atnaujins „pranešimų2“vaiką pranešimu apie judėjimą.
  • Pi2, tada nuskaito „pranešimų2“ir parodo pranešimą savo LED matricos ekrane.

Aš įtraukiau „Pi1 Python“scenarijų, kad galėtumėte sekti. Scenarijaus komentarai paaiškina, ką daro kodas.

Papildomos pastabos ir įžvalgos apie „Pi1“scenarijų

  • Skirta „Firebase“ir „Twilio“sąrankai. Užpildykite atitinkamus API raktus, ID, slaptažodžius ir tt, kuriuos nukopijavote atlikdami ankstesnius veiksmus.
  • Kalbant apie „Firebase“autentifikavimą, dėl papildomo saugumo galite paprašyti vartotojo įvesties, o ne tvirtai koduoti šiuos kredencialus. Kiekvieną kartą, kai rašome ar skaitome iš duomenų bazės, turėsime įtraukti

    vartotojas ['idtoken'] su tūkst

    gauti (), stumti (), nustatyti () metodus.

  • Reikia procesoriaus temperatūros, kad galėtume įsikišti, jei „Pi“perkaistų automobilyje ar uždaroje aplinkoje.
  • Mes taip pat imamės absoliučios G jėgų vertės, nes mums nereikia žinoti neigiamų verčių. Mums tereikia žinoti, ar yra G pajėgų.
  • Jei teiginys patikrins akselerometro vertes. Jei G jėgos bet kuria kryptimi yra didesnės nei 1, Pi1 registruoja judėjimo laiką ir savo LED ekrane parodo šauktuką. Taip pat bus atnaujintas „pranešimo2“vaikas. Atnaujinus „pranešpi2“, „Pi2“jį perskaitys ir parodys „!!!“savo LED ekrane, kad praneštų vartotojui apie galimą judėjimą/įsilaužimą. „Pi1“vartotojui taip pat išsiųs SMS pranešimą apie judėjimą.
  • Naudojant „push“() metodą, „Firebase“automatiškai sugeneruos vaiką su nauju įrašu. To reikėjo, kad užregistruoti judėjimo duomenys būtų unikalūs. set () metodas, priešingai, perrašys ankstesnius duomenis.
  • Norint patikrinti duomenų bazę, reikia 10 sekundžių ciklo, kad „Pi“pakartotinai neprašytų duomenų iš „Firebase“. Jei nuolat šlamštysite „Firebase“, „Google“atsijungs per maždaug 10 minučių.
  • „Firebase“taip pat pašalins naudotoją kas 60 minučių, jei žetonas nebus atnaujintas. Turiu atnaujinimo laiką 1800 sekundžių (30 minučių).

4 žingsnis: „Python“scenarijus „Pi2“

„Python“scenarijus „Pi2“
„Python“scenarijus „Pi2“

Jei pažvelgsite į nuotrauką, tai yra „Pi2“, rodantis pranešimą apie galimą judėjimą.

„Pi2“scenarijus yra beveik toks pat kaip „Pi1“, išskyrus tai, kad scenarijus neaptinka judėjimo. „Pi2“rodo arba iš naujo nustato tik pranešimo pranešimus iš „pranešimo2“vaiko. Kadangi tai vienintelis skirtumas, paaiškinsiu tai žemiau.

  • Kas 10 sekundžių „Pi2“pažymės, kad būtų rodomas pranešimas „pranešti2“. Jei rodomas pranešimas, „Pi2“jį rodys nuolat, kad vartotojas jį matytų.
  • Tik vartotojo įsikišimas paspaudus kreiptuką, pranešimas bus išvalytas ir atstatytas duomenų bazės pusėje.

5 žingsnis: išbandykite Pis

Image
Image
Išbandykite Pis
Išbandykite Pis

Laikas išbandyti Pis.

  • Paleiskite atitinkamai Pis scenarijus.
  • Prisijunkite prie „Firebase“ir eikite į savo projektų duomenų bazės skyrių.
  • Pakratykite „Pi1“, Pi1 LED ekrane turėtumėte matyti raudoną šauktuką. Taip pat turėtumėte gauti SMS žinutę.
  • Patikrinkite duomenų bazę, įspėjimo įrašai turėtų būti pradėti rodyti. Taip pat turėtų būti atnaujintas „pranešimo2“.
  • Pažvelkite į „Pi2“. Taip pat turėtumėte slinkti „!!!“Norėdami išvalyti šį pranešimo pranešimą, tiesiog paspauskite kreiptuką. „pranešti2“turėtų būti iš naujo nustatytas. Patikrinkite „Firebase“, kad patvirtintumėte.
  • Jei manote, kad „Pi1“yra pernelyg jautrus judėjimui, padidinkite slenkstį iki didesnio nei 1G „Pi1“scenarijuje.

Jei viskas bus gerai, jūsų scenarijai nesuges. Dabar turite veikiančią pranešimų sistemą. Kai „Pi1“aptiks judesius ar vibraciją, „Pi2“gaus SMS pranešimą ir vizualų LED pranešimą.

6 veiksmas: sukurkite „R-PiAlerts IOS“programą

„R-PiAlerts IOS“programos kūrimas
„R-PiAlerts IOS“programos kūrimas

Laikas kurti „iOS“programą! Programa bus gana paprasta. Jame bus „LoginViewController“ir „ItemsTableViewController“. „ItemsTableViewController“rodys įspėjimų pranešimus iš „įspėjimų“vaiko. Taip pat galima ištrinti duomenų bazės įrašus iš programos. Jei norite sutaupyti galvos skausmo, jei planuojate ieškoti internetinių „Firebase“vadovėlių, būtinai ieškokite vadovėlių, datuojamų po 2016 m. Kovo mėn., Nes praėjusiais metais tuo metu įvyko esminių pokyčių. Viskas, kas iki 2016 m. Kovo mėn., Bus palikta. Mane domina greiti failai, peržiūrėkite kodo komentarus. Jei norite išsamios pamokos, kaip sukurti „Firebase“programą, kuri skaito duomenų bazę, peržiūrėkite Ray Wunderlich vadovėlį.

Nustatykite „iOS“projekto apžvalgą

  • Sukurkite vieno rodinio „iOS“projektą „Xcode“.
  • Nukopijuokite paketo identifikatorių
  • Eikite į savo „Firebase“projektą svetainėje ir sukurkite failą info.plist su rinkinio identifikatoriumi.
  • Pridėkite „GoogleService-info.plist“failą prie savo projekto. Šis info.plist veikia tik su konkrečiu jūsų sukurtu „Firebase“projektu.
  • Uždarykite „Xcode“ir įdiekite „Firebase“naudodami „Cocoapods“. Būtinai įdiekite „Auth“ir „Database“.
  • Iš naujo paleiskite „Xcode“, tada sukonfigūruokite „AppDelegate.swift“, skirtą „Firebase“. Tam reikia tik 2 kodo eilučių.

    Importuoti „Firebase“an

    FIRApp.configure (). Pasirinktinai „Firebase“turi atkaklumo funkciją, kuri užima tik 1 kodo eilutę

    FIRDatabase.database (). PersistenceEnabled = tiesa

  • Išsamius diegimo veiksmus rasite „Firebase“svetainėje

Kaip programa sąveikauja su „Firebase“duomenų baze:

  • Programa turės patvirtinti naudotoją.
  • Kai programa bus patvirtinta, ji padarys „Firebase“duomenų bazės momentinę kopiją ir išsaugos ją kaip „elemento“objektą.
  • Minėtas objektas užpildys masyvą. Lentelės peržiūrai užpildyti bus naudojamas minėtas masyvas.
  • Stebėtojas stebės „Firebase“duomenų bazės pakeitimus ir sukurs momentinę nuotrauką.
  • Aptikus pakeitimus, masyvas bus pridėtas iš naujos momentinės nuotraukos.
  • Tada lentelės peržiūra bus įkelta iš naujo, kad būtų rodomi pakeitimai.

Bendras aprašymas, kaip sukurti programą

  • Pažvelkite į vaizdą, kaip programa išdėstyta „Xcode“sąsajos kūrimo priemonėje.
  • Sąsajos kūrimo priemonėje sukurkite „ViewController“ir nukreipkite pasirinktinę klasę į „LoginViewController.swift“.
  • Pridėkite teksto laukus el. Paštui ir slaptažodžiui. Nepamirškite slaptažodžio lauke įjungti „Saugaus teksto įvedimo“. Pridėti prisijungimo mygtuką.
  • Susiekite teksto laukus ir mygtuką su „LoginViewController.swift“. Autentifikavimą tvarkys „LoginViewController.swift“.
  • Sąsajų kūrimo priemonėje pridėkite navigacijos valdiklį. Sukurkite segmentą nuo „LoginViewController“iki naršymo valdiklio. Būtinai suteikite segmentui identifikatorių.
  • Nustatykite naujos lentelės peržiūros, pateiktos kartu su naršymo valdikliu, pasirinktinę klasę, kad ji nurodytų ItemsTableViewController.swift. „ItemsTableViewController“taip pat turiu 2 mygtukus: Atsijungti ir mygtuką Pridėti. Susiekite mygtukus su „ItemsTableViewController.swift“.
  • Kalbant apie „LoginViewController.swift“kodą. Naudotojas įves prisijungimo duomenis, o „Firebase“grąžins naudotoją. Jei yra vartotojas, jis atliks segmentą su identifikatoriumi. (žr. pridedamą kodą)
  • Pridėkite „Item.swift“klasę (žr. Pridedamą kodą)
  • Kalbant apie „ItemsTableViewController“kodą, tai gana standartinis lentelės peržiūros kodas. Bus stebėtojas, kuris stebės jūsų duomenų bazės pakeitimus, išsaugotus kaip momentinis vaizdas kaip elemento objektas. Tada objekto elementas pridės masyvą, kad užpildytų lentelės rodinį. Mygtukas Pridėti nustato „Firebase“duomenų bazės įrašą, kad „Pi1“galėtų jį skaityti ir rodyti. Dėl kikenimo aš taip pat pridėjau kodą (žr. Pridedamą kodą)

7 veiksmas: išbandykite programą

Išbandykite programą
Išbandykite programą
Išbandykite programą
Išbandykite programą
Išbandykite programą
Išbandykite programą

Paleiskite savo programą

  • Prisijunkite ir purtykite „Pi1“. Turėtumėte pradėti rodyti naujus įspėjimų pranešimus.
  • Bakstelėkite pridėjimo mygtuką ir žiūrėkite, kaip „Pi1“parodys jūsų pranešimą.
  • Braukite kairėn, žr. „Įspėjimų“įrašai pašalinami.
  • Greitai gaunate per daug pranešimų? koreguoti akselerometro slenkstį arba padidinti miego laiką „Pi1“scenarijuje.

8 žingsnis: Išvada

Išvada
Išvada
Išvada
Išvada

Nuostabu! Dabar mes turime „Pis“, kurie gali aptikti judėjimą ir atsiųsti jums pranešimus apie judesius. Be to, galite valdyti savo įspėjimų pranešimų žurnale naudodami „iOS“įrenginį! Laikas dislokuoti Pis. Padėkite „Pi1“šalia durų, o „Pi2“- aplink savo darbo vietą. Kitą kartą, kai kas nors ateis, galite patikrinti situaciją! Arba dar geriau, pabandykite paslėpti „Pi“savo automobilyje su akumuliatoriumi. Kelis kartus užtrenkite duris, pažiūrėkite, kas atsitiks!

Tai tik pradžia galimybėms, ką galite padaryti naudodami „Raspberry Pi“ir „Firebase“. „SenseHat“taip pat yra aplinkos jutikliai, giroskopai ir kompasas. Galite nustatyti, kad Pis registruotų tam tikrus aplinkos pakeitimus. Norite sustiprinti savo žaidimą? Kai „Pi“aptinka judesius, naudokite fotoaparatą, kad užfiksuotumėte vaizdus, ir „Pi“parašykite jums nuotraukas. Taip pat pabandykite naudoti kompiuterinio matymo algoritmą veidams atpažinti. jei tai pažįstamo žmogaus veidas, galite gauti pranešimą! Pasilinksmink!

Rekomenduojamas: