Comunicación presentada al V Congreso Smart Grids
Autores
- Héctor Humanes, Personal Investigador, Universidad Politécnica de Madrid, CITSEM
- Juan Garbajosa, Catedrático de Escuela Universitaria, Universidad Politécnica de Madrid, CITSEM- ETSISI
- Jenifer Pérez, Profesor Contratado Doctor, Universidad Politécnica de Madrid, CITSEM- ETSISI
- Jessica Díaz, Profesor Contratado Doctor, Universidad Politécnica de Madrid, CITSEM- ETSISI
Resumen
Visual CPS es un sistema que responde de forma inteligente a las necesidades de entornos IoT, siendo altamente flexible y personalizable apoyándose en la tecnología Cloud Computing, Visual CPS permite la monitorización y control de características energéticas y ambientales en entornos con personas, mediante planificadores que actúan sobre los actuadores y sensores de los sistemas hardware sobre los que actúa y monitoriza. Visual CPS está construida en base a una arquitectura de microservicios que soporta su sustitución para poder configurar la funcionalidad de sus componentes, la interfaz gráfica de usuario y las tecnologías de persistencia. De esta forma, permite configurarse en base a los requisitos individuales de cada cliente.
Palabras clave
Sistemas Ciberfísicos, IoT, Edificios, Eficiencia Energética, Monitorización, Actuación, Reglas Inteligencia, Cuasi Tiempo Real
Introducción
Existe acuerdo en una idea muy simple: la necesaria gestión eficiente y optimizada de los recursos energéticos, y en concreto los de los espacios habitados. Ya no es tan simple cómo valorar la eficiencia, a día de hoy se requiere una actuación inmediata en base a esa valoración. Por ejemplo, podríamos asociar eficiencia a un consumo moderado y que al tiempo redundara en un confort apreciable por parte de las personas que habitan un espacio. Si este espacio se refiere a un conjunto de edificios, no a uno asilado, el problema con que nos encontramos no es simple de resolver, si se busca una solución escalable a varios edificios, y si además se pretende que el que el sistema resultante sea fácil de usar y tenga un coste contenido.
Este tipo de problemas encajan dentro de los denominados sistemas Cíber Físicos (CPS en terminología sajona) [1], [2]. En nuestro caso, un conjunto de sensores y actuadores orquestados bajo el paradigma de Cloud computing, nos permite abordar de una forma sistemática este problema entre sistemas distintos que se comunican a través de Internet. El paradigma Cloud nos facilita que la solución que desarrollemos para un edificio se pueda extender a otros varios, que constituyen sistemas independientes auto-gestionados que en terminología “cloud” denominaremos tenants [3][4][5]. Por otro lado, estos sistemas auto gestionados en términos de eficiencia energética se apoyan en la toma de decisiones, por ello para decidir variar una variable (temperatura, luminosidad, etc.) se apoyan en sistemas inteligentes con reglas.
Para dar soporte a estas necesidades, se ha desarrollado un sistema software llamado VisualCPS. El sistema desarrollado supone, por tanto, la creación de una plataforma de control de sensores desplegados en espacios cerrados (por ejemplos aulas o salas en edificios), que permitan ser operados y programados por personal de mantenimiento y con una formación muy similar a la que ya tenía antes de instalar el nuevo sistema. Para ello, se requiere de una interfaz gráfica asequible para el usuario no especializado en sistemas de estas características. Además, se ejercitan acciones sobre un conjunto de actuadores desplegados en los espacios cerrados en base a la información recogida por los sensores y a las políticas inteligentes programadas para dotar de un mejor servicio a los usuarios de cada edificio.
El resto de las secciones de este artículo se dedican a describir el sistema VisualCPS en la Universidad Politécnica de Madrid, así como los principios de diseño que guiaron su desarrollo. Para finalizar se introducen una serie de conclusiones.
VisualCPS: Funcionalidad
La interfaz gráfica de VisualCPS supone el punto de entrada del operario a la aplicación. A través de ella se configuran todos los elementos que permiten definir reglas de monitorización y actuación dentro de la aplicación y se dan de alta los sensores físicos que proveen de información en tiempo real. A continuación, se muestran gráficamente las pantallas de la aplicación desarrollada, así como su funcionalidad dentro del sistema:
La sección de sensores muestra y permite dar de alta los sensores físicos que se usarán dentro de la plataforma (ver Figura 1). La interfaz muestra en forma de lista aquellos elementos propios de un sensor que resultan relevantes para el operario que se encuentre monitorizando el sistema. Estos elementos son: un número de identificación simple para el sensor, el puerto de comunicaciones por el que se comunica con la aplicación y el valor que está registrando en tiempo real. Esta sección de la interfaz refresca el contenido de la tabla cada dos segundos para mostrar la información más actualizada en todo momento. Asimismo, si se añadiese un sensor dentro de la aplicación, este aparecería en la tabla a los pocos segundos.
En concreto, la Figura 1 muestra la creación en VisualCPS de una de las motas sensoras (ver Figura 6) utilizadas. En particular, esta mota sensora está monitorizando una temperatura en un aula de 25.95ºC de la Escuela Técnica Superior de Ingeniería de Sistemas Informáticos de la Universidad Politécnica de Madrid, donde se realizó un piloto.
VisualCPS permite dar de alta elementos que controlan los valores que arrojan los sensores físicos y emiten alertas si los valores sobrepasan cierta cota establecida por el operador a modo de regla de comportamiento del sistema (ver Figura 2). Estos elementos son denominados monitores. La interfaz muestra los monitores existentes en el sistema dentro de una lista con información relevante para el operario. Esta información incluye un ID único por cada uno de los monitores, el ID del sensor que están monitorizando, el límite máximo establecido para la medida y su estado actual de alerta. Si un monitor detecta que el valor que está monitorizando supera su umbral establecido entra en estado de alerta y se refleja en la IGU. Los valores son actualizados automáticamente.
Además, esta sección también dispone de un formulario para que el operador pueda dar de alta aquellos monitores que precise, así como sus reglas de alerta. Una vez que se ha rellenado el formulario con el ID de sensor y el límite a monitorizar se pulsa el botón “Enviar” y pocos segundos después se puede ver como el nuevo monitor se añade a la lista. La Figura 2 muestra la creación en VisualCPS de un monitor de temperatura para realizar un control del exceso de temperatura. En particular, la mota sensora está registrando una temperatura de 25.95ºC dentro del aula, por lo que la alerta del monitor de límite 22ºC se ha disparado, no así las alertas de los monitores de 25ºC o la de 99ºC.
VisualCPS permite dar de alta elementos que permiten aplicar reglas de comportamiento complejas mediante operadores lógicos AND y OR sobre los valores de las alertas de dos monitores ya dados de alta en la plataforma (ver Figura 3). Esos elementos son denominados analizadores. De esta manera es posible construir reglas más elaboradas para tratar de representar situaciones de alerta del mundo real de una forma más precisa. La información sobre los analizadores ya dados de alta en la plataforma se muestra en una tabla en la que aparece el ID del analizador, los ID de los dos monitores que lleva asociados, el operador lógico que aplican sobre el valor de las alertas de monitores para determinar si el analizador entra en alerta y por último el valor de alerta del analizador. La información de la lista de analizadores es refrescada cada dos segundos para que el operario tenga la información del sistema en cuasi tiempo real.
El operador se representa mediante un valor binario, siendo 1 el valor correspondiente a la operación AND y 0 el valor correspondiente a la operación OR. Este operador lógico actúa de la siguiente manera:
- Si el valor lógico es AND, ambos monitores deben haber recibido medidas procedentes de los sensores que superen su valor máximo para que el analizador entre en estado de
- Si el valor lógico es OR, al menos uno de los monitores debe haber recibido medidas procedentes del sensor que supere su valor máximo para que el analizador entre en estado de alerta.
Asimismo, es posible dar de alta nuevos analizadores para el sistema. Este contiene elementos desplegables con los que es posible seleccionar los dos monitores y el operador lógico y un botón “Enviar” con el que finalmente pasan a aparecer en la lista si la inserción ha sido satisfactoria (ver Figura 3).
En la Figura 3 se puede apreciar cómo se han creado tres analizadores. Por ejemplo, el primero se ha creado con el objetivo de introducir una regla compleja en la aplicación que represente la comprobación del control del defecto de temperatura, de forma que engloba dos monitores, estando tan solo uno de ellos en alerta, por lo que analizador no entra en estado de alerta al haber establecido AND como operador lógico.
VisualCPS permite conectar un analizador con un actuador para constituir la unión lógica entre una monitorización del mundo físico y una actuación sobre este en respuesta a una alerta (ver Figura 4). Esta conexión se presenta como un elemento en la herramienta llamado planificador. La IGU muestra todos los planificadores dados de alta en la aplicación, así como los ID de los analizadores y actuadores asociados a cada planificador.
En la figura 4 se puede observar la creación de un planificador que permite unir, por ejemplo, las reglas de comprobación de presencia humana con el actuador correspondiente al encendido del sistema de calefacción.
La sección de actuadores muestra y permite dar de alta elementos que representan las acciones que se ejecutarán en el mundo físico (ver Figura 5). La interfaz muestra los actuadores que se encuentran dados de alta en el sistema junto con información relevante sobre ellos como el ID del actuador, la URL del API del actuador físico y el valor que se debe suministrar como actuación. Los valores de la tabla son refrescados automáticamente cada dos segundos.
Además, VisualCPS permite dar de alta nuevos actuadores dentro de la aplicación. Para ello se introduce un ID, la URL del actuador y el valor a aplicar y se pulsa en el botón “Enviar”. Si la inserción ha sido correcta aparecerá en la lista de actuadores en pocos segundos. Siguiendo con el ejemplo de los planificadores, en la Figura 5 se puede observar cómo se ha creado el actuador responsable de encender la calefacción.
VisualCPS: Configuración y Hardware
VisualCPS requiere para funcionar su conexión con el medio físico a monitorizar y sobre el que actuar. Para ello es necesario el despliegue una serie de sensores que proveerán a la plataforma de información en tiempo real y de unos actuadores que sean capaces de actuar sobre el medio físico recibiendo órdenes de la plataforma. Para lanzar un piloto de demostración se ha diseñado una mota sensora que provee de toda esta funcionalidad empaquetada en un solo elemento. Como se puede observar en la Figura 6, la mota se encuentra desarrollada en forma de prototipo.
La mota sensora está construida empleando electrónica de fácil acceso para el público general en aras de hacerla accesible para cualquier persona que deseara replicarla. Los elementos más importantes de la mota sensora son los siguientes:
- Arduino UNO: Constituye uno de los núcleos de proceso de la mota sensora. Es parte hardware encargada de recibir las señales de los distintos sensores de la mota e interpretar los voltajes para transformarlos en datos entendibles por las personas. Otra de sus funciones es la de mostrar la información en tiempo real en la pantalla LCD, así como la configuración de red que posee la mota cuando se conecta a una red Wifi (Figura 7).
- Adafruit ESP-8266 Huzzah: Constituye el otro núcleo de proceso de la mota sensora. Entre sus capacidades está la de dotar a la mota de conectividad inalámbrica mediante Wifi. Este componente está en comunicación permanente con el módulo Arduino para transmitirle los datos de red en cuando establece una conexión con una red inalámbrica. Además, una vez establecida una conexión, permanece a la escucha de la información de los sensores que le proporciona Arduino para transmitirla a la plataforma (Figura 8).
- Sensor de temperatura y humedad DHT22: Este sensor analógico proporciona información acerca de la temperatura y humedad. Es lo suficientemente preciso como para tener cabida en nuestro proyecto, pues posee una precisión de ±0,5ºC y ±2% de humedad (Figura 9).
- Fotorresistencia: Este elemento es el encargado de medir las condiciones lumínicas del entorno. Antes de enviar su resultado a la plataforma se le aplica una función de transformación sobre los valores leídos que tiene como resultado una medida porcentual de la luminosidad existente en la sala. De esta manera los resultados que arroja son fácilmente entendibles por el público general (Figura 10).
Todos estos elementos son controlados por los dos microcontroladores antes descritos. Se han desarrollado dos pequeños programas escritos en lenguaje C mediante el entorno de programación Arduino IDE. Estos programas se ejecutan en los dos módulos de proceso y son independientes uno de otro. Se ha optado por un intercambio de datos mediante JSON .
Arquitectura VisualCPS
Visual CPS es una herramienta en la nube que permite la monitorización, control y actuación de sistemas ciber-físicos, soportando capacidades de variabilidad y multitenencia [3][4][5]. Se ha escogido Cloud como el medio de despliegue y la plataforma de desarrollo GPaaS. Finalmente, VisualCPS implementa una arquitectura orientada a microservicios [2], empleando el patrón de diseño MVC (modelo-vista-controlador) [6].
La arquitectura sigue el patrón MVC gracias al uso del framework de desarrollo Spring con sus módulos Web MVC y Spring Boot. Dentro Spring Web MVC se ha introducido un componente externo en la implementación, Thymeleaf. Las páginas HTML resultantes actúan como IGU (Interfaz Gráfica de Usuario) de la aplicación, por las cuales navegan los usuarios y proporcionan órdenes a la plataforma.
En lo que respecta a la persistencia se ha optado por el uso de MongoDB como BD. MongoDB es una base datos orientada a documentos que se encuentra categorizada entre las llamadas NoSQL. Según sus desarrolladores este producto está pensado para proporcionar rapidez y amplia escalabilidad del sistema, lo cual coincide con las necesidades y características de VisualCPS. Por este motivo se ha seleccionado MongoDB como sistema de BD para los mecanismos de persistencia de la aplicación.
La capa de persistencia se ha implementado utilizando las capacidades de Spring Boot en lo que respecta al manejo de drivers de comunicación con los distintos SGBS (Sistemas Gestores de Bases de Datos). Este framework permite instanciar de manera casi automática clases Java que interactúen con BBDD para proporcionar una funcionalidad out-of-the-box de conexión, inserción, eliminación, modificación y búsqueda de datos en la BD. La aplicación se encuentra desplegada sobre la plataforma GPaaS, plataforma de Indra (Minsait), y más concretamente sobre su servidor de aplicaciones GAppServer. Esta plataforma otorga la capacidad de desplegar la aplicación en un contenedor de aplicaciones, que pueden ser replicadas a través de la creación de varios tenant. También puede modificar estos tenants en el momento de su despliegue, dotando a la aplicación de variabilidad tanto interna como externa.
Conclusiones
La plataforma GPaaS se encuentra desplegada sobre la infraestructura del proveedor Cloud Microsoft Azure. De esta manera, gracias a los mecanismos de autoprovisionamiento de recursos con independencia del proveedor Cloud que posee GPaaS, es posible escalar la aplicación en cuestión de segundos de forma automática.
En lo que respecta a la aplicación VisualCPS, en su primera versión, cada uno de los componentes se han programado para que puedan actuar como microservicios individuales (sensorización, monitorización, análisis, planificación y actuación) mediante una ApiRest que sirva de interfaz de comunicación.
Agradecimientos
El trabajo desarrollado ha sido posible gracias a la financiación parcial de MESC (DPI2013-47450-C2-2-R), CPSELabs (EU Horizon 2020), CROWDsensing (TIN2016-79726-C2-1-R) y colaboración de Minsait (by Indra).
Referencias
- [1] Ragunathan (Raj) Rajkumar, Dionisio de Niz, Mark H. Klein, Cyber-Physical Systems (SEI Series in Software Engineering), Addison-Wesley, January 2017.
- [2] Dietmar P.F. Möller, Guide to Computing Fundamentals in Cyber-Physical Systems: Concepts, Design Methods, and Applications, Computer Communications and Networks, Springer, 1617-7975, 2016
- [3] Bezemer, C., Zaidman, A.: Multi-tenant SaaS applications: maintenance dream or nightmare? Int. Workshop on Principles of Software Evolution (IWPSE), pp. 88–92. ACM, NY 2010.
- [4] Bezemer, C., Zaidman, A., 2010. Challenges of reengi-neering into multitenant SaaS applications. Tech-nical Report of Delft Uni. of Technology, TUD-SERG-2010-012, 2010
- [5] Fehling, C., Leymann, F., Mietzner, R., 2010: A framework for optimized distribution of tenants in cloud applications. IEEE 3rd Int. Conference on, Cloud Computing (CLOUD), 2010, pp. 252-259
- [6] Head First Design Patterns, Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra, 2004.