Tabla de contenido:

Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel: 4 pasos (con imágenes)
Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel: 4 pasos (con imágenes)

Video: Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel: 4 pasos (con imágenes)

Video: Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel: 4 pasos (con imágenes)
Video: Firebase VS Laravel. Aplicaciones web modernas. ¿Cuándo usar Firebase? 2024, Junio
Anonim
Image
Image
Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel
Notificaciones de eventos en tiempo real usando NodeMCU (Arduino), Google Firebase y Laravel

¿Alguna vez ha querido recibir una notificación cuando se realiza una acción en su sitio web pero el correo electrónico no es el adecuado? ¿Quieres escuchar un sonido o una campana cada vez que realizas una venta? ¿O hay una necesidad de su atención inmediata debido a una emergencia en el hogar?

Este dispositivo puede avisarte en tiempo real sobre cualquier cosa que te guste.

Paso 1: Conecte el circuito

Conecte el circuito
Conecte el circuito
Conecte el circuito
Conecte el circuito

El dispositivo que he construido consiste en una placa NodeMCU con un timbre que me avisa de las ventas realizadas en un sitio web. El microcontrolador se programa mediante el software Arduino y la parte de activación puede ser cualquier aplicación web, iOS o Android. He creado dos aplicaciones web simples, una en Laravel y la otra en HTML simple y JavaScript para el ejemplo.

Dado que la placa NodeMCU puede funcionar de forma segura hasta alrededor de 12 mA de corriente en los pines, el zumbador se conecta a través de un transistor NPN. He usado 2N2222 porque tengo muchos de ellos por ahí, pero estoy seguro de que el principio será el mismo con cualquier otro transistor NPN.

Para conectar el circuito, conecte el colector del transistor al pin Vin de la placa. El zumbador opera a 5V y como vamos a alimentar el dispositivo desde USB, este pin nos dará el voltaje antes del regulador de 3.3V en la placa.

A continuación, conecte el lado positivo del zumbador en el emisor del transistor y el pin negativo del zumbador a cualquiera de los pines de tierra en la placa. He usado el pin 2, pero también puedes conectarlo en los pines 9, 25 o 29.

La base del transistor está conectada al pin D2 que se correlaciona con GPIO 4 en el software Arduino. Con esta configuración, el transistor funcionará efectivamente como un interruptor que enciende el zumbador en cada evento. En lugar del zumbador puedes conectar un relé de la misma forma para poder accionar cualquier aparato de red como bombillas, máquinas o una sirena si estás fabricando algún dispositivo de alarma.

Paso 2: preparar las aplicaciones web

Prepare las aplicaciones web
Prepare las aplicaciones web
Prepare las aplicaciones web
Prepare las aplicaciones web
Prepare las aplicaciones web
Prepare las aplicaciones web

Para la activación y la parte en tiempo real del dispositivo, usaremos Firebase Realtime Database de Google. Esta es una maravillosa base de datos en la nube NoSQL creada por Google que proporciona sincronización de datos en tiempo real entre cada una de las plataformas que se está utilizando.

Primero cree el proyecto con un nombre de su elección. Una vez creado, cree un solo nodo llamado "count" e inícielo con el valor if 0. Este será nuestro conteo de inicio que queremos seguir en el futuro.

La aplicación Laravel usa el paquete "firebase-php" de Kreait, y está vinculado a continuación. Instale el paquete ejecutando "composer require kreait / firebase-php". Una vez que se realiza la instalación, necesitamos crear el controlador donde ocurrirá la acción. Llamé al método "actualizar" y lo conecté en las rutas en una acción POST.

Para recuperar la instancia de Firebase, necesita un archivo json que debe descargar desde su consola de Firebase. Coloque este archivo en la raíz de su proyecto Laravel y asígnele el nombre firebase.json. Al recuperar la instancia de base de fuego, debemos proporcionar la ruta a este archivo mediante el método withCredentials.

Después de obtener la instancia de base de fuego, necesitamos obtener la referencia a la base de datos y al nodo que creamos anteriormente. En cada acción, obtendremos el valor actual del nodo, lo aumentaremos en uno y lo guardaremos de nuevo en la base de datos. Esto mantendrá un registro de nuestros eventos sobre los que debemos notificar.

Lo mismo se puede lograr con HTML simple y JavaScript, utilizando la biblioteca de base de fuego proporcionada. Con él, primero debemos proporcionar la matriz de configuración con la configuración adecuada de la consola de Firebase e inicializar la aplicación. Una vez inicializado, obtenemos una referencia al nodo donde almacenamos los recuentos de eventos y adjuntamos un oyente para recuperar cualquier cambio de valor.

Además, en lugar de enviar el formulario como en el ejemplo de Laravel, ahora tenemos una función de JavaScript que se llama al hacer clic en el botón, actualiza el recuento y escribe el valor actualizado en la base de datos.

Paso 3: Programe la placa NodeMCU

Programar la placa NodeMCU
Programar la placa NodeMCU
Programar la placa NodeMCU
Programar la placa NodeMCU
Programar la placa NodeMCU
Programar la placa NodeMCU

Para programar el NodeMCU, utilicé el software Arduino y, después de instalar la placa, me aseguré de seleccionar la versión y el puerto adecuados para poder cargar el software. La mía es la versión 1.0, así que verifique dos veces con su tablero antes de continuar.

La primera parte del código Arduino, configura todas las definiciones necesarias que necesitará ajustar en su dispositivo. La primera configuración de este tipo es el ssid del WiFi y su contraseña, luego necesitamos configurar la URL de firebase y el secreto de la base de datos de firebase. Desafortunadamente, esta no es la forma recomendada de conectarse a la base de datos, pero a partir de ahora es la única forma en que la biblioteca la admite. Puede encontrar este secreto en Configuración del proyecto, menú de cuentas de servicio en Firebase Console.

La siguiente definición es la ruta que buscaremos actualizaciones y la identificación del dispositivo. La ID del dispositivo es necesaria, por lo que, en caso de que tengamos varios dispositivos para notificar sobre los mismos eventos, necesitamos saber qué dispositivo nos notificó el evento y mantener un registro de eso. El último necesitamos configurar el pin en el que hemos conectado el zumbador y este es D2 en nuestro caso.

La función de configuración define el pin led integrado y los pines D2 como salidas, inicia la comunicación en serie para saber qué está pasando y se conecta a la red WiFi especificada. Una vez que se establece la conexión, comienza la comunicación con Firebase y obtiene el último valor que informamos. Luego comienza a escuchar cambios en la ruta especificada.

En el bucle principal, hay una llamada a la función de parpadeo que hace parpadear el led incorporado durante 500 milisegundos para que podamos saber que el dispositivo está activo. Cuando se detecta un cambio y hay datos disponibles que podemos leer con la función disponible, se está leyendo el nuevo valor del nodo, se calcula la diferencia ya que podría haber habido múltiples eventos en el ínterin y se emite un bip por cada vez de la diferencia.

Por ejemplo, si la diferencia entre el último valor informado y el nuevo valor es 4, se producirán 4 pitidos para informarle que se realizaron 4 compras nuevas. La función de pitido utiliza la función de tono incorporada para reproducir una frecuencia específica a través del zumbador durante un período de tiempo determinado.

Una vez que se producen los pitidos, el nuevo valor se actualiza para el dispositivo especificado y la transmisión se reinicia nuevamente. Actualmente, hay un problema abierto en la biblioteca de base de fuego de arduino que indica que la transmisión no continúa automáticamente después de que guardamos manualmente un valor, por lo que debemos reiniciarlo.

Paso 4: ¡Disfruta de tu dispositivo

¡Disfrute de su dispositivo!
¡Disfrute de su dispositivo!

El código completo que he usado está disponible en mi cuenta de GitHub vinculada a continuación junto con el vínculo al esquema del proyecto.

Código fuente

Esquemático

El código se puede adoptar fácilmente para que funcione en muchos escenarios y eventos diferentes y estoy seguro de que te divertirás mucho jugando con él.

Para mí, esta fue una construcción muy divertida y logré aprender mucho sobre ella y por eso estoy muy feliz. Espero que pueda ayudarlo con su proyecto, pero si se encuentra atrapado en alguna parte del mismo o necesita alguna aclaración adicional, hágamelo saber en los comentarios y haré todo lo posible para ayudarlo.

Si te gustó el proyecto, suscríbete a mi canal de YouTube:

Prueba el código

Recomendado: