Indholdsfortegnelse:

Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel: 4 trin (med billeder)
Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel: 4 trin (med billeder)

Video: Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel: 4 trin (med billeder)

Video: Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel: 4 trin (med billeder)
Video: HVILKEN PORTAL 3 VIL VÆRE 2024, November
Anonim
Image
Image
Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel
Notifikationer i realtid om begivenheder ved hjælp af NodeMCU (Arduino), Google Firebase og Laravel

Har du nogensinde ønsket at få besked, når der foretages en handling på dit websted, men e -mail ikke er den rigtige pasform? Vil du høre en lyd eller en klokke, hver gang du foretager et salg? Eller er der behov for din umiddelbare opmærksomhed på grund af en nødsituation derhjemme?

Denne enhed kan advare dig i realtid om alt, hvad du kan lide.

Trin 1: Tråd op i kredsløbet

Tråd op i kredsløbet
Tråd op i kredsløbet
Tråd op i kredsløbet
Tråd op i kredsløbet

Den enhed, jeg har bygget, består af et NodeMCU -kort med en summer for at advare mig om salg foretaget på et websted. Mikrocontrolleren er programmeret ved hjælp af Arduino -softwaren, og den udløsende del kan være enhver web-, iOS- eller Android -applikation. Jeg har oprettet to enkle webapplikationer, en i Laravel og den anden i almindelig HTML og JavaScript til eksemplet.

Da NodeMCU -kortet sikkert kan fungere indtil omkring 12mA strøm på stifterne, er summeren forbundet via en NPN -transistor. Jeg har brugt 2N2222, fordi jeg har mange af dem liggende, men jeg er sikker på, at princippet vil være det samme med enhver anden NPN -transistor.

For at tilslutte kredsløbet skal du forbinde transistorens kollektor til Vin -stiften på brættet. Summeren fungerer ved 5V, og da vi vil drive enheden fra USB, giver denne pin os spændingen før 3.3V -regulatoren på kortet.

Tilslut derefter den positive side af summeren på transistorens emitter og summerens negative pin til en hvilken som helst jordstift på brættet. Jeg har brugt pin 2, men du kan også slutte den til pins 9, 25 eller 29.

Transistorens bund er forbundet til pin D2, der korrelerer med GPIO 4 på Arduino -softwaren. Med denne opsætning vil transistoren effektivt fungere som en switch, der tænder summeren på hver begivenhed. I stedet for summeren kan du tilslutte et relæ på samme måde for at kunne køre ethvert netapparat som f.eks. Pærer, maskiner eller en sirene, hvis du laver en alarm.

Trin 2: Forbered webapps

Forbered webapps
Forbered webapps
Forbered webapps
Forbered webapps
Forbered Web Apps
Forbered Web Apps

Til den udløsende og realtidsdel af enheden vil vi bruge Googles Firebase Realtime Database. Dette er en vidunderlig NoSQL -clouddatabase lavet af Google, der giver datasynkronisering i realtid mellem hver af de platforme, den bruges.

Opret først projektet med et navn efter eget valg. Når den er oprettet, skal du oprette en enkelt node kaldet "count" og starte den med værdien hvis 0. Dette er vores starttælling, som vi vil følge i fremtiden.

Laravel-applikationen bruger pakken "firebase-php" fra Kreait, og den er linket nedenfor. Installer pakken ved at køre “composer require kreait/firebase-php”. Når installationen er udført, skal vi oprette controlleren, hvor handlingen vil ske. Jeg kaldte metoden "opdatering", og jeg har forbundet den i ruterne med en POST -handling.

For at hente Firebase -forekomsten skal du have en json -fil, som du skal downloade fra din Firebase -konsol. Placer denne fil i roden af dit Laravel -projekt, og navngiv den firebase.json. Når vi henter firebase -forekomsten, skal vi angive stien til denne fil ved hjælp af metCredentials -metoden.

Efter at vi fik firebase -forekomsten, skal vi hente referencen til databasen og til den node, som vi har oprettet tidligere. For hver handling får vi den aktuelle værdi af noden, øger den med en og gemmer, hvis den er tilbage til databasen. Dette vil holde styr på vores begivenheder, som vi skal meddele om.

Det samme kan opnås med almindelig HTML og JavaScript ved hjælp af det medfølgende firebase -bibliotek. Med det skal vi først give konfigurationsarrayet de relevante indstillinger fra Firebase -konsollen og initialisere appen. Når den er initialiseret, får vi en reference til den node, hvor vi gemmer hændelsestællingerne, og vedhæfter en lytter for at hente enhver værdiændring.

Derudover har vi i stedet for at indsende formularen som i Laravel -eksemplet nu en JavaScript -funktion, der kaldes på knappen klik, opdaterer tællingen og skriver den opdaterede værdi tilbage til databasen.

Trin 3: Programmer NodeMCU Board

Programmer NodeMCU Board
Programmer NodeMCU Board
Programmer NodeMCU Board
Programmer NodeMCU Board
Programmer NodeMCU Board
Programmer NodeMCU Board

For at programmere NodeMCU har jeg brugt Arduino -softwaren, og efter at jeg havde installeret kortet til det, sørgede jeg for at vælge den korrekte version og port, så jeg kan uploade softwaren. Min er version 1.0, så dobbelttjek med dit board, før du fortsætter.

Den første del af Arduino -koden opstiller alle de nødvendige definitioner, som du skal justere på din enhed. Den første sådan indstilling er ssiden af WiFi og dens adgangskode, derefter skal vi konfigurere firebase -url'en og firebase -db -hemmeligheden. Desværre er dette ikke den anbefalede måde at oprette forbindelse til databasen, men fra nu af er det den eneste måde, biblioteket understøtter det på. Du kan finde denne hemmelighed under menuen Projektindstillinger, servicekonti i firebase -konsollen.

Den næste definition er den sti, vi vil kontrollere for opdateringer og enheds -id. Enheds -id'et er påkrævet, så hvis vi har flere enheder til at underrette om de samme begivenheder, skal vi vide, hvilken enhed der har underrettet os om begivenheden og registrere det. Sidste skal vi konfigurere den pin, som vi har tilsluttet summeren til, og dette er D2 i vores tilfælde.

Opsætningsfunktionen definerer den indbyggede led -pin og D2 -benene som output, starter den serielle kommunikation for at vide, hvad der foregår og opretter forbindelse til det angivne WiFi -netværk. Når forbindelsen er etableret, starter den kommunikationen med Firebase og får den sidste værdi, vi rapporterede for. Det begynder derefter at lytte efter ændringer på den angivne sti.

I hovedsløjfen er der et opkald til blinkfunktionen, der blinker den indbyggede LED i 500 millisekunder for at vi kan fortælle, at enheden er aktiv. Når en ændring registreres, og der er tilgængelige data, vi kan læse med den tilgængelige funktion, læses den nye værdi af noden, forskellen beregnes, da der muligvis har været flere hændelser i mellemtiden, og der udsendes et bip for hver gang af forskellen.

For eksempel, hvis forskellen mellem den sidste rapporterede værdi og den nye værdi er 4, vil der blive udsendt 4 bip for at fortælle dig, at der blev foretaget 4 nye køb. Bipfunktionen bruger den indbyggede tonefunktion til at afspille en bestemt frekvens gennem summeren i en bestemt periode.

Når bipene er produceret, opdateres den nye værdi for den angivne enhed, og streaming genstartes igen. I øjeblikket er der et åbent problem på arduino firebase -biblioteket, at streaming ikke fortsætter automatisk, når vi manuelt gemmer en værdi, så vi skal genstarte den.

Trin 4: Nyd din enhed

Nyd din enhed!
Nyd din enhed!

Hele den kode, jeg har brugt, er tilgængelig på min GitHub -konto, der er linket herunder sammen med linket til projektets skema.

Kildekode

Skematisk

Koden kan let vedtages til at fungere i mange forskellige scenarier og begivenheder, og jeg er sikker på, at du vil have det sjovt at lege med den.

For mig var dette en virkelig sjov konstruktion, og jeg formåede at lære ret meget om det, og for det er jeg virkelig glad. Jeg håber, at det kan hjælpe dig med dit projekt, men hvis du står fast i en del af det, eller du har brug for yderligere afklaring, så lad mig det vide i kommentarerne, og jeg vil gøre mit bedste for at hjælpe dig.

Hvis du kunne lide projektet, kan du abonnere på min YouTube -kanal:

Smag på koden

Anbefalede: