Forma sugerida de citación:
Pereira, R.; De Souza, C.; Patino, D. y Lata, J. “Plataforma de enseñanza a distancia de microcontroladores e internet de las cosas,” Ingenius, Revista de Ciencia y Tecnología, N.◦ 28, pp. 53-62, 2022. doi:https://doi.org/10.17163/ings.n28.2022.05.
1. Introducción
La pandemia de la COVID-19 demostró que el proceso de enseñanza-aprendizaje en instituciones educativas fue obstaculizado por la falta y la necesidad de clases presenciales. Varias estrategias se han implementado en las escuelas y universidades para reducir el impacto negativo sobre el aprendizaje de los estudiantes y la continuidad de la educación [1, 2]. Adoptar prácticas a distancia se ha convertido en una parte crucial dela enseñanza, especialmente en cursos de Ingeniería, Ciencias y Tecnología. Así, este artículo describe una herramienta didáctica que permite la implementación de prácticas en línea de microcontroladores y el internet de las cosas [3].
Debido al creciente desarrollo tecnológico en las áreas de sistemas embebidos y el internet de las cosas, los dispositivos basados en microcontroladores se aplican cada vez más en diversas áreas del conocimiento tales como control de motores, sistemas de seguridad, sistemas de control de elevadores [4], monitoreo degeneración eléctrica [5] y en investigación científica aplicada [6]. Por lo tanto, la enseñanza de tópicos como sistemas embebidos, microcontroladores e IoT se hace cada vez más relevante en cursos de Ciencias e Ingeniería.
Dado que los productos de educación en línea basados en microcontroladores e IoT se utilizan sobre el Internet, es posible realizar prácticas de enseñanza remota de estos productos. De esta manera, las plataformas y los productos educativos en línea se consideran laboratorios remotos, dado que los estudiantes pueden acceder a dispositivos físicos desde cualquier lugar siempre que tengan un sistema informático con acceso a internet [7, 8].
1.1.Trabajos relacionados
La computadora de placa única, conocida como RaspberryPi (Rpi), empleada en la plataforma educativa de enseñanza a distancia propuesta en este trabajo, fue desarrollada por la Raspberry Pi Foundation para ayudar a niños y adultos a aprender en el área de computación. El Raspberry Pi es una computadora portátil de bajo costo basada en software libre e interfaces para varios periféricos. Otras características son1 GB de RAM compartida con un GPU (unidad de procesamiento gráfico, Graphics Processing Unit, en inglés), núcleo gráfico Video Core IV 3D, 40 pines de entrada/salida de propósito general (general-purposeinput/output, GPIO, por sus siglas en inglés), cuatro puertos con interfaz USB 2.0 para conectar el teclado y el ratón en computadoras de escritorio, puerto HDMI(interfaz multimedia de alta definición, High Definition Multimedia Interface, en inglés), puerto Ethernet con interfaz RJ-45, interfaz de tarjeta 56 micro SD (digital segura, Secure Digital, en inglés), interfaz de cámara y monitor, así como también fuente de poder de 5 V y salida de audio [9].
Para desarrollar productos educativos en línea basados en RPi, se utilizan un conjunto de librerías y paquetes para asegurar la comunicación entre todos los componentes del sistema. Entonces, los protocolos RpiSSH (Secure Shell) y VNC (Virtual Network Computing) que permiten el acceso a la consola y al ambiente gráfico, respectivamente. El SSH es un protocolo que permite la comunicación segura entre dos sistemas usando una arquitectura cliente/servidor, y permite a los usuarios conectarse a un host remoto. A diferencia de otros protocolos remotos tales como FTP (protocolo de transferencia de archivos, File Transfer Protocol, en inglés) o Telnet, el SSH encripta la sesión de acceso, haciendo virtualmente imposible para intrusos obtener claves desencriptadas [10].
El paquete Samba, una implementación de código abierto del protocolo SMB (Server Message Block), fue instalado y configurado para asegurar la interconexión entre computadores que están ejecutando los sistemas operativos Microsoft Windows y Linux, y compartir archivos y carpetas [11].
La librería WiringPi C fue utilizada para los programasen lenguaje C del Rpi; esta librería puede usarse para programar y configurar los pines GPIO [12]. Por lo tanto, para compilar programas escritos en lenguaje C se tiene el compilador GCC (GNU Compiler Collection),que es una distribución accesible e integrada de compiladores para lenguajes de programación tales como C, C++, C#, y Java [13].
También se usó la librería CURL como una herramienta de línea de comando de código abierto parala construcción de sintaxis URL y la transferencia de datos a la nube [14].
El microcontrolador ESP32 IoT fue lanzado por la compañía china Espressif Systems, un fabricante de antenas wifi embebidas y módulos IoT con software y hardware libre [15]. El ESP32 es un microcontrolador (MCU) de 32 bits de baja potencia, con wifi/Bluetooth, núcleo dual y modo dual. El MCU ESP32 tiene una frecuencia de 240 MHz y un poder de procesamiento de 600 DMIPS (Dhrystone millones de instrucciones por segundo).
Por otra parte, comparado con el modelo más reciente, el microcontrolador de 32 bits ESP8266NodeMCU IoT con antena wifi es una versión anterior y más simplificada, también lanzada por Espressif [16].
El microcontrolador PIC (Peripheral Interface Controller) es un circuito integrado que contiene toda la circuitería necesaria para instalar un sistema digital programable completo en un único dispositivo. Esta plataforma de enseñanza también utiliza el microcontrolador PIC18F2550 de 8 bits producido por Microchip Technology.
El módulo convertidor analógico a digital (ADC) del PIC18F2550 tiene diez entradas, y es capaz de medir el voltaje analógico en cada canal y convertir el voltaje medido en un valor digital de 10 bits [17].
En este contexto, la tecnología IoT permite la comunicación entre dispositivos sin intervención humana [18, 19] y entiende que cada dispositivo es autónomo y está conectado a internet. Tales dispositivos pueden interactuar y comunicarse automáticamente, maximizando la modularidad, confort, conveniencia, seguridad y ahorro de energía [20]. Se usa típicamente una base de datos para almacenar data en la nube para poner en marcha sistemas IoT. Para este propósito, la computación en la nube proporciona acceso a un pool compartido de recursos computacionales configurables, tales como bases de datos no relacionales, sin requerir un conocimiento profundo de tecnologías de gestión [21, 22]. El modelo de nube simplifica la instalación, operación y mantenimiento de sistemas de información, incrementando la eficiencia y la confiabilidad del sistema y reduciendo costos.
Los sistemas nube pueden clasificarse de acuerdo con el modelo de desarrollo o de servicio, que pueden ser públicos, privados, comunitarios o híbridos. Los modelos nube de servicio son plataforma como un servicio (Platform as a Service, PaaS, por sus siglas en inglés),software como un servicio (Software as a Service, SaaS,por sus siglas en inglés) o infraestructura como un servicio (Infrastructure as a Service, IaaS, por sus siglas en inglés). En este trabajo se utiliza PaaS, que consiste en el uso de herramientas y recursos para proveer servicios para usuarios finales, los estudiantes. Dado que los usuarios finales comparten información en el mismo servidor en la nube, la privacidad y confidencialidad de los datos son las principales preocupaciones. Por lo tanto, los productos educativos de la plataforma de aprendizaje hacen posible que la data almacenada esté segura y encriptada, permitiendo ser administrada solo por el estudiante propietario.
Así, para escribir y leer data variable en la nube, la plataforma propuesta de aprendizaje a distancia usa Firebase Realtime Database, que es una base de datos NoSQL, es decir, que no tiene como estándar el sistema de tablas y relaciones entre datos, y donde la data se almacena como objetos JSON [23]. Adicionalmente, la plataforma didáctica en línea para aprendizaje a distancia sobre microcontroladores permite uso remoto en tiempo real por múltiples usuarios.
2. Materiales y métodos
2.1.Problema y metodología
Los dispositivos IoT requieren de manera creciente una rápida intervención para actualizar librerías y funcionalidades y mantener la seguridad de los ambientes en línea. Con este fin, actualizar rápidamente el firmware de estos dispositivos IoT es una manera efectiva de garantizar la seguridad de los datos. Así, la plataforma instruccional de aprendizaje a distancia utiliza actualizaciones del firmware IoT vía Over-The-Air(OTA). La actualización del firmware OTA se realiza vía HTTP, lo cual permite descargar un archivo binario de un servidor en la nube para actualizar el firmware de los microcontroladores remotamente. La actualización del OTA a través de internet se instala típicamente de dos maneras: (i) Si está disponible una versión más nueva del firmware, el dispositivo consulta periódicamente al servidor que contiene el archivo binario compilado (pull) u otro servicio de activación en línea, tal como Firebase. ii) El dispositivo recibe una notificación de una nueva versión del firmware a través de la nube (push), por ejemplo, vía MQTT, y realiza la actualización. El servidor almacena la versión más reciente del firmware en binario, y luego la URL variante en el tiempo del archivo binario, lo cual es más seguro y flexible que una dirección fija predefinida, se envía al microcontrolador para descarga [24]. En este tópico, se presentan los productos educacionales en línea de la plataforma didáctica de aprendizaje a distancia sobre microcontroladores e internet de las cosas.
3. Resultados y discusión
Este artículo ilustra un producto educativo para actualizarlos códigos de los microcontroladores ESP32y ESP266 con el mismo firmware genérico se empleahttp://sanusb.org/espupdate. Se ha instalado la versión libre de Firebase (Google’s JSON object database)para generar la activación de una actualización asíncrona en la nube para archivos .bin, como se ilustra en la Figura 1.
La actualización (OTA) transmite los archivos binarios.bin compilados a una computadora remota a través de internet, activando las aplicaciones virtuales del laboratorio de microcontroladores. Para realizar esta actualización de firmware en la nube, los usuarios deben escribir en el firmware solo el SSID, la clave, y el mismo nombre de perfil ingresado en el sitio web http://sanusb.org/espupdate y al subir el archivo .bin en el sitio web se actualiza remotamente el firmware de los microcontroladores ESP a través de internet. El nombre de perfil de usuario ingresado ensanusb.org/espupdate puede ser alfanumérico.
Es posible probar este producto webcast educativo en diferentes redes accediendo al sitio webhttp://sanusb.org/espupdate/ a través de la red de laboratorio o doméstica, y de los microcontroladores ESP32 o ESP8266 acoplado al teléfono inteligente conectado a la red móvil 4G y viceversa.
Vale la pena considerar que, a través de pruebas realizadas, se observó que para los archivos .bin compilados con el mismo nombre y descargas secuencia les para la actualización en la nube, puede ocurrir que el microcontrolador ESP no descarga el último archivo .bin enviado para actualización, sino un archivo .bin previamente cargado, dado que tienen el mismo nombre y URL de descarga.
Por esta razón, en este proyecto el nombre de los archivos .bin cargados al sitio tienen nombres basados en el tiempo de carga, así como también en la dirección URL de descarga; esto evita que se descargue un archivo previamente cargado u otro archivo con el mismo nombre, al generar una URL única y sin pareja. En este caso, para la versión del nombre y la dirección de descarga del archivo .bin, es año, mes, día, tiempo, y el orden cíclico de carga [25].
Una vez que se ha completado la actualización del archivo .bin y que el microcontrolador se ha reiniciado automáticamente, se envía el nuevo código de verificación a http://sanusb.org/espupdate/*Profile*/ para confirmar la actualización en el sitio web. Es importante notar que para utilizar EspUpdate no es necesario abrir puertos en el enrutador o habilitar permisos en el cortafuegos.
3.1. Producto educativo ESPGpio
El producto educativo denominado ESPGpio permite cambiar el nivel lógico de los pines de los microcontroladores ESP32 y ESP266 que pueden ser programados con el firmware de código abierto [26]; dichos pines se ilustran en la Figura 2 a través del acceso gráfico disponible en sanusb.org/esp. El nombre de perfil de usuario ingresado en sanusb.org/espgpio puede ser alfanumérico.
La Figura 3 muestra una ilustración de la operación automática del entorno ESPGPIO. En este caso, se utiliza una celda de Firebase para compartir entre el controlador y el entorno gráfico de usuario. Un entero par se representa por una suma de 2; este es elevado a la potencia correspondiente al número de pines activados.
El entorno gráfico generado en sanusb.org/espgpio,ilustrado en la Figura 4, tiene treinta pines GPIO que el usuario debe seleccionar para la conmutación de carga a través de relés o dispositivos electrónicos tales como LED. Es importante notar que, si existe un fallo eléctrico o caída de voltaje, el estado de los últimos pines retorna a normal cuando se restaura la caída de voltaje, así como el estado de los pines es actualizado y consultado en Firebase, que es una base de datos persistente.
Después de completar el cambio en el estado de los pines, el nuevo estado del pin se indica con color verde en el entorno gráficohttp://sanusb.org/espgpio/*Profile*/, si está a un nivel lógico alto, como se ilustra en la Figura 4, donde*Profile* es el perfil dado por el usuario.
Es importante notar que se recomienda evitar el pin GPIO 1 en el ESP8266 Nodemcu, que es el pin Tx, ya que este previene la comunicación de depurado del programa por el monitor serial, y los pines GPIO 6 a11 del ESP32 Devkit, usados para grabación flash.
3.2. Producto educativo RPI GPIO
El producto educativo RPI GPIO es similar al ESPGpio, pero utilizado para cambiar el estado de los pines lógicos en la tarjeta Raspberry Pi. La Figura 5 muestra la ilustración de los pines de una Raspberry Pi.
Después de crear el perfil en sanusb.org/gpio, se genera una página con enlaces a páginas para acceder a los pines del Rpi y los botones del firmware para la aplicación de extracción y la aplicación de inserción en el lenguaje bash shell, como se ilustra en la Figura 6.
Tanto para la aplicación completa como para la aplicación push, es necesario, después de descargarlos programas, otorgar permiso en el terminal como super usuario (sudo su) y ejecutar el permiso con los comandos chmod 755 SgpioInstall.sh para la aplicación pull y chmod 755 Sgpiopushmqtt.sh, para la aplicación push [27]. Al hacer clic en el enlace del perfil, se genera una página con botones que representan cada uno de los pines I/O de una Rpi, como se ilustra en la Figura 7.
En el caso del pull, al hacer clic en el botón de un pin físico dado se envía un comando a un archivo contenido en el perfil en línea, consultado periódicamente por el script Sgpiointall.sh que está operando en el Rpi. En el caso del push MQTT, al hacer clic en el botón se envía un comando publish al brókermqtt.eclipse.org sobre el tópico con el mismo nombre del perfil de usuario, laese en el caso del ejemplo, y descarga este comando al Rpi que está operando el script Sgiopushmqtt.sh con suscripción (subscribe) al mismo tópico.
Con el entorno RPI GPIO es posible crear una aplicación IoT utilizando una computadora portátil o un teléfono inteligente para, por ejemplo, controlarla activación de electrodomésticos vía internet, tal como en ventilador vía un relé, como se ilustra en la Figura 8. En este caso se tiene un Raspberry Pi Zero, también accesible vía internet. Como puede observarse, para usar el entorno sanusb.org/gpio es necesario crear inicialmente un perfil. Después de completar el perfil, se genera un enlace para acceder a una página con botones, y cada botón corresponde a un pin del dispositivo Raspberry Pi IoT [27].
3.3. Producto educativo IOTUS
El producto educativo IOTUS (IoT update system, sistema de actualización IoT en español) es una PaaS, es decir, una plataforma como servicio en la cual el usuario puede crear un perfil y actualizar scripts en C, Python o lenguaje shell en el sistema embebido Linux basado en Rpi, y también actualizar el firmware enhexa decimal de la familia de microcontroladores PIC a través del puerto USB del Rpi [28], como se ilustra en la Figura 9.
Por tanto, IOTUS consta de tres partes principales, a saber: 1) Sistema embebido Linux basado en Raspberry Pi (ELS), 2) Sistema embebido de conversión Analógico a digital (ADCES), el cual utiliza un microcontrolador SanUSB basado en una herramienta de software y hardware libre con la familia PIC18Fxx5X, incluyendo la interfaz USB nativa; y 3) Página web para la actualización automática en tiempo-real (carga)de scripts.
El ADCES corresponde a la herramienta de desarrollo SanUSB de código abierto, ilustrada en la Figura 9. El SanUSB está constituido por software y hardware de código abierto de la familia PIC18Fxx5xcon una interfaz USB nativa. Esta herramienta libre es eficiente en el desarrollo de proyectos porque no es necesario remover el microcontrolador para actualizar el firmware, a diferencia de otros sistemas de desarrollo que típicamente utilizan hardware específico de grabación y requieren una conexión cableada. Además, la herramienta SanUSB es una multiplataforma, es decir, puede ser empleada en Windows®, Mac OSX, y Linux, así como también es plug and play, es decir, es reconocida automáticamente por los sistemas operativossin la necesidad de instalar ningún driver [29].
Por tanto, esta herramienta permite que la compilación, grabación y emulación de un programa sean realizadas de manera rápida y eficiente, conectando el microcontrolador a un sistema informático vía USB. Su aplicación es un RPi. El sistema informático ELS basado en RPi puede implantar diseños electrónicos directamente, debido principalmente a sus pines de entrada/salida de propósito general (GPIO) con soporte para sensores digitales y actuadores, y protocolos I2C y SPI para establecer comunicaciones con los periféricos [30]. La variedad de comunicación permite al RPi comunicarse con un rango más amplio de periféricos, y la librería de acceso a los pines Wiring Pi, escrita en C, facilita la programación y configuración de los pines GPIO a través de la utilidad de línea de comando «gpio». Este trabajo tiene dos maneras de comunicación entre ADCES y RPi: comunicación serial e interfaz USB. Para poner en funcionamiento la comunicación serial entre un microcontrolador PICy los pines RPi del ELS, se consideran los pines de tierra (GND), GPIO 14 (TX) y GPIO 15 (RX). En este trabajo, el sistema informático para registrar el microcontrolador PIC (ADCES) es el RPi (ELS), cuyos pines de conexión para la comunicación USB y serial se muestran en la Figura 10.
Por lo tanto, se desarrolló una interfaz gráfica y un software de grabación para transferir directamente el firmware de la interfaz del sistema Linux embebido al PIC ADCES, utilizando el protocolo de comunicación del dispositivo de interfaz humana (HID, Human Interface Device, en inglés) a través del puerto USB. ElADCES propuesto es un sistema RISC embebido que permite actualizaciones en línea del firmware desde la nube. Los archivos pueden ser cargados remotamente para actualizar el firmware del ADCES (archivos .hex) y actualizar los scripts RPi (archivos .c, .py or .sh). Se requiere una conexión física entre el pin 11 del RPi y el pin 1 del ADCES para actualizar el ADCES. Los perfiles PaaS (PaaS A, B o N) ilustrados en la Figura 11 son libres y son generados automáticamente por el servidor en línea luego de registrado el perfil del usuario, donde es posible depurar y/o probar una aplicación IoT. Así, cualquier usuario (A, B o N) puede crear y configurar un perfil IoT en la nube entiempo real, y actualizar firmware y scripts a través de internet.
El acceso a la página webhttp://sanusb.org/iotus/sanusb.php, ilustrado en la Figura 12, permite enviar y actualizar scripts en el ELS con extensiones de lenguaje en C (.c), Python(.py), scripts shell (.sh) y hexadecimal (.hex) en el ADCES a través del servidor. Debido a la latencia de la red, las direcciones de los archivos cargados al ELS y ADCES son variables y son renombradas con el perfil de usuario junto con la versión actualizada, que comienza con «0» y es incrementada en cada carga. Considerando la forma «ingenious», si el primer archivo es Python, será automáticamente renombrada como«ingenius0.py» e «ingenius1.py» será el nombre del script y, en consecuencia, de la nueva URL que se utiliza para descargar por el ELS.
El IOTUS ha sido programado para cargarlos archivos al servidor a través de la páginahttp://sanusb.org/iot/sanusb.php, siguiendo estos pasos:1. Ingreso del perfil del estudiante y por el ELS para descargar el archivo. 2. Buscar el firmware (.c, .py,.sh o .hex) que será enviado para la actualización automática. Pueden descargarse scripts de muestra desdesanusb.org/iotus/examples.zip. 3. El botón ’Submit’ ejecuta la transferencia del archivo al servidor, el cuales luego renombrado y transferido automáticamente al ELS. IOTUS está programado para operar de forma descentralizada y distribuida, permitiendo a múltiples usuarios y a múltiples comunicaciones simultáneas utilizar el mismo servidor en la nube. Luego de ingresar un nombre de perfil y enviar cualquier firmware, como se ilustra en la Figura 13, el SloaderInstall.sh es generado automáticamente y queda disponible para ser descargado.
Por lo tanto, para actualizar el firmware (.c, .py,.sh, or .hex) a través de la nube, es necesario ejecutar previamente el script SloaderInstall.sh en el ELS para revisar si hay nuevas actualizaciones de firmware en intervalos de tiempo definidos por el usuario, descargar el firmware actualizado y realizar una tarea específica de acuerdo con la extensión del archivo. En el arranque, el script SloaderInstall.sh verifica si las librerías requeridas por este producto educativo están instaladas, y si no, las instala en el Rpi. Si se envía un archivo «hexadecimal», el ELS escribe el archivo en el ADCES a través de la conexión cableada entre el pin 11 del Rpi y el pin 1 del ADCES. Si se envía un archivo “.c”, el ELS compila el script y luego ejecuta el archivo compilado. En el caso de un script shell o de un archivo creado en Python, el ELS ejecuta directamente el archivo en segundo plano. La Figura 14 ilustra el diagrama de flujo de la operación de verificación delSloaderInstall.sh.
Otra característica de la PaaS IOTUS propuesta es que para este producto educativo no es necesario desbloquear los puertos del enrutador y/o del cortafuegos. Como una aplicación para el IOTUS desarrollado, se utiliza un módulo fotovoltaico (PV, Photovoltaic, en inglés) que alimenta una carga de 50 W, con las siguientes especificaciones: Modelo YL95P-17b 2/3,Máxima Potencia 95 WP, Eficiencia 14,3 %, voltaje de circuito abierto (Voc, open circuit voltage) 22,5 V y corriente de cortocircuito (Isc, short circuit current) 5,59 A.
Las horas de sol para Fortaleza, en Brasil, donde fue instalado el sistema, son de 6 a. m. a 4 p. m. Las condiciones meteorológicas locas permiten una irradiancia solar estable desde las 8 a. m. hasta las 2 p. m.(entre 800 y 1250 W/m2). Sin embargo, en este período se midieron altas temperaturas del módulo PV, lo cual reduce la eficiencia de dicho módulo. Utilizando como ejemplo datos de enero, la Figura 15 muestra que la temperatura del módulo PV puede alcanzar valores desde 49 °C a las 8 a. m. hasta 62 °C al mediodía [31].
Como una segunda aplicación, el sistema IOTUSESP32 se valida usando un controlador lógico programable(PLC, Programmable Logic Controller, en inglés), con un canal AD de 12 bits de resolución [32].La Figura 16 muestra la curva promedio mensual dela temperatura medida del módulo PV. Para valores de temperatura por encima de 52 °C, el error entre el monitoreo IoT propuesto usando ESP32 y el PLC aumenta aproximadamente 2 °C; para menores valores de temperatura, la medición sigue el valor de referencia. La Figura 17 muestra la correlación entre la temperatura del módulo PV medida por el monitoreo IoT y el valor de referencia del PLC para las mediciones promedio. Por medio de la raíz cuadrada del error cuadrático medio (RMSE, Root Mean Square Error, en inglés), la correlación es 0,9989.
4. Conclusiones
Este trabajo describió el diseño y desarrollo de cuatro productos educativos en una plataforma en línea para el aprendizaje a distancia sobre microcontroladores e IoT; dichos productos fueron probados, validados y funcionaron de acuerdo con el diseño. Específicamente, el producto educativo propuesto ESP UPDATE permite la actualización de códigos de los microcontroladores ESP32 y ESP8266 en la nube, y es posible usarlo a través de internet en cualquier lugar y sobre cualquier dispositivo (computadora, teléfono inteligente), y esto permite aplicaciones virtuales de laboratorio de microcontroladores. El producto educativo ESPGPIO para ESP32 y ESP8266 y el RPI GPIO para Rpi permiten aplicaciones desde una computadora portátil o teléfono inteligente para controlar la activación de electrodomésticos a través de internet intuitiva e interactivamente.
IOTUS permite la grabación en línea de ADCES desarrollados con un microcontrolador PIC y la actualización de firmware en un sistema embebido Linux basado en un Raspberry Pi (ELS). El uso de software de código abierto y multiplataforma (Linux, Windows®, y Mac OSX) para enseñanza en línea permite mayor interacción y accesibilidad del usuario debido a la posibilidad de libre distribución. Otra ventaja es que no es necesario desbloquear los puertos del enrutador y/o del cortafuegos cuando se utiliza el servicio de nube.
Finalmente, este artículo también presentó las principales características y ventajas de los microcontroladores en la plataforma en línea: bajo costo y el uso de hardware y software accesible. Rpi simplificó el procesamiento y proporcionó un circuito portátil teniendo Linux como sistema operativo y C como lenguaje de programación. El desarrollo de programas para las diferentes funcionalidades demostró la posibilidad deconstruir una solución efectiva y de bajo costo, donde el usuario puede agregar funcionalidades y configuraciones de acuerdo con sus necesidades. Adicionalmente, los productos educativos propuestos eliminan la necesidad de instalar en la computadora software para acceder al servidor de la plataforma educativa a distancia.