Conectando SenseCAP a InfluxDB vía Node-RED
SenseCAP K1100 - El Kit de Prototipos de Sensores representa el esfuerzo de Seeed Studio por concentrar la esencia de la comunicación LoRa® en productos con tecnología de inteligencia en el borde, facilitando al máximo el despliegue y dominio 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 los módulos Grove en sensores LoRaWAN®. Seeed no solo te ayuda en la fase de prototipado, sino que también te ofrece la posibilidad de escalar tu proyecto utilizando la serie SenseCAP de sensores industriales robustos.
La carcasa con protección IP66, configuración vía Bluetooth, compatibilidad con redes LoRaWAN® globales, batería integrada de 19 Ah y el soporte completo desde la APP convierten a la serie SenseCAP S210x en la mejor opción para aplicaciones industriales. Esta 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 modelo SenseCAP S210x para asegurar el éxito de tu próximo proyecto industrial.
Acerca de InfluxDB
InfluxDB es una base de datos de series temporales de código abierto, centrada en lectura de alto rendimiento, escritura eficiente, almacenamiento optimizado y análisis en tiempo real de datos masivos. 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. Es ampliamente utilizada en monitoreo DevOps, monitoreo IoT, análisis en tiempo real y otros escenarios.

Este capítulo continuará utilizando Node-RED, como se introdujo anteriormente, y facilitará la gestión del kit K1100 en InfluxDB mediante el uso de Node-RED.
Si aún no has instalado o no sabes qué es Node-RED, por favor 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 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 que requiere la API de SenseCAP, como se indica en el tutorial anterior.
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 obtuviste en la sección Obtener la API de SenseCAP.<Random ID>
: usa números o letras minúsculas generados aleatoriamente.
Formato del Tópico:
OrgID | Tu ID de organización. Se obtuvo en la sección *Obtener la API de SenseCAP*. |
DevEUI | Identificación única del dispositivo sensor. Esta información se encuentra en la etiqueta detrás del Grove - Wio E5 y también en la consola de dispositivos de SenseCAP. |
Channel | Interfaz física del dispositivo a la que está conectado el sensor. Para el kit K1100, el valor predeterminado es `1`. |
Reserved | Campos reservados. |
MeasurementID | ID del valor medido. Este ID se puede encontrar en la sección de *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 comprobar si la configuración fue exitosa.
Si se completó correctamente, aparecerá el mensaje Connected.

Configurar InfluxDB
Paso 1. Regístrate o inicia sesión en InfluxDB
Si ya te has registrado en InfluxDB, inicia sesión en el sitio web de InfluxDB.

Si aún no usas ni te has registrado en InfluxDB, completa tu registro e inicia sesión aquí.

Al registrarte, puede aparecer una ventana solicitando que elijas un proveedor. Puedes elegir según tu preferencia o simplemente seleccionar uno al azar.

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

Luego haz clic en CREATE BUCKET.

En la nueva ventana emergente, ingresa el nombre del bucket y selecciona el periodo de retención de datos gratuito: 30 días.

Después, haz clic en API Tokens.

Ahora elige crear un Custom API Token (Token API personalizado).

Asigna permisos de lectura y escritura al bucket que acabas de crear, y luego haz clic en el botón Create.

Una vez creado, copia el token de API al portapapeles y guárdalo en un lugar seguro. Lo utilizaremos más adelante.

Si cierras esta ventana sin copiar el token, no podrás recuperarlo más adelante.
Configurar Node-RED
Paso 1. Descargar paleta de InfluxDB
Haz clic en el menú superior derecho y selecciona Settings (Configuración).

Busca e instala node-red-contrib-influxdb en Palettes -> Install.

Agrega el nodo influx.batch desde la barra de almacenamiento en la izquierda. Haz doble clic en él para entrar en la página de configuración, y luego haz clic en el botón de edición para editar el nodo influx.batch.

Paso 2. Editar nodo influx.batch
- Versión: 2.0
- URL: Obtenida desde Settings -> Organization Profile

- TOKEN: El token que generaste en la sección Obtener Token de API.

Una vez completado, haz clic en el botón Add en la esquina superior derecha para volver a la página de propiedades del nodo influx.batch. En este punto, por favor completa tu Organization (por defecto es el correo electrónico con el que te registraste en InfluxDB) y el nombre del Bucket que creaste.

Paso 3. Configurar el nodo function
El envío de datos a InfluxDB requiere un formato de datos específico, por lo que es necesario añadir un nodo de función para procesar dicho formato.

Arrastra un nodo function desde la barra de funciones a la izquierda, haz doble clic en él para abrir la página de edición y luego copia el siguiente código en la sección 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, verás que el nodo mqtt in muestra el estado connected.
Si deseas 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 se enciende y comienza a enviar datos al servidor SenseCAP PaaS, podremos verificar los datos desde el log de depuración de Node-RED.

Configurar paneles visuales en InfluxDB
Para obtener una visualización más clara de los datos del sensor, podemos crear gráficos de línea.
Regresa a InfluxDB Cloud y haz clic en CREATE DASHBOARD, luego en ADD CELL.

Si SenseCAP ya ha comenzado a enviar mensajes de datos a InfluxDB, entonces podrás ver la etiqueta del sensor en esta página. Para mostrar el contenido de los datos, simplemente marca la casilla correspondiente.


Solución de Problemas
P1: ¿Por qué no puedo encontrar la Paleta en Node-RED?
R: Si no puedes encontrar la opción Palette en la configuración, revisa el terminal para ver si aparece algún mensaje de error al iniciar Node-RED.

El escenario más común es que la versión de npm sea demasiado antigua para iniciar el editor de paletas.
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 del Producto
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte distintos tipos de soporte y asegurar que tu experiencia con nuestros dispositivos sea lo más fluida posible.
Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.