Turinys:
- 1 žingsnis: prijunkite grandinę
- 2 veiksmas: paruoškite žiniatinklio programas
- 3 veiksmas: užprogramuokite „NodeMCU Board“
- 4 žingsnis: mėgaukitės savo įrenginiu
Video: Pranešimai apie įvykius realiuoju laiku naudojant „NodeMCU“(„Arduino“), „Google Firebase“ir „Laravel“: 4 veiksmai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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ę
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
Į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“
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
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:
Grafiko realiuoju laiku brėžimas „Android“iš „Arduino“per HC-05: 3 veiksmai
Realaus laiko grafiko brėžimas „Android“iš „Arduino“per HC-05: Sveiki, čia yra pamoka, kaip realiuoju laiku nubrėžti reikšmių grafiką iš mikrovaldiklio, pvz., „Arduino“, į programą. Jis naudoja „Bluetooth“modulį, pvz., HC-05, kad veiktų kaip pranešimų siuntimo įrenginys duomenims perduoti ir priimti tarp
ESP01 „Moodlight“su „Firebase“realiuoju laiku + OTA: 7 žingsniai
ESP01 „Moodlight“su „Firebase“realiuoju laiku + OTA: palaiko R-G-B režimą ir išblukimo efektą. Taip pat palaikomas ryškumo valdymas. OTA atnaujinimo palaikymas
Kaip sukurti laikrodį realiuoju laiku naudojant „Arduino“ir TFT ekraną - „Arduino Mega RTC“su 3,5 colių TFT ekranu: 4 žingsniai
Kaip sukurti laikrodį realiuoju laiku naudojant „Arduino“ir TFT ekraną | „Arduino Mega RTC“su 3,5 colio TFT ekranu: apsilankykite mano „Youtube“kanale. Įvadas:- Šiame įraše aš padarysiu „Laikrodį realiuoju laiku“, naudodamas 3,5 colio TFT jutiklinį LCD ekraną, „Arduino Mega“2560 ir DS3231 RTC modulis…. Prieš pradėdami… patikrinkite vaizdo įrašą iš mano „YouTube“kanalo. Pastaba:- Jei naudojate „Arduin“
Kriptovaliutos žymeklis / „Youtube“abonentų skaitiklis realiuoju laiku: 6 žingsniai (su paveikslėliais)
Kriptovaliutos žymeklis / „Youtube“abonentų skaitiklis realiuoju laiku: Kompaktiškas LED ekranas, veikiantis kaip kriptovaliutos žymeklis ir dvigubai veikiantis kaip „YouTube“abonentų skaitiklis realiuoju laiku. Šiame projekte mes naudojame „Raspberry Pi Zero W“, kai kurias 3D spausdintas dalis ir keletą max7219 ekranų sukurti realaus laiko su
Pranešimai apie skalbimo mašiną naudojant MESH: 4 žingsniai (su paveikslėliais)
Pranešimai apie skalbimo mašiną naudojant MESH: Oi! Aš pamiršau apie skalbimo mašinoje esančius drabužius … Ar visada pamiršite pasiimti drabužius po skalbimo? Šis receptas atnaujins jūsų skalbimo mašiną, kad gautumėte pranešimus per „Gmail“arba IFTTT, kai jūsų drabužiai bus paruošti nuotraukoms