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.

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.
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.
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:
Si no has instalado o no sabes qué es Node-RED, consulta por favor Tutoriales de Node-RED y SenseCAP.
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>
OrgID | Tu ID de organización. Lo obtuvimos en Obtener la API SenseCAP. |
DevEUI | Identificación única de los sensores. Se encuentra en la etiqueta en la parte trasera del Grove - Wio E5 y en la consola SenseCAP. |
Channel | Interfaz física en el dispositivo donde está conectado el sensor. Para el kit K1100, el valor por defecto es 1. |
Reserved | Campos reservados. |
MeasurementID | ID 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
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
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.