Skip to main content

Conectando SenseCAP a Grafana vía Node-RED

SenseCAP K1100 - El Kit Prototipo de Sensores representa a Seeed Studio concentrando la esencia de la comunicación LoRa® en tecnología y productos de inteligencia en el borde, para facilitar al máximo el despliegue y dominio de aplicaciones LoRa® e IoT.

pir

Actualizable a Sensores Industriales

Con el controlador SenseCAP S2110 y el registrador de datos S2100, puedes convertir fácilmente el Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con el prototipado, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie SenseCAP de robustos sensores industriales.

La carcasa IP66, configuración Bluetooth, compatibilidad con la red global LoRaWAN®, batería incorporada de 19 Ah y el potente soporte desde la APP hacen del SenseCAP S210x la mejor opción para aplicaciones industriales. La serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad de luz, CO2, CE, y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.

SenseCAP Industrial Sensor
S2100
Data Logger
S2101
Air Temp & Humidity
S2102
Light
S2103
Air Temp & Humidity & CO2
S2104
Soil Moisture & Temp
S2105
Soil Moisture & Temp & EC
S2110
LoRaWAN® Controller
S2120
8-in-1 Weather Station

Grafana

Grafana es una solución de código abierto para ejecutar análisis de datos, obtener métricas que permiten entender la gran cantidad de datos y monitorear nuestras aplicaciones mediante dashboards personalizables y atractivos. Grafana se conecta con todas las posibles fuentes de datos, comúnmente conocidas como bases de datos, tales como Graphite, Prometheus, InfluxDB, ElasticSearch, MySQL, PostgreSQL, entre otras. Al ser una solución open source, Grafana también nos permite crear plugins desde cero para integrarnos con diferentes fuentes de datos. Esta herramienta nos ayuda a estudiar, analizar y monitorear datos durante un periodo de tiempo, lo que técnicamente se llama análisis de series temporales.

Nos ayuda a rastrear el comportamiento de los usuarios, el comportamiento de la aplicación, la frecuencia de aparición de errores en producción o en un ambiente de pre-producción, el tipo de errores que aparecen y los escenarios contextuales, proporcionando datos relativos.

pir

El contenido de este capítulo continuará usando Node-RED, introducido anteriormente, y usará Grafana para visualizar datos de tu instancia InfluxDB 2.4.

Antes de comenzar, por favor prepara lo siguiente:

  1. Si no has instalado o no sabes qué es Node-RED, consulta por favor Tutoriales de Node-RED y SenseCAP.

  2. Empieza desplegando SenseCAP en Node-RED para InfluxDB; los detalles están disponibles en el wiki Conectar SenseCAP a InfluxDB vía Node-RED.

Crear Nodo MQTT

Paso 1. Iniciar Node-RED

Inicia Node-RED escribiendo el comando node-red en la terminal y abre un navegador ingresando la dirección http://localhost:1880 en la barra de direcciones para acceder al editor de Node-RED.

Paso 2. Crear Nodo MQTT

Usamos el nodo Network -> mqtt in y configuramos MQTT en el formato de la API SenseCAP según lo solicitado en el tutorial previo.

  • Servidor: openstream.api.sensecap.seeed.cc

  • Puerto: 1883

  • Protocolo: MQTT V3.1.1

  • Client ID: El formato es org-<Organization ID>-<Random ID>

    • <Organization ID> Tu ID de organización. Lo obtuvimos en Obtener la API SenseCAP.
    • <Random ID> Usa números o letras minúsculas generados aleatoriamente.
  • Formato del Tema (Topic): /device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>

OrgIDTu ID de organización. Lo obtuvimos en Obtener la API SenseCAP.
DevEUIIdentificación única de los sensores. Se encuentra en la etiqueta en la parte trasera del Grove - Wio E5 y en la consola SenseCAP.
ChannelInterfaz física en el dispositivo donde está conectado el sensor. Para el kit K1100, el valor por defecto es 1.
ReservedCampos reservados.
MeasurementIDID del valor medido. Se puede encontrar en la sección Measurement IDs de la documentación de SenseCAP

Paso 3. Validar nodos MQTT

Una vez configurado, haz clic en el botón Deploy en la esquina superior derecha para verificar si la configuración fue exitosa. Si todo está correcto, aparecerá la palabra Connected.

Iniciar InfluxDB OSS

tip

Puedes consultar el tutorial detallado proporcionado por InfluxDB para completar la instalación y el despliegue de InfluxDB, compatible con diferentes sistemas operativos. A continuación, se muestra una guía de instalación usando un sistema Windows 11 como ejemplo.

Paso 1. Descargar InfluxDB v2.4

Haz clic aquí para descargar el archivo zip de InfluxDB v2.4.

Descomprime el archivo descargado en C:\Program Files\InfluxData\ y cambia el nombre de las carpetas o archivos si lo deseas.

Paso 2. Iniciar InfluxDB

En PowerShell, navega a C:\Program Files\InfluxData\influxdb y ejecuta el daemon de InfluxDB con el siguiente comando:

cd -Path 'C:\Program Files\InfluxData\influxdb'
.\influxd
tip

Usa PowerShell o WSL para ejecutar los comandos influx e influxd. Los ejemplos de línea de comandos en esta documentación usan influx e influxd como si estuvieran instalados en el PATH del sistema. Si estos binarios no están en tu PATH, reemplaza influx e influxd en los ejemplos proporcionados por .\influx y .\influxd respectivamente.

Por defecto, InfluxDB usa el puerto TCP 8086 para la comunicación cliente-servidor mediante la API HTTP de InfluxDB.

Configurar InfluxDB

Paso 1. Registrar una cuenta en InfluxDB

Continúa con los pasos anteriores y registra una cuenta en la página que se abrirá.

Por favor, toma nota del Nombre de la Organización que definas aquí, ya que lo utilizaremos más adelante en la configuración de Node-RED.

Paso 2. Obtener URL

Por defecto, InfluxDB usa el puerto TCP 8086 para la comunicación cliente-servidor mediante la API HTTP.

http://localhost:8086/

Para esta sección, la URL de InfluxDB es la anterior. Por favor, anótala, ya que la necesitaremos más adelante en la configuración de Node-RED.

Paso 3. Obtener el Token de API

Ve a la página de API Tokens como se muestra a continuación, crea una nueva interfaz de API para Node-RED y anota el Token.

Configurar Node-RED

Paso 1. Descargar el paquete de InfluxDB

Haz clic en el menú en la esquina superior derecha y selecciona Settings (Configuraciones).

Busca e instala node-red-contrib-influxdb en la sección Palettes -> Install.

Agrega un nodo influx.batch desde la barra lateral izquierda (sección storage), haz doble clic para abrir la página de configuración y luego haz clic en el botón de editar para configurar el nodo influx.batch.

Paso 2. Editar el nodo influx.batch:

  • Versión: 2.0
  • URL: http://localhost:8086/
  • TOKEN: El token que generaste en la sección Obtener el Token de API

Una vez que hayas terminado, haz clic en el botón Add (Agregar) en la esquina superior derecha para volver a la página de propiedades del nodo influx.batch. En este punto, por favor completa con el Nombre de tu Organización y el Nombre del Bucket.

Paso 3. Configurar el nodo de función

El envío de datos a InfluxDB debe seguir un formato específico, por lo que es necesario añadir un nodo de función para procesar los datos correctamente.

Arrastra un nodo de tipo function desde la barra de funciones a la izquierda, haz doble clic para ingresar a la página de edición, y luego copia el código dentro del apartado On Message.

{
var payload = msg.payload;
var topic = msg.topic;
var strs = topic.split("/");
var length = strs.length
if (length >= 2) {
var measurementId = strs[length - 1]
var body = {}
var value = payload.value
if (measurementId == 4100) {
body.co2 = value
measurement = "co2"
} else if (measurementId == 4103) {
body.soilmoisture = value
measurement = "soilmoisture"
} else if (measurementId == 4150) {
body.accelX = value
measurement = "accelX"
} else if (measurementId == 4151) {
body.accelY = value
measurement = "accelY"
} else if (measurementId == 4152) {
body.accelZ = value
measurement = "accelZ"
} else if (measurementId == 4192) {
body.soundintensity = value
measurement = "soundintensity"
} else if (measurementId == 4193) {
body.lightIntensity = value
measurement = "lightIntensity"
} else if (measurementId == 4195) {
body.tvoc = value
measurement = "tvoc"
} else if (measurementId == 4097) {
body.airtemperature = value
measurement = "airtemperature"
} else if (measurementId == 4098) {
body.airhumidity = value
measurement = "airhumidity"
} else if (measurementId == 4175) {
body.AIdetection_1 = value
measurement = "AIdetection_1"
} else if (measurementId == 4176) {
body.AIdetection_2 = value
measurement = "AIdetection_2"
} else if (measurementId == 4177) {
body.AIdetection_3 = value
measurement = "AIdetection_3"
} else if (measurementId == 4178) {
body.AIdetection_4 = value
measurement = "AIdetection_4"
} else if (measurementId == 4179) {
body.AIdetection_5 = value
measurement = "AIdetection_5"
} else if (measurementId == 4180) {
body.AIdetection_6 = value
measurement = "AIdetection_6"
} else if (measurementId == 4181) {
body.AIdetection_7 = value
measurement = "AIdetection_7"
} else if (measurementId == 4182) {
body.AIdetection_8 = value
measurement = "AIdetection_8"
} else if (measurementId == 4183) {
body.AIdetection_9 = value
measurement = "AIdetection_9"
} else if (measurementId == 4184) {
body.AIdetection_10 = value
measurement = "AIdetection_10"
}
msg.payload = [{
measurement: measurement,
fields: body,
tags: {
device: "SenseCAP K1100"
},
timestamp: new Date()
}];
}
return msg;
}

Luego conectamos todos los nodos y hacemos clic en el botón Deploy. Si todo está configurado correctamente, podrás ver que el nodo mqtt in muestra el estado connected (conectado).

Si deseas ver la información del registro de datos, puedes agregar un nodo de debug después del nodo de función.

Una vez que el Wio Terminal se encienda y comience a funcionar, enviará datos al servidor SenseCAP PaaS, y podrás ver esos datos en el registro de depuración (debug log) de Node-RED.

Configurar Grafana

Paso 1. Instalar Grafana

Grafana se puede instalar en muchos sistemas operativos diferentes. Para conocer los requisitos mínimos de hardware y software, así como las instrucciones de instalación, consulta la guía oficial: Instalar Grafana.

Tomando como ejemplo Windows 11, descarga el instalador desde el sitio web de Grafana y haz doble clic para comenzar la instalación.

Paso 2. Iniciar sesión en Grafana

Abre tu navegador web y ve a http://localhost:3000/. El puerto predeterminado que Grafana utiliza es el 3000, a menos que se haya configurado otro.

En la página de inicio de sesión, escribe admin como nombre de usuario y contraseña.

Haz clic en Sign in (Iniciar sesión). Si la autenticación es exitosa, se te pedirá cambiar la contraseña.

Paso 3. Agregar fuente de datos (Data Source)

En la página principal, haz clic en el icono del engranaje en la parte inferior izquierda y luego selecciona Add data source (Agregar fuente de datos).

Selecciona InfluxDB de la lista de fuentes disponibles.

Paso 4. Configurar la fuente de datos InfluxDB

En la página de configuración de la fuente de datos, introduce un nombre para identificarla.

Luego, completa lo siguiente:

  • Query Language (Lenguaje de Consulta): Flux
  • En la sección HTTP, escribe:
  • En la sección Auth, haz lo siguiente:
    • Desactiva Basic auth.
  • En la sección InfluxDB Details, completa:
    • Organization: tu ID de organización. Este puede verse en la página About (Acerca de) de InfluxDB.
    • Token: tu token de API de InfluxDB.
    • Default Bucket: el bucket predeterminado que se usará en las consultas Flux.

Haz clic en Save & Test (Guardar y probar). Grafana intentará conectarse a la fuente de datos InfluxDB 2.4 y mostrará los resultados de la prueba. Si todo está bien configurado, verás el siguiente mensaje:

Consultar y visualizar datos

Con la conexión a InfluxDB ya configurada, puedes usar Grafana y el lenguaje Flux para consultar y visualizar datos de series temporales almacenados en tu instancia de InfluxDB.

Para obtener más información sobre cómo usar Grafana, consulta la documentación oficial de Grafana.
Si estás comenzando con Flux, te recomendamos empezar por Introducción a Flux.

¡También te invitamos a enviarnos tus paneles de datos (dashboards)! Estamos ansiosos por ver tu trabajo.

Soporte técnico y discusión sobre productos

¡Gracias por elegir nuestros productos!
Estamos aquí para ofrecerte diferentes tipos de soporte con el fin de que tu experiencia con nuestros productos sea lo más fluida posible.
Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...