Conectando SenseCAP a InfluxDB a través de Node-RED
SenseCAP K1100 - El Kit de Prototipo de Sensores representa a Seeed Studio concentrando la esencia de la comunicación LoRa® en tecnología y productos de inteligencia de borde, para el despliegue y dominio más fácil de aplicaciones LoRa® e IoT.

Actualizable a Sensores Industriales
Con el controlador S2110 de SenseCAP 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 sensores industriales robustos.
La carcasa IP66, configuración Bluetooth, compatibilidad con la red global LoRaWAN®, batería integrada de 19 Ah y el potente soporte de 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, EC, y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.
Acerca de InfluxDB
InfluxDB es una base de datos de series temporales de código abierto, que se enfoca en lectura de alto rendimiento, escritura de alto rendimiento, almacenamiento eficiente y análisis en tiempo real de datos masivos de series temporales. Además de protocolos nativos como HTTP y UDP, también es compatible con protocolos de comunicación de componentes como CollectD, Graphite, OpenTSDB y Prometheus. Ampliamente utilizado en monitoreo DevOps, monitoreo IoT, análisis en tiempo real y otros escenarios.

El contenido de este capítulo continuará utilizando Node-RED introducido anteriormente y facilitará la gestión del kit K1100 en InfluxDB mediante el uso de Node-RED.
Si no has instalado o no sabes qué es Node-RED, consulta Tutoriales de Node-RED y SenseCAP.
Crear Nodo MQTT
Paso 1. Iniciar Node-RED
Inicia Node-RED escribiendo el comando node-red
en la terminal y abre un navegador e ingresa la dirección http://localhost:1880 en la barra de direcciones para acceder al editor de Node-RED.
Paso 2. Crear Nodo MQTT
Utilizamos el nodo Network -> mqtt in y configuramos mqtt en el formato de la API de SenseCAP como se solicita en el tutorial anterior.
-
Server: openstream.api.sensecap.seeed.cc
-
Port: 1883
-
Protocol: MQTT V3.1.1
-
Client ID: El formato es
org-<Organization ID>-<Random ID>
<Orgnization ID>
Tu ID de organización. Lo hemos obtenido en Obtener la API de SenseCAP.<Random ID>
utiliza tus propios números generados aleatoriamente o letras minúsculas.
-
Topic Format:
/device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>
OrgID | Tu ID de organización. Lo hemos obtenido en Obtener la API de SenseCAP. |
DevEUI | Identificación única de dispositivos sensores. Esta información se puede encontrar en la etiqueta en la parte posterior del Grove - Wio E5, así como en el dispositivo de la consola SenseCAP. |
Channel | Una interfaz física en el dispositivo al cual está conectado el sensor. Para el kit K1100, el valor predeterminado aquí es 1. |
Reserved | Campos Reservados. |
MeasurementID | ID del valor medido. Este ID se puede encontrar en la sección Measurement IDs de la documentación de SenseCAP |
Paso 3. Validar nodos MQTT
Una vez configurado, haga clic en el botón Deploy en la esquina superior derecha para verificar si la configuración fue exitosa. Si está completado correctamente, entonces se mostrará la palabra Connected.

Configurar InfluxDB
Paso 1. Registrarse o iniciar sesión en InfluxDB
Si ya se ha registrado en InfluxDB, entonces inicie sesión en el sitio web de InfluxDB.

Si no usa o no se ha registrado en InfluxDB, entonces complete su registro e inicie sesión aquí.

Al registrarse, puede aparecer una página pidiéndole que elija el proveedor, puede elegir según su preferencia, o simplemente seleccionar uno.

Paso 2. Obtener API Token
Como se muestra a continuación, haga clic en Bucket.

Luego haga clic en CREATE BUCKET.

Ingrese el nombre en la nueva ventana emergente y seleccione el período de retención de datos gratuito - 30 días.

Luego, como se muestra a continuación, haga clic en API Tokens.

Entonces elegimos crear un Custom API Token.

Otorgue permisos de lectura y escritura a los Buckets que acabamos de crear y haga clic en el botón Create a continuación.

Una vez que se haya creado, puede guardarlo copiando el API Token al portapapeles. Guárdelo en un lugar seguro por ahora, lo usaremos en un paso posterior.

Si cierra la ventana aquí, no podrá obtener este API Token nuevamente.
Configurar Node-RED
Paso 1. Descargar Paletas de InfluxDB
Haga clic en la barra de menú superior derecha y seleccione Settings.

Busque e instale node-red-contrib-influxdb en Paletts -> Install.

Agregue influx.batch desde la barra de almacenamiento de la izquierda, haga doble clic en él para ingresar a la página de configuración, luego haga clic en el botón de edición para editar el nodo influx.batch.

Paso 2. Editar nodo influx.batch:
- Version: 2.0.
- URL: Obtenido desde Settings -> Orgnization Profile.

- TOKEN: El que generó en la sección Obtener API Token.

Cuando haya terminado, haga clic en el botón Add en la esquina superior derecha para regresar a la página de propiedades del influx batch, en este punto complete su Orgnization (Por defecto es la dirección de correo electrónico que usa para registrarse en InfluxDB) y el nombre del Bucket.

Paso 3. Configurar el nodo de función
El reporte de datos a InfluxDB necesita seguir un formato de datos específico, por lo que es necesario agregar un nodo de función para procesar el formato de datos.

Arrastre el nodo de función desde la barra de funciones de la izquierda, haga doble clic en él para ingresar a la página de edición, luego copie el código a 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 y si todo está configurado correctamente podrás ver el nodo mqtt in mostrando conectado.
Si quieres ver la información de registro de los datos, puedes añadir un nodo debug después del nodo function.

Una vez que el Wio Terminal comience a encenderse y funcionar y empiece a enviar datos al servidor SenseCAP PaaS, entonces podemos verificar los datos en el registro de depuración de Node-RED.

Configurar paneles visuales de InfluxDB
Para obtener una vista más visual de los datos del sensor, podemos dibujar algunos gráficos de líneas.
Regresa a InflucDB Cloud y haz clic en CREATE DASHBOARD para ADD CELL.

Si SenseCAP ha comenzado a enviar mensajes de datos a InfluxDB, entonces puedes ver la etiqueta del sensor en esta página. Para el contenido de los datos que quieres mostrar, simplemente marcamos la casilla.


Solución de problemas
P1: ¿Por qué no puedo encontrar la Paleta en Node-RED?
R: Si no puedes encontrar la Paleta en la configuración, verifica tu terminal para un mensaje de error cuando inicies Node-RED.

El escenario más común es que tu versión de npm es demasiado antigua para iniciar el editor de Paleta.
Si tu situación es como se describe arriba, ejecuta Powershell como administrador e ingresa el siguiente comando para actualizar npm.
npm install -g npm
Luego simplemente reinicia Node-RED.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.