Мазмұны:

R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз: 8 қадам (суреттермен)
R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз: 8 қадам (суреттермен)

Бейне: R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз: 8 қадам (суреттермен)

Бейне: R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз: 8 қадам (суреттермен)
Бейне: 10 Amazing R-pi Zero projects to try in 2023! 2024, Шілде
Anonim
Image
Image
R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз
R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз
R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз
R-PiAlerts: Raspberry Pis көмегімен WiFi негізіндегі қауіпсіздік жүйесін құрыңыз

Жұмыс үстелінде жұмыс істеген кезде кенеттен сіз алыстан шуды естисіз. Жаңа ғана біреу үйге келді ме? Менің көлігім үйімнің алдында тұр, менің көлігіме біреу кірді ме? Телефоныңызда немесе үстеліңізде хабарландыру алғыңыз келмей ме, сонда сіз тергеу -термеуді шешесіз бе? Сұрақ жоқ енді! R-PiAlerts осында!

R-PiAlerts-бұл Raspberry Pi3 негізіндегі Firebase бұлтына негізделген қауіпсіздік жүйесі. Егер қозғалыс анықталса, жүйе пайдаланушыға ықтимал кіру туралы мәтіндік хабармен және жыпылықтайтын диодты дисплеймен хабарлайды (дыбыссыз визуалды дабыл). Пайдаланушы хабарлама алғаннан кейін оны зерттей алады. Барлық анықталған қозғалыстар Firebase дерекқорына жазылады. Қозғалыс журналын веб -шолғышта көруден басқа, қолданушы iOS қосымшасы арқылы қозғалыс журналына қол жеткізе алады. Мен мұны жақында автокөліктерге де, менің айналамдағы үйлерге де бұзушылықтардың артуына байланысты салуды шештім.

Неліктен Pi3? Маған қозғалысты анықтай алатын және қажет болған жағдайда батареяның таусылуына мүмкіндік беретін кішкене нәрсе қажет болды. Содан кейін мен құрылғыны есіктің артында немесе көлікте жасыра аламын. Сондай -ақ, құрылғы маған хабарландырулар немесе ескертулер жіберуі керек. Pi3 мұның барлығын кіріктірілген Wi -Fi -мен және USB -дің аккумуляторлық батареясын өшіру мүмкіндігімен жасай алады. Мен Pi3 -ті таңдауымның басқа себептері:

  • Pi салыстырмалы түрде арзан
  • Оны орналастыру және кеңейту оңай
  • Бағдарламалық қамтамасыз ету тұрғысынан конфигурациялануы мүмкін
  • Дисплей мен сенсорларды қолдану мүмкіндігі. Бұл жоба SenseHat қолданады
  • Бассыз жұмыс істеу (монитор, пернетақта немесе тінтуірсіз)

Бұл қалай жұмыс істейді

  • Ең дұрысы, пайдаланушыға Firebase мәліметтер базасына қосылған 2 Raspberry Pis қажет, бірақ бір Pi де жұмыс істейді.
  • SenseHat көмегімен бірінші Pi (Pi1) қозғалысты акселерометрмен анықтайды, ал екінші Pi (Pi2) қозғалыс туралы хабарландыруларды көрсетеді.
  • Pi1 қозғалысты анықтағанда, ол 3 нәрсені жасайды

    • дерекқорға қозғалысты тіркеу
    • Pi2 көрсету үшін дерекқорда хабарландыру жазбасын жасаңыз
    • пайдаланушыға қозғалыс туралы хабарлама жіберетін пайдаланушыға мәтіндік хабар жіберіңіз.
  • Pi2 дерекқордан көрсетілетін хабарландыруды анықтағанда, екі нәрсе болады

    • Pi2 жарықдиодты дисплейі хабарламаны үздіксіз көрсетеді
    • Пайдаланушы Pi2 SenseHat батырмасын басу арқылы хабарламаны өшіре алады. Бұл дерекқордағы хабарландыру жазбасын да жояды.
  • IOS қосымшасының көмегімен пайдаланушы жасай алады

    • мәліметтер қорына кіру; қозғалыс журналын оқу және жою
    • пайдаланушы Pi1 -ді LED дисплейінде хабарды көрсету үшін Pi1 жібере алады.

Практикалық қосымшалар

  1. Егер сіз көшеде көлікті Wi -Fi желісіне қоятын болсаңыз. Батарея жинағын Pi1 -ге бекітіңіз (суретті қараңыз). Pi1 көлігіңізге жасырыңыз. Pi2 -ді үстеліңіздің қасында оңай көрінетін жерге қойыңыз (суретті қараңыз).
  2. Тағы бір қосымша - Pi1 -ді үйіңізге есіктің жағына қою. Пи соншалықты кішкентай, оны көптеген адамдар байқамайды, әсіресе егер ол топсаның артында болса (суретті қараңыз). Содан кейін Pi2 жұмыс үстеліңізге қойыңыз.
  3. Ит үйге кіруі мүмкін емес пе? Бұл аймаққа Pi1 қойыңыз. Сіздің итіңіз оны шайнамауы үшін оны қатты қорапқа салғаныңызға көз жеткізіңіз.

Егер сіздің Pis Wi -Fi ауқымында болса, олар сізге қозғалыс туралы ескертеді немесе хабарлайды. Егер сізде екінші Pi болмаса, Pi1 көмегімен қозғалысты анықтауға және ұялы телефон арқылы SMS хабарламаларын алуға болады.

Материалдық есеп

  • Raspbian жұмыс істейтін екі (2) Raspberry Pi 3s (Raspberry Pi 2 Wi -Fi қосқышымен де жұмыс істейді)
  • Екі (2) SenseHats
  • Mac және iOS құрылғысы

Бағдарламалық қамтамасыз ету қажет

  • Pyrebase кітапханасы (Firebase -ке қосылу)
  • SenseHat кітапханасы (акселерометр мен жарықдиодты дисплейге кіруге арналған)
  • Twilio кітапханасы (SMS жіберу үшін)
  • Python 3, соңғы Raspbian -мен орнатылған
  • IDLE бар Raspbian
  • Mac жүйесінде Xcode8 және Cocoapods
  • Оқуға және зерттеуге дайындық

Ескертпе Бұл Pi негізіндегі жалғыз қауіпсіздік шешімі емес. Егер сізде қандай да бір идеялар, ұсыныстар болса немесе менің кодты қайта өңдегіңіз келсе, төменде түсініктеме қалдырыңыз! =)

1 -қадам: Firebase және Twilio есептік жазбаларын орнату

Firebase және Twilio есептік жазбаларын орнату
Firebase және Twilio есептік жазбаларын орнату
Firebase және Twilio есептік жазбаларын орнату
Firebase және Twilio есептік жазбаларын орнату

Біріншіден, біз Pis -пен жұмысты бастамас бұрын, Firebase және Twilio -ны орнатуымыз керек. Firebase - бұл Google -дің қызмет ретінде берілетін тірегі. Firebase дерекқор, бұлтты хабар алмасу, аутентификация, сақтау және т.б сияқты мүмкіндіктерді қамтиды. Бұл жоба үшін бізге Firebase -дің нақты уақыттағы дерекқоры мен аутентификациясын қолдану қажет болады. Firebase дерекқорында оқу және жазу үшін аутентификация қажет болады. Firebase орнату үшін:

  1. Тегін Firebase есептік жазбасына тіркеліңіз
  2. Консольге өтіңіз. Жаңа жоба жасаңыз және оған ат қойыңыз.
  3. Сол жақ мәзірдің астындағы «Шолу» түймесін басыңыз.
  4. «Firebase -ді веб -қосымшасына қосу» түймесін басып, APIKey және projectid (URL емес) көшіріңіз. Жоба идентификаторы дерекқор сияқты әр түрлі URL мекенжайларында орналасқан:
  5. Сол жақ мәзірдің астындағы «Аутентификация» түймесін басыңыз. «Кіру әдісі» бөліміне өтіп, «Электрондық пошта/құпия сөзді» қосыңыз.
  6. «Пайдаланушы» астында сіз таңдаған электрондық пошта/құпия сөзі бар жаңа пайдаланушы тіркелгісін жасаңыз. Сіз бұл тіркелгі деректерін дерекқорға кіру үшін қолданасыз.
  7. Сол жақ мәзірдің астындағы «Мәліметтер қорына» өтіңіз.
  8. Бұл сіздің мәліметтер базаңыз. Ол қазір бос. Толтырылған кезде ол JSON форматында болады. URL бұрын көрген URL мекенжайымен бірдей болуы керек.

Twilio әзірлеушілерге өз клиенттеріне хабарлама жіберуге мүмкіндік береді. Біз оны қозғалысты анықтаған кезде телефонға SMS жіберу үшін қолданамыз. Twilio сізге SMS жіберу үшін телефон нөмірін береді. Twilio орнату үшін:

  1. Twilio сайтында ақысыз есептік жазбаға тіркеліңіз
  2. Есептік жазбаңыздың ID және authToken көшірмесін жасаңыз
  3. «Сынақ шектеулері» түймесін басып, «бірінші Twilio телефон нөмірін алуды» таңдаңыз.
  4. Жаңа телефон нөміріңізді көшіріңіз

2 -қадам: Писіңізді орнатыңыз

Писіңізді орнатыңыз
Писіңізді орнатыңыз
Писіңізді орнатыңыз
Писіңізді орнатыңыз

Pis бағдарламалауды бастамас бұрын, біз кейбір параметрлерді орнатуымыз керек. Pis үшін құпия сөзбен кіргеніңізге көз жеткізіңіз. Алдымен біз SenseHat тақталарын Pis -ке физикалық түрде қосамыз. Әрі қарай, біз қажетті SenseHat, Twilio және Pyrebase кітапханаларын орнатамыз. Firebase нақты уақыттағы мәліметтер базасы мобильді құрылғыларға немесе веб -сайттарға арналған. Дегенмен, біз бұлтты дерекқорды Rest API арқылы Pyrebase сияқты көмекші кітапханамен оқи және жаза аламыз.

SenseHat қосылу SenseHats сіздің Pis -ке қосылғанын тексеріңіз. Егер сізде ерекше жағдай болса, SenseHat қосылмас бұрын Pi жою қажет болуы мүмкін.

Кітапханаларды орнату Барлық кітапхананы орнату Терминалда орындалады

  • Егер сізде әлі жоқ болса, Pis жүктеңіз.
  • Жүктеу кезінде сіз SenseHat -те осы түсті жарық диодты кемпірқосақты аласыз! (суретті қараңыз)
  • Терминалға өтіп, жаңарту/дистрибуциялаңыз, теріңіз:

    • sudo apt-get жаңартуы
    • sudo apt-get dist-upgrade
  • Жаңартуларды орындағаннан кейін SenseHat кітапханаларын орнату үшін келесіні теріңіз:

    sudo apt-get install sense-hat

  • Pyrebase орнату үшін мынаны теріңіз:

    sudo pip pyrebase орнатыңыз

  • Соңында Twilio орнатыңыз

    sudo pip twilio орнатыңыз

3 -қадам: Pi1 үшін Python сценарийі

Жоғарыда айтқанымыздай, Pi1 қозғалысты анықтау үшін қолданылатын Pi болады. Қозғалысты анықтау үшін SenseHat акселерометрінің мәндері қолданылады. Осылайша, Pi1 коды акселерометрдің g күш мәндеріне қол жеткізу және Firebase мәліметтер базасына анықталған қозғалыстарды тіркеу айналасында болады. Міне, процестің ағымына шолу:

  • Егер Pi1 қозғалысты анықтаса, ол Firebase DB -дегі «ескертулер» баласына жазба қосады.
  • Pi1 сонымен қатар «notifypi2» баласын қозғалысқа қатысты хабарлама хабарламасымен жаңартады.
  • Pi2, содан кейін «notifypi2» оқылады және оның жарықдиодты матрицалық дисплейінде хабарламаны көрсетеді.

Мен сізге ұстану үшін Pi1 Python сценарийін қостым. Сценарийдегі түсініктемелер кодтың не істейтінін түсіндіреді.

Pi1 сценарийі үшін қосымша ескертулер мен түсініктер

  • Firebase және Twilio орнату үшін. Алдыңғы қадамдардан көшірілген сәйкес API кілттерін, идентификаторларды, құпия сөздерді және т.
  • Firebase аутентификациясына қатысты, қосымша қауіпсіздікті қамтамасыз ету үшін сіз осы тіркелгі деректерін қатаң кодтаудың орнына пайдаланушыдан кіруді сұрай аласыз. Біз дерекқордан жазған немесе оқыған сайын, біз қосуымыз керек

    пайдаланушы ['idtoken'] -мен

    алу (), басу (), орнату () әдістері.

  • CPU температурасы қажет, сондықтан Pi автокөлікте немесе жабық ортада қызып кетсе, біз оған араласамыз.
  • Біз сондай -ақ G күштерінің абсолюттік мәнін аламыз, өйткені теріс мәндерді білудің қажеті жоқ. Біз тек G күштері бар -жоғын білуіміз керек.
  • If операторы акселерометрдің мәндерін тексереді. Егер G күштері кез келген бағытта 1 -ден артық болса, Pi1 қозғалыс уақытын тіркейді және өзінің жеке LED дисплейінде леп белгісін көрсетеді. Ол сондай -ақ «notifypi2» баласын жаңартады. «Notifypi2» жаңартылған кезде, Pi2 оны оқиды және «!!!» көрсетеді. оның жарықдиодты дисплейінде пайдаланушыға ықтимал қозғалыс/кіру туралы хабарлау үшін. Pi1 сонымен қатар пайдаланушыға қозғалыс туралы SMS хабарлама жібереді.
  • Push () әдісін қолданған кезде Firebase жаңа жазбамен баланы автоматты түрде генерациялайды. Бұл қажет, сондықтан тіркелген қозғалыс деректері бірегей болады. set () әдісі екінші жағынан алдыңғы деректерді қайта жазады.
  • Дерекқорды тексеру үшін 10 секундтық цикл қажет, сондықтан сіздің Pi Firebase -тен бірнеше рет деректерді сұрамайды. Егер сіз Firebase -ті спаммен жібермесеңіз, Google сізді шамамен 10 минут ішінде шығарады.
  • Егер таңбалауыш жаңартылмаса, Firebase әр 60 минут сайын пайдаланушыны қуып жібереді. Менде жаңарту 1800 секундқа (30 минут) орнатылды.

4 -қадам: Pi2 үшін Python сценарийі

Pi2 үшін Python сценарийі
Pi2 үшін Python сценарийі

Егер сіз фотосуретке қарасаңыз, бұл ықтимал қозғалыс туралы хабарламаны көрсететін Pi2.

Pi2 сценарийі Pi1 -ге ұқсас, тек сценарий қозғалысты анықтамайды. Pi2 тек «notifypi2» еншілес хабарландыруларын көрсетеді немесе қалпына келтіреді. Бұл жалғыз айырмашылық болғандықтан, мен оны төменде түсіндіремін.

  • Әр 10 секунд сайын Pi2 көрсету үшін «notifypi2» тексереді. Егер хабарландыру туралы хабар болса, Pi2 оны пайдаланушы көруі үшін оны үздіксіз көрсетеді.
  • Тек джойстик түймесін басу арқылы пайдаланушының араласуы хабарлама дерекқор жағында жойылады және қалпына келтіріледі.

5 -қадам: Pis -ті тексеріңіз

Image
Image
Pis тестілеу
Pis тестілеу

Pis тестілеу уақыты.

  • Сәйкес Pis сценарийлерін іске қосыңыз.
  • Firebase жүйесіне кіріп, жобалар дерекқоры бөліміне өтіңіз.
  • Pi1 сілкіңіз, сіз Pi1 LED дисплейінде қызыл леп белгісін көресіз. Сіз сондай -ақ SMS хабарламасын алуыңыз керек.
  • Дерекқорды тексеріңіз, ескерту жазбалары көрсетіле бастайды. «notifypi2» де жаңартылуы керек.
  • Pi2 -ге назар аударыңыз. Сіз сонымен қатар «!!!» айналдыруыңыз керек. Бұл хабарламаны өшіру үшін джойстикті басыңыз. «notifypi2» қалпына келтірілуі керек. Растау үшін Firebase тексеріңіз.
  • Егер сіз Pi1 -ді қозғалысқа тым сезімтал деп тапсаңыз, Pi1 сценарийіндегі табалдырықты 1G -ден үлкенге дейін арттырыңыз.

Егер бәрі ойдағыдай болса, сіздің сценарийлеріңіз бұзылмайды. Енді сізде жұмыс істейтін хабарландыру жүйесі бар. Pi1 қозғалыстарды немесе дірілді анықтағаннан кейін, сіз SMS хабарлама туралы хабарлама мен Pi2 -де визуалды жарықдиодты хабарлама аласыз.

6-қадам: R-PiAlerts IOS қосымшасын құру

R-PiAlerts IOS қосымшасын құру
R-PiAlerts IOS қосымшасын құру

IOS қосымшасын құрудың уақыты келді! Қолданба өте қарапайым болады. Онда LoginViewController мен ItemsTableViewController болады. ItemsTableViewController «ескертулер» еншілесінен ескерту хабарландыруларын көрсетеді. Қолданбадан дерекқор жазбаларын жоюға болады. Бас ауруын азайту үшін, егер сіз Firebase -ге арналған онлайн оқулықтарды қарауды жоспарлап отырсаңыз, 2016 жылдың наурыз айынан кейінгі оқулықтарды іздеңіз, себебі өткен жылы сол кезде үлкен өзгерістер болды. 2016 жылдың наурызына дейін кез келген нәрсе мұра болады. Сізді жылдам файлдар қызықтырады, кодтағы түсініктемелерді қараңыз. Егер сіз дерекқорды оқитын Firebase қосымшасын құру туралы егжей -тегжейлі оқулық алғыңыз келсе, Рэй Вундерлихтің оқулығын қараңыз.

IOS жобасына шолу жасаңыз

  • Xcode -де бірыңғай көрінетін iOS жобасын жасаңыз.
  • Бума идентификаторын көшіріңіз
  • Веб -сайттағы Firebase жобасына өтіп, бума идентификаторы бар info.plist файлын жасаңыз.
  • GoogleService-info.plist файлын жобаңызға қосыңыз. Бұл info.plist тек сіз жасаған Firebase жобасымен жұмыс істейді.
  • Xcode -ны жабыңыз және Firebase -ді Cocoapods арқылы орнатыңыз. Auth және Database орнатылғанына көз жеткізіңіз.
  • Xcode қайта іске қосыңыз, содан кейін Firebase үшін AppDelegate.swift конфигурациялаңыз. Ол тек 2 жол кодын алады.

    Firebase импорттау а

    FIRApp.configure (). Қосымша, Firebase -те тек 1 жол кодын алатын тұрақтылық мүмкіндігі бар

    FIRDatabase.database (). PersenceEnabled = true

  • Толық орнату қадамдарын Firebase веб -сайтынан табуға болады

Қолданба Firebase мәліметтер базасымен қалай әрекеттеседі:

  • Қолданба пайдаланушының түпнұсқалығын растауы керек.
  • Аутентификациядан кейін қолданба Firebase мәліметтер базасының суретін алады және оны «Элемент» нысаны ретінде сақтайды.
  • Бұл нысан массивті толтырады. Бұл массив кесте көрінісін толтыру үшін қолданылады.
  • Бақылаушы Firebase мәліметтер базасындағы өзгерістерді қадағалап, суретті жасайды.
  • Өзгерістер анықталғаннан кейін массив жаңа суреттен қосылады.
  • Содан кейін өзгерістерді көрсету үшін кесте көрінісі қайта жүктеледі.

Қолданбаны құру туралы жалпы түсінік

  • Қолданбаның Xcode интерфейс құрастырушысында қалай салынғанын суретке қараңыз.
  • Интерфейс құрастырушыда ViewController жасаңыз және реттелетін сыныпты LoginViewController.swift -ке көрсетіңіз.
  • Электрондық пошта мен құпия сөз үшін мәтіндік өрістерді қосыңыз. Құпия сөз өрісі үшін «Қауіпсіз мәтін енгізу» қосуды ұмытпаңыз. Кіру түймесін қосыңыз.
  • Мәтін өрістерін және түймені LoginViewController.swift -ке байланыстырыңыз. LoginViewController.swift аутентификациямен айналысады.
  • Интерфейс құрастырушысына навигациялық контроллерді қосыңыз. LoginViewController -ден Навигациялық контроллерге сегментті жасаңыз. Сегу идентификаторын беріңіз.
  • ItemsTableViewController.swift көрсетуге навигациялық контроллермен бірге келген жаңа кесте көрінісінің реттелетін класын орнатыңыз. Менде ItemsTableViewController -де 2 түйме бар: Шығу және Қосу түймесі. Түймелерді ItemsTableViewController.swift -ке байланыстырыңыз.
  • LoginViewController.swift коды туралы. Пайдаланушы кіру деректерін енгізеді, ал Firebase пайдаланушыны қайтарады. Егер пайдаланушы қатысса, ол идентификатормен сегментті орындайды. (кодты қараңыз)
  • Item.swift класын қосыңыз (қоса берілген кодты қараңыз)
  • ItemsTableViewController коды бойынша бұл кестені қараудың өте стандартты коды. Item объектісі ретінде фотосурет ретінде сақталған дерекқордағы өзгерістерді бақылайтын бақылаушы болады. Содан кейін Item нысаны кесте көрінісін толтыру үшін массивті қосады. Қосу түймесі Firebase мәліметтер базасына Pi1 оқуға және көрсетуге арналған жазбаны орнатады. Күлкі үшін мен кодты қостым (қоса берілген кодты қараңыз)

7 -қадам: Қолданбаны тексеріңіз

Қолданбаны тексеріңіз
Қолданбаны тексеріңіз
Қолданбаны тексеріңіз
Қолданбаны тексеріңіз
Қолданбаны тексеріңіз
Қолданбаны тексеріңіз

Қолданбаны іске қосыңыз

  • Жүйеге кіріңіз және Pi1 сілкіңіз. Сіз жаңа ескерту хабарландыруларын көруді бастауыңыз керек.
  • Қосу түймесін түртіңіз және Pi1 сіздің хабарламаңызды көрсететінін көріңіз.
  • Солға сырғытыңыз, «Ескертулер» жазбалары жойылатынын қараңыз.
  • Біртіндеп тым көп хабарландырулар түсуде ме? Pi1 сценарийінде акселерометр табалдырығын реттеңіз немесе ұйқы уақытын көбейтіңіз.

8 -қадам: Қорытынды

Қорытынды
Қорытынды
Қорытынды
Қорытынды

Тамаша! Енді бізде қозғалысты анықтай алатын және сізге қозғалыстар туралы хабарлама жіберетін Pis бар. Оның үстіне, сіз өзіңіздің ескерту хабарлар журналын iOS құрылғысымен басқара аласыз! Pis қолдану уақыты. Pi1 -ді есіктің жанына және Pi2 -ді жұмыс аймағыңызға қойыңыз. Келесіде біреу кірсе, сіз жағдайды тексере аласыз! Немесе одан да жақсы, аккумуляторы бар көлігіңізде Pi -де жасырынып көріңіз. Есіктерді бірнеше рет қағыңыз, не болатынын қараңыз!

Бұл Raspberry Pi мен Firebase көмегімен не істеуге болатыны туралы мүмкіндіктердің бастамасы. SenseHat сонымен қатар экологиялық сенсорларды, гиро мен компасты қамтиды. Сіз Pis -ті қоршаған ортаға белгілі бір өзгерістерді тіркеу үшін орната аласыз. Ойынды күшейткіңіз келе ме? Pi сіздің қозғалыстарыңызды анықтаған кезде камераны қолданып суретке түсіріңіз және фотосуреттерде Pi мәтіні болсын. Беттерді тану үшін компьютердің көру алгоритмін қолдануға тырысыңыз. егер бұл сіз білетін адамның жүзі болса, сізге хабарлауға болады! Масайрау!

Ұсынылған: