Përmbajtje:

Njoftimet e ngjarjeve në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel: 4 hapa (me fotografi)
Njoftimet e ngjarjeve në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel: 4 hapa (me fotografi)

Video: Njoftimet e ngjarjeve në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel: 4 hapa (me fotografi)

Video: Njoftimet e ngjarjeve në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel: 4 hapa (me fotografi)
Video: Lindin 2 foshnjat e para të ngjizura duke përdorur një robot 2024, Nëntor
Anonim
Image
Image
Njoftimet për ngjarjet në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel
Njoftimet për ngjarjet në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel

A keni dashur ndonjëherë të njoftoheni kur bëhet një veprim në faqen tuaj të internetit, por emaili nuk është i përshtatshëm? A doni të dëgjoni një tingull ose një zile çdo herë që bëni një shitje? Apo ka nevojë për vëmendjen tuaj të menjëhershme për shkak të një emergjence në shtëpi?

Kjo pajisje mund t'ju lajmërojë në kohë reale për çdo gjë që ju pëlqen.

Hapi 1: Lidhni qarkun

Wire Up the Circuit
Wire Up the Circuit
Wire Up the Circuit
Wire Up the Circuit

Pajisja që kam ndërtuar përbëhet nga një tabelë NodeMCU me një zile për të më paralajmëruar për shitjet e bëra në një faqe në internet. Mikrokontrolluesi programohet duke përdorur programin Arduino dhe pjesa nxitëse mund të jetë çdo aplikacion uebi, iOS ose Android. Unë kam krijuar dy aplikacione të thjeshta në internet, një në Laravel dhe tjetra në HTML të thjeshtë dhe JavaScript për shembull.

Meqenëse bordi NodeMCU mund të funksionojë në mënyrë të sigurt deri në rreth 12mA rrymë në kunjat, zileja është e lidhur përmes një transistori NPN. Unë kam përdorur 2N2222 sepse kam shumë prej tyre të vendosura përreth, por jam i sigurt se parimi do të jetë i njëjtë me çdo transistor tjetër NPN.

Për të lidhur qarkun, lidhni kolektorin e tranzistorit me kunjin Vin në tabelë. Zilja funksionon në 5V dhe meqenëse ne do ta furnizojmë pajisjen nga USB, ky pin do të na japë tensionin para rregullatorit 3.3V në tabelë.

Tjetra lidhni anën pozitive të ziles në emetuesin e tranzistorit, dhe kunjin negativ të zilerit me ndonjë nga kunjat e tokëzimit në tabelë. Unë kam përdorur pin 2, por ju gjithashtu mund ta lidhni atë në kunjat 9, 25 ose 29.

Baza e tranzistorit është e lidhur me pin D2 e cila lidhet me GPIO 4 në programin Arduino. Me këtë konfigurim, transistori do të funksionojë në mënyrë efektive si një ndërprerës që ndez zilen në çdo ngjarje. Në vend të ziles, mund të lidhni një stafetë në të njëjtën mënyrë për të qenë në gjendje të drejtoni çdo pajisje elektrike si llamba, makina ose sirena nëse jeni duke bërë ndonjë pajisje alarmi.

Hapi 2: Përgatitni Aplikacionet e Uebit

Përgatitni aplikacionet në internet
Përgatitni aplikacionet në internet
Përgatitni aplikacionet në internet
Përgatitni aplikacionet në internet
Përgatitni aplikacionet në internet
Përgatitni aplikacionet në internet

Për aktivizimin dhe pjesën në kohë reale të pajisjes, ne do të përdorim bazën e të dhënave në kohë reale të Firebase të Google. Kjo është një bazë e mrekullueshme e të dhënave NoSQL cloud e krijuar nga Google që siguron sinkronizimin e të dhënave në kohë reale midis secilës prej platformave që po përdoret.

Së pari krijoni projektin me një emër të zgjedhur nga ju. Pasi të krijohet, krijoni një nyje të vetme të quajtur "numërim" dhe inicojeni atë me vlerën nëse 0. Ky do të jetë numërimi ynë fillestar që duam të ndjekim në të ardhmen.

Aplikacioni Laravel përdor paketën "firebase-php" nga Kreait, dhe është e lidhur më poshtë. Instaloni paketën duke ekzekutuar "kompozitori kërkon kreait/firebase-php". Pasi të ketë përfunduar instalimi, ne duhet të krijojmë kontrolluesin ku do të ndodhë veprimi. Unë e quaj metodën "azhurnim" dhe e kam lidhur atë në rrugët në një veprim POST.

Për të marrë shembullin e Firebase, keni nevojë për një skedar json që duhet të shkarkoni nga tastiera juaj Firebase. Vendoseni këtë skedar në rrënjën e projektit tuaj Laravel dhe emërtojeni atë firebase.json. Kur marrim shembullin e firebase, ne duhet të sigurojmë rrugën për këtë skedar duke përdorur metodën withCredentials.

Pasi morëm shembullin e firebase, duhet të marrim referencën në bazën e të dhënave dhe nyjen që kemi krijuar më herët. Në secilin veprim, ne do të marrim vlerën aktuale të nyjës, do ta rrisim atë me një dhe do ta ruajmë nëse kthehemi në bazën e të dhënave. Kjo do të mbajë gjurmët e ngjarjeve tona për të cilat duhet të njoftojmë.

E njëjta gjë mund të arrihet me HTML të thjeshtë dhe JavaScript, duke përdorur bibliotekën e ofruar të bazës së zjarrit. Me të, së pari duhet të sigurojmë grupin e konfigurimit me cilësimet e duhura nga tastiera Firebase dhe të inicializojmë aplikacionin. Pasi të inicializohet, marrim një referencë për nyjen ku ruajmë numërimin e ngjarjeve dhe bashkojmë një dëgjues për të tërhequr çdo ndryshim të vlerës.

Për më tepër, në vend që të dorëzojmë formularin si në shembullin Laravel, ne tani kemi një funksion JavaScript që thirret në klikimin e butonit, azhurnon numërimin dhe shkruan vlerën e përditësuar përsëri në bazën e të dhënave.

Hapi 3: Programoni Bordin e NodeMCU

Programoni Bordin NodeMCU
Programoni Bordin NodeMCU
Programoni Bordin NodeMCU
Programoni Bordin NodeMCU
Programoni Bordin NodeMCU
Programoni Bordin NodeMCU

Për të programuar NodeMCU, unë kam përdorur softuerin Arduino dhe pasi instalova bordin në të, u sigurova të zgjedh versionin dhe portin e duhur, në mënyrë që të mund të ngarkoj softuerin. I imi është versioni 1.0 kështu që kontrolloni dy herë me tabelën tuaj para se të vazhdoni.

Pjesa e parë e kodit Arduino, vendos të gjitha përkufizimet e nevojshme që do t'ju duhet të rregulloni në pajisjen tuaj. Cilësimi i parë i tillë është ssid i WiFi dhe fjalëkalimi i tij, atëherë duhet të konfigurojmë url -në e bazës së zjarrit dhe sekretin e bazës së zjarrit db. Fatkeqësisht, kjo nuk është mënyra e rekomanduar për t'u lidhur me bazën e të dhënave, por tani për tani është mënyra e vetme që biblioteka e mbështet atë. Këtë sekret mund ta gjeni nën menunë e Projektit, llogaritë e shërbimit në tastierën e firebase.

Përkufizimi tjetër është rruga që ne do të kontrollojmë për përditësime dhe ID e pajisjes. ID -ja e pajisjes është e nevojshme kështu që në rast se kemi pajisje të shumta për të njoftuar për të njëjtat ngjarje, duhet të dimë se cila pajisje na ka njoftuar për ngjarjen dhe të mbajmë një regjistër për këtë. E fundit duhet të vendosim kunjin në të cilin kemi lidhur zilen dhe kjo është D2 në rastin tonë.

Funksioni i konfigurimit përcakton pinin e integruar led dhe kunjat D2 si dalje, filloni komunikimin serik për të ditur se çfarë po ndodh dhe lidhet me rrjetin WiFi të specifikuar. Pasi të krijohet lidhja, fillon komunikimin me Firebase dhe merr vlerën e fundit për të cilën raportuam. Pastaj fillon të dëgjojë për ndryshimet në rrugën e specifikuar.

Në lakin kryesor, ekziston një thirrje në funksionin e ndezjes që ndez dritën e integruar të dritës për 500 milisekonda në mënyrë që ne të jemi në gjendje të themi se pajisja është aktive. Kur zbulohet një ndryshim dhe ka të dhëna të disponueshme që mund të lexojmë me funksionin në dispozicion, vlera e re e nyjës po lexohet, ndryshimi llogaritet pasi mund të ketë pasur ngjarje të shumta ndërkohë dhe lëshohet një bip për çdo herë e diferencës.

Për shembull, nëse diferenca midis vlerës së fundit të raportuar dhe vlerës së re është 4, do të prodhohen 4 bip që do t'ju njoftojnë se janë bërë 4 blerje të reja. Funksioni i zhurmës përdor funksionin e tonit të integruar për të luajtur një frekuencë të caktuar përmes ziles për një periudhë të caktuar kohe.

Pasi të prodhohen bip, vlera e re azhurnohet për pajisjen e specifikuar dhe transmetimi rifillon përsëri. Aktualisht ekziston një çështje e hapur në bibliotekën arduino firebase që transmetimi nuk vazhdon automatikisht pasi të ruajmë manualisht një vlerë, kështu që duhet ta rifillojmë.

Hapi 4: Shijoni pajisjen tuaj

Shijoni pajisjen tuaj!
Shijoni pajisjen tuaj!

I gjithë kodi që kam përdorur është i disponueshëm në llogarinë time GitHub të lidhur më poshtë së bashku me lidhjen me skemën e projektit.

Kodi i burimit

Skematike

Kodi mund të miratohet lehtësisht për të punuar për shumë skenarë dhe ngjarje të ndryshme dhe jam i sigurt që do të argëtoheni shumë duke luajtur me të.

Për mua kjo ishte një ndërtim vërtet argëtues dhe arrita të mësoj shumë mbi të dhe për këtë jam vërtet i lumtur. Shpresoj se mund t'ju ndihmojë me projektin tuaj, por nëse e gjeni veten të mbërthyer me ndonjë pjesë të tij ose keni nevojë për sqarime të mëtejshme, atëherë ju lutem më tregoni në komente dhe do të bëj çmos për t'ju ndihmuar.

Nëse ju pëlqeu projekti atëherë regjistrohuni në kanalin tim në YouTube:

Shijoni Kodin

Recommended: