Tartalomjegyzék:

Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)
Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)

Videó: Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)

Videó: Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)
Videó: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Június
Anonim
Image
Image
Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával
Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával

Szeretett volna valaha értesítést kapni, ha a webhelyén valamilyen művelet történt, de az e -mail nem megfelelő? Hangot vagy csengőt szeretne hallani minden alkalommal, amikor eladást végez? Vagy szükség van azonnali figyelmedre egy otthoni vészhelyzet miatt?

Ez az eszköz valós időben figyelmeztethet bármire, ami tetszik.

Lépés: Csatlakoztassa az áramkört

Kösse be az áramkört
Kösse be az áramkört
Kösse be az áramkört
Kösse be az áramkört

Az általam készített eszköz egy NodeMCU táblából és egy zümmögőből áll, hogy figyelmeztessen a webhelyen történt eladásokra. A mikrokontroller az Arduino szoftverrel programozható, és a kiváltó rész lehet bármilyen webes, iOS vagy Android alkalmazás. Létrehoztam két egyszerű webes alkalmazást, az egyiket a Laravelben, a másikat egyszerű HTML -ben és JavaScriptben.

Mivel a NodeMCU kártya biztonságosan működhet körülbelül 12 mA áramerősségig a csapokon, a zümmögő NPN tranzisztoron keresztül csatlakozik. A 2N2222 -t használtam, mert sok közülük van, de biztos vagyok benne, hogy az elv ugyanaz lesz minden más NPN tranzisztornál.

Az áramkör bekötéséhez csatlakoztassa a tranzisztor kollektorát a táblán lévő Vin csaphoz. A zümmögő 5V -ról működik, és mivel az eszközt USB -ről tápláljuk, ez a tű adja meg a feszültséget a táblán lévő 3,3 V -os szabályozó előtt.

Ezután csatlakoztassa a zümmögő pozitív oldalát a tranzisztor kibocsátójához, és a zümmögő negatív csapját a tábla bármely földelőcsapjához. A 2 -es tűt használtam, de a 9 -es, 25 -ös vagy 29 -es tűkhöz is csatlakoztathatja.

A tranzisztor bázisa a D2 tűhöz van csatlakoztatva, amely megfelel az Arduino szoftver GPIO 4 -nek. Ezzel a beállítással a tranzisztor hatékonyan kapcsolóként fog működni, amely minden eseménynél bekapcsolja a zümmögőt. A hangjelző helyett ugyanúgy csatlakoztathat egy relét, hogy bármilyen hálózati készüléket, például izzókat, gépeket vagy szirénát vezessen, ha valamilyen riasztóeszközt készít.

2. lépés: Készítse elő a webes alkalmazásokat

Készítse elő a webes alkalmazásokat
Készítse elő a webes alkalmazásokat
Készítse elő a webes alkalmazásokat
Készítse elő a webes alkalmazásokat
Készítse elő a webes alkalmazásokat
Készítse elő a webes alkalmazásokat

Az eszköz kiváltó és valós idejű részéhez a Google Firebase valós idejű adatbázisát fogjuk használni. Ez a Google által készített csodálatos NoSQL felhő adatbázis, amely valós idejű adatszinkronizálást biztosít az egyes használt platformok között.

Először hozza létre a projektet egy választott névvel. Miután létrehozta, hozzon létre egyetlen „count” nevű csomópontot, és indítsa el a 0 értékkel. Ez lesz a kezdési számunk, amelyet a jövőben követni szeretnénk.

A Laravel alkalmazás a Kreait „firebase-php” csomagját használja, és az alábbi linken található. Telepítse a csomagot a „composer need kreait/firebase-php” futtatásával. A telepítés befejezése után létre kell hoznunk a vezérlőt, ahol a művelet megtörténik. A módszert „frissítésnek” neveztem el, és egy POST művelet útvonalaihoz kapcsoltam.

A Firebase példány lekéréséhez szüksége van egy json fájlra, amelyet le kell töltenie a Firebase konzolról. Helyezze ezt a fájlt a Laravel projekt gyökerébe, és nevezze el firebase.json névvel. A firebase példány lekérésekor meg kell adnunk a fájl elérési útját a withCredentials módszerrel.

Miután megkaptuk a firebase példányt, meg kell szereznünk a hivatkozást az adatbázisra és a korábban létrehozott csomópontra. Minden műveletnél lekérjük a csomópont aktuális értékét, növeljük eggyel, és ha visszamenünk az adatbázisba, elmentjük. Ezzel nyomon követhetjük eseményeinket, amelyekről értesítenünk kell.

Ugyanez érhető el egyszerű HTML és JavaScript használatával is, a mellékelt firebase könyvtár használatával. Ezzel először el kell látnunk a konfigurációs tömböt a Firebase konzol megfelelő beállításaival, és inicializálnunk kell az alkalmazást. Az inicializálás után kapunk egy hivatkozást arra a csomópontra, ahol tároljuk az eseményszámokat, és csatolunk egy figyelőt az értékváltozások lekéréséhez.

Ezenkívül ahelyett, hogy elküldené az űrlapot, mint a Laravel példában, most van egy JavaScript függvényünk, amelyet a gombkattintásra hívnak meg, frissíti a számlálást, és visszaírja a frissített értéket az adatbázisba.

3. lépés: Programozza be a NodeMCU kártyát

Programozza be a NodeMCU táblát
Programozza be a NodeMCU táblát
Programozza be a NodeMCU táblát
Programozza be a NodeMCU táblát
Programozza be a NodeMCU táblát
Programozza be a NodeMCU táblát

A NodeMCU programozásához az Arduino szoftvert használtam, és miután telepítettem rá a táblát, biztos voltam benne, hogy kiválasztottam a megfelelő verziót és portot, hogy fel tudja tölteni a szoftvert. Az enyém 1.0 -ás verzió, ezért a folytatás előtt ellenőrizze a táblát.

Az Arduino kód első része beállítja az összes szükséges definíciót, amelyeket módosítania kell a készüléken. Az első ilyen beállítás a WiFi ssid -je és jelszava, majd be kell állítanunk a firebase url -t és a firebase db titkot. Sajnos nem ez az ajánlott módszer az adatbázishoz való csatlakozáshoz, de jelenleg a könyvtár támogatja ezt. Ezt a titkot a Firebase konzol Projektbeállítások, szolgáltatásfiókok menüjében találhatja meg.

A következő meghatározás az az útvonal, amelyen ellenőrizni fogjuk a frissítéseket és az eszköz azonosítóját. Az eszközazonosítóra szükség van, így abban az esetben, ha több eszközünkről értesítjük ugyanazokat az eseményeket, tudnunk kell, hogy melyik eszköz értesített minket az eseményről, és erről nyilvántartást kell vezetnünk. Utoljára be kell állítanunk azt a csapot, amelyhez a zümmögőt csatlakoztattuk, és ez a D2 a mi esetünkben.

A beállítási funkció határozza meg a beépített led tűt és a D2 érintkezőket kimenetként, indítsa el a soros kommunikációt, hogy tudja, mi történik, és csatlakozik a megadott WiFi hálózathoz. A kapcsolat létrejötte után elindítja a kommunikációt a Firebase -vel, és megkapja az utolsó értéket, amelyről jelentettünk. Ezután elkezdi figyelni a megadott elérési út változásait.

A fő hurokban egy hívás a villogás funkcióhoz, amely 500 milliszekundumig villog a beépített leden, hogy meg tudjuk állapítani, hogy az eszköz aktív. Ha változást észlel, és rendelkezésre állnak rendelkezésre álló adatok, amelyeket a rendelkezésre álló függvénnyel olvashatunk, akkor a csomópont új értéke olvasásra kerül, a különbség kiszámításra kerül, mivel időközben több esemény is történhetett, és minden alkalommal hangjelzés hallható a különbségről.

Például, ha a különbség az utoljára bejelentett érték és az új érték között 4, 4 hangjelzés hallható arról, hogy 4 új vásárlás történt. A sípoló funkció a beépített hangfunkció segítségével meghatározott frekvenciát játszik le a zümmeren keresztül egy meghatározott ideig.

A hangjelzések kiadása után az új érték frissül a megadott eszközre, és a streaming újraindul. Jelenleg egy nyitott probléma van az arduino firebase könyvtárában, amely szerint a streaming nem folytatódik automatikusan, miután manuálisan mentettünk egy értéket, ezért újra kell indítanunk.

4. lépés: Élvezze a készüléket

Élvezze készülékét!
Élvezze készülékét!

Az általam használt teljes kód elérhető az alábbi GitHub -fiókomban, valamint a projekt sematikájára mutató link.

Forráskód

Vázlatos

A kód könnyen alkalmazható sokféle forgatókönyvhöz és eseményhez, és biztos vagyok benne, hogy nagyon szórakoztató lesz vele játszani.

Számomra ez egy nagyon szórakoztató konstrukció volt, és nagyon sokat tanultam róla, és ezért nagyon boldog vagyok. Remélem, hogy segíthet a projektben, de ha úgy találja, hogy elakadt valamelyik részével, vagy további magyarázatra van szüksége, kérjük, ossza meg velünk megjegyzésekben, és mindent megteszek, hogy segítsek.

Ha tetszett a projekt, akkor iratkozz fel a YouTube csatornámra:

Kóstolja meg a kódot

Ajánlott: