Blog de Amazon Web Services (AWS)

Publicación en el blog: Uso de AWS IoT Core y Amazon OpenSearch Service para supervisar los transformadores de distribución de energía

Jairo da Silva Junior, arquitecto de soluciones, sector público de Brasil

Douglas Ramiro, arquitecto de soluciones, sector público de Brasil

Vinicius Silva, arquitecto de soluciones, Sector Público de Brasil

 

 

Los clientes de energía y servicios públicos han estado buscando formas de ingerir grandes cantidades de datos de sensores de una manera segura y escalable para realizar análisis de datos en tiempo real, detectar anomalías, entrenar modelos de aprendizaje automático (ML) para predecir fallas y extraer perspectivas a partir de estos datos.

El uso de sensores en este segmento es una tendencia que hemos observado en interacciones constantes con nuestros clientes que buscan soluciones de Smart Grids y Smart Meter Data Analytics (MDA).  Como muestra una encuesta de IDC de 2018, el crecimiento de los dispositivos conectados en el sector de energía y servicios públicos aumentará en gran medida la recopilación y el análisis de los datos operativos y de los clientes. El estudio también mostró que la industria invertiría 73 000 millones de dólares en soluciones de Internet de las cosas (IoT) en 2018, según la Guía mundial de gastos de Internet de las cosas (IoT) de IDC.

Por lo tanto, con el crecimiento continuo del gasto en IoT, los servicios basados en la nube ofrecen a las empresas de energía y servicios públicos una mayor flexibilidad cuando el ancho de banda de almacenamiento de datos supera Además, la nube ofrece la capacidad de aumentar o disminuir rápidamente este ancho de banda según sea necesario, lo que permite a las empresas ajustarse a eventos como el ritmo de implementación de medidores inteligentes o el tiempo que lleva implementar sensores en los activos en el campo. Los recursos en la nube también ayudan a gestionar el aumento en la recopilación y utilización de datos, proporcionando seguridad, escalabilidad y agilidad a la vez que se administran de manera rentable.

Prácticas recomendadas para cargas de trabajo de IoT en AWS

Cuando diseñamos arquitectura para la nube, el marco de buena arquitectura de AWS nos ayuda a comprender los pros y los contras de nuestras decisiones y, al usarlo, podemos aprender las mejores prácticas arquitectónicas para el diseño y la operación de soluciones confiables, seguras, eficientes y costo optimizado.

Existen enfoques de marco de buena arquitectura para casos de uso específicos, como IoT (Internet de las cosas), donde la atención se centra en las cargas de trabajo de IoT, desde la adquisición de dispositivos conectados (cosas), hasta el eventual desmantelamiento de estos dispositivos de manera segura, confiable y automatizada. AWS proporciona varios servicios que le permiten diseñar arquitecturas sólidas para cargas de trabajo de IoT.

Las aplicaciones de IoT se componen de varios dispositivos (o cosas) que se conectan e interactúan de forma segura con los componentes en el borde de la nube o dentro de la propia nube para ofrecer valor empresarial. Estas aplicaciones recopilan, procesan, analizan y actúan sobre los datos generados por los dispositivos conectados. Hay siete capas lógicas que se deben tener en cuenta al crear cargas de trabajo de IoT desde la perspectiva del marco de buena arquitectura:

  1. Diseño y fabricación: Después de identificar los requisitos empresariales, el punto de partida de un proyecto de IoT es involucrar a fabricantes capaces de construir los sensores necesarios. Las decisiones que se tomen en esta etapa afectarán a las siguientes capas.
  2. Borde: Esta capa se compone de los dispositivos físicos, responsables de recopilar métricas y actuar en los dispositivos a los que están vinculados. Una vez que sepamos que es posible crear estos dispositivos, podemos comenzar la implementación de inmediato con el simulador de dispositivos de AWS IoT o a través del núcleo de IoT «Comenzar» y usando el script de ejemplo proporcionados en este proyecto.
  3. Aprovisionamiento: La capa de aprovisionamiento de sus cargas de trabajo de IoT consiste en la infraestructura de clave pública (PKI) que se utiliza para crear identidades de dispositivo únicas y el flujo de trabajo de la aplicación que proporciona datos de configuración al dispositivo. La capa de aprovisionamiento también participa en el mantenimiento continuo y el eventual desmantelamiento de los dispositivos a lo largo del tiempo.
  4. Comunicación: La capa de comunicación se ocupa de la conectividad, el enrutamiento de mensajes entre dispositivos remotos y el enrutamiento entre dispositivos y la nube. La capa de comunicación le permite establecer cómo los dispositivos envían y reciben los mensajes de IoT, y cómo los dispositivos representan y almacenan su estado físico en la nube.
  5. Admisión: Un impulsor empresarial clave para IoT es la capacidad de agregar todos los flujos de datos creados por sus dispositivos y transmitir los datos a su aplicación de IoT de manera segura y confiable. La capa de ingestión desempeña un papel clave en la recopilación de datos del dispositivo, al tiempo que desacopla el flujo de datos con la comunicación entre dispositivos.
  6. Análisis de datos Uno de los beneficios de implementar soluciones de IoT es la capacidad de obtener información y datos profundos sobre lo que sucede en las instalaciones y en el perímetro. Una forma principal de percibir la información contextual es a través de la implementación de soluciones que puedan procesar y realizar análisis de datos de IoT.
  7. Solicitud: AWS IoT proporciona varias formas de facilitar la forma en que las aplicaciones nativas de la nube consumen los datos generados por los dispositivos de IoT Estos recursos conectados incluyen recursos informáticos sin servidor, bases de datos relacionales para crear vistas materializadas de sus datos de IoT y aplicaciones de administración para operar, inspeccionar, proteger y administrar sus operaciones de IoT.

Arquitectura de referencia

En este blog, simularemos un escenario en el que se instalan sensores en transformadores de distribución de energía para recopilar métricas como la temperatura y la humedad del ambiente, el nivel de aceite, la dispersión de gases, la humedad interna y la emisión de ruido. Estos datos ayudarán en el mantenimiento de estos dispositivos, y la arquitectura utilizada se puede aplicar a otros escenarios de monitoreo y mantenimiento predictivo, como la distribución de agua, gas o cualquier tipo de datos de sensores recopilados para un análisis cercano en tiempo real (casi en tiempo real)).

Para lograr este objetivo, la figura 1.1 describe una arquitectura de referencia siguiendo el siguiente flujo:

  1. Un sensor de IoT conectado a Internet, mediante el uso del protocolo MQTT, publica un mensaje sobre un tema proporcionado por IoT Core.
  2. Una regla definida por IoT Core supervisa el tema en espera de nuevos mensajes. Cuando se recibe un mensaje, esta regla envía los datos recibidos a Amazon Kinesis Data Firehose.
  3. Amazon Kinesis Data Firehose es responsable de:
    1. Almacenamiento de los datos originales (sin procesar) recibidos en un depósito de Amazon S3.
    2. Enriquecimiento de datos mediante una función de AWS Lambda que obtiene información de generadores registrados anteriormente en Amazon DynamoDB, como la fecha de instalación y la geolocalización.
    3. Enviar los datos al servicio de indexación de Amazon OpenSearch Service para que se puedan ver en Kibana.
  4. Para ver los datos en Kibana proporcionados por Amazon OpenSearch Service, debe autenticarse a través de Amazon Cognito para evitar el acceso no autorizado a los datos. Además de proporcionar Kibana, Amazon OpenSearch Service también se puede configurar para solicitar el envío de un correo electrónico en caso de que se produzcan anomalías en los datos, utilizando Amazon Simple Notification Service para este fin.

Figura 1.1 Ingestión de datos de transformadores para su análisis en AWS

En nuestra demostración, utilizamos el simulador de dispositivos de IoT para generar datos de telemetría de 13 transformadores, y desde el momento en que se reciben los datos en el tema de IoT, se toman medidas para enviar estos registros. para Amazon Kinesis Data Firehose.

En Kibana, tenemos dos paneles de control:

La primera se llama visión general. Muestra un mapa de un barrio en São Paulo donde los transformadores se muestran como puntos y sus colores representan el riesgo de falla, un campo calculado que define una puntuación basada en los valores de otros atributos. En este panel también podemos ver un resumen de la cantidad de dispositivos conectados en ese territorio, y su agrupación por nivel de ruido, distribuidos en tres bandas de riesgo: verde, amarillo y rojo.

Panel de información general

El segundo panel muestra detalles de los transformadores, donde podemos analizar uno o más de estos dispositivos y obtener una visión general de su estado en una ventana de tiempo.

Panel de vista detallada

Implementación de la solución

Esta demostración se puede implementar a través del kit de desarrollo en la nube (CDK) de AWS. El kit de desarrollo en la nube de AWS (AWS CDK) es un marco de desarrollo de software de código abierto para definir recursos de aplicaciones en la nube mediante lenguajes de programación conocidos como Java, Python y NodeJS.

Se requieren los siguientes requisitos previos para implementar la demostración:

  • Tener una cuenta de AWS.
  • Python 3
  • Gestor de paquetes pip.
  • Concha Bash
  • CLI de CDK

Para implementar la infraestructura anterior con el kit de desarrollo en la nube (CDK) de AWS, ejecute los siguientes comandos en Bash:

$ git clone https://github.com/aws-samples/power-transformers-iot-kinesis-elasticsearch
$ cd transformadores de potencia-iot-kinesis-elasticsearch/
$ chmod +x run.sh; USER_EMAIL=<seu email>. /run.sh

Simulación de datos de transformadores

Para simular dispositivos de IoT, AWS proporciona un simulador como solución. Este simulador permite realizar pruebas de integración a través de una aplicación web que se puede implementar en una cuenta de AWS de manera segura y escalable. Use el enlace a continuación para implementar el simulador:

https://aws.amazon.com/solutions/implementations/iot-device-simulator/

Generación de datos en Device Simulator

Siga los siguientes pasos para simular el envío de datos del transformador en Device Simulator:

  1. Al autenticarse en el Simulador de dispositivos, haga clic en el menú superior Tipos de dispositivos.
  2. Haga clic en el botón Agregar tipo de dispositivo.
  3. Rellene el valor del transformador en el campo Nombre del tipo de dispositivo
  4. Rellene el valor en/telemetría en el campo Tema.
  5. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: oilTemperature
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: 20
    4. Valor máximo: 110
  6. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: oilLevel
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: 0
    4. Valor máximo: 100
  7. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: temperature
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: 0
    4. Valor máximo: 50
  8. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: humidity
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: 5
    4. Valor máximo: 99
  9. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre de atributo: noisLevel
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: 40
    4. Valor máximo: 105
  10. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: gasEmisionLevel
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: #1
    4. Valor máximo: 16
  11. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: MoistureLevel
    2. Tipo de datos de atributo:  Entero
    3. Valor mínimo: #1
    4. Valor máximo: #7
  12. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre del atributo: timestamp
    2. Tipo de datos de atributo:  Marca de tiempo UTC
    3. Formato de marca de tiempo: Predeterminado
  13. Haga clic en el botón Agregar atributo, complete los siguientes datos y haga clic en el botón Guardar:
    1. Nombre de atributo: id
    2. Tipo de datos de atributo:  Elija uno de la matriz
    3. Matriz: PEQUETITA, CENTRO COMERCIAL JK, ROCIO, EATALY, CENTRO COMERCIAL VILA OLIMPIA, FERREIRA LOBO, ESTANPLAZA FUNCHAL, FUNCHAL 10, ESTACIÓN VILA OLIMPIA, TEATRO SANTANDER, NACIONES UNIDAS 05, FARIA LIMA 28, FARIA LIMA 14, FARIA LIMA 100, FARIA LIMA 42
  14. Haga clic en el botón Guardar para crear el tipo de transformador. La pantalla debe tener un aspecto similar al de la imagen de abajo:

Simulador de dispositivos: creación de un dispositivo

15. Después de crear un dispositivo, ahora es posible crear una nueva simulación. Para hacerlo, haga clic en el menú superior de Simulaciones.

16. Complete los campos con los siguientes datos:

    1. Nombre de la simulación: Transformadores SP
    2. Tipo de simulación: Creado por el usuario
    3. Seleccione un tipo de dispositivo: transformador
    4. Número de dispositivos: 20
    5. Intervalo de transmisión de datos: 5
    6. Duración de la transmisión de datos: 20

17. Haga clic en el botón Guardar para guardar la simulación. La pantalla debe tener un aspecto similar al de la imagen de abajo:

18. Para iniciar una simulación, seleccione la simulación TransformerSSP de la tabla y haga clic en el botón Iniciar simulación (s).

Acceda a Kibana para comprobar los gráficos una vez finalizada la simulación.

Conclusión y próximos pasos

El marco de buena arquitectura de AWS proporciona prácticas recomendadas de arquitectura en todos los pilares para diseñar y operar sistemas en la nube confiables, seguros, eficientes y rentables para aplicaciones de IoT. El marco proporciona un conjunto de preguntas que puede utilizar para revisar una arquitectura de IoT existente o propuesta y también un conjunto de prácticas recomendadas de AWS para cada pilar. El uso del marco en su arquitectura ayuda a producir sistemas estables y eficientes, lo que le permite centrarse en sus requisitos funcionales.

En esta publicación de blog, presentamos una arquitectura para procesar datos de sensores que se instalan en transformadores de distribución de energía para recopilar métricas como la temperatura y la humedad del ambiente, el nivel de aceite, la dispersión de gases, la humedad interna y la emisión de ruido.

Como próximos pasos en la evolución de la arquitectura propuesta, podemos integrarnos con otros servicios de inteligencia artificial y aprendizaje automático de AWS, como Amazon SageMaker, para realizar un mantenimiento predictivo, por ejemplo.

Referencias

https://github.com/aws-samples/power-transformers-iot-kinesis-elasticsearch

 


Sobre de los autores

Jairo Silva Junior es arquitecto de soluciones en el equipo del sector público de AWS centrado en el gobierno. Anteriormente, trabajó en varios roles en el ciclo de entrega de software, como desarrollo, arquitectura y operación, en varios tipos de empresas. Tiene una maestría en Ciencias de la Computación y le apasionan los viajes y la comida.

 

 

 

 

 

Douglas Ramiro es un arquitecto de soluciones especializado en Spot y Graviton en AWS. Todos los días, los clientes de AWS ahorran dinero al adoptar estas tecnologías. Douglas tiene la misión de difundir estas tecnologías en LATAM para que los clientes de AWS puedan reducir sus costos.

 

 

 

 

 

Vinicius Silva es arquitecto de soluciones en AWS y apoya a los clientes del sector público con un enfoque en el sector de la energía y los servicios básicos. Graduado en Ciencias de la Computación de la Universidad de São Paulo (USP), está interesado en la modernización y el desarrollo de aplicaciones, contenedores y la cultura DevOps.