Conectando SenseCAP a Power BI 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.
Power BI
Conecta y analiza todo tu patrimonio de datos combinando Power BI con servicios de análisis de Azure, incluyendo Azure Synapse Analytics y Azure Data Lake Storage. Analiza petabytes de datos, utiliza capacidades avanzadas de IA, aplica protección adicional de datos y comparte más fácilmente información en toda tu organización.
En este tutorial te guiaremos sobre cómo importar datos de sensores desde SenseCAP hacia Power BI para un procesamiento de datos más profundo utilizando Node RED.

Preparación preliminar
Para completar este tutorial, necesitas:
- Si no has instalado o no sabes qué es Node-RED, por favor consulta Tutoriales de Node-RED y SenseCAP.
- Una cuenta de Power BI. Si no tienes una cuenta de Power BI, regístrate para una prueba gratuita de Power BI Pro antes de comenzar.
- En cualquiera de los siguientes wikis, has subido exitosamente datos a 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 introduce 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 de SenseCAP como se solicita en el tutorial anterior.
-
Servidor: openstream.api.sensecap.seeed.cc
-
Puerto: 1883
-
Protocolo: MQTT V3.1.1
-
ID de Cliente: 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>
usa tus propios números generados aleatoriamente o letras minúsculas.
-
Formato del Tema:
/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 a la 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 |
Recomendamos que un nodo mqtt in solo transmita los valores de un único sensor para evitar confusión de datos causada por transmitir los valores de múltiples sensores al mismo tiempo.

Paso 3. Validar nodos MQTT
Una vez configurado, por favor 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 nodo de función
El reporte de datos a Power BI 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
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4103) {
body.soilmoisture = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4150) {
body.accelX = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4151) {
body.accelY = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4152) {
body.accelZ = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4192) {
body.soundintensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4193) {
body.lightIntensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4195) {
body.tvoc = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4097) {
body.airtemperature = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4098) {
body.airhumidity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4175) {
body.AIdetection_1 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4176) {
body.AIdetection_2 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4177) {
body.AIdetection_3 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4178) {
body.AIdetection_4 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4179) {
body.AIdetection_5 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4180) {
body.AIdetection_6 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4181) {
body.AIdetection_7 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4182) {
body.AIdetection_8 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4183) {
body.AIdetection_9 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4184) {
body.AIdetection_10 = value
body.timestamp = msg.payload.timestamp
}
msg.payload = body;
}
return msg;
}
El código anterior es común a todos los sensores y puedes elegir pegarlo todo en un nodo de función o interceptar una sección de uno de los sensores que estés usando para utilizar. Vale la pena señalar que el nombre del sensor en el programa necesita coincidir con el nombre establecido posteriormente en Power BI para que el flujo de datos se transfiera exitosamente. Por ejemplo, en el programa anterior el sensor de luz tiene el nombre del valor: lightIntensity.
Crear los conjuntos de datos de Power BI
Paso 1. Inicia sesión en tu cuenta de Power BI.
Paso 2. Crea un espacio de trabajo.
Selecciona Espacios de trabajo, y luego selecciona Crear un espacio de trabajo.

En la página Crear un espacio de trabajo, ingresa Análisis en tienda - checkout como el Nombre del espacio de trabajo. Selecciona Guardar.

Paso 3. Crea un conjunto de datos de transmisión.
En la página del espacio de trabajo, selecciona + Nuevo > Conjunto de datos de transmisión.

En la página Nuevo conjunto de datos de transmisión, elige API, y luego selecciona Siguiente.

Ingresa Light-Sensor como el Nombre del conjunto de datos.
Ingresa los valores de Luz desde la transmisión en la siguiente tabla:
Nombre del valor | Tipo de valor |
---|---|
Timestamp | DataTime |
lightIntensity | Number |
El nombre del Valor debe ser el mismo que el nombre del programa de función en Node RED.

Ahora tienes un conjunto de datos de transmisión. Por favor, toma nota de la URL de Push que obtienes aquí, la usaremos en el siguiente paso.

Configurar el nodo de solicitud http
Añade http request desde la barra de almacenamiento de la izquierda, haz doble clic en él para entrar a la página de configuración, luego haz clic en el botón editar para editar el nodo http request.

Por favor, copia la URL obtenida en la sección anterior en la URL en la página de solicitud http.
Solo cambia el método a POST y guárdalo.

Desplegar y observar datos
Paso 1. Desplegar
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 de función.

Una vez que el Wio Terminal comience a encenderse y funcionar y comience a enviar datos al servidor SenseCAP PaaS, entonces podemos verificar los datos en el registro de depuración de Node-RED.
Paso 2. Configurar paneles de Power BI
Selecciona Workspaces > In-store analytics - checkout.
Selecciona + New > Dashboard.

Ingresa Store analytics como el nombre del panel, y selecciona Create.
Añadir gráficos de líneas
Añade mosaicos de gráfico de líneas para mostrar el valor de Luz de los sensores integrados del Wio Terminal. Usa la información en la siguiente tabla para crear los mosaicos. Para añadir cada mosaico, comienza seleccionando Edit > Add a tile.

Selecciona Custom Streaming Data, y luego selecciona Next.

Configura la coordenada horizontal para mostrar la marca de tiempo y la coordenada vertical para mostrar los valores de datos en el valor.

Cuando el flujo de datos comience a transferirse, podrás ver el panel como un gráfico de líneas.
También puedes añadir más gráficos o análisis de datos para satisfacer tus necesidades.

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 atender diferentes preferencias y necesidades.
Declaración
- La Marca LoRa® es una marca comercial de Semtech Corporation o sus subsidiarias.
- LoRaWAN® es una marca utilizada bajo licencia de LoRa Alliance®.