Taula de continguts:

Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel: 4 passos (amb imatges)
Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel: 4 passos (amb imatges)

Vídeo: Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel: 4 passos (amb imatges)

Vídeo: Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel: 4 passos (amb imatges)
Vídeo: ⛅ Estación meteorológica con webserver, esp32 y pantalla e-paper - PCBWay.es 2024, Desembre
Anonim
Image
Image
Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel
Notificacions d'esdeveniments en temps real mitjançant NodeMCU (Arduino), Google Firebase i Laravel

Alguna vegada heu volgut rebre notificacions quan es faci una acció al vostre lloc web, però el correu electrònic no és l’adequat? Voleu escoltar un so o una campana cada vegada que feu una venda? O és necessària la vostra atenció immediata a causa d’una emergència a casa?

Aquest dispositiu us pot alertar en temps real de tot allò que vulgueu.

Pas 1: connecteu el circuit

Connecteu el circuit
Connecteu el circuit
Connecteu el circuit
Connecteu el circuit

El dispositiu que he construït consisteix en una placa NodeMCU amb un brunzidor per avisar-me de les vendes realitzades en un lloc web. El microcontrolador es programa mitjançant el programari Arduino i la part activadora pot ser qualsevol aplicació web, iOS o Android. He creat dues aplicacions web senzilles, una a Laravel i l’altra en HTML simple i JavaScript per exemple.

Com que la placa NodeMCU pot funcionar amb seguretat fins a uns 12 mA de corrent als pins, el brunzidor es connecta a través d’un transistor NPN. He utilitzat el 2N2222 perquè en tinc molts, però estic segur que el principi serà el mateix amb qualsevol altre transistor NPN.

Per connectar el circuit, connecteu el col·lector del transistor al pin Vin de la placa. El brunzidor funciona a 5V i, com que alimentarem el dispositiu des de USB, aquest pin ens donarà la tensió abans que el regulador de 3,3V de la placa.

A continuació, connecteu el costat positiu del timbre a l’emissor del transistor i el pin negatiu del timbre a qualsevol dels pins de terra de la placa. He utilitzat el pin 2, però també el podeu connectar als pins 9, 25 o 29.

La base del transistor està connectada al pin D2 que es correlaciona amb GPIO 4 del programari Arduino. Amb aquesta configuració, el transistor funcionarà efectivament com un interruptor que activa el brunzidor de cada esdeveniment. En lloc del brunzidor, podeu connectar un relé de la mateixa manera per poder conduir qualsevol aparell de xarxa, com ara bombetes, màquines o una sirena, si esteu fent algun dispositiu d'alarma.

Pas 2: prepareu les aplicacions web

Prepareu les aplicacions web
Prepareu les aplicacions web
Prepareu les aplicacions web
Prepareu les aplicacions web
Prepareu les aplicacions web
Prepareu les aplicacions web

Per a la part activadora i en temps real del dispositiu, utilitzarem la base de dades en temps real de Firebase de Google. Aquesta és una meravellosa base de dades de núvol NoSQL creada per Google que proporciona sincronització de dades en temps real entre cadascuna de les plataformes que s’utilitzen.

Primer creeu el projecte amb un nom que trieu. Un cop creat, creeu un sol node anomenat "recompte" i inicieu-lo amb el valor si és 0. Aquest serà el nostre recompte inicial que volem seguir en el futur.

L’aplicació Laravel utilitza el paquet “firebase-php” de Kreait i s’enllaça a continuació. Instal·leu el paquet executant "composer require kreait / firebase-php". Un cop feta la instal·lació, hem de crear el controlador on passarà l’acció. He anomenat el mètode "actualització" i l'he connectat a les rutes amb una acció POST.

Per recuperar la instància de Firebase, necessiteu un fitxer json que heu de descarregar de la consola de Firebase. Col·loqueu aquest fitxer a l'arrel del vostre projecte Laravel i anomeneu-lo firebase.json. En recuperar la instància de firebase, hem de proporcionar el camí a aquest fitxer mitjançant el mètode withCredentials.

Després d’obtenir la instància de firebase, hem d’obtenir la referència a la base de dades i al node que hem creat anteriorment. En cada acció, obtindrem el valor actual del node, l’augmentarem en un i el guardarem de nou a la base de dades. D’aquesta manera es farà un seguiment dels nostres esdeveniments sobre els quals hem de notificar.

El mateix es pot aconseguir amb HTML i JavaScript senzills, mitjançant la biblioteca de Firebase proporcionada. Amb ella, primer hem de proporcionar a la matriu de configuració la configuració adequada des de la consola de Firebase i inicialitzar l’aplicació. Un cop inicialitzat, obtenim una referència al node on emmagatzemem el recompte d'esdeveniments i adjuntem un oient per recuperar qualsevol canvi de valor.

A més, en lloc d’enviar el formulari com a l’exemple de Laravel, ara tenim una funció JavaScript que s’està cridant al fer clic al botó, actualitza el recompte i torna a escriure el valor actualitzat a la base de dades.

Pas 3: programa la placa NodeMCU

Programa el tauler NodeMCU
Programa el tauler NodeMCU
Programa el tauler NodeMCU
Programa el tauler NodeMCU
Programa el tauler NodeMCU
Programa el tauler NodeMCU

Per programar el NodeMCU, he utilitzat el programari Arduino i, després d’instal·lar-hi la placa, m’he assegurat de seleccionar la versió i el port adequats per poder carregar el programari. La meva és la versió 1.0, així que reviseu-la amb el tauler abans de continuar.

La primera part del codi Arduino configura totes les definicions necessàries que haureu d’ajustar al dispositiu. El primer paràmetre d’aquest tipus és el ssid del WiFi i la seva contrasenya, i després hem de configurar l’url de firebase i el secret de firebase db. Malauradament, aquesta no és la forma recomanada de connectar-se a la base de dades, però a hores d’ara és l’única manera que la biblioteca ho admet. Podeu trobar aquest secret al menú Configuració del projecte, comptes de servei a la consola de firebase.

La següent definició és el camí que comprovarem si hi ha actualitzacions i l’identificador del dispositiu. Es necessita la identificació del dispositiu, de manera que, en cas que tinguem diversos dispositius per notificar els mateixos esdeveniments, hem de saber quin dispositiu ens ha notificat de l'esdeveniment i conservar-ne un registre. L'últim, hem de configurar el pin al qual hem connectat el brunzidor i aquest és D2 en el nostre cas.

La funció de configuració defineix el pin LED incorporat i els pins D2 com a sortides, inicia la comunicació en sèrie per saber què passa i es connecta a la xarxa WiFi especificada. Un cop establerta la connexió, inicia la comunicació amb Firebase i obté l'últim valor que hem informat. A continuació, comença a escoltar els canvis al camí especificat.

Al bucle principal, hi ha una trucada a la funció de parpelleig que parpelleja el led incorporat durant 500 mil·lisegons perquè puguem saber que el dispositiu està actiu. Quan es detecta un canvi i hi ha dades disponibles, podem llegir-les amb la funció disponible, s'està llegint el nou valor del node, es calcula la diferència, ja que pot haver-hi diversos esdeveniments mentrestant i es produeix un so per a cada vegada de la diferència.

Per exemple, si la diferència entre l'últim valor comunicat i el valor nou és de 4, es produiran 4 sons per informar-vos que s'han fet 4 compres noves. La funció de so utilitza la funció de to incorporat per reproduir una freqüència especificada a través del timbre durant un període de temps definit.

Després de produir els sons, el valor nou s'actualitza per al dispositiu especificat i es reprèn la transmissió. Actualment, hi ha un problema obert a la biblioteca arduino firebase que indica que la transmissió no continua automàticament després de desar manualment un valor, de manera que hem de reiniciar-lo.

Pas 4: gaudiu del vostre dispositiu

Gaudeix del teu dispositiu
Gaudeix del teu dispositiu

Tot el codi que he fet servir està disponible al meu compte de GitHub, enllaçat a continuació, juntament amb l’enllaç a l’esquema del projecte.

Codi font

Esquema

El codi es pot adoptar fàcilment per treballar en molts escenaris i esdeveniments diferents i estic segur que us divertireu molt jugant amb ell.

Per a mi va ser una versió molt divertida i vaig aconseguir aprendre molt sobre això i per això estic molt content. Espero que us pugui ajudar amb el vostre projecte, però si us trobeu atrapat amb alguna part o necessiteu més aclariments, feu-m'ho saber als comentaris i faré tot el possible per ajudar-vos.

Si us ha agradat el projecte, subscriviu-vos al meu canal de YouTube:

Tasta el Codi

Recomanat: