Cuprins:

Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: 4 pași (cu imagini)
Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: 4 pași (cu imagini)

Video: Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: 4 pași (cu imagini)

Video: Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: 4 pași (cu imagini)
Video: Masterclass: Perfecting Your Home Wireless Network - Episode 3 2024, Iunie
Anonim
Image
Image
Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel
Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel

Ați dorit vreodată să fiți informat când există o acțiune pe site-ul dvs., dar e-mailul nu este potrivit? Vrei să auzi un sunet sau un clopot de fiecare dată când faci o vânzare? Sau este nevoie de atenția dumneavoastră imediată din cauza unei urgențe la domiciliu?

Acest dispozitiv vă poate alerta în timp real despre orice vă place.

Pasul 1: conectați circuitul

Conectați circuitul
Conectați circuitul
Conectați circuitul
Conectați circuitul

Dispozitivul pe care l-am construit constă dintr-o placă NodeMCU cu un buzzer pentru a mă avertiza despre vânzările făcute pe un site web. Microcontrolerul este programat folosind software-ul Arduino, iar partea de declanșare poate fi orice aplicație web, iOS sau Android. Am creat două aplicații web simple, una în Laravel și cealaltă în HTML simplu și JavaScript pentru exemplu.

Deoarece placa NodeMCU poate funcționa în siguranță până la aproximativ 12mA de curent pe pini, buzzerul este conectat printr-un tranzistor NPN. Am folosit 2N2222 pentru că am multe dintre ele, dar sunt sigur că principiul va fi același cu orice alt tranzistor NPN.

Pentru a conecta circuitul, conectați colectorul tranzistorului la pinul Vin de pe placă. Buzzerul funcționează la 5V și, din moment ce vom alimenta dispozitivul de pe USB, acest pin ne va da tensiunea înainte de regulatorul de 3,3V de pe placă.

Conectați apoi partea pozitivă a soneriei de pe emițătorul tranzistorului și pinul negativ al sonorului la oricare dintre pinii de masă de pe placă. Am folosit pinul 2, dar îl puteți conecta și la pinii 9, 25 sau 29.

Baza tranzistorului este conectată la pinul D2 care se corelează cu GPIO 4 pe software-ul Arduino. Cu această configurare, tranzistorul va funcționa efectiv ca un comutator care pornește buzzerul la fiecare eveniment. În loc de buzzer, puteți conecta un releu în același mod pentru a putea conduce orice aparat de la rețea, cum ar fi becurile, mașinile sau o sirena, dacă creați un dispozitiv de alarmă.

Pasul 2: Pregătiți aplicațiile web

Pregătiți aplicațiile web
Pregătiți aplicațiile web
Pregătiți aplicațiile web
Pregătiți aplicațiile web
Pregătiți aplicațiile web
Pregătiți aplicațiile web

Pentru declanșarea și partea în timp real a dispozitivului, vom folosi baza de date Firebase în timp real a Google. Aceasta este o minunată bază de date cloud NoSQL realizată de Google, care asigură sincronizarea datelor în timp real între fiecare dintre platformele utilizate.

Mai întâi creați proiectul cu un nume la alegere. Odată creat, creați un singur nod numit „numărare” și inițiați-l cu valoarea dacă 0. Acesta va fi numărul nostru de început pe care dorim să îl urmăm în viitor.

Aplicația Laravel folosește pachetul „firebase-php” de la Kreait și este legat mai jos. Instalați pachetul executând „compozitorul necesită kreait / firebase-php”. Odată ce instalarea este finalizată, trebuie să creăm controlerul unde se va întâmpla acțiunea. Am denumit metoda „actualizare” și am conectat-o la rutele unei acțiuni POST.

Pentru a prelua instanța Firebase aveți nevoie de un fișier json pe care trebuie să îl descărcați din consola Firebase. Plasați acest fișier în rădăcina proiectului dvs. Laravel și denumiți-l firebase.json. Când preluăm instanța firebase, trebuie să furnizăm calea către acest fișier folosind metoda withCredentials.

După ce am obținut instanța Firebase, trebuie să obținem referința la baza de date și la nodul pe care l-am creat mai devreme. La fiecare acțiune, vom obține valoarea curentă a nodului, îl vom crește cu unul și vom salva dacă înapoi în baza de date. Aceasta va ține evidența evenimentelor noastre despre care trebuie să ne anunțăm.

Același lucru se poate realiza cu HTML simplu și JavaScript, utilizând biblioteca Firebase furnizată. Cu el, trebuie mai întâi să oferim setului de configurare setul corespunzător din consola Firebase și să inițializăm aplicația. Odată inițializat, obținem o referință la nodul în care stocăm numărul de evenimente și atașăm un ascultător pentru a prelua orice modificare de valoare.

În plus, în loc să trimitem formularul ca în exemplul Laravel, avem acum o funcție JavaScript care este apelată prin apăsarea butonului, actualizează numărul și scrie valoarea actualizată înapoi în baza de date.

Pasul 3: Programați placa NodeMCU

Programați placa NodeMCU
Programați placa NodeMCU
Programați placa NodeMCU
Programați placa NodeMCU
Programați placa NodeMCU
Programați placa NodeMCU

Pentru a programa NodeMCU, am folosit software-ul Arduino și, după ce am instalat placa pe aceasta, m-am asigurat că selectez versiunea și portul adecvat, astfel încât să pot încărca software-ul. A mea este versiunea 1.0, deci verificați dublu cu placa dvs. înainte de a continua.

Prima parte a codului Arduino setează toate definițiile necesare pe care va trebui să le ajustați pe dispozitiv. Prima astfel de setare este ssid-ul WiFi-ului și parola acestuia, apoi trebuie să configurăm adresa URL firebase și secretul db firebase. Din păcate, acesta nu este modul recomandat de conectare la baza de date, dar de acum este singurul mod în care biblioteca îl acceptă. Puteți găsi acest secret în meniul Setări proiect, conturi de servicii din consola Firebase.

Următoarea definiție este calea pe care o vom verifica pentru actualizări și ID-ul dispozitivului. ID-ul dispozitivului este necesar, astfel încât, în cazul în care avem mai multe dispozitive pentru a notifica despre aceleași evenimente, trebuie să știm ce dispozitiv ne-a notificat pentru eveniment și să păstrăm o evidență a acestuia. Ultimul trebuie să configurăm pinul la care am conectat buzzerul și acesta este D2 în cazul nostru.

Funcția de configurare definește pinul led încorporat și pinii D2 ca ieșiri, pornește comunicația serială pentru a ști ce se întâmplă și se conectează la rețeaua WiFi specificată. Odată ce conexiunea este stabilită, aceasta începe comunicarea cu Firebase și obține ultima valoare pentru care am raportat. Apoi începe să asculte modificările pe calea specificată.

În bucla principală, există un apel la funcția de clipire care clipește ledul încorporat timp de 500 de milisecunde pentru a putea spune că dispozitivul este activ. Când se detectează o modificare și există date disponibile, putem citi cu funcția disponibilă, noua valoare a nodului este citită, diferența se calculează deoarece s-ar putea să fi existat mai multe evenimente între timp și să se producă un bip pentru fiecare dată a diferenței.

De exemplu, dacă diferența dintre ultima valoare raportată și noua valoare este de 4, vor fi produse 4 bipuri pentru a vă informa că s-au făcut 4 achiziții noi. Funcția bip utilizează funcția de ton încorporat pentru a reda o frecvență specificată prin buzzer pentru o perioadă de timp stabilită.

După ce se produc bipurile, noua valoare este actualizată pentru dispozitivul specificat și streamingul este repornit din nou. În prezent, există o problemă deschisă în biblioteca arduino firebase că streaming-ul nu continuă automat după ce salvăm manual o valoare, deci trebuie să o repornim.

Pasul 4: Bucurați-vă de dispozitivul dvs

Bucurați-vă de dispozitivul dvs.!
Bucurați-vă de dispozitivul dvs.!

Întregul cod pe care l-am folosit este disponibil pe contul meu GitHub legat mai jos împreună cu linkul către schema proiectului.

Cod sursa

Schematic

Codul poate fi adoptat cu ușurință pentru a funcționa pentru o mulțime de scenarii și evenimente diferite și sunt sigur că vă veți distra foarte mult jucându-vă cu el.

Pentru mine a fost o construcție foarte distractivă și am reușit să învăț destul de multe despre asta și pentru asta sunt foarte fericit. Sper că vă poate ajuta cu proiectul dvs., dar dacă vă simțiți blocați de orice parte a acestuia sau aveți nevoie de clarificări suplimentare, vă rugăm să ne anunțați în comentarii și voi face tot posibilul să vă ajut.

Dacă ți-a plăcut proiectul, te rog să te abonezi la canalul meu YouTube:

Gustă Codul

Recomandat: