Мазмуну:

R-PiAlerts: Raspberry Pis менен WiFi негизделген коопсуздук тутумун куруңуз: 8 кадам (сүрөттөр менен)
R-PiAlerts: Raspberry Pis менен WiFi негизделген коопсуздук тутумун куруңуз: 8 кадам (сүрөттөр менен)

Video: R-PiAlerts: Raspberry Pis менен WiFi негизделген коопсуздук тутумун куруңуз: 8 кадам (сүрөттөр менен)

Video: R-PiAlerts: Raspberry Pis менен WiFi негизделген коопсуздук тутумун куруңуз: 8 кадам (сүрөттөр менен)
Video: First-class experience on a Korean bullet train | KTX Seoul - Daejeon 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's Cloud тегерегинде курулган коопсуздук тутуму. Эгерде кыймыл аныкталса, система колдонуучуга потенциалдуу кирүү жөнүндө тексттик билдирүү жана жаркыраган LED дисплейи менен кабарлайт (үнсүз визуалдык сигнал). Колдонуучу билдирүү алгандан кийин, ал иликтей алат. Бардык аныкталган кыймыл 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дин LED дисплейи билдирүүнү үзгүлтүксүз көрсөтөт
    • Колдонуучу Pi2 SenseHat баскычын басуу менен эскертмени тазалай алат. Бул ошондой эле маалымат базасындагы эскертме жазууну тазалайт.
  • IOS колдонмосу менен колдонуучу жасай алат

    • маалымат базасына кирүү; кыймыл журналын окуу жана жок кылуу
    • колдонуучу Pi1дин LED дисплейинде билдирүү көрсөтүү үчүн Pi1ди жөнөтө алат.

Практикалык колдонмолор

  1. Эгерде сиз көчөңүздү унааңызды WiFi тармагына койсоңуз. Батарея пакетин 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 китепканасы (акселерометрге жана LED дисплейине кирүү үчүн)
  • Twilio китепканасы (SMS жөнөтүү үчүн)
  • Python 3, акыркы Raspbian менен курулган
  • IDLE менен Raspbian
  • Mac'ыңыздагы Xcode8 жана Cocoapods
  • Үйрөнүүгө жана изилдөөгө даярдык

Side Note Бул бир гана Пи негизиндеги коопсуздук чечими эмес. Эгерде сизде кандайдыр бир идеялар, сунуштар болсо же жөн эле менин кодумду кайра өзгөрткүңүз келсе, астына комментарий калтырыңыз! =)

1 -кадам: Firebase жана Twilio эсептерин орнотуңуз

Firebase жана Twilio эсептерин орнотуу
Firebase жана Twilio эсептерин орнотуу
Firebase жана Twilio эсептерин орнотуу
Firebase жана Twilio эсептерин орнотуу

Биринчиден, биздин Pis менен алектене электе, Firebase жана Twilio орнотушубуз керек. Firebase кызмат катары Google'дун арткы бөлүгү. Firebase маалымат базасы, булут кабарлашуусу, аутентификация, сактоо ж. Firebase маалымат базаңызга окуу жана жазуу үчүн аутентификация талап кылынат. Firebase орнотуу үчүн:

  1. Акысыз Firebase эсебине катталыңыз
  2. Консолго өтүңүз. Жаңы долбоор түзүп, ага ат коюңуз.
  3. Сол менюнун астындагы "Обзорду" чыкылдатыңыз
  4. "Firebaseти веб -колдонмоңузга кошууну" чыкылдатыңыз, APIKey жана projectid (url эмес) көчүрүңүз. Долбоордун идентификатору маалымат базасы сыяктуу башка URL даректеринде жайгашкан:
  5. Сол менюнун астындагы "Аутентификация" дегенди басыңыз. "Кирүү ыкмасына" барып, "Электрондук почта/Сырсөздү" иштетүү
  6. "Колдонуучу" астында сиз тандаган электрондук почта/сырсөз менен жаңы колдонуучу эсебин түзүңүз. Бул ишеним грамотасын маалымат базасына кирүү үчүн колдоносуз.
  7. Сол меню астында "Маалыматтар базасына" өтүңүз
  8. Бул сиздин маалымат базаңыз. Ал азыр бош. Толтурулганда, ал JSON форматында болот. URL сиз мурда көргөн URL менен бирдей болушу керек.

Twilio иштеп чыгуучуларга кардарларына билдирүүлөрдү жөнөтүүгө мүмкүнчүлүк берет. Биз Pi кыймылын аныктаганда телефонуңузга SMS жөнөтүү үчүн колдонобуз. Twilio сизге SMS жөнөтүү үчүн телефон номерин берет. Twilio орнотуу үчүн:

  1. Twilio сайтында акысыз эсепке жазылыңыз
  2. Сиздин accountSID жана authToken көчүрүү
  3. "Сыноо чектөөлөрүн" чыкылдатып, "биринчи Twilio телефон номериңизди алыңыз" дегенди тандаңыз.
  4. Жаңы телефон номериңизди көчүрүңүз

2 -кадам: Pisти орнотуңуз

Сиздин Pis орнотуу
Сиздин Pis орнотуу
Сиздин Pis орнотуу
Сиздин Pis орнотуу

Pisти программалоону баштаардан мурун, биз бир аз орнотууну кылышыбыз керек. Сиздин Pis үчүн сырсөз менен кирүүңүздү текшериңиз. Алгач биз SenseHat такталарын физикалык жактан Pisке туташтырабыз. Андан кийин, биз керектүү SenseHat, Twilio жана Pyrebase китепканаларын орнотобуз. Firebase реалдуу убакыт маалымат базасы мобилдик түзмөктөр же вебсайттар үчүн иштелип чыккан. Бирок, булут маалымат базасын Rest API аркылуу Pyrebase сыяктуу жардамчы китепкана менен окуп, жаза алабыз.

SenseHatти туташтырыңыз SenseHats сиздин Pisке туташканын текшериңиз. Эгерде сизде адаттан тыш учур болсо, SenseHatти туташтыруудан мурун Pi'ни алып салуу керек болушу мүмкүн.

Китепканаларды орнотуу Бардык китепкана орнотуулары Терминалда жүргүзүлөт

  • Эгерде сизде али жок болсо, Pisти жүктөңүз.
  • Жүктөө учурунда сиз SenseHatке түстүү LED асан -үсөн аласыз! (сүрөттү караңыз)
  • Терминалга барыңыз жана жаңыртуу/дист-жаңыртууну териңиз:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • Жаңыртуу бүткөндөн кийин, SenseHat китепканаларын орнотуу үчүн төмөнкүлөрдү териңиз:

    Sudo apt-get орнотуу сезим-шляпа

  • Pyrebase орнотуу үчүн, териңиз:

    sudo pip pyrebase орнотуу

  • Акыр -аягы, Twilio орнотуу

    sudo pip twilio орнотуу

3 -кадам: Pi1 үчүн Python Script

Жогоруда айтылгандай, Pi1 кыймылды аныктоо үчүн колдонула турган Pi болот. SenseHat акселерометринин мааниси кыймылды аныктоо үчүн колдонулат. Ошентип, Pi1 коду акселерометрдин күчүнүн маанилерине жетүү жана Firebase маалымат базасына аныкталган кыймылдарды каттоо боюнча болот. Бул жерде процесстин агымы жөнүндө жалпы маалымат:

  • Pi1 кыймылды аныктаса, Firebase DBдеги "эскертүүлөр" баласына жазуу кошот.
  • Pi1 ошондой эле "notifypi2" баласын кыймылга байланыштуу билдирүү менен жаңыртат.
  • Pi2, андан кийин "notifypi2" окуйт жана анын LED матрицалык дисплейинде билдирүүнү көрсөтөт.

Мен сиз ээрчишиңиз үчүн Pi1 Python скриптин коштум. Сценарийдеги комментарийлер код эмне кылып жатканын түшүндүрөт.

Pi1 скрипти үчүн кошумча эскертүүлөр жана түшүнүктөр

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

    колдонуучу ['idtoken'] менен

    алуу (), түртүү (), коюу () ыкмалар.

  • CPU температурасы керек, ошондуктан Pi машинада же жабык чөйрөдө ысып кетсе кийлигише алабыз.
  • Биз ошондой эле G күчтөрүнүн абсолюттук маанисин алабыз, анткени терс баалуулуктарды билүүнүн кажети жок. Биз G күчтөрү бар -жогун билишибиз керек.
  • If оператору акселерометрдин маанилерин текшерет. Эгерде G күчтөрү кандайдыр бир багытта 1ден чоң болсо, Pi1 кыймылдын убактысын жазат жана өзүнүн LED дисплейинде илеп белгисин көрсөтөт. Ал ошондой эле "notifypi2" баласын жаңыртат. "Notifypi2" жаңыртылганда, Pi2 аны окуп, "!!!" көрсөтөт. анын LED дисплейинде колдонуучуга мүмкүн болгон кыймыл/бузулуу жөнүндө кабарлоо. Pi1 ошондой эле колдонуучуга SMS жөнүндө билдирүү жөнөтөт.
  • Push () ыкмасын колдонуп жатканда, Firebase жаңы жазуусу бар баланы автогенер кылат. Бул керек, андыктан кыймылдын маалыматтары уникалдуу болот. экинчи жагынан set () ыкмасы мурунку маалыматтарды кайра жазат.
  • Берилиштер базасын текшерүү үчүн 10 секунддук цикл керек, ошондуктан сиздин Pi Firebaseден бир нече жолу маалымат сурабайт. Эгер сиз Firebase -ды үзгүлтүксүз спам кылсаңыз, Google сизди 10 мүнөттөн кийин чыгарат.
  • Токен жаңыртылбаса, Firebase колдонуучуну ар 60 мүнөт сайын кууп чыгат. Мен жаңыртууну 1800 секундга (30 мүнөт) койдум.

4 -кадам: Pi2 үчүн Python Script

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де визуалдык LED эскертмесин аласыз.

6-кадам: R-PiAlerts IOS тиркемесин куруу

R-PiAlerts IOS колдонмосун куруу
R-PiAlerts IOS колдонмосун куруу

IOS тиркемесин курууга убакыт келди! App абдан жөнөкөй болот. Анда LoginViewController жана ItemsTableViewController болот. ItemsTableViewController "эскертүүлөр" баласынан эскертүү билдирмелерин көрсөтөт. Ошондой эле, колдонмодон маалымат базасынын жазууларын жок кыла аласыз. Башыңыздын оорушун куткаруу үчүн, эгер сиз Firebase үчүн онлайн сабактарын кароону пландап жатсаңыз, 2016 -жылдын март айынан кийинки окуу куралдарын издеңиз, анткени өткөн жылы ошол убакта чоң өзгөрүүлөр болгон. 2016 -жылдын мартына чейин бардык нерсе мураска калат. Мени тез файлдар кызыктырат, коддогу комментарийлерди карап көрүңүз. Эгерде сиз маалымат базасын окуй турган Firebase тиркемесин кантип курууну үйрөткүңүз келсе, Ray Wunderlichтин окуу куралын караңыз.

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 маалымат базасынын сүрөтүн алат жана аны "Item" объектиси катары сактайт.
  • Бул объект массивди толтурат. Бул массив стол көрүнүшүн толтуруу үчүн колдонулат.
  • Байкоочу Firebase маалымат базасынын өзгөрүшүнө көз салып, сүрөттү түзөт.
  • Өзгөртүүлөр аныкталгандан кийин, массив жаңы сүрөткө кошулат.
  • Tableview анда өзгөртүүлөрдү көрсөтүү үчүн кайра жүктөлөт.

Колдонмону кантип куруунун жалпы схемасы

  • Колдонмонун 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ди жумуш аянтыңыздын айланасына коюңуз. Кийинки жолу кимдир бирөө келгенде, абалды текшере аласыз! Же андан да жакшысы, батареяңыз менен машинаңызда Пиде жашынууга аракет кылыңыз. Эшиктерди бир нече жолу тарс эттирип көрүңүз, эмне болот!

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

Сунушталууда: