Skip to main content

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.

pir

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.

Sensor Industrial SenseCAP
S2100
Registrador de Datos
S2101
Temp. y Humedad del Aire
S2102
Luz
S2103
Temp. y Humedad del Aire y CO2
S2104
Humedad y Temp. del Suelo
S2105
Humedad y Temp. del Suelo y EC
S2110
Controlador LoRaWAN®
S2120
Estación Meteorológica 8 en 1

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:

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>

OrgIDTu ID de organización. Lo hemos obtenido en Obtener la API de SenseCAP.
DevEUIIdentificació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.
ChannelUna interfaz física en el dispositivo a la cual está conectado el sensor. Para el kit K1100, el valor predeterminado aquí es 1.
ReservedCampos Reservados.
MeasurementIDID del valor medido. Este ID se puede encontrar en la sección Measurement IDs de la documentación de SenseCAP
note

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;
}
tip

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 valorTipo de valor
TimestampDataTime
lightIntensityNumber
tip

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®.
Loading Comments...