Përmbajtje:
- Hapi 1: Lidhni qarkun
- Hapi 2: Përgatitni Aplikacionet e Uebit
- Hapi 3: Programoni Bordin e NodeMCU
- Hapi 4: Shijoni pajisjen tuaj
Video: Njoftimet e ngjarjeve në kohë reale duke përdorur NodeMCU (Arduino), Google Firebase dhe Laravel: 4 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
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
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ë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
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
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:
Zgjidhësi i Rubikut të Rubikut në kohë reale me sy të lidhur duke përdorur Raspberry Pi dhe OpenCV: 4 hapa
Zgjidhësi i Rubikut të Rubikut me Sy të Shikuar në kohë Reale duke përdorur Raspberry Pi dhe OpenCV: Ky është versioni i dytë i mjetit kubik të Rubikut i bërë për zgjidhjen me sy të mbyllur. Versioni i parë u zhvillua nga javascript, ju mund ta shihni projektin RubiksCubeBlindfolded1 Ndryshe nga versioni i mëparshëm, ky version përdor bibliotekën OpenCV për të zbuluar ngjyrat dhe
Gjurmuesi i drejtpërdrejtë i Covid19 duke përdorur ESP8266 dhe OLED - Pulti në kohë reale Covid19: 4 hapa
Gjurmuesi i drejtpërdrejtë i Covid19 duke përdorur ESP8266 dhe OLED | Pulti në kohë reale Covid19: Vizitoni Uebfaqen Techtronic Harsh: http: //techtronicharsh.com Kudo ka një shpërthim të madh të Virusit të Ri Corona (COVID19). U bë e nevojshme të mbash një vëzhgim mbi skenarin aktual të COVID-19 në Botë. Pra, duke qenë në shtëpi, kjo ishte p
Roboti SCARA: Mësoni Rreth Kinematikës Foward dhe Inverse !!! (Plot Twist Mësoni si të bëni një ndërfaqe në kohë reale në ARDUINO duke përdorur përpunimin !!!!): 5 hapa (me fotografi)
Roboti SCARA: Mësoni Rreth Kinematikës Foward dhe Inverse !!! (Plot Twist Mësoni si të bëni një ndërfaqe në kohë reale në ARDUINO duke përdorur përpunimin !!!!): Një robot SCARA është një makinë shumë e popullarizuar në botën e industrisë. Emri qëndron për krahun robot të Asamblesë selektive të pajtueshme ose krahun robot të artikuluar me pajtueshmëri selektive. Në thelb është një robot i lirisë me tre shkallë, duke qenë dy shpërndarësit e parë
Si të bëni orë në kohë reale duke përdorur ekranin Arduino dhe TFT - Arduino Mega RTC me ekran TFT 3.5 inç: 4 hapa
Si të bëni orë në kohë reale duke përdorur ekranin Arduino dhe TFT | Arduino Mega RTC me ekran TFT 3.5 inç: Vizitoni kanalin tim në Youtube. Hyrje:- Në këtë postim do të bëj "Ora në kohë reale" duke përdorur LCD me prekje 3.5 inç TFT, Arduino Mega Moduli 2560 dhe DS3231 RTC…. Para fillimit… shikoni videon nga kanali im në YouTube..Shënim:- Nëse jeni duke përdorur Arduin
Lista e detyrave në kohë reale duke përdorur Google Firebase: 12 hapa
Lista e detyrave në kohë reale duke përdorur Google Firebase: Përshëndetje! Ne të gjithë përdorim listat e detyrave çdo ditë, qofshin ato online ose jashtë linje. Ndërsa listat jashtë linje janë të prirura për të humbur, dhe listat virtuale mund të jenë të gabuara, fshihen aksidentalisht, apo edhe të harrohen. Kështu që ne vendosëm të bëjmë një në Google Firebase,