1. Introducción
Un centro de datos aloja equipo de procesamiento y almacenamiento de información y telecomunicaciones de empresas y organizaciones. Es importante mantener seguro este equipo ya que de él depende la productividad de clientes y usuarios. Los centros de datos deben contar con sistemas de seguridad altamente confiables que permitan el acceso controlado a las salas de equipo que concentran los sistemas de cómputo. Estas cuentan con una cantidad reducida de puertas y ventanas y solo se permite la entrada a personal autorizado de administración y mantenimiento quién debe mantenerlas cerradas todo el tiempo. Cuando, por alguna razón, una puerta o ventana permanece abierta más de un cierto período de tiempo, se activa una señal audible y luminosa que alerta al personal de seguridad [1].
Los centros de datos son auditados periódica y permanentemente por instituciones y empresas que certifican, entre otras cosas, los mecanismos y procedimientos de acceso para garantizar la calidad de servicios ofrecidos. Una de las medidas auditadas es la monitorización remota del estado, cerrada o abierta, de las puertas y ventanas [2].
Con el desarrollo de la tecnología, en la actualidad, se exige a los centros de datos la monitorización remota de variables, procesos y procedimientos desde la Internet, para permitir a los responsables de la seguridad e instituciones certificadoras revisar en línea e históricamente la operación del centro de datos [3]. Este requerimiento se resuelve con el desarrollo soluciones y aplicaciones de la Internet de las cosas (IoT).
1.1. La Internet de las cosas
La IoT es un concepto con el cual la información leída por sensores electrónicos usados en hogares, oficinas, industrias, laboratorios, teléfonos móviles, automóviles, infraestructura de ciudades y centros de datos, se transmite a un dispositivo central de monitorización. El dispositivo central está ubicado en la Internet, permitiendo la conexión digital de objetos de uso cotidiano a la misma, esto es, conectar el mundo físico con el digital por medio de computadoras y plataformas web en la nube que almacenan y procesan la información transmitida por sensores [4].
Los recientes avances tecnológicos en electrónica, sistemas digitales y comunicaciones, así como la disponibilidad de proveedores de servicios de almacenamiento y análisis de información en la nube han impulsado el desarrollo de la IoT. Estos servicios permiten recibir información de sensores, almacenarla y procesarla para realizar una acción sobre un proceso remotamente. Adicionalmente, existen servicios mediante los cuales se puede transmitir mensajes de alerta de voz, texto, video o de WhatsApp a un teléfono móvil [5] para notificar un evento.
El presente trabajo es resultado del requerimiento de una empresa propietaria de centros de datos. Se solicitó realizar un sistema cuyo objetivo sea transmitir a un servidor ubicado en la nube el cambio de estado, abierta o cerrada, de tres puertas y dos ventanas de la sala de equipos del centro de datos. Los cambios de estado, así como fecha y hora deben ser almacenados por el servidor. El sistema debe contar con una interfaz de usuario, que se pueda acceder desde la Internet, mediante la cual se muestre en línea el estado de puertas y ventanas e históricamente puedan verse los cambios de estado. En caso de que una puerta o ventana permanezca abierta más de un período de tiempo configurable, se deberá enviar un mensaje de alerta SMS y de WhatsApp al teléfono móvil del administrador del sistema. En el centro de datos se encuentra instalado un punto de acceso wifi a la Internet localizado a 35 metros de la ventana más lejana.
1.2. Investigaciones recientes
Se ha realizado una cantidad importante de trabajos para monitorizar remotamente variables de ambiente en centros de datos. Siendo la IoT una de las áreas de rápido crecimiento, durante los últimos años se ha implantado con este fin redes inalámbricas de sensores (WSN-Wireless Sensor Network) usando en casi todas tecnología wifi [6]. Una gran parte de estas aplicaciones monitorizan variables de ambiente como temperatura y humedad relativa [7, 8], otras monitorizan sistemas de enfriamiento [9], flujo de aire en gabinetes de equipo de cómputo [10, 11] y sistemas de alimentación eléctrica [12]. Algunas redes inalámbricas utilizan tecnología ZigBee [13] y LoRa.
Por otra parte, se ha diseñado una gran variedad de aplicaciones usando plataformas de IoT en áreas de monitorización de signos vitales [14 – 1 7], cuidado de la salud [18], procesos industriales [19], parámetros ambientales y atmosféricos [20], control de tráfico [21], puentes [22] y sistemas de prevención de inundaciones [23] en hogares y ciudades inteligentes, sistemas de alimentación de animales en granjas [24] y ubicación de infantes en el hogar [25], entre otras. La mayoría de estas aplicaciones usan transceptores wifi y pocas utilizan tecnología LoRa [26, 27] o GPRS [28].
El sistema desarrollado en este trabajo está compuesto por una red de cinco nodos de monitorización, uno para cada puerta o ventana, y un nodo central. Los nodos de monitorización transmiten inalámbricamente el estado de los sensores de las puertas y ventanas al nodo central y este los envía, a través del punto de acceso wifi, al servidor en la nube. La interfaz de usuario se implantó en el nodo central por medio de un servidor web. Los dos tipos de nodos se realizaron usando como base una tarjeta PyBoard. Haciendo uso del proveedor de servicios de Internet ThinkSpeak se almacena y accede la información transmitida por los nodos de monitorización desde la interfaz de usuario. Para enviar los mensajes SMS y de WhatsApp se hizo uso del proveedor de servicios de Internet Twilio. Tanto los sensores como los transceptores wifi usados son de bajo consumo de energía.
1.3. ThingSpeak y Twilio
ThingSpeak es una plataforma de servicios de análisis de información en la nube usada para colectar datos de sensores instalados en dispositivos inteligentes, almacenarla, visualizarla y analizarla. Para aplicaciones que transmiten al servidor hasta 3 millones de mensajes por año, el servicio de ThinkSpeak no tiene costo. Twilio es una plataforma de servicios basada en API (Application Programming Interface) que permite tran mitir mensajes de voz, video y texto a aplicaciones web, móviles y de escritorio. El uso gratuito de Twilio permite enviar hasta cien mensajes al mes.
1.4. Contribución del trabajo
Tomando en cuenta lo anterior, no se ha realizado hasta ahora una aplicación de IoT como la aquí presentada para un centro de datos. Las que se han llevado a cabo, son de mayor costo debido a que usan tarjetas de desarrollo de precio alto en las cuales muchos de sus elementos no son usados y porque necesitan instalar, configurar y mantener el servidor en la nube. Adicionalmente, el mantenimiento del sistema realizado en este trabajo es más sencillo y rápido que otros de su tipo, ya que toda la programación se hizo en MicroPython. La aportación de este trabajo es que resuelve una necesidad real de seguridad monitorizando desde la Internet el estado de puertas y ventanas tal y como lo solicitan las instituciones certificadoras. Los sistemas actuales de este tipo realizan la monitorización localmente.
2. Materiales y métodos
La metodología usada para desarrollar el sistema consistió de dos fases. En la primera, se diseñó el sistema dividiéndolo en tres módulos: los nodos de monitorización, el nodo central y la interfaz de usuario, tal y como se indica en el diagrama de bloques de la Figura 1.
Los nodos de monitorización y el nodo central conforman la red inalámbrica de sensores. Posteriormente, en la segunda fase, fueron seleccionados los componentes adecuados para realizar la función de cada módulo del sistema.
2.1. Los nodos de monitorización
Se construyeron cinco nodos de monitorización, todos con la arquitectura mostrada en la Figura 2.
Los nodos de monitorización están compuestos por la tarjeta PyBoard, la tarjeta de los sensores de apertura de puertas y ventanas y la interfaz inalámbrica.
La tarjeta PyBoard PYBV1.0 utilizada en este módulo es la más usada de su tipo para ejecutar programas realizados en MycroPython. Cuenta con los siguientes recursos hardware: microcontrolador STM32F405RG con CPU Cortex M4 de 168 MHz y punto flotante, puerto USB, memoria flash ROM de 1024 KB, memoria RAM de 192 KB, ranura para tarjeta Micro SD, reloj de tiempo real, 29 terminales de entrada/salida de propósito general, 3 convertidores analógico/digital de 12 bits, 2 convertidores digital/analógico de 12 bits, 2 puertos UART, 4 puertos USART, programa de bootloader para actualización del firmware y se alimenta con 3.3 V.
Se usó la tarjeta PyBoard ya que su microcontrolador ejecuta programas realizados en MicroPython, lo cual facilitó el desarrollo de la programación al no usar un lenguaje complejo de bajo nivel y porque existe una gran cantidad de bibliotecas de funciones de libre uso y código abierto en la nube para realizar una variedad de tareas.
En aplicaciones de monitorización de apertura de puertas y ventanas se usan comúnmente dos tipos de dispositivos: los interruptores Reed y los sensores de efecto Hall. Ambos dispositivos detectan la presencia o ausencia de imanes o magnetos instalados en puertas o ventanas. Los interruptores Reed usan un interruptor físico que se cierra en presencia de un campo magnético y se abre cuando el campo es removido. La naturaleza mecánica de los interruptores Reed limita su tiempo de vida, causa efectos de rebote al cerrar o abrir y su comportamiento es afectado por vibraciones. La instalación de este tipo de interruptores incrementa el costo de la aplicación ya que comúnmente deben soldarse en la puerta o ventana, lo que puede dañar el encapsulado de vidrio. Cuando están abiertos, los interruptores Reed no consumen corriente y cuando están cerrados fluye una corriente pequeña a través de la resistencia de pull-down o pull-up usada en su salida. Esta cantidad de corriente es significativa en sistemas alimentados por baterías.
En contraste, los sensores de efecto Hall no tienen partes móviles. Detectan la presencia o ausencia de un campo magnético dentro de su rango. Lo hacen usando la diferencia de voltaje (V) que desarrolla un conductor cuando circula a través de él una corriente eléctrica (I) en presencia de un campo magnético (B). Son inmunes a vibraciones y no presentan rebotes. Los sensores de efecto Hall son de tamaño compacto, encapsulado resistente y consumen menos corriente eléctrica que los interruptores Reed. Activan su salida a nivel bajo, 0 lógico, cuando la densidad del flujo magnético, procedente de un imán en su cercanía, excede el umbral operativo BOP. Esta salida se usa como interruptor para conectarse a una terminal de entrada de un controlador. El controlador puede encontrarse en modo de reposo, o de bajo consumo de energía, y despertar cuando exista un cambio en la salida del sensor.
Por las razones indicadas anteriormente, para implantar los nodos de monitorización se utilizó la tarjeta TIDA-01066. Esta tarjeta integra dos sensores digitales de efecto Hall de ultra bajo consumo de energía y una batería tipo moneda CR2032. Los sensores detectan la presencia de campo magnético de imanes o magnetos instalados en las puertas y ventanas. La tarjeta TIDA-01066 integra dos sensores DRV5032X para evitar detectar falsos negativos y maximizar la distancia entre sensores e imanes. La X indica la sensibilidad de los sensores: alta, mediana y baja. El umbral operativo para cada sensibilidad es 3.1 mT, 7.5 mT y 50 mT, respectivamente. Los sensores se alimentan con una fuente de 1.65 a 5.5 V, consumen en promedio 0.57 μA y trabajan a una frecuencia de muestreo actualizando la salida a 20 Hz o 5 Hz para el consumo de energía bajo. La respuesta de estos sensores es omnipolar, lo que les permite detectar el polo norte o sur del imán simplificando su instalación.
En los sistemas de seguridad basados en redes inalámbricas de sensores, una de las principales limitaciones es la alimentación eléctrica. Si los sensores de la red se alimentan con baterías, el costo de mantenimiento para el remplazo de estas se convierte en un problema. La batería CR2032 de tarjeta TIDA-01066 tiene un tiempo de vida de 10 años, lo que permite mantener funcionando los sensores de la misma durante un período prolongado antes de cambiar la batería. Esta fue otra razón por la que se utilizó la tarjeta TIDA-01066 en los nodos de monitorización. La batería CR2032 es una celda pequeña de ion litio que, a diferencia de las baterías alcalinas, el voltaje de salida permanece estable hasta que se agota el tiempo de vida de la misma. Trabaja en el rango de temperatura de -40 °C to 85 °C y puede usarse en interiores y exteriores.
Los nodos de monitorización se instalaron en la parte fija de las ventanas y los imanes en la parte deslizable, existiendo una distancia de 20 mm entre ellos. Las puertas del centro de datos son de dos hojas, los nodos de monitorización se instalaron en una hoja y los imanes en la otra, de forma tal que cuando la puerta o ventana está cerrada, la salida del sensor de efecto Hall presenta nivel bajo. Las salidas de los sensores se conectaron a las terminales GPIO 2 y GPIO 4 de la tarjeta PyBoard. El microcontrolador de la PyBoard se encuentra casi todo el tiempo en modo de reposo o bajo consumo de energía. Cuando se abre o cierra la puerta o ventana, el cambio de nivel en cualquiera de las terminales GPIO 2 y GPIO 4 genera una interrupción que despierta al microcontrolador. La función que atiende la interrupción de este evento, o ISR (Interrupt Service Routine), transmite al nodo central el estado del sensor.
Por otra parte, en el mercado existe una gran cantidad de tipos y proveedores de imanes. El proveedor con mayor variedad de imanes es K&J Magnetics. Cuenta con imanes de Neomidio de grado N35, N38, N40, N42, N45, N48, N50 y N52, de distintas dimensiones, formas y alcance de campo magnético. El grado indica nivel de intensidad o fuerza del campo magnético del imán, N35 es el nivel más bajo. En la página web de K&J Magnetics se encuentra disponible una calculadora que permite determinar el imán adecuado dependiendo de las características necesarias. Para la realización de este trabajo se utilizaron imanes BZX0X08-N42 cuyas características son las siguientes: longitud 101.6 mm, ancho 25.4 mm, grosor 12.7 mm, intensidad de campo magnético 3,424 Gauss y alcance de campo magnético 10 mm. El alcance de campo magnético determina la distancia máxima bajo la cual se mantiene la intensidad del campo magnético antes de disminuir.
La red inalámbrica de sensores implantada en este trabajo es una red de estrella en la cual el nodo central es el coordinador. El nodo central trabaja como colector de información de los nodos de monitorización y recibe de ellos mensajes cuando los sensores asociados cambian de estado
Los nodos de monitorización usan como interfaz inalámbrica el módulo TinySine WiFi Skin for PyBoard para comunicarse con el nodo central. Este módulo trabaja en base al circuito ESP-07S, el cual pertenece a la familia ESP8266. El UART del ESP-07S se conectó al puerto UART1 de la tarjeta PyBoard para llevar a cabo la comunicación en serie.
La programación del microcontrolador de los nodos de monitorización realiza las siguientes actividades: 1) Configura las terminales GPIO 2 y GPIO 4 como entradas, inicializa el UART1 y configura la interfaz inalámbrica, 2) Transmite el mensaje al nodo central para unirse a la red y 3) Activa el modo de reposo o bajo consumo de energía del cual sale al recibir la interrupción de las terminales GPIO 2 o GPIO 4. Al despertar el microcontrolador y salir de este modo, transmite el mensaje al nodo central indicando el valor de la salida o estado de los sensores y retorna al modo de reposo. En la Figura 3 se indica el diagrama de flujo usado para realizar este programa.
2.2. El nodo central
El nodo central está compuesto por la tarjeta PyBoard y la interfaz inalámbrica. Para comunicarse con los nodos de monitorización y a la Internet, el nodo central usa como interfaz inalámbrica el circuito TinySine WiFi Skin for PyBoard.
Las funciones del nodo central son las siguientes: 1) Inicializa la red de sensores, 2) Recibe los mensajes de información transmitida por los nodos de monitorización para enviarla al servidor en la nube, 3) Implanta la interfaz de usuario.
Estas funciones se realizan a través del programa que ejecuta el microcontrolador de la tarjeta PyBoard el cual lleva a cabo las siguientes tareas: A) Configura el UART1 y la interfaz inalámbrica, establece el valor del temporizador de puerta o ventana abierta y establece el número de teléfono móvil del administrador del centro de datos y B) Entra a un ciclo en el que invoca la función que implanta la interfaz de usuario y espera la interrupción del UART1.
La función que atiende la interrupción del UART1 se encarga de recibir la información de los nodos de la red y transmitirla al servidor en la nube. Esta función usa la REST API de escritura para trasmitir el mensaje a ThingSpeak. El mensaje contiene el identificador del módulo de monitorización, el estado del sensor asociado y la fecha y la hora. Si el sensor está desactivado la puerta o ventana está abierta. En este caso, la función arranca un temporizador que al expirar interrumpe al microcontrolador. La función que atiende la interrupción del temporizador verifica si el módulo central recibió el mensaje que indica el cambio de estado del sensor. En caso afirmativo, la puerta o ventana ha sido cerrada y termina la función. En caso negativo, transmite los mensajes de alerta SMS y de WhatsApp usando la REST API de Twilio. Estos mensajes enviados al teléfono móvil del administrador del centro de datos indican que la puerta o ventana ha excedido el tiempo de apertura permitido.
2.3. La interfaz de usuario
La interfaz de usuario está compuesta por el servidor web y la página del mismo. A través de la interfaz de usuario se visualiza en línea el estado de los sensores de puertas y ventanas y se puede descargar a un archivo de texto la información histórica colectada por el sistema. La implantación del servidor web se basó en la biblioteca de funciones de código abierto uasyncio. Esta biblioteca fue diseñada para realizar servidores web con microcontroladores, llamados picowebs, usando la cantidad mínima de memoria RAM. En la Figura 4 se muestra la pantalla principal de la interfaz de usuario realizada.
3. Resultados y discusión
Se realizaron dos grupos de pruebas. El primer grupo tuvo como objetivo determinar el tipo de imán a usar considerando que la separación entre el nodo de monitorización y el imán es 10 mm. Utilizando la calculadora de campo magnético de K&J Magnetics se solicitó un imán en forma de bloque con alcance de campo magnético de 10 mm. La calculadora indicó 7 tipos de imanes de diferente grado, dimensión, intensidad de campo magnético y precio. Para realizar las pruebas se colocó cada uno de los 7 imanes en una puerta y en una ventana y se midió la distancia a la cual el nodo de monitorización detectó su apertura. A pesar de que el alcance del campo magnético de los imanes usados es de la misma magnitud, los resultados de las pruebas mostraron alcances ligeramente diferentes al valor nominal, tal y como se muestra en la Tabla 1.
Para esta aplicación se necesitó usar un imán que active los sensores a una distancia de 10 mm. No fue necesario un imán fuerte, cuya intensidad de campo magnético sea grande. Es por esto y por los resultados obtenidos en estas pruebas, que se usó el imán BZX0X08 de grado N42, de precio bajo y alcance real de 10 mm. No se realizaron pruebas para medir la intensidad del campo magnético debido a que la función de los imames es activar lo sensores, no tienen como función atraer un elemento metálico.
Aunque no se presentaron problemas en la comunicación de los nodos de la red con el punto de acceso wifi 802.11 n, se realizó el segundo grupo de pruebas para determinar el alcance de la red. Para llevar a cabo estas pruebas se ubicó un nodo de monitorización en distintos puntos del centro de datos, inclusive en lugares más distantes a la ventana más lejana al punto de acceso. Los resultados mostraron que el alcance de la red es 47 metros con línea de vista a una velocidad de 230 Mbps, menor a los 300 Mbps que pueden lograrse teóricamente usando el estándar 802.11 n. A una distancia mayor a 47 metros la potencia de la señal wifi recibida (RSSI-Received Signal Strength Indicator) en el nodo de monitorización, decreció aceleradamente y se perdió el enlace cuando el nivel cayó a los -86 dBm como se muestra en la gráfica de la Figura 5.
Para medir el nivel de RSSI se utilizó la herramienta inSSIDer instalada en una computadora portátil junto al nodo de monitorización.
4. Conclusiones
El resultado de este trabajo fue un sistema de monitorización de puertas y ventanas a través de una plataforma IoT, el cual reporta a un servidor en la nube el cambio de estado de tres puertas y dos ventanas de la sala de equipos de un centro de datos. Cuenta con una interfaz de usuario que muestra en línea el estado de puertas y ventanas. Su instalación no es intrusiva, ya que usa comunicación inalámbrica y no modifica el cableado del centro de datos. Fue programado usando MicroPython y bibliotecas de funciones de libre uso y código abierto, lo cual redujo el tiempo y complejidad de la implantación. Usa plataformas de IoT en la nube de reciente creación que proporcionan un servicio eficiente y confiable para almacenar información y transmitir los mensajes de alerta a un teléfono móvil, llevando a cabo una aplicación que cumple con los requisitos establecidos. El alcance logrado en la transmisión wifi fue 47 metros con línea de vista.