Sadržaj:

Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel: 4 koraka (sa slikama)
Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel: 4 koraka (sa slikama)

Video: Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel: 4 koraka (sa slikama)

Video: Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel: 4 koraka (sa slikama)
Video: SD600 - Senzor dima 2024, Lipanj
Anonim
Image
Image
Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel
Obavijesti o događajima u stvarnom vremenu koristeći NodeMCU (Arduino), Google Firebase i Laravel

Jeste li ikada htjeli biti obaviješteni kada se na vašoj web stranici izvrši radnja, ali e -pošta ne odgovara? Želite li čuti zvuk ili zvono svaki put kada prodajete? Ili postoji hitna potreba zbog hitnosti u kući?

Ovaj uređaj može vas u stvarnom vremenu upozoriti na sve što vam se sviđa.

Korak 1: Ožičite krug

Ožičite krug
Ožičite krug
Ožičite krug
Ožičite krug

Uređaj koji sam izgradio sastoji se od NodeMCU ploče sa zujalicom koja me upozorava na prodaju na web stranici. Mikrokontroler je programiran pomoću softvera Arduino, a pokretački dio može biti bilo koja web, iOS ili Android aplikacija. Napravio sam dvije jednostavne web aplikacije, jednu u Laravelu, a drugu u običnom HTML i JavaScript za primjer.

Budući da ploča NodeMCU može sigurno raditi do oko 12mA struje na pinovima, zujalica je spojena preko NPN tranzistora. Koristio sam 2N2222 jer ih ima mnogo, ali siguran sam da će princip biti isti sa bilo kojim drugim NPN tranzistorima.

Za ožičenje kruga spojite kolektor tranzistora na Vin pin na ploči. Zvučni signal radi na 5 V, a budući da ćemo napajati uređaj s USB -a, ovaj pin će nam dati napon prije regulatora od 3,3 V na ploči.

Zatim spojite pozitivnu stranu zujalice na odašiljač tranzistora, a negativnu iglu zujalice na bilo koji od uzemljenih pinova na ploči. Koristio sam pin 2, ali možete ga spojiti i na pinove 9, 25 ili 29.

Baza tranzistora spojena je na pin D2 koji je u korelaciji s GPIO 4 na Arduino softveru. S ovom postavkom, tranzistor će učinkovito funkcionirati kao prekidač koji uključuje zujalicu za svaki događaj. Umjesto zujalice, na isti način možete spojiti relej kako biste mogli upravljati bilo kojim električnim aparatom poput žarulja, strojeva ili sirene ako izrađujete neki alarmni uređaj.

Korak 2: Pripremite web aplikacije

Pripremite web aplikacije
Pripremite web aplikacije
Pripremite web aplikacije
Pripremite web aplikacije
Pripremite web aplikacije
Pripremite web aplikacije

Za pokretanje i dio uređaja u stvarnom vremenu koristit ćemo Googleovu Firebase bazu podataka u stvarnom vremenu. Ova prekrasna NoSQL baza podataka u oblaku koju je napravio Google i pruža sinkronizaciju podataka u stvarnom vremenu između svake od platformi koje koristi.

Prvo stvorite projekt s imenom po vašem izboru. Nakon što stvorite, stvorite jedan čvor pod nazivom "count" i inicirajte ga s vrijednošću ako je 0. To će biti naš početni broj koji želimo slijediti u budućnosti.

Aplikacija Laravel koristi paket "firebase-php" iz Kreaita, a dolje je povezana. Instalirajte paket pokretanjem “composer require kreait/firebase-php”. Nakon što je instalacija dovršena, moramo stvoriti kontroler na kojem će se radnja dogoditi. Metodi sam dao naziv "ažuriranje" i povezao sam je u rutama na POST radnji.

Da biste dohvatili Firebase instancu, potrebna vam je json datoteka koju morate preuzeti sa svoje Firebase konzole. Postavite ovu datoteku u korijen vašeg Laravel projekta i dajte joj ime firebase.json. Prilikom dohvaćanja firebase instance, moramo navesti put do ove datoteke pomoću metode withCredentials.

Nakon što smo dobili instancu firebase, moramo dobiti referencu na bazu podataka i na čvor koji smo ranije stvorili. Za svaku radnju dobit ćemo trenutnu vrijednost čvora, povećati je za jedan i spremiti ako se vratimo u bazu podataka. Tako ćete pratiti naše događaje o kojima moramo obavijestiti.

Isto se može postići s običnim HTML -om i JavaScript -om, pomoću priložene firebase biblioteke. Pomoću njega prvo moramo omogućiti konfiguracijskom nizu odgovarajuće postavke s Firebase konzole i pokrenuti aplikaciju. Jednom kada se inicijalizira, dobivamo referencu na čvor u koji pohranjujemo brojeve događaja i priključujemo slušatelja da dohvati bilo koju promjenu vrijednosti.

Osim toga, umjesto slanja obrasca kao u primjeru Laravel, sada imamo JavaScript funkciju koja se poziva klikom na gumb, ažurira broj i upisuje ažuriranu vrijednost natrag u bazu podataka.

Korak 3: Programirajte NodeMCU ploču

Programirajte ploču NodeMCU
Programirajte ploču NodeMCU
Programirajte ploču NodeMCU
Programirajte ploču NodeMCU
Programirajte NodeMCU ploču
Programirajte NodeMCU ploču

Za programiranje NodeMCU -a koristio sam softver Arduino i nakon što sam na njega instalirao ploču pobrinuo sam se da odaberem odgovarajuću verziju i port kako bih mogao prenijeti softver. Moja je verzija 1.0 pa provjerite sa svojom pločom prije nego nastavite.

Prvi dio Arduino koda postavlja sve potrebne definicije koje ćete morati prilagoditi na svom uređaju. Prva takva postavka je ssid WiFi -a i njegova lozinka, zatim moramo postaviti firebase url i firebase db tajnu. Nažalost, ovo nije preporučeni način povezivanja s bazom podataka, ali zasad je to jedini način na koji ga knjižnica podržava. Ovu tajnu možete pronaći u izborniku Postavke projekta, servisni računi na Firebase konzoli.

Sljedeća definicija je put koji ćemo provjeravati ima li ažuriranja i ID uređaja. ID uređaja je potreban pa u slučaju da imamo više uređaja za obavještavanje o istim događajima, moramo znati koji nas je uređaj obavijestio o događaju i voditi evidenciju o tome. Zadnji moramo postaviti pin na koji smo povezali zujalicu, a to je D2 u našem slučaju.

Funkcija postavljanja definira ugrađeni LED pin i D2 pinove kao izlaze, započinje serijsku komunikaciju kako bi znao što se događa i povezuje se s navedenom WiFi mrežom. Kad se veza uspostavi, započinje komunikaciju s Firebaseom i dobiva zadnju vrijednost za koju smo prijavili. Zatim počinje osluškivati promjene na navedenoj putanji.

U glavnoj petlji nalazi se poziv na funkciju treptanja koja treperi na ugrađenom LED diodi 500 milisekundi kako bismo mogli reći da je uređaj aktivan. Kad se otkrije promjena i postoje dostupni podaci koje možemo pročitati s dostupnom funkcijom, čita se nova vrijednost čvora, razlika se izračunava jer je u međuvremenu moglo biti više događaja, a za svaki se put oglasi zvučni signal razlike.

Na primjer, ako je razlika između zadnje prijavljene vrijednosti i nove vrijednosti 4, oglasit će se 4 zvučna signala koji vas obavještavaju da su izvršene 4 nove kupnje. Zvučna funkcija koristi ugrađenu tonsku funkciju za reprodukciju određene frekvencije kroz zvučni signal kroz zadano razdoblje.

Nakon što se oglasi zvučni signal, nova vrijednost se ažurira za navedeni uređaj i strujanje se ponovno pokreće. Trenutačno postoji otvoren problem u arduino firebase knjižnici da se streaming ne nastavlja automatski nakon što ručno spremimo vrijednost pa je moramo ponovno pokrenuti.

Korak 4: Uživajte u svom uređaju

Uživajte u svom uređaju!
Uživajte u svom uređaju!

Cijeli kôd koji sam koristio dostupan je na mom GitHub računu povezanom ispod zajedno s vezom na shemu projekta.

Izvorni kod

Shematski

Kôd se može lako usvojiti za rad na mnogo različitih scenarija i događaja i siguran sam da ćete se jako zabaviti igrajući se s njim.

Za mene je ovo bila jako zabavna konstrukcija i uspio sam naučiti dosta toga o tome i zbog toga sam jako sretan. Nadam se da vam može pomoći s vašim projektom, ali ako se zaglavite u bilo kojem dijelu ili trebate dodatno pojašnjenje, javite mi u komentarima i učinit ću sve da vam pomognem.

Ako vam se svidio projekt, pretplatite se na moj YouTube kanal:

Okusite kôd

Preporučeni: