Laboratorio 2 -Microprocesadores Tema: Sistemas embebidos en SBC Manuel Andrés Vélez Guerrero, Ph.D. Oscar Humberto Sierra Herrera, M.Eng. Objetivo El objetivo de esta práctica de laboratorio es introducir a los estudiantes en el proceso de recolección de datos y telemetría, utilizando una Single Board Computer (SBC) como Raspberry Pi 4 u ODROID. La SBC servirá como plataforma central para adquirir datos de sensores y transmitirlos a una ubicación remota, facilitando así el monitoreo y análisis en tiempo real de variables específicas. En este contexto, los participantes se familiarizarán con los principios fundamentales de la adquisición de datos, la conectividad en red de manera alámbrica o inalámbrica, y los protocolos de comunicación, así como con el diseño y la implementación de sistemas básicos de telemetría, es decir la familiarización con el desarrollo de sistemas embebidos. Material y Equipo Requerido • Computador Personal y Conexión a Internet. • Raspberry Pi 4 u Odroid-C4. • Tarjeta microSD de al menos 16GB, Clase 10/U1/V10. Especificaciones recomendadas: 32GB, Clase U3/V30. • Sensores: Sensor de Temperatura, Sensor de Humedad Relativa, Detector de CO2, y Sensor de Iluminación. • Elementos pasivos y de acondicionamiento de señal (en caso de ser requeridos). Contexto Un datacenter es un centro físico donde se concentran equipos informáticos, servidores y sistemas de almacenamiento que gestionan y procesan datos de manera centralizada. Estas instalaciones están diseñadas para garantizar la disponibilidad, seguridad y eficiencia en el manejo de la información. Los datacenters pueden variar en tamaño y complejidad, desde pequeñas instalaciones locales hasta grandes complejos de hiperescala que sirven a empresas globales y proveedores de servicios en la nube [1]. Dentro de un datacenter, los equipos están organizados en racks o gabinetes, con sistemas de enfriamiento y alimentación redundantes para mantener un entorno operativo estable. La seguridad física y lógica es fundamental para proteger los datos contra amenazas como incendios, intrusiones y fallos de hardware. Un sistema de telemetría basado en SBC (Single Board Computer) permite, entre otras cosas, recopilar datos de forma continua y en tiempo real sobre diversos entornos, dependiendo de los sensores utilizados [2]. Para este caso, es requerido que los estudiantes desarrollen habilidades en la configuración y programación de una Single Board Computer (SBC) como la ODROID-C4 para implementar un sistema de telemetría en un datacenter, lo cual es imprescindible para garantizar un funcionamiento óptimo y seguro de servidores y sistemas de cómputo especializados. A menudo, el monitoreo se centra en aspectos informáticos, como el rendimiento del sistema y las cargas de trabajo virtuales, pero es fundamental ampliar esta perspectiva para incluir factores ambientales como temperatura, humedad, cantidad de luminosidad, y la detección de humo o fuego. La falta de una estrategia de monitoreo integral en un datacenter puede resultar en problemas graves, desde el sobrecalentamiento de equipos hasta la pérdida de datos críticos. Es crucial contar con herramientas que proporcionen una visión detallada de las condiciones ambientales, permitiendo a los administradores tomar medidas preventivas y correctivas de manera proactiva. Laboratorio 2 -Microprocesadores Tema: Sistemas embebidos en SBC Manuel Andrés Vélez Guerrero, Ph.D. Oscar Humberto Sierra Herrera, M.Eng. Criterios de diseño de la implementación requerida Se debe utilizar el lenguaje de programación Python junto con el stack de desarrollo: TIG (TelegrafInfluxDB-Grafana), para la adquisición, almacenamiento y visualización de datos de sensores ambientales, lo cual constituye la base del sistema de telemetría. Se deja a discreción del estudiante la selección de los sensores necesarios, su modo de conexión, y las bibliotecas adicionales que se requieran para la implementación final del proyecto. • Python es un lenguaje de programación ampliamente utilizado y versátil que ofrece una amplia gama de bibliotecas para la adquisición de datos [3]. Puedes utilizar bibliotecas como requests para obtener datos de sensores a través de API web, pyserial para la comunicación con sensores a través de puertos serie, o bibliotecas específicas para dispositivos IoT como paho-mqtt para la comunicación con dispositivos MQTT. • Telegraf es un agente de servidor de código abierto escrito en Go que se utiliza para recopilar, procesar y enviar métricas y eventos a través de diferentes protocolos [4]. Puedes configurar Telegraf para que recopile datos de los sensores que has adquirido con Python y los envíe a la base de datos InfluxDB para su almacenamiento. • InfluxDB es una base de datos de series temporales de alto rendimiento, especialmente diseñada para el almacenamiento y la consulta eficientes de datos de series temporales [5]. Una vez que Telegraf envía los datos recopilados, estos se almacenan en InfluxDB, lo que permite un acceso rápido y eficiente a los datos históricos. • Grafana es una plataforma de visualización y análisis de código abierto que permite crear paneles dinámicos y personalizables para visualizar datos de diversas fuentes, incluida InfluxDB [6]. Con Grafana, puedes crear paneles de control interactivos que muestran gráficos, tablas y visualizaciones de datos en tiempo real, lo que facilita la monitorización y el análisis de los datos ambientales recopilados. Procedimiento 1. Configuración de la Placa Raspberry Pi 4 u ODROID-C4 (Puntos extra por utilizar esta SBC): • Instalar el sistema operativo en la placa. Puede elegir cualquier sistema operativo soportado por la SBC. • Configurar la red para la conectividad con la infraestructura del datacenter. 2. Instalación del stack TIG: • Instalar y configurar Telegraf en la SBC, para obtener y consultar métricas del sistema, como el uso de CPU, memoria y disco. • Configurar InfluxDB como una base de datos en tiempo real para almacenar los datos recolectados por Telegraf. • Configurar Grafana para crear paneles y visualizar gráficamente los datos de telemetría almacenados en InfluxDB. Laboratorio 2 -Microprocesadores Tema: Sistemas embebidos en SBC Manuel Andrés Vélez Guerrero, Ph.D. Oscar Humberto Sierra Herrera, M.Eng. 3. Elección y conexión de Sensores: • Puede elegir cualquier sensor de temperatura, humedad relativa, CO2 e iluminación, tenga en cuenta costos, disponibilidad, rango de trabajo, acondicionamiento de señal y protocolos de comunicación. • Conectar los sensores de temperatura, humedad relativa, CO2, e iluminación a la SBC según las especificaciones del fabricante. 4. Programación en Python: • Desarrollar un script en Python para leer los datos de los sensores conectados en la SBC. • Utilizar Telegraf para ejecutar el script y enviar los datos recolectados a InfluxDB. 5. Diseño del Sistema de Telemetría: • Diseñar un panel en Grafana para visualizar en tiempo real los datos de los sensores ambientales. • Configurar alertas en Grafana para notificar sobre condiciones fuera de los límites predefinidos, como temperaturas extremas o niveles de CO2 peligrosos. 6. Pruebas y Evaluación: • Realizar pruebas para asegurar que el sistema de telemetría funcione correctamente. • Evaluar la efectividad del sistema en el monitoreo del ambiente del datacenter y la detección de anomalías. En [7] y [8] puede encontrar algunos ejemplos e información adicional. Entregables: 1. El prototipo funcional del sistema de telemetría, con su configuración adecuada y completa tanto en hardware como en software. 2. Realice un informe de laboratorio, formato IEEE, que contenga las siguientes partes: Título, resumen, introducción, desarrollo (la resolución de cada uno de los puntos de esta práctica, complementando con análisis de resultados e imágenes de los procesos), conclusiones, bibliografía en citación formato IEEE y preferiblemente en inglés. 3. Guarde este archivo únicamente en formato PDF como Practica1_Codigo.pdf. 4. Envíe por medio del aula virtual UPTC un solo único archivo en formato PDF con los resultados pedidos anteriormente. Referencias: [1] [2] [3] [4] Wikipedia, “Datacenter,” 2024. https://en.wikipedia.org/wiki/Data_center (accessed Mar. 01, 2024). Wikipedia, “Single Board Computer,” 2024. https://en.wikipedia.org/wiki/Single-board_computer (accessed Mar. 01, 2024). Python Software FO, “Python,” 2024. https://www.python.org (accessed Mar. 01, 2024). InfluxData Inc, “Telegraf,” 2024. https://www.influxdata.com/time-series-platform/telegraf/ (accessed Mar. 01, 2024). Laboratorio 2 -Microprocesadores Tema: Sistemas embebidos en SBC [5] [6] [7] [8] Manuel Andrés Vélez Guerrero, Ph.D. Oscar Humberto Sierra Herrera, M.Eng. InfluxData Inc, “InfluxDB,” 2024, [Online]. Available: https://www.influxdata.com. G. Labs, “Grafana,” 2024. https://grafana.com (accessed Mar. 01, 2024). Raziel, “Dockerizing Climate & Telemetry,” 2023. https://medium.com/@razielar/dockerizing-climatetelemetry-ac453891196d (accessed Mar. 01, 2024). A. Fourie, “Telemetry logging to InfluxDB and Grafana on Raspberry Pi,” 2021. https://anthonyfourie.com/2021/11/01/telemetry-logging-to-influxdb-and-grafana-on-raspberry-pi/ (accessed Mar. 01, 2024).