Мазмуну:

NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер: 4 кадам (сүрөттөр менен)
NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер: 4 кадам (сүрөттөр менен)

Video: NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер: 4 кадам (сүрөттөр менен)

Video: NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер: 4 кадам (сүрөттөр менен)
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Ноябрь
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер
NodeMCU (Arduino), Google Firebase жана Laravel колдонулган реалдуу убакыт окуялары жөнүндө билдирмелер

Сиздин веб -сайтыңызда кандайдыр бир аракет болгондо, бирок электрондук почта туура келбегенде кабарланууну каалаган белеңиз? Соода кылган сайын үн же коңгуроону уккуңуз келеби? Же үйдөгү өзгөчө кырдаалдан улам дароо көңүл бурушуңуз керекпи?

Бул түзмөк сизге каалаган нерсеңиз жөнүндө реалдуу убакытта эскерте алат.

1 -кадам: Районду өткөрүңүз

Circuit Up
Circuit Up
Circuit Up
Circuit Up

Мен курган түзмөк NodeMCU таксасынан турат, мага веб -сайтта жасалган сатуулар жөнүндө эскертүүчү. Микроконтроллер Arduino программасы менен программаланган жана иштөөчү бөлүгү каалаган веб, iOS же Android тиркемеси болушу мүмкүн. Мен эки жөнөкөй веб тиркемени түздүм, бири Ларавелде, экинчиси жөнөкөй HTML жана JavaScript үчүн.

NodeMCU тактасы казыктарда 12мА токтун айланасында коопсуз иштей алгандыктан, ызылдак NPN транзистору аркылуу туташат. Мен 2N2222ди колдондум, анткени менде алардын көбү жатат, бирок мен башка NPN транзисторлору менен принцип бирдей болоруна ишенем.

Тизмеге зым салуу үчүн, транзистордун коллекторун тактадагы Вин пинине туташтырыңыз. Будильник 5Вде иштейт жана биз аппаратты USBден кубаттай тургандыктан, бул пин бизге борттогу 3.3V жөндөгүчүнүн алдында чыңалууну берет.

Андан кийин транзистордун эмитентиндеги сигналдын оң жагын жана ызылчактын терс пинин борттогу жерге туташтыргычтардын бирине туташтырыңыз. Мен 2 -пин колдондум, бирок сиз аны 9, 25 же 29 -казыктарга туташтырсаңыз болот.

Транзистордун негизи Arduino программалык камсыздоосунда GPIO 4 менен байланышкан D2 пинге туташкан. Бул орнотуу менен, транзистор натыйжалуу ар бир окуя боюнча коңгуроону күйгүзүүчү катары иштейт. Зумердин ордуна, сиз релени туташтырсаңыз болот, эгерде кандайдыр бир сигнал берүүчү түзүлүштү жасап жатсаңыз, лампочкалар, машиналар же сирена сыяктуу каалаган электр шаймандарын айдай аласыз.

2 -кадам: Желе колдонмолорун даярдоо

Желе колдонмолорун даярдаңыз
Желе колдонмолорун даярдаңыз
Желе колдонмолорун даярдаңыз
Желе колдонмолорун даярдаңыз
Желе колдонмолорун даярдаңыз
Желе колдонмолорун даярдаңыз

Түзмөктүн иштөөчү жана реалдуу убакыт бөлүгүндө Google Firebase Realtime Database колдонобуз. Бул Google тарабынан жасалган кереметтүү NoSQL булут маалымат базасы, ал колдонулуп жаткан платформалардын ортосунда реалдуу убакытта маалыматтарды синхрондоштурууну камсыз кылат.

Адегенде өзүңүз тандаган ат менен долбоор түзүңүз. Түзүлгөндөн кийин, "эсептөө" деп аталган бир түйүндү түзүңүз жана аны 0 болсо мааниси менен баштаңыз. Бул биздин келечекте ээрчигибиз келген саныбыз болот.

Laravel тиркемеси Kreait компаниясынын "firebase-php" пакетин колдонот жана ал төмөндө шилтемеленген. Топтомду "композитор kreait/firebase-php талап кылат" иштетүү менен орнотуңуз. Орнотуу аяктагандан кийин, биз иш -аракет боло турган контроллерди түзүшүбүз керек. Мен методду "жаңыртуу" деп атадым жана аны POST акциясында маршруттарга туташтырдым.

Firebase нускасын алуу үчүн сизге Firebase консолунан жүктөө керек болгон json файлы керек. Бул файлды Laravel долбооруңуздун тамырына коюп, firebase.json деп атаңыз. Firebase нускасын алууда, withCredentials ыкмасын колдонуу менен бул файлдын жолун беришибиз керек.

Firebase инстанциясын алгандан кийин, биз маалымат базасына жана биз мурда түзгөн түйүнгө шилтеме алышыбыз керек. Ар бир иш -аракетте, биз түйүндүн учурдагы маанисин алабыз, аны бир көбөйтүп, эгерде маалымат базасына кайтсак сактап калабыз. Бул биз кабарлоого тийиш болгон окуяларыбызды көзөмөлдөп турат.

Ошол эле HTML жана JavaScript менен, Firebase китепканасын колдонуу менен жетишүүгө болот. Муну менен биз адегенде конфигурация массивин Firebase консолунан тиешелүү жөндөөлөр менен камсыздап, колдонмону баштообуз керек. Башталгандан кийин, биз окуялардын санын сактай турган түйүнгө шилтеме алабыз жана кандайдыр бир маанидеги өзгөрүүлөрдү алуу үчүн угуучуну тиркейбиз.

Кошумча катары, форманы Ларавел мисалында тапшыруунун ордуна, бизде азыр JavaScript функциясы бар, ал баскычты чыкылдатып, эсепти жаңыртып, жаңыртылган маанини маалымат базасына кайра жазат.

3 -кадам: NodeMCU тактасын программалоо

NodeMCU башкармалыгын программалаңыз
NodeMCU башкармалыгын программалаңыз
NodeMCU башкармалыгынын программасын
NodeMCU башкармалыгынын программасын
NodeMCU башкармалыгын программалаңыз
NodeMCU башкармалыгын программалаңыз

NodeMCUну программалоо үчүн мен Arduino программасын колдондум жана ага тактаны орноткондон кийин, программаны жүктөө үчүн туура версияны жана портту тандап алдым. Mine 1.0 версиясы, андыктан улантуудан мурун тактаңыз менен эки жолу текшериңиз.

Arduino кодунун биринчи бөлүгү, түзмөгүңүздө тууралашыңыз керек болгон бардык керектүү аныктамаларды орнотот. Биринчи мындай жөндөө WiFi жана анын сырсөзүнүн ssid, анда биз firebase url жана firebase db сырын орнотушубуз керек. Тилекке каршы, бул маалымат базасына туташуунун сунушталган жолу эмес, бирок азырынча китепкана аны колдоонун жалгыз жолу. Бул сырды Firebase консолундагы Долбоордун Орнотууларынан, кызмат эсептери менюсунан таба аласыз.

Кийинки аныктама - бул биз жаңыртууларды жана түзмөктүн идентификаторун текшере турган жол. Түзмөктүн идентификатору талап кылынат, андыктан бизде бир эле окуялар жөнүндө кабарлоо үчүн бир нече түзмөк бар болсо, кайсы иш -чара бизге кабар бергенин билишибиз керек жана ал жөнүндө жазуу керек. Акыркысы, биз коңгуроону туташтырган пинти орнотушубуз керек жана бул биздин учурда D2.

Орнотуу функциясы киргизилген pin жана D2 казыктарын чыгымдар катары аныктайт, эмне болуп жатканын билүү үчүн сериялык байланышты баштайт жана көрсөтүлгөн WiFi тармагына туташат. Байланыш орнотулгандан кийин, ал Firebase менен байланышты баштайт жана биз кабарлаган акыркы маанини алат. Андан кийин көрсөтүлгөн жолдогу өзгөрүүлөрдү уга баштайт.

Негизги циклде, түзмөктүн активдүү экенин айтуу үчүн, орнотулган LEDди 500 миллисекундка чейин өчүрүп -күйгүзүү функциясын чакыруу бар. Качан өзгөрүү аныкталганда жана биз жеткиликтүү функция менен окуй турган жеткиликтүү маалыматтар болгондо, түйүндүн жаңы мааниси окулуп жатат, айырма эсептелинет, анткени бул аралыкта бир нече окуялар болгон жана ар бир жолу бип чыгарылган. айырмасы жөнүндө.

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

Бип сигналдары чыгарылгандан кийин, көрсөтүлгөн аппараттын жаңы мааниси жаңыртылып, агым кайра башталат. Учурда arduino firebase китепканасында ачык маселе бар, биз кол менен баалуулукту сактагандан кийин агым автоматтык түрдө улана бербейт, ошондуктан аны кайра баштоо керек.

4 -кадам: Түзмөгүңүздөн ырахат алыңыз

Түзмөгүңүздөн ырахат алыңыз!
Түзмөгүңүздөн ырахат алыңыз!

Мен колдонгон коддун баары менин GitHub эсебимде жеткиликтүү, долбоордун схемасына шилтеме менен бирге.

Булак коду

Схемалык

Код ар кандай сценарийлерде жана окуяларда иштөө үчүн оңой эле кабыл алынышы мүмкүн жана аны менен ойноо сизге абдан кызыктуу болот деп ишенем.

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

Эгер сизге долбоор жакса, анда менин YouTube каналыма жазылыңыз:

Кодду татып көрүңүз

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