Turinys:

Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“: 4 veiksmai (su paveikslėliais)
Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“: 4 veiksmai (su paveikslėliais)

Video: Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“: 4 veiksmai (su paveikslėliais)

Video: Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“: 4 veiksmai (su paveikslėliais)
Video: Kamera su baterijomis, realaus laiko vaizdas bei įrašų peržiūra. 2024, Birželis
Anonim
Image
Image
Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“
Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“

Ar kada nors norėjote gauti pranešimą, kai jūsų svetainėje atliekamas veiksmas, tačiau el. Paštas netinkamas? Ar norite išgirsti garsą ar skambėjimą kiekvieną kartą, kai parduodate? Arba reikia nedelsiant atkreipti jūsų dėmesį į avariją namuose?

Šis prietaisas gali jus įspėti realiu laiku apie viską, kas jums patinka.

1 žingsnis: prijunkite grandinę

Sujunkite grandinę
Sujunkite grandinę
Sujunkite grandinę
Sujunkite grandinę

Mano sukurtą įrenginį sudaro „NodeMCU“plokštė su garso signalu, įspėjančiu mane apie pardavimus, padarytus svetainėje. Mikrovaldiklis yra užprogramuotas naudojant „Arduino“programinę įrangą, o suveikimo dalis gali būti bet kuri žiniatinklio, „iOS“ar „Android“programa. Aš sukūriau dvi paprastas žiniatinklio programas, vieną „Laravel“, o kitą - paprastame HTML ir „JavaScript“.

Kadangi „NodeMCU“plokštė gali saugiai veikti iki maždaug 12 mA srovės ant kaiščių, garsinis signalas yra prijungtas per NPN tranzistorių. Aš naudoju 2N2222, nes daugelis jų yra aplink, bet esu tikras, kad principas bus tas pats su bet kuriuo kitu NPN tranzistoriumi.

Norėdami prijungti grandinę, prijunkite tranzistoriaus kolektorių prie plokštės Vin kaiščio. Garsinis signalas veikia esant 5 V įtampai, ir kadangi mes įjungsime įrenginį iš USB, šis kaištis suteiks mums įtampą prieš plokštės 3.3 V reguliatorių.

Tada prijunkite teigiamą garsinio signalo pusę prie tranzistoriaus emiterio ir neigiamą garsinio signalo kaištį prie bet kurios plokštės įžeminimo kaiščio. Aš naudoju 2 kaištį, bet taip pat galite jį prijungti prie 9, 25 arba 29 kaiščių.

Tranzistoriaus pagrindas yra prijungtas prie kaiščio D2, kuris atitinka „Arduino“programinės įrangos GPIO 4. Naudojant šią sąranką, tranzistorius veiksmingai veiks kaip jungiklis, įjungiantis garso signalą kiekvienu atveju. Vietoj garsinio signalo taip pat galite prijungti relę, kad galėtumėte valdyti bet kurį elektros prietaisą, pvz., Lemputes, mašinas ar sireną, jei kuriate signalizacijos įrenginį.

2 veiksmas: paruoškite žiniatinklio programas

Paruoškite žiniatinklio programas
Paruoškite žiniatinklio programas
Paruoškite žiniatinklio programas
Paruoškite žiniatinklio programas
Paruoškite žiniatinklio programas
Paruoškite žiniatinklio programas

Įjungimo ir realiojo laiko įrenginio daliai naudosime „Google“„Firebase“realaus laiko duomenų bazę. Tai nuostabi „Google“sukurta „NoSQL“debesų duomenų bazė, užtikrinanti duomenų sinchronizavimą realiuoju laiku tarp kiekvienos naudojamos platformos.

Pirmiausia sukurkite projektą pasirinktu pavadinimu. Sukūrę sukurkite vieną mazgą, vadinamą „count“, ir inicijuokite jį su reikšme, jei 0. Tai bus mūsų pradžios skaičius, kurio norime sekti ateityje.

„Laravel“programoje naudojamas „Firebase-php“paketas iš „Kreait“ir jis yra susietas žemiau. Įdiekite paketą paleisdami „composer need kreait/firebase-php“. Kai diegimas bus baigtas, turime sukurti valdiklį, kuriame veiksmas bus atliktas. Pavadinau metodą „atnaujinimas“ir prijungiau jį prie POST veiksmo maršrutų.

Norėdami gauti „Firebase“egzempliorių, jums reikia „json“failo, kurį turite atsisiųsti iš „Firebase“konsolės. Įdėkite šį failą į „Laravel“projekto šaknį ir pavadinkite jį firebase.json. Gaunant „Firebase“egzempliorių, turime pateikti šio failo kelią naudodami metodą „withCredentials“.

Gavę „Firebase“egzempliorių, turime gauti nuorodą į duomenų bazę ir mazgą, kurį sukūrėme anksčiau. Atlikdami kiekvieną veiksmą, gausime dabartinę mazgo vertę, padidinsime ją vienu ir išsaugosime, jei grįšime į duomenų bazę. Taip bus sekami mūsų įvykiai, apie kuriuos turime pranešti.

Tą patį galima pasiekti naudojant paprastą HTML ir „JavaScript“, naudojant pateiktą „Firebase“biblioteką. Pirmiausia turime pateikti konfigūracijos masyvui reikiamus „Firebase“konsolės nustatymus ir inicijuoti programą. Kai inicijuojame, gauname nuorodą į mazgą, kuriame saugome įvykių skaičių, ir pridedame klausytoją, kad gautume bet kokius vertės pokyčius.

Be to, vietoj to, kad pateiktume formą, kaip nurodyta „Laravel“pavyzdyje, dabar turime „JavaScript“funkciją, kuri iškviečiama paspaudus mygtuką, atnaujina skaičių ir įrašo atnaujintą vertę atgal į duomenų bazę.

3 veiksmas: užprogramuokite „NodeMCU Board“

Užprogramuokite „NodeMCU Board“
Užprogramuokite „NodeMCU Board“
Užprogramuokite „NodeMCU Board“
Užprogramuokite „NodeMCU Board“
Užprogramuokite „NodeMCU Board“
Užprogramuokite „NodeMCU Board“

Norėdami programuoti „NodeMCU“, naudoju „Arduino“programinę įrangą ir įdiegus į ją plokštę, pasirinkau tinkamą versiją ir prievadą, kad galėčiau įkelti programinę įrangą. Mano versija yra 1.0, todėl prieš tęsdami dar kartą patikrinkite savo lentą.

Pirmoje „Arduino“kodo dalyje nustatomos visos būtinos apibrėžtys, kurias turėsite koreguoti savo įrenginyje. Pirmasis toks nustatymas yra „WiFi“SSID ir jo slaptažodis, tada turime nustatyti „firebase“URL ir „firebase db“paslaptį. Deja, tai nėra rekomenduojamas prisijungimo prie duomenų bazės būdas, tačiau kol kas tai yra vienintelis būdas, kuriuo biblioteka palaiko. Šią paslaptį galite rasti „Firebase“konsolės meniu Projekto nustatymai, paslaugų paskyros.

Kitas apibrėžimas yra kelias, kurį tikrinsime, ar nėra atnaujinimų, ir įrenginio ID. Įrenginio ID reikalingas, todėl tuo atveju, jei turime kelis įrenginius, kurie praneša apie tuos pačius įvykius, turime žinoti, kuris įrenginys mums pranešė apie įvykį, ir išsaugoti tai. Paskutinis turime nustatyti kaištį, prie kurio prijungėme garso signalą, ir tai mūsų atveju yra D2.

Sąrankos funkcija apibrėžia įmontuotą LED kaištį ir D2 kaiščius kaip išėjimus, pradėkite nuoseklųjį ryšį, kad žinotumėte, kas vyksta, ir prisijungia prie nurodyto „WiFi“tinklo. Užmezgus ryšį, jis pradeda ryšį su „Firebase“ir gauna paskutinę vertę, apie kurią pranešėme. Tada jis pradeda klausytis nurodyto kelio pakeitimų.

Pagrindinėje grandinėje skambinama mirksėjimo funkcijai, kuri mirksi įmontuotą šviesos diodą 500 milisekundžių, kad galėtume pasakyti, kad įrenginys yra aktyvus. Kai aptinkamas pakeitimas ir yra turimų duomenų, kuriuos galime perskaityti naudodami turimą funkciją, skaitoma nauja mazgo vertė, apskaičiuojamas skirtumas, nes tuo metu galėjo įvykti keli įvykiai ir kiekvieną kartą pasigirsta pyptelėjimas nuo skirtumo.

Pavyzdžiui, jei skirtumas tarp paskutinės nurodytos vertės ir naujos vertės yra 4, pasigirs 4 pyptelėjimai, informuojantys, kad buvo atlikti 4 nauji pirkimai. Pyptelėjimo funkcija naudoja integruotą tono funkciją tam tikrą dažnį per garsinį signalą leisti tam tikrą laiką.

Pasigirdus pyptelėjimams, nauja reikšmė atnaujinama nurodytam įrenginiui ir srautas vėl pradedamas. Šiuo metu „arduino“„firebase“bibliotekoje yra neišspręsta problema, kad srautinis perdavimas nesibaigia automatiškai, kai rankiniu būdu išsaugome vertę, todėl turime ją paleisti iš naujo.

4 žingsnis: mėgaukitės savo įrenginiu

Mėgaukitės savo įrenginiu!
Mėgaukitės savo įrenginiu!

Visas mano naudojamas kodas yra mano „GitHub“paskyroje, susietoje žemiau, kartu su nuoroda į projekto schemą.

Pirminis kodas

Schema

Kodas gali būti lengvai pritaikytas daugeliui skirtingų scenarijų ir įvykių, ir aš tikiu, kad jums bus labai smagu žaisti su juo.

Man tai buvo tikrai įdomus kūrinys, ir aš sugebėjau daug ko išmokti, ir dėl to esu tikrai laimingas. Tikiuosi, kad tai gali padėti jums įgyvendinti jūsų projektą, bet jei pastebėsite, kad esate įstrigę kurioje nors jo dalyje arba jums reikia daugiau paaiškinimų, praneškite man komentaruose ir aš padarysiu viską, kad galėčiau jums padėti.

Jei jums patiko projektas, užsiprenumeruokite mano „YouTube“kanalą:

Paragaukite kodo

Rekomenduojamas: