Tabla de contenido:
- Paso 1: Introducción a Node-red
- Paso 2: dividir datos en Node-red
- Paso 3: base de datos con Wampserver
- Paso 4: base de datos
- Paso 5: Node-red a Wampserver
- Paso 6: usar datos de Wampserver a Node-red
- Paso 7: Finalización
Video: UCL-IIOT - Sistema de alarma con base de datos y Node-red: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
El propósito de esta compilación es enseñar a conectar Arduino con Node-red y una base de datos, para que pueda registrar datos y también recopilarlos para su uso posterior.
Para esta construcción, utilizo un sistema de alarma arduino simple que genera 5 números de datos, cada uno separado con una coma.
No es necesario tener esa cantidad exacta de datos y el programa podría ser cualquier cosa.
La parte importante es que los datos están separados por comas como se ve en esta captura de pantalla.
La salida, por ejemplo, podría verse así: "324, 0, 0, 1, 1"
(la programación terminada y las instrucciones para la creación del arduino están vinculadas al final de este tutorial)
Paso 1: Introducción a Node-red
Para este tutorial asumimos que ya ha instalado Node-red, pero hay algunas paletas adicionales que se utilizan para este proyecto que necesitamos para que funcione.
Busque el botón "Administrar paleta" e instale las siguientes paletas.
- nodo-tablero-rojo
- nodo-rojo-nodo-mysql
- nodo-rojo-nodo-arduino
- nodo-puerto-serie-nodo-rojo
Debería mostrar algunas paletas nuevas en el lateral del menú del botón Node-red.
Paso 2: dividir datos en Node-red
Ahora que Node-red está listo para funcionar, debemos comenzar dividiendo nuestros datos en partes separadas.
Es por eso que nos aseguramos de separarlos con comas dentro del código Arduino.
Primero comencemos colocando el nodo de entrada de Arduino, que se encuentra en el panel lateral izquierdo.
Debe asegurarse de que tenga el puerto serial correcto (el mío usa COM4) y la velocidad en baudios (en mi programa utilizo la velocidad en baudios de 9600)
Si está configurado correctamente, debería decir que está conectado.
A continuación creamos un bloque de funciones de Javascript y lo conectamos después del nodo de entrada de Arduino, este bloque nos permite programar en Javascript, y aquí escribimos un código que puede dividir nuestros datos por cada coma.
En este bloque de funciones, divido mis 5 datos usando el siguiente código:
var m1 = {tema: "light1", carga útil: msg.payload.split (",") [0]}; var m2 = {tema: "light2", payload: msg.payload.split (",") [1]}; var m3 = {tema: "light3", carga útil: msg.payload.split (",") [2]}; var m4 = {tema: "millis", carga útil: msg.payload.split (",") [3]}; var m5 = {tema: "onoff", payload: msg.payload.split (",") [4]}; return [m1, m2, m3, m4, m5];
(cambie el código según sea necesario)
Asegúrese de que el nodo esté configurado en 5 salidas (o su equivalente)
Como se ve en la captura de pantalla, ahora tenemos 5 salidas que cada uno vincula a un nodo de depuración y un nodo de panel de texto. Esto será útil para cuando necesitemos verlo en la interfaz de usuario.
Paso 3: base de datos con Wampserver
Para que nuestra base de datos funcione, debe tener Wampserver instalado. Después de que se instale y se muestre como un ícono verde (después de haber iniciado todos los servicios), debe abrir "phpMyAdmin", que debe llevarlo a una pantalla de inicio de sesión. lo cambió anteriormente, simplemente ingrese "root" en el nombre de usuario e inicie sesión.
Presione el botón phpmyadmin debajo de herramientas en la barra izquierda y debería abrir el menú de la base de datos, que se parece a lo que se muestra en la imagen de arriba.
Cree una nueva base de datos y asígnele un nombre relacionado con su proyecto, el mío se llama "sistema de alarma" (estos nombres distinguen entre mayúsculas y minúsculas)
Debajo de esa base de datos, cree una nueva tabla y asígnele un nombre, la mía se llama "alarmdata"
le preguntará si quiere usar "latin1_swedish_ci" y lo mantenemos así.
Ahora creas 6 tablas (1 más de los datos que tenemos)
La primera tabla debe utilizar el tipo de datos "texto largo".
y el resto del conjunto de datos usa "mediumtext"
Asegúrate de nombrarlos. (el primer conjunto de datos debe llamarse "tiempo"
Paso 4: base de datos
El conjunto de datos de Wampserver debería verse así.
(pero sin los datos reales, ya que aún no hemos llegado a eso)
Paso 5: Node-red a Wampserver
Ahora queremos que los datos que estamos generando desde nuestro arduino vayan a nuestro Wampserver.
Comience creando otro bloque de funciones de Javascript y conéctelo a nuestro nodo de entrada arduino.
En este bloque de script, una vez más dividimos nuestros datos, pero también los insertamos en nuestra base de datos.
var data = msg.payload.split (","); var Green1 = data [0]; var Green2 = datos [1]; var Alarma = datos [2]; var Millis = datos [3]; var IsActive = datos [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES ('" + new Date (). toISOString (). slice (0, 19).replace (' T ',' ') + "', '" + Verde1 + "', '" + Verde2 + "', '" + Alarma + "', '" + Millis + "', '" + IsActive + "')"; msg.topic = out; return msg;
Note que ingresé "INSERT INTO alarmsystem.alarmdata", este es el nombre que le dimos a nuestra base de datos y tabla, asegúrese de escribir el nombre exacto que le dio a su base de datos en eso.
Ahora conecte el bloque Javascript a un nodo de depuración y también a un nodo "mysql" que se encuentra debajo de la paleta de almacenamiento en el lado izquierdo.
bajo el bloque mysql lo nombra igual que su base de datos "alarmsystem"
cambiar usuario a "root" (el nombre que usamos para iniciar sesión en nuestro servidor)
El host, el puerto y la base de datos ya deben estar completados con:
Anfitrión: 127.0.0.1
Puerto: 3306
Base de datos: sistema de alarmas
Si todo se hace correctamente, debe conectarse después de implementar los cambios.
También debería poder ver que la base de datos ahora registra sus datos directamente desde Arduino.
Paso 6: usar datos de Wampserver a Node-red
Para el tramo final, queremos ver si podemos tomar los datos que hemos guardado y volver a colocarlos en nuestro Node-red y, con suerte, mostrarlos.
Comience colocando un nodo "inyectar"
En el tema de este nodo ponemos el código: SELECT * FROM alarmsystem.alarmdata
Este podrá encontrar nuestra base de datos cuando lo presionemos.
Conecte el nodo de inyección a un nuevo nodo "mysql" configurado exactamente como el que hicimos en el paso anterior.
Conecte el nodo mysql a un nodo de depuración y un nodo de plantilla que se encuentran en el panel de control.
El nodo de la plantilla será nuestra tabla que podemos actualizar para mostrar los datos de la base de datos a medida que se producen.
Ingrese el código que se muestra en la captura de pantalla anterior (cambie según sea necesario) y ahora debería mostrar una tabla de datos en nuestra IU Node-red.
También podemos agregar un botón de panel para actualizar la tabla desde la propia interfaz de usuario.
Empiece por crear un nodo de botón.
conecte el nodo del botón a un bloque de funciones de Javascript.
en el bloque de funciones insertamos el siguiente código.
msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20"; return msg;
(Green1 es la primera variable de datos en la tabla)
este bloque de funciones debe conectarse a la entrada de nuestro nodo mysql que hicimos anteriormente en este paso.
Paso 7: Finalización
Ahora nuestra interfaz de usuario debería incluir una actualización en vivo de nuestros datos y una tabla con datos de nuestro servidor.
Esto significa que hemos creado una conexión entre Arduino, un programa basado en UI y una base de datos.
Si está interesado en cómo funciona mi sistema de alarma Arduino, he agregado un documento que explica cómo está programado y configurado.
Así como una exportación completa de la programación de node-red.
Recomendado:
Haga hermosos gráficos a partir de datos de Arduino en vivo (y guarde los datos en Excel): 3 pasos
Cree hermosos gráficos a partir de datos de Arduino en vivo (y guarde los datos en Excel): a todos nos gusta jugar con nuestra función P … lotter en el IDE de Arduino. Sin embargo, si bien puede ser útil para aplicaciones básicas, los datos se borran a medida que aumenta se añaden puntos y no es particularmente agradable a la vista. El trazador Arduino IDE no
Cómo hacer un registrador de datos en tiempo real de humedad y temperatura con Arduino UNO y tarjeta SD - Simulación del registrador de datos DHT11 en Proteus: 5 pasos
Cómo hacer un registrador de datos en tiempo real de humedad y temperatura con Arduino UNO y tarjeta SD | Simulación del registrador de datos DHT11 en Proteus: Introducción: hola, soy Liono Maker, aquí está el enlace de YouTube. Estamos haciendo un proyecto creativo con Arduino y trabajamos en sistemas embebidos. Data-Logger: Un registrador de datos (también registrador de datos o registrador de datos) es un dispositivo electrónico que registra datos a lo largo del tiempo w
Crear una base de datos con XAMPP: 4 pasos
Creación de una base de datos con XAMPP: XAMPP es una distribución de Apache completamente gratuita que contiene MariaDB, PHP y Perl. XAMPP proporciona una interfaz gráfica para SQL, lo que le permite almacenar información en la base de datos que crearemos hoy. Cuando comencé a usar bases de datos para proyectos
Cómo obtener datos de una base de datos de Firebase en NodeMCU: 7 pasos
Cómo obtener datos de una base de datos de Firebase en NodeMCU: para este instructable, obtendremos datos de una base de datos en Google Firebase y los obtendremos usando un NodeMCU para su análisis posterior.REQUISITOS DEL PROYECTO: 1) NodeMCU o controlador ESP8266 2) G-Mail cuenta para crear una base de datos de Firebase. 3) Descargue el
Conecte la base de datos IOT de Raspberry Pi con MS Excel - Configuración: 3 pasos
Conecte la base de datos de IOT de Raspberry Pi con MS Excel - Configuración: en el mundo de la captura de datos de IOT, uno crea una gran cantidad de datos que invariablemente se guardan en un sistema de base de datos como Mysql u Oracle. Para acceder a estos datos y manipularlos, uno de los métodos más eficientes es utilizar el producto de Microsoft Office