PowerBI con Raspberry PLC

Visualiza los datos de tus sensores en tiempo real con la ayuda de PowerBi
31 de enero de 2022 por
PowerBI con Raspberry PLC
Boot & Work Corp. S.L., Amil Shrivastava

 Introduction

Esta entrada del blog es sólo una demostración de la versatilidad y flexibilidad del PLC Raspberry. Es compatible con una plétora de servicios que hay en el mercado y para este blog, estamos recogiendo datos de las entradas del PLC y mostrándolos en tiempo real en el panel de control de PowerBI. 

PowerBI es un software de visualización de datos con licencia de Microsoft que se centra principalmente en la inteligencia empresarial. Tiene bastantes características y un amplio espectro de servicios de inteligencia empresarial. 

Para la demostración, conectaremos un sensor al PLC Raspberry y los datos que recoja se transmitirán en el panel de control de PowerBI en tiempo real

Conjuntos de datos en tiempo real de PowereBI

PowerBI tiene tres tipos de conjuntos de datos en tiempo real, que son:

  • Conjunto de datos push
    En esto, cuando los datos son empujados en el servicio de PowerBI, una base de datos se crea automáticamente y por lo tanto los informes pueden ser generados. Se pueden generar visuales con esta base de datos en el panel de control de PowerBI.
  • Conjunto de datos en streaming
    En este caso, los datos, al ser empujados en el servicio PowerBI, sólo se almacenan en la caché temporal del mismo, que caduca rápidamente. Esto significa que con estos datos almacenados sólo se pueden hacer visuales de visualización y no se pueden generar informes o visuales basados en informes.
  • Conjunto de datos de streaming PubNub
    Con esto, usted tiene que utilizar un SDK PubNub para leer un flujo de datos PubNub existente. En este caso, no hay datos almacenados por el servicio PowerBI. PubNub es una plataforma de comunicación en tiempo real que proporciona una infraestructura sobre la que se pueden construir aplicaciones de chat en tiempo real.

Utilizaremos el conjunto de datos Streaming para transmitir la salida de nuestro sensor de temperatura y humedad.

Los pasos del proceso son los siguientes:

1) Regístrate en PowerBi

2) Dirigete a "Mi espacio de trabajo"; haga clic en nuevo para añadir un conjunto de datos de streaming.

Regístrate en PowerBimi espacio de trabajo - PowerBI con RaspberryPLCStreaming datashit - PowerBI con RaspberryPLC

3) Al hacer clic en el conjunto de datos de streaming, tendrás que elegir la opción API en la ventana emergente que aparece.

conjunto de datos de streaming - PowerBI con RaspberryPLC

4) Rellen los parámetros y sus tipos de datos.

 
Paramaters and datatypes - PowerBI with Raspberry PLC


Asegúrate de añadir la variable timestamp, ya que es importante para los tipos de datos de streaming y, muy importante, activa el interruptor de análisis de datos históricos.

5) En la siguiente ventana, obtendrás el enlace de la API que se utilizarás para conectar tu script a la base de datos, por lo tanto, cópialo y la estructura del par clave:valor de las variables que insertó en los pasos anteriores.

6) Tu conjunto de datos de streaming está listo, ahora vamos a preparar un tablero de instrumentos con mosaicos que transmitirán tus datos. Para ello, haz clic en "+new" de nuevo desde el paso 2 y selecciona "Dashboard" esta vez.

Dashboard - PowerBI con Raspberry PLC

7) En la página del Tablero de mandos, haz clic en editar y añade un mosaico

Añadir un título - PowerBI con RaspberryPLC

8) Rellena todos los datos requeridos

Datos en tiempo real - PowerBI con RaspberryPLC

9) Elije tu conjunto de datos de streaming

Título de datos en streaming personalizado - PowerBI con Raspberry PLC

10) Ahora tienes que seleccionar el tipo de visualización y añadirle valores desde el menú desplegable. Repite este paso hasta que hayas introducido todos los valores de los conjuntos de datos creados anteriormente.


Añade los datos necesarios en los siguientes pasos y ya está listo.

Los siguientes pasos consisten únicamente en codificar el programa y añadir el enlace API obtenido en el paso 5.

Código

"""
Python sample for Raspberry Pi which reads temperature and humidity values from
a DHT22 sensor, and sends that data to Power BI for use in a streaming dataset.
"""
import urllib3, time
from datetime import datetime
from rpiplc_lib import rpiplc
rpiplc.init("RPIPLC_50RRA")
rpiplc.pin_mode("I0.5",rpiplc.INPUT)
REST_API_URL = 'API LINK'

while True:
    try:
  humidity,temp = dht.read_retry(SENSOR, PIN)
        now=datetime.strftime(datetime.now(), "%Y-%m-%dT%H:%M:%S%Z")
    # data that we're sending to Power BI REST API
        data = '[{{ "timestamp": "{0}", "temperature": {1:0.1f}, "humidity": {2:0.1f} }}]'.format(now, temp, humidity)
        print (data)
    # make HTTP POST request to Power BI REST API
        http = urllib3.PoolManager()
        req = http.request(url=REST_API_URL,method='POST', body=data, headers={'Content-Type':'application/json'})
        response = req.read()
        print("POST request to Power BI with data:{0}".format(data))
        print("Response: HTTP {0} {1}\n".format(response, response))
       # rpiplc.delay(1000)
    except urllib3.exceptions.HTTPError as e:
        print("HTTP Error: {0} - {1}".format(e.code, e.reason))
    except urllib3.exceptions.RequestError as e:
        print("Request Error: {0}".format(e.reason))
    except Exception as e:
        print("General Exception: {0}".format(e)) except Exception as e: print("General Exception: {0}".format(e))



Algunos enlaces útiles

1) Análisis de Big Data en la Industria 4.0

2) Las 5 mejores bases de datos IIOT de código abierto

3) Cómo aprender automatización industrial

Buscar en nuestro blog

PowerBI con Raspberry PLC
Boot & Work Corp. S.L., Amil Shrivastava 31 de enero de 2022
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>