Obsah:

Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: 4 kroky (s obrázkami)
Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: 4 kroky (s obrázkami)

Video: Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: 4 kroky (s obrázkami)

Video: Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: 4 kroky (s obrázkami)
Video: po.DIAĽNICI #06 | Tunel 2024, Jún
Anonim
Image
Image
Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel
Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel

Už ste niekedy chceli byť upozornení, keď sa na vašom webe uskutoční akcia, ale e -mail nie je vhodný? Chcete pri každom predaji počuť zvuk alebo zvonček? Alebo je potrebná vaša okamžitá pozornosť z dôvodu núdzovej situácie doma?

Toto zariadenie vás môže v reálnom čase upozorniť na čokoľvek, čo sa vám páči.

Krok 1: Zapojte obvod

Zapojte obvod
Zapojte obvod
Zapojte obvod
Zapojte obvod

Zariadenie, ktoré som zostrojil, sa skladá z dosky NodeMCU s bzučiakom, ktorý ma upozorňuje na predaj uskutočnený na webovej stránke. Mikrokontrolér je naprogramovaný pomocou softvéru Arduino a spúšťacou časťou môže byť akákoľvek webová, iOS alebo Android aplikácia. Vytvoril som napríklad dve jednoduché webové aplikácie, jednu v Laraveli a druhú v obyčajnom HTML a JavaScript.

Pretože doska NodeMCU môže bezpečne pracovať až do približne 12mA prúdu na kolíkoch, bzučiak je pripojený prostredníctvom tranzistora NPN. Použil som 2N2222, pretože ich mám veľa položených, ale som si istý, že princíp bude rovnaký ako pri každom inom NPN tranzistore.

Na zapojenie obvodu zapojte kolektor tranzistora na pin Vin na doske. Bzučiak pracuje pri 5 V, a pretože budeme zariadenie napájať z USB, tento kolík nám poskytne napätie pred regulátorom 3,3 V na doske.

Potom pripojte kladnú stranu bzučiaka na vysielače tranzistora a záporný kolík bzučiaka na akýkoľvek uzemňovací kolík na doske. Použil som pin 2, ale môžete ho pripojiť aj na piny 9, 25 alebo 29.

Základňa tranzistora je pripojená k pinu D2, ktorý koreluje s GPIO 4 v softvéri Arduino. S týmto nastavením bude tranzistor efektívne fungovať ako spínač zapínajúci bzučiak pri každej udalosti. Namiesto bzučiaka môžete rovnakým spôsobom pripojiť relé, aby ste mohli poháňať akékoľvek sieťové spotrebiče, ako sú žiarovky, stroje alebo siréna, ak vyrábate poplašné zariadenie.

Krok 2: Príprava webových aplikácií

Pripravte si webové aplikácie
Pripravte si webové aplikácie
Pripravte si webové aplikácie
Pripravte si webové aplikácie
Pripravte si webové aplikácie
Pripravte si webové aplikácie

Na spustenie zariadenia a jeho časť v reálnom čase použijeme databázu Firebase Realtime Database od spoločnosti Google. Je to nádherná cloudová databáza NoSQL od spoločnosti Google, ktorá poskytuje synchronizáciu údajov v reálnom čase medzi každou z platforiem, ktoré používa.

Najprv vytvorte projekt s menom podľa vášho výberu. Po vytvorení vytvorte jeden uzol s názvom „počet“a inicializujte ho s hodnotou, ak je 0. Toto bude náš počiatočný počet, ktorý chceme v budúcnosti sledovať.

Aplikácia Laravel používa balík „firebase-php“od spoločnosti Kreait a je prepojený nižšie. Nainštalujte balík spustením príkazu „composer require kreait/firebase-php“. Akonáhle je inštalácia dokončená, musíme vytvoriť ovládač, kde sa akcia stane. Metódu som pomenoval „aktualizovať“a pripojil som ju k trasám pri akcii POST.

Na načítanie inštancie Firebase potrebujete súbor json, ktorý si musíte stiahnuť z konzoly Firebase. Tento súbor umiestnite do koreňa projektu Laravel a pomenujte ho firebase.json. Pri načítaní inštancie firebase musíme poskytnúť cestu k tomuto súboru pomocou metódy withCredentials.

Potom, čo získame inštanciu firebase, musíme získať odkaz na databázu a na uzol, ktorý sme vytvorili predtým. Pri každej akcii získame aktuálnu hodnotu uzla, zvýšime ju o jednu a uložíme, ak sa vrátime do databázy. Vďaka tomu budeme mať prehľad o našich udalostiach, o ktorých vás musíme informovať.

To isté je možné dosiahnuť pomocou obyčajného HTML a JavaScript pomocou poskytnutej knižnice firebase. S ním musíme najskôr poskytnúť konfiguračnému poľu príslušné nastavenia z konzoly Firebase a inicializovať aplikáciu. Po inicializácii získame referenciu na uzol, do ktorého ukladáme počty udalostí, a pripojíme poslucháča, aby získal akúkoľvek zmenu hodnoty.

Okrem toho, namiesto odoslania formulára ako v príklade Laravel, teraz máme funkciu JavaScript, ktorá sa volá po kliknutí na tlačidlo, aktualizuje počet a zapíše aktualizovanú hodnotu späť do databázy.

Krok 3: Naprogramujte dosku NodeMCU

Naprogramujte dosku NodeMCU
Naprogramujte dosku NodeMCU
Naprogramujte dosku NodeMCU
Naprogramujte dosku NodeMCU
Naprogramujte dosku NodeMCU
Naprogramujte dosku NodeMCU

Na programovanie NodeMCU som použil softvér Arduino a potom, čo som naň nainštaloval dosku, som si vybral správnu verziu a port, aby som mohol nahrať softvér. Moja je verzia 1.0, takže sa pred pokračovaním dvakrát poraďte so svojou doskou.

Prvá časť kódu Arduino nastavuje všetky potrebné definície, ktoré budete musieť vo svojom zariadení upraviť. Prvým takýmto nastavením je ssid WiFi a jeho heslo, potom musíme nastaviť adresu URL firebase a tajomstvo db firebase. Bohužiaľ to nie je odporúčaný spôsob pripojenia k databáze, ale v súčasnosti je to jediný spôsob, akým to knižnica podporuje. Toto tajomstvo nájdete v ponuke Nastavenia projektu, Účty služieb v konzole Firebase.

Ďalšou definíciou je cesta, ktorou budeme kontrolovať aktualizácie a ID zariadenia. ID zariadenia je potrebné, takže v prípade, že máme viacero zariadení na upozornenie na rovnaké udalosti, musíme vedieť, ktoré zariadenie nás na udalosť upozornilo, a zaznamenať si o tom záznam. Posledný musíme nastaviť pin, na ktorý sme pripojili bzučiak, a to je v našom prípade D2.

Funkcia nastavenia definuje vstavaný LED kolík a piny D2 ako výstupy, spustí sériovú komunikáciu, aby vedel, čo sa deje, a pripojí sa k špecifikovanej sieti WiFi. Po nadviazaní spojenia začne komunikácia s Firebase a získa poslednú hodnotu, pre ktorú sme uviedli. Potom začne počúvať zmeny na zadanej ceste.

V hlavnej slučke prebieha volanie na funkciu blikania, ktorá bliká vstavanú LED diódu po dobu 500 milisekúnd, aby sme mohli rozpoznať, že je zariadenie aktívne. Keď je zistená zmena a sú k dispozícii dostupné údaje, ktoré môžeme čítať pomocou dostupnej funkcie, načítava sa nová hodnota uzla, rozdiel sa vypočíta, pretože medzitým mohlo dôjsť k viacerým udalostiam a zakaždým zaznie zvukový signál. rozdielu.

Ak je napríklad rozdiel medzi poslednou nahlásenou hodnotou a novou hodnotou 4, zaznie 4 pípnutia, ktoré vás informujú o 4 nových nákupoch. Funkcia pípania používa vstavanú funkciu tónu na prehrávanie špecifikovanej frekvencie prostredníctvom bzučiaka počas nastaveného časového obdobia.

Po zaznení zvukových signálov sa aktualizuje nová hodnota pre uvedené zariadenie a streamovanie sa znova spustí. V súčasnej dobe je v knižnici arduino firebase otvorený problém, že streamovanie nepokračuje automaticky po manuálnom uložení hodnoty, takže ju musíme reštartovať.

Krok 4: Užite si svoje zariadenie

Užite si svoje zariadenie!
Užite si svoje zariadenie!

Celý kód, ktorý som použil, je k dispozícii na mojom účte GitHub prepojenom nižšie spolu s odkazom na schému projektu.

Zdrojový kód

Schematický

Kód je možné ľahko prijať tak, aby fungoval pre mnoho rôznych scenárov a udalostí, a som si istý, že si s ním užijete veľa zábavy.

Pre mňa to bola skutočne zábavná stavba a podarilo sa mi toho veľa naučiť a som za to skutočne šťastný. Dúfam, že vám to môže pomôcť s vašim projektom, ale ak sa ocitnete v akejkoľvek časti alebo ak potrebujete ďalšie objasnenie, dajte mi vedieť v komentároch a ja sa budem snažiť vám pomôcť.

Ak sa vám projekt páčil, prihláste sa na odber môjho kanála YouTube:

Ochutnajte kód

Odporúča: