Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Director
M. Sc. Arley Bejarano Martínez
Primero quiero agradecer a Dios por permitirme culminar esta etapa tan importante de mi vida, ya
que sin él no hubiese sido posible. A mi madre Ruth Yamile Escobar Galvis por su constante entrega
y amor, quien cada día ha velado por mi bienestar. A mi padre Álvaro Bañol Taba, quien siempre ha
dado lo mejor de él para poder garantizar que yo pueda cumplir mis metas sin rendirme pese a las
adversidades de la vida. También a mi hermano Felipe y cata, por su apoyo y a mi tía Orlandy, quien
ha sido como una mamá, brindándome su apoyo incondicional.
Quiero agradecer a todos mis familiares que me han brindado su ayuda de diferentes modos y a
quienes han manifestado su interés para que yo pueda progresar en mis estudios. Un agradecimiento
muy especial a mis amigos y a aquellos compañeros de estudio, quienes dedicaron parte de su
tiempo para ayudarme cada vez que lo requiera.
En este trabajo de grado se presenta la metodología y desarrollo de un sistema de bajo costo el cual
se conecta a internet mediante una red wifi. A este se pueden conectar las entradas del PLC para
detectar la activación de los sensores y las salidas para identificar la activación/desactivación de
actuadores. Al detectar los cambios en los estados de los diferentes elementos procede a almacenar
la información en una base de datos y adicionalmente esta se proyecta en una interfaz gráfica de
usuario.
El sistema también cuenta con la funcionalidad de garantizar la no pérdida de información, tras la
desconexión a internet, para esto procede a guardarla en una memoria micro sd y de forma
automática detecta cuando la conexión se restableció para después subir la información registrada
en la memoria a la base de datos.
Otra característica de este sistema es que se conecta a una red wifi por defecto que ya tiene
guardada, pero se puede modificar, ya que el sistema se configura como un punto de acceso cada
vez que no es posible conectarse a la red wifi y desde una página HTML se pueden ingresar las
credenciales de la nueva red.
El sistema también se puede conectar a otro PLC que disponga de una conexión serial, para que
mediante el protocolo de comunicación MODBUS pueda recibir la información proveniente desde el
PLC. Esta última característica se incorporó dado que a pesar de que muchos PLC’s poseen
interfaces seriales para la transmisión de datos, no existen dispositivos que se puedan conectar a
estos ya que no hay soporte por parte de los fabricantes o ya se encuentran descontinuados.
Después de construir el sistema se procedió a realizar un conjunto de pruebas de validación que
arrojaron como resultado un excelente desempeño. Cumpliéndose el objetivo de la detección de
cambios en los periféricos de entradas y salidas del PLC, almacenamiento cuando hay o no una
conexión a internet, visualización de la información en una interfaz gráfica de usuario y la fácil
integración con PLC que si dispongan de una interfaz de comunicación serial.
Con este sistema se logra potencializar las capacidades de aquellos PLC que no posean interfaces
de conexión a internet, lo cual extiende su vida útil y permite su uso en aplicaciones de internet de
las cosas (IoT) al igual que su integración dentro de los estándares de la industria 4.0.
2 PRELIMINARES
2.1 Introducción
En la historia moderna, el acontecimiento de las revoluciones industriales trajo consigo una nueva
era de avances tecnológicos que introdujeron cambios en la sociedad, desde diferentes aspectos
como por ejemplo lo económico, político, social, educación, salud, transporte, entre otros. Estos
desarrollos industriales han llevado a una nueva era de crecimiento económico, debido a que las
nuevas tecnologías simplifican y optimizan el trabajo. Lo que genera beneficios para los diferentes
actores del proceso productivo de la industria.
La expansión de la revolución industrial marcó un hito en la historia moderna, dado que produjo un
aumento de la producción y otros beneficios tales como la reducción de los costos de manufactura,
la mejora en la calidad del producto y optimización de los tiempos de fabricación. También, generó
una ampliación del mercado, que permitió suplir la demanda interna del país y a su vez completar
las solicitudes externas de productos. Todo esto permitió impulsar la economía, el desarrollo y
mejorar la calidad de vida [1].
Actualmente se presenta una cuarta revolución industrial, también llamada, industria 4.0. Esta
revolución trae consigo nuevos avances tecnológicos, que contribuyen a mejorar no solo el factor
productivo, si no que permitirá la creación de nuevos sistemas que fusionen el mundo físico con el
digital. Estos sistemas se conocen como sistemas ciberfísicos, los cuales integran capacidades
computacionales para la gestión, almacenamiento y comunicación de información, con facultades de
interacción con los dispositivos o procesos reales.
Un sistema ciberfísico utiliza protocolos estandarizados que permiten la conexión a internet, como
también las tecnologías de la información y la comunicación (TIC) las cuales, permiten la interacción
entre los diferentes elementos involucrados en el proceso productivo. Creando nuevas formas de
producción y creación de valor.
Esta nueva tendencia implementa un modelo regido por la autoorganización y autogestión de los
sistemas productivos, que dota a los procesos automatizados de la capacidad de aprender
autónomamente para poder predecir fallas, auto configurarse y adaptarse a los cambios. Con lo
anterior, se introduce el concepto de fábricas inteligentes, donde las personas, las máquinas y los
recursos se comunican entre ellos, como si se tratase de una red social.
2.2 Planteamiento del problema
Aunque estos desarrollos cumplen con el objetivo de dotar un PLC con acceso a internet, muchos
no disponen de una interfaz de comunicación serial, por lo tanto, se han implementado soluciones
alternativas. Una de estas busca el desarrollo de soft PLCs, los cuales tienen la principal
característica de ser un software que se instala en un sistema embebido y emula la funciones de un
PLC [12][18].
Como el desarrollado por el Jyothi Engineering College. En este proyecto el soft PLC se implementó
en una Raspberry Pi y se programó en Ladder mediante el entorno de desarrollo Codesys. Este
sistema tiene puertos I/O al cual se conectan sensores y actuadores y al mismo tiempo el
minicomputador actua como servidor [13]. Otro proyecto el cual integra un microordenador es el
desarrollado por el International Islamic University Chittagong, el soft PLC se encarga de la operación
de todo el sistema y aparte de ejercer control, almacena información que se analiza automáticamente
para mejorar el rendimiento. Para la creación del servidor web se usó Cayence y todo el sistema
operativo fue diseñado en base Linux y Python [14].
Para poder hacer frente a esta problemática se han presentado soluciones alternas mediante
sistemas más económicos, basados en microcontroladores. Uno de estos es el sistema de monitoreo
basado en IoT, desarrollado en la Bangladesh University of Business and Technology. Con este
desarrollo se monitorea y controla el equipo de una subestación eléctrica. Se midió la calidad y
niveles de aceite de los transformadores eléctricos, al igual que la corriente. También se controla el
accionamiento de un servomotor que cambia la conexión del transformador. Para esto se usó un
microcontrolador ATmega328P y un módulo WI-FI ESP266-01 los cuales logran la conexión con el
servidor web [15].
Teniendo en cuenta lo anterior se hace necesario desarrollar un sistema que permita integrarse a
los diferentes PLC (tengan o no interfaces de comunicación) que se encuentran en la industria, que
sea de bajo costo y permita él envió de información a la nube.
2.3 Justificación
Diseñar e implementar una interfaz de comunicación para PLC que permita el envío de datos a
internet.
- Diseñar e implementar el sistema de comunicación que permita conectarse a los PLC por
medio de MODBUS.
A continuación, se presentan algunas de las metodologías propuestas para poder conectar un PLC
con la internet y su posterior uso en aplicaciones de IoT.
En el año 2012 en la Escuela de Ingeniería de la Universidad de Valencia España, se desarrolló una
puerta de enlace a la red para un PLC. Para el servidor web se usó tarjeta de desarrollo Freescale
con un microcontrolador M52259 Coldfire, la cual se conecta al PLC mediante comunicación serial
RS232.
Este servidor es de carácter modular lo cual permite acceso independiente a los puertos I/O del PLC.
En cuanto a la visualización de la información en diferentes plataformas de monitoreo, no es
necesario modificar la programación del microcontrolador. El PLC que se usó es un Crouzet
millenium3 (se considera un microPLC) el cual incorpora un protocoló serial ASCII para la lectura y
escritura de la memoria [10].
En el Institute for Plasma Research Gandhinagar, India, se implementó un sistema para monitorear
en tiempo real los datos de un PLC el cual se estructuro con el framework CSS (Control System
Studio). CSS es ampliamente usado en sistemas de Control Industrial y Física Experimental (EPICS)
por lo cual el PLC se comunica con el servidor mediante el CSS y al mismo tiempo de forma local
con el computador usando protocolo MODBUS. El ethernet se encarga de brindar la capa física de
la comunicación y mediante paquetes por medio de TCP/IP se envían los datos al nodo destino [16].
Opciones alternas son los soft PLC, los cuales usan una minicomputadora que se encarga de emular
un PLC. Uno de estos fue desarrollado por el Jyothi Engineering College. Para el cual se usó una
Raspberry Pi y se programó en Ladder mediante el entorno de desarrollo Codesys.
Para la adquisición de la información proveniente de los sensores los cuales miden frecuencia,
voltaje, potencia activa y factor de potencia de una subestación eléctrica de 11 KW, se usaron los
puertos GPIO, relés y puertos de comunicación de la minicomputadora como la interfaz RS - 485.
También se implementaron interfaces HMI para la visualización de la información, diseñadas con un
segmento de visualización web de Codesys a las cuales se pueden acceder por conexiones
inalámbricas o por cable. Se llegó a la conclusión que el sistema es confiable y fácil de usar ya que
a comparación de un PLC, estos son más costosos y requieren de un supervisor que se encuentre
cerca de la subestación [13].
Otro proyecto con características similares fue implementado por la International Islamic University,
en el cual también se usó una Raspberry pi que se encarga de monitorear y controlar un sistema
compuesto por sensores de temperatura, voltaje, corriente, una cámara y actuadores como un motor
DC y un ventilador de refrigeración. El soft PLC aparte de proporcionar el control de todo el sistema,
se encarga de analizar la información para aumentar la productividad y la eficiencia. El servidor web
al cual se conecta la Raspberry pi, se creó mediante el software CAYENCE y para el sistema
operativo se usó Linux y Python [14].
En este trabajo se justificó el uso de la minicomputadora porque según los autores, sus capacidades
de cómputo son más avanzadas a comparación de otros sistemas embebidos (por ejemplo, el
Arduino). También ofrece mayores capacidades de almacenamiento y puede soportar muchos
dispositivos conectados al mismo tiempo.
Después de hacer una revisión de aquellos trabajos que hacen uso de una minicomputadora que
reemplacen un PLC, también se realizó una búsqueda de aquellos desarrollos que opten por el uso
de microcontroladores que a comparación de las minicomputadoras, suelen tener menos
capacidades, pero aun así esto no limita su uso para aplicaciones de IoT. En la Bangladesh
University of Business and Technology se implementó una red IoT para monitorear y controlar el
equipo de una subestación eléctrica, lo cual permite un manejo más eficiente de los recursos. Con
este sistema se mide la calidad y nivel de aceite de los transformadores eléctricos y la corriente de
los transformadores de corriente. También mediante actuadores se modifica el tipo de conexión de
los transformadores. Se usó un microcontrolador ATMEGA328P el cual recibe los datos
proporcionados por los sensores y los transmite al servidor web mediante un módulo WIFI ESP8266
[15].
En [17] se desarrolló e implementó una puerta de enlace con comunicación Profibus para un PLC y
un sistema embebido. Esta investigación tenía como objetivo crear una interfaz que facilitara la
conexión entre un PLC Siemens y un microcontrolador, dado que la conexión entre un PLC maestro
y uno esclavo es fácil de implementar, pero cuando se trata de conectar otro tipo de sistema que no
sea Siemens, se presentan problemas de compatibilidad, por lo tanto, se realizó un análisis de señal
para lograr que el PLC maestro viera al sistema embebido como un esclavo.
Según la justificación de los autores existen puertas de enlace con comunicación Profibus-UART (la
cual se implementa en microcontroladores) pero son costosos y no es fácil el intercambio de
información. Por lo tanto, la solución propuesta es de bajo costo y permite establecer un control
distribuido, al realizar un procesamiento rápido de los marcos enviados por el PLC. Se diseñó una
etapa de acondicionamiento con amplificadores operacionales para los voltajes de transmisión y así
conservar un voltaje de referencia en el bus de datos al cual se conecta un microcontrolador
PIC18F26K22.
5 MARCO TEÓRICO
5.3 MQTT
MQTT es un protocolo de comunicación M2M (machine-to-machine) de código abierto y está basado
en la pila TCP/IP. A través de este protocolo, los dispositivos clientes pueden publicar datos para
enviarlos a cualquier dispositivo suscriptor, a esto se le conoce como el modelo pub/sub [21].
5.5 Sensor
Un sensor es un dispositivo electrónico que se encarga de medir un fenómeno físico de su entorno,
como la temperatura y la humedad, y la convierte en datos para que puedan ser interpretados por
un humano o una máquina [23].
6 MATERIALES
El ACS712 se utiliza para la detección de corriente CA o CC. El dispositivo cuenta con un sensor
Hall lineal, este tiene una ruta de conducción de cobre cerca de la superficie de la matriz. La corriente
fluye a través del cobre, generando un campo magnético que es detectado por el Hall y convertido
en un voltaje proporcional [28].
Algunas de sus funciones principales son:
● Ancho de banda de 80kHz.
● Resistencia interna del conductor de 1,2 mΩ.
● 5V para operación de suministro único.
● Tiempo de subida de salida de 5 µs en respuesta a la corriente de entrada de paso.
● Sensibilidad de salida de 66 a 185 mV/A.
Este módulo se utiliza para comunicaciones serie a largas distancias y está definido como un sistema
en bus de transmisión multipunto diferencial, por lo tanto, es ideal para transmitir a altas velocidades
sobre distancias largas (35 Mbit/s hasta 10 metros y 100 kbit/s en 1200 metros) y a través de canales
ruidosos [30].
Sus especificaciones son:
● Tiene un voltaje de operación de 5V.
● La corriente de operación va de 120 uA a 500 uA.
● Transferencia máxima de hasta 2.5Mbps.
● La potencia de operación es de 830 mW.
● El tipo de comunicación es Half-Duplex.
● Velocidad máxima de 10 Mbit/s (a 12 metros).
● Longitud máxima de alcance de 1200 metros (a 100 kbit/s).
Figura 4. Módulo conversor RS485 a TTL.
● MISO (master In - slave out) es la salida SPI del módulo de tarjeta micro SD.
● MOSI (master out – slave in) es la entrada SPI al módulo de tarjeta micro SD.
● SCK (reloj serie) pin acepta pulsos de reloj que sincronizan la transmisión de datos generada
por Arduino.
● SS (Selección de esclavo) pin es utilizado por Arduino (Master) para habilitar y deshabilitar
dispositivos específicos en el bus SPI.
7 DESARROLLO
El sistema se conecta a las entradas y salidas de los PLC para conocer si se encuentran activadas
o desactivadas. Esto se logra mediante la detección de los voltajes enviados por los sensores cuando
se activan y la respuesta a la salida cuando se accionan los actuadores.
Después estos estados son almacenados y enviados a través de conexión wifi a un Broker MQTT y
un ordenador recibe la información enviada por la tarjeta, mediante la suscripción a un tópico, para
posteriormente ser almacenada en una base de datos y visualizada en una interfaz gráfica. En la
figura 9 se ilustra el funcionamiento de todo el sistema.
Figura 9. Operación de todo el sistema que permite al PLC ser usado para aplicaciones de IOT.
Para detectar los cambios a las entradas del PLC, se usaron divisores de tensión y a las salidas se
conectaron sensores de corriente. Es de aclarar que la tarjeta solo puede detectar la activación de
cargas AC.
Se usó el sensor de corriente ACS712 el cual según la hoja de datos del fabricante [28] soporta una
corriente máxima de 5A y el rango de la temperatura interna de operación (Top) del marco de plomo
(estructura al interior del chip que transporta señales desde el troquel hacia el exterior) es de [-40 a
80] °C. Bajo estas condiciones de temperatura, las características de rendimiento del sensor
garantizan una sensibilidad de 185 mV por amperio y presenta la siguiente relación para el voltaje
de salida y la corriente sensada, ver figura a continuación.
Figura 10. Voltaje de salida vs corriente sensada para el sensor de corriente ACS712 [28].
Como se observa en la gráfica de la figura 10. Cuando no hay una carga conectada, la corriente es
0A y por ende el voltaje de salida es 2.5V, pero cuando la corriente es AC independiente del consumo
de la carga el voltaje seguirá siendo 2.5V. Esto se debe a que durante el semiciclo positivo de la
señal AC, el voltaje de salida aumenta de 2.5V y durante la fase negativa el voltaje disminuye de
2.5V, por lo tanto, al realizar un promedio de las lecturas, siempre se mostrará el mismo voltaje.
Lo anterior se pudo comprobar al conectar cargas AC (bombillos) en paralelo y midiendo el voltaje
de salida del sensor con un multímetro digital UNI-T. En la tabla 1 se presentan los resultados
obtenidos.
Acondicionamiento de señal
Como el voltaje de salida del sensor oscila en el rango [0 – 5]V y el voltaje máximo que soporta el
convertidor análogo a digital (ADC) del ESP32 es 3.3V, se implementó una etapa de
acondicionamiento de señal mediante amplificadores operacionales. Para lo cual primero se calculó
la ecuación de la recta de la figura 12.
𝑅𝑓
Para (𝐴 𝑇 < 0) se tiene (𝑅0 = ∞) 𝑦 (𝑅0 = ).
−𝐴𝑇
Asumiendo un 𝑍𝑖 = 5 KΩ.
𝑅𝑓 ≥ 𝜆 ∗ 𝑍𝑖
Con los resultados de las ecuaciones (3) y (4) se construyó el circuito de la figura 13, con un
amplificador operacional LM324, el cual permite realizar el acondicionamiento de señal.
Figura 13. Circuito para acondicionar la señal entregada por los sensores de corriente.
Con el circuito de la figura anterior se puede realizar el muestreo de la señal para calcular el Vpp
pero se encontró una dificultad y es que el cálculo no coincidía con el del equipo patrón (osciloscopio)
causando que la tarjeta detectase la activación de una carga cuando en realidad estaba apagada o
viceversa.
Este comportamiento se debía a que el ADC del microcontrolador es sensible al ruido, lo cual afecta
la medida y se llegó a esta conclusión tras las pruebas realizadas. Por lo tanto, se implementó la
siguiente solución por software.
Se incluyó una ecuación de corrección que permitiese disminuir el error. Para esto, a cada uno de
los sensores se le calculó una ecuación dado que sus propiedades intrínsecas no son las mismas y
sería erróneo asumir la misma para cada sensor de corriente. En cada sensor se aplicó el siguiente
procedimiento:
Ecuación de corrección
Primero se registraron en una tabla los Vpp entregados por el equipo patrón y el ESP32. El cual se
calcula como se describe el diagrama de flujo de la figura 14.
Figura 14. Diagrama de flujo para el cálculo del Vpp.
Con esta información se obtuvo una ecuación que permite aproximar los datos sensados a los del
equipo patrón. En las siguientes tablas se presentan los resultados obtenidos para cada uno de los
sensores. También se muestran las ecuaciones obtenidas con sus respectivas gráficas.
Para realizar las mediciones del Vpp, se varió la cantidad de cargas conectadas y por ende la
corriente. En la columna con nombre “Error 1” se registró el error previo a aplicar la ecuación de
ajuste y en “Error 2” después de aplicarla.
SENSOR A0 (G32)
CANTIDAD DE Vpp Vpp Error 1 Corrección Error 2
BOMBILLOS PATRÓN ESP32
0 7.81E-02 1.561E-02 8.00E- 8.197E-02 0.003840226
01
1 3.52E-01 2.810E-01 2.01E- 3.824E-01 0.030807056
01
2 5.86E-01 4.295E-01 2.67E- 5.505E-01 0.035397736
01
3 9.38E-01 7.973E-01 1.50E- 9.668E-01 0.029306697
01
Tabla 2. Datos para cálculo de la ecuación de corrección del sensor de corriente A0.
Figura 15. Gráfica y ecuación de corrección para el sensor de corriente A0.
SENSOR A1 (G33)
CANTIDAD DE Vpp PATRÓN Vpp ESP32 Error 1 Corrección Error 2
BOMBILLOS
0 7.81E-02 1.10E-01 4.08E-01 2.05E-01 1.62E+00
1 3.52E-01 2.32E-01 3.40E-01 3.53E-01 3.66E-03
2 6.25E-01 4.63E-01 2.59E-01 6.33E-01 1.31E-02
3 8.59E-01 6.85E-01 2.03E-01 9.03E-01 5.02E-02
Tabla 3. Datos para cálculo de la ecuación de corrección del sensor de corriente A1.
Tabla 4. Datos para cálculo de la ecuación de corrección del sensor de corriente A2.
Figura 17. Gráfica y ecuación de corrección para el sensor de corriente A2.
SENSOR A3 (G35)
CANTIDAD BOMBILLOS Vpp PATRÓN Vpp ESP32 Error 1 Corrección Error 2
0 7.81E-02 1.28E-01 6.38E-01 1.37E-01 7.54E-01
1 3.52E-01 2.39E-01 3.20E-01 2.85E-01 1.90E-01
2 5.86E-01 4.56E-01 2.22E-01 5.73E-01 2.18E-02
3 8.59E-01 6.87E-01 2.01E-01 8.80E-01 2.42E-02
Tabla 5. Datos para cálculo de la ecuación de corrección del sensor de corriente A3.
Como se puede observar en cada una de las tablas, después de aplicar la ecuación de corrección el
error disminuye y se implementaron cada una de estas en el código, lo cual permitió eliminar los
problemas que se tenían con el cálculo del Vpp. Finalmente, para el código este proceso de ajuste
se puede observar en el diagrama de flujo de la figura 19.
Figura 19. Diagrama de flujo para el cálculo del Vpp correcto o corregido.
Dado que la mayoría de los sensores industriales operan en niveles de 0V a 24V, para detectar su
activación, se implementó un divisor de tensión que reduce el nivel de la entrada y después se
conectó a un amplificador operacional en modo seguidor para que entre en saturación en caso de
superar el voltaje de polarización. Ver el circuito de la figura 20.
Figura 21. Limitaciones del uso del ADC del ESP32 [34].
Como los cuatro sensores de corriente se encuentran conectados al canal uno y se requerían de 6
adicionales para las entradas, se optó por usar los puertos ADC de un microcontrolador
ATMEGA328P, el cual muestrea las entradas y las clasifica. Luego envía el resultado de la
clasificación al ESP32 mediante comunicación SPI. En la tabla 6 se presentan los pines del canal
SPI para ambos microcontroladores.
La tarjeta IoT se enlaza a internet mediante un interfaz WiFi, para lo cual almacena el nombre y clave
de una red por defecto, a la que intenta conectarse cada vez que se enciende o reinicia el dispositivo.
Pero puede suceder que las credenciales de la red cambien por lo cual, al intentar conectarse, no
sería posible. A raíz de este problema se buscó un método que permita al usuario modificar la
información, sin tener que intervenir directamente en el código de la tarjeta IoT.
Configuración como punto de acceso, ante imposibilidad de
7.2.1.
conexión a red WiFi
Al no poder conectarse a una red específica, el prototipo se configura como un servidor web (punto
de acceso) es decir, crea su propia red a la cual se puede conectar cualquier dispositivo wifi cercano,
ver figura 22. Este proceso de configuración como punto de acceso se inicia tras 5 intentos fallidos
de conexión a la red que ya se tenía guardada por defecto, durante este proceso la tarjeta tiene un
led de color amarillo el cual estará parpadeando y se apagará cuando el dispositivo se conecte a
internet.
SU RED 123456789
Tabla 7. Credenciales de la red cuando la tarjeta IoT se configura como punto de acceso.
Figura 23. Conexión a la red del dispositivo desde un teléfono móvil.
Ya que la tarjeta se configura como servidor, esta carga una página web, a la cual se accede
mediante la URL: http://192.168.4.1/. En la figura 23 se muestra la conexión a la red propia de la
tarjeta y en las figuras (24, 25) se presenta el aspecto que tiene la página, con la cual se puede
ingresar el nombre y contraseña de la nueva red.
Figura 24. Página web para ingresar las credenciales de una nueva red WiFi vista desde un
teléfono móvil.
Figura 25. Página web para ingresar las credenciales de una nueva red WiFi vista desde un
computador.
Después el navegador envía una solicitud HTTP al dispositivo, la cual es procesada, leída e
interpretada para así poder modificar la información previa y por último la tarjeta se reinicia para
poder conectarse a la nueva red. En la figura 26, se presenta el diagrama de flujo que describe el
proceso de conexión a internet.
Después de establecer conexión a internet, se realiza él envío de los datos a un bróker MQTT
mediante la suscripción a un tópico. Cuando otro dispositivo con acceso a internet se conecta al
bróker MQTT, puede supervisar el estado de los sensores y actuadores controlados por el PLC de
forma remota, en la figura 27 se presenta la arquitectura del sistema descrito.
Como se pueden tener múltiples tarjetas IoT para poder diferenciar a qué dispositivo pertenece la
información que llega al bróker MQTT, se pueden crear tópicos que lleven por nombre la dirección
MAC del dispositivo, el cual es un identificador único.
Figura 27. Estructura del protocolo MQTT para la supervisión remota del PLC.
Para este proyecto se usó la aplicación MQTTLens, la cual permite la conexion a un bróker MQTT.
En la figura 28 se muestra la configuración del broker.
Cuando la tarjeta IoT envía el estado de las salidas y entradas al bróker MQTT, codifica la
información en un JSON, el cual es un formato de texto ligero para el intercambio de datos. Este se
usa comúnmente en aplicaciones donde se requiere intercambiar información entre servidores y
clientes web [35].
Cuando se usa un JSON, se crean colecciones de pares de datos con la forma (<etiqueta>:<valor>),
separados por comas y todos entre llaves [35 ]. Para la tarjeta IoT, se usa una función que encapsula
en un formato JSON la variable que almacena los estados de las entradas y salidas del PLC. A
continuación, se presenta un ejemplo del formato del JSON que emplea el dispositivo, donde las
palabras de color azul son las etiquetas y los números son los estados.
{"sensor1":"1","sensor2":"0","sensor3":"0","sensor4":"1","entradas":"55"}
En la figura 30 se presenta el diagrama de flujo para la codificación de los datos en formato JSON.
Figura 30. Diagrama de flujo para encapsular en formato JSON.
Después de que la información es enviada al bróker MQTT, se puede acceder a esta desde un
ordenador para posteriormente ser almacenada en una base de datos. Tal como se observa en la
figura 31. Donde mediante phpMyAdmin, un gestor de bases de datos MySQL, se creó una tabla que
almacena el estado de las salidas y las entradas del PLC en tiempo real.
Figura 31. Bases de datos para almacenar la información que envía la tarjeta IoT.
Cada que se genere un cambio en los estados del PLC automáticamente el dispositivo hace él envió
de la información para que se guarde en la base de datos y como en esta queda registrado la fecha
y hora de cada dato entrante, se puede llevar un registro periódico de los cambios lo cual facilita el
monitoreo remoto en tiempo real.
Visualización del estado actual de las entradas y salidas,
7.3.2.
mediante interfaz gráfica
Dependiendo del estado de las lecturas de las entradas y salidas del PLC, mediante unos recuadros,
asigna a cada uno el color rojo que indica la desactivación o el verde para la activación, tal como se
observa en la figura 32. Se disponen de 6 entradas que van desde (I1) hasta (I6) y 4 salidas, desde
(Q1) a (Q4). En la figura 33 se presenta el diagrama de flujo para la ejecución de la interfaz gráfica.
Figura 32. Interfaz gráfica de usuario donde se visualizan los estados de las entradas y salidas del
PLC.
Figura 33. Diagrama de flujo para la interfaz gráfica de usuario.
Ante la perdida de conexión a internet por parte del dispositivo, es necesario seguir almacenando la
información de los cambios que se produzcan en el PLC, durante el tiempo que se demore en
restablecer el servicio de conectividad. Para este fin se añadió un módulo micro SD en el cual se
pueden almacenar todos los datos de los estados y cuando se recupere la conexión,
automáticamente estos se envían a la base de datos. También se puede dar el caso donde ante el
reinicio o apagado forzoso del dispositivo puede que queden datos almacenados en la memoria y
cuando se vuelva a encender es importante que antes de iniciar con la captura y envío, se transmita
primero la información previa.
La lectura y escritura del módulo micro SD (ver figura 7), se realiza mediante comunicación SPI. En
este caso se emplearon los pines de la tabla 8 para realizar la conexión al ESP32.
Para activar la comunicación, el pin de control (CS) se pone en alto y después se desactiva para
no generar interferencia con los demás elementos que estén conectados al bus de datos.
7.5 Conexión a PLC mediante interfaz RS485 y protocolo de comunicación
MODBUS
El prototipo también permite la conexión a internet para PLC’s que solo dispongan de una interfaz
de comunicación serial, por ello se incluyó un módulo RS485 y el protocolo de comunicación
MODBUS. De esta forma se puede establecer comunicación entre el PLC y el prototipo, en la figura
35 se observa la conexión de ambos dispositivos.
Figura 35. Conexión entre la tarjeta IoT y un PLC que posea interfaz de comunicación serial.
El módulo RS485, ver figura 36 dispone de lo siguientes pines y funciones, ver tabla 9.
Dada la arquitectura cliente/ servidor del protocolo MODBUS, el intercambio de datos se realiza
mediante comunicación serial UART, donde la tarjeta IoT actúa como dispositivo esclavo y el PLC
como maestro. Para activar el módulo RS485 se usó el canal 2 del módulo UART del ESP32, tal
como se observa en la figura 37. Respecto a los pines de control DE y RE, estos se cortocircuitaron
ya que cuando uno se encuentra habilitado, el otro no, esto se debe a que en este caso la
comunicación es bidireccional.
Como la tarjeta IoT espera recibir del PLC los datos, para activar la recepción (RE) se hace con un
nivel bajo y después de finalizar, para desactivarla se pone un nivel alto. Estos niveles de activación
y desactivación se generan con uno de los pines del ESP32, en la figura 37 se muestran las
conexiones entre el microcontrolador y los pines del módulo RS485.
Figura 37. Conexión entré el ESP32 y los pines del módulo RS485.
Para realizar el cambio entre la conexión de un PLC que no disponga de interfaz de comunicación
serial y uno que sí la tenga, se añadió un interruptor con el cual se indica a la tarjeta el tipo de enlace
que se va a realizar. En la figura 38 se presenta un diagrama simplificado de la conexión de todos
los módulos que componen la tarjeta IoT, donde no se incluyen los acondicionamientos de señal.
Después de explicar el funcionamiento del prototipo, se establece un marco de pruebas que permitan
validar su funcionamiento. A continuación, se enuncia el objetivo de cada prueba.
Prueba de confiabilidad (con internet): Comprobar que los datos que se envían desde el
dispositivo, sea la misma cantidad que llega a la base de datos para verificar que no se pierda
información.
Prueba de registro de tiempo en la base de datos: Se espera que en esta prueba la base de datos
registre de forma correcta la hora de llegada de cada dato y ante la perdida de conexión a internet
se guarde el tiempo del último dato en llegar, al igual que el del primer dato que llegue tras restablecer
la conexión a la red.
Prueba de almacenamiento de datos en la memoria micro SD: Comprobar que la memoria micro
SD almacena los datos cuando no hay conexión a internet y que cuando se restablezca, la memoria
quede vacía.
Prueba de confiabilidad para conexión a PLC mediante interfaz RS485: Se espera que la
cantidad de datos que lleguen desde el PLC maestro sea la misma cantidad que se envía a la base
de datos.
Prueba de verificación de no alteración de los datos (con internet): Con esta prueba se espera
que los datos que se guardan en la base de datos si lleguen el orden que les corresponde y sin
alteraciones, tal como los envía el dispositivo.
Prueba de verificación de no alteración de los datos (sin internet): Al igual que la prueba anterior
con la excepción de que se espera que los datos almacenados en la memoria micro SD sean iguales
a los que se suben a la base de datos tras restablecerse la comunicación a internet.
Para realizar cada una de las pruebas se implementó el banco de pruebas que se observa en la
figura 39. Este banco dispone de tres bombillos incandescentes de 120V que simulan las cargas
conectadas al PLC y se accionan de forma manual, después cada bombillo se conectó a un sensor
de corriente, dejando uno solo sin carga; esto con el propósito de poder simular cuando no se tiene
una carga conectada. Para simular el voltaje de los sensores que se conectan al PLC, se dispuso de
una fuente de voltaje de 24V conectada a los pines de entrada del dispositivo.
Figura 39. Banco de pruebas para la tarjeta IoT.
Figura 40. Dip-switch con resistencias de pull down conectado a las entradas de la tarjeta IoT.
EJEMPLO DEL FUNCIONAMIENTO DE LA TARJETA IOT
Inicialmente se asume la siguiente entrada para los sensores, ver figura 41. Donde las entradas (I3)
e (I4) se encuentran activas y las restantes están desactivadas.
Respecto a las salidas del PLC, se conectaron los bombillos a los sensores de corriente de Q1, Q3,
Q4 y Q2 se dejó sin carga. En la figura 42 se observa el encendido de estos.
La tarjeta IoT detecta estos cambios, tal como se observa en la figura 43 y procede a enviarlos a la
base de datos.
En la figura 44 se observa que el nuevo dato (recuadro rojo) se almaceno en una tabla que contiene
los estados de las salidas de (Q1 – Q4) al igual que las entradas, también se registra la fecha y hora
en la que llego la información.
Previamente se había mencionado que solo se enviaban datos cuando sucediera un cambio y si se
compara el último dato con el anterior no hubo cambio alguno, pero esto no constituye un error. Lo
que sucede es que si se observa detenidamente ambos datos tienen diferentes fechas lo cual indica
que el dispositivo se apagó el 19/08/2022 a las 18:50:38 y se volvió a encender el 24/08/2022 a las
13:53:32. Con lo anterior se debe mencionar que tan pronto como se enciende el dispositivo este
realiza una lectura inicial la cual interpreta como un cambio.
En cuanto a la interfaz gráfica de usuario, esta recibe la nueva información y la proyecta tal como
se observa en la figura 45.
Figura 45. Interfaz gráfica de usuario donde se observa los cambios detectados por la tarjeta IoT.
RESULTADOS DE LAS PRUEBAS
Después de mostrar el funcionamiento de la tarjeta IoT se procede a realizar las pruebas que siguen
la misma metodología del ejemplo anterior.
Para esta prueba se generaron 100 cambios y se verificó que todos se almacenarán en la base de
datos. Cada cambio se realizó de forma rápida también para poder verificar que no existiera un
tiempo de retraso en la transmisión de la información. En la figura 46 se muestran los datos
almacenados donde se puede observar que entre cada dato si hubo un cambio, la recepción inicio a
las 18:25:47 del día 19/08/2022.
En la figura 47 se observan los últimos datos en llegar, finalizando las pruebas a las 18:29:52. Para
verificar la cantidad de cambios realizados, estos se imprimieron por la terminal virtual del dispositivo,
después se guardaron en un archivo .txt (ver figura 48), se contabilizaron y se comparó con el número
de guardados en la base de datos.
Figura 47. Últimos datos que se almacenaron en la base de datos.
En esta prueba se procedió a desconectar el router wifi para que el dispositivo perdiese conexión a
internet y se realizaron 77 cambios, los cuales también se contabilizaron y se almacenaron en la
tarjeta micro SD. Para ello antes de comprobar la recepción de los cambios en la base de datos, se
verificó que si se guardaran en la memoria micro SD, tal como se observa en la figura 49.
Después de contabilizar los datos almacenados en la memoria, esta se insertó de nuevo en el módulo
micro SD y se activó de nuevo el router para que se guardara toda la información en la base de
datos.
En la tabla 1 de la base de datos (ver figura 47) se observa que el último dato llegó a las 18:29:52 y
al pasar a la tabla 2 (ver figura 50) el primer dato al igual que los restantes, llegaron a las 18:35:05,
lo cual sugiere que el tiempo de desconexión duro aproximadamente 5 minutos. Todos tienen el
mismo tiempo ya que tan pronto se restablece la conexión a internet, automáticamente el dispositivo
envía todos los datos almacenados en la tarjeta micro SD. Los 77 cambios se guardaron en la base
de datos.
Figura 50. Envío de la información guardada en la memoria micro SD, a la base de datos.
En esta prueba se desconectó el router WiFi para generar nuevos datos y antes de restablecer la
conexión a internet. Se extrajo la memoria del módulo micro SD para verificar que si se estuvieran
almacenando los datos, ver figura 51. En la parte superior de la imagen se observa que el archivo
.txt se llama “Pruebauno”.
Para simular la conexión entre el prototipo y un PLC, se usó el programa “Modbus Poll” el cual
permite simular un dispositivo maestro modbus y este se puede enlazar a dispositivos esclavos para
probar el protocolo MODBUS. En la figura 53 se presenta el entorno gráfico del programa.
En Modbus poll se configura el identificador del dispositivo esclavo (ID), el rango de escaneo y la
cantidad de datos que se van a enviar, tal como se observa en la ventana principal de la figura 54.
Adicionalmente en el lado derecho de la figura se observan 5 datos que se ingresaron y se enviaron.
Los primeros cuatro corresponden a lecturas para las salidas del PLC, el quinto para las entradas y
por defecto el sexto dato es cero.
Figura 54. Configuración de conexión con dispositivo esclavo en Modbus Poll.
Cada vez que se enviaban datos desde el dispositivo maestro al prototipo, solo se enviaba
información a la base de datos si sucedían cambios, ver figura 55.
Figura 55. Información que llegaba a la tarjeta desde el dispositivo maestro, mediante protocolo de
comunicación MODBUS.
A parte de comparar la cantidad de cambios enviados desde el prototipo y los que se guardan en la
base de datos, es necesario verificar que los datos no se vean alterados y si lleguen en el orden
correcto. Con lo anterior en esta prueba se tuvieron en cuenta los datos de la primera prueba donde
se generaron 100 cambios y se compararon con los de la base de datos. En la figura 57 en lado
izquierdo se observa una sección de los datos enviados desde el prototipo y en el lado derecho, la
misma información, pero ya almacenada en la base de datos.
En la figura 57 se observa que el orden de llegada a la base de datos es el mismo en el que se envía
desde el prototipo, adicionalmente se visualiza que el tiempo es ascendente lo que indica una
continuidad en la transmisión y recepción de la información, la cual no sufre ninguna alteración. En
la imagen se presenta una sección de los 100 datos que va desde el número 15 al 27. En la base de
datos se muestran 4 datos adicionales.
Figura 57. Comparativa entre los datos enviados desde el dispositivo y los almacenados en la base
de datos.
Prueba de verificación de no alteración de los datos (sin internet)
Para esta prueba se consideraron los datos almacenados en la memoria micro SD cuando se perdió
la conexión a internet, ver figura 51. Después de que se restableció la conexión a la red, se subieron
a la base de datos y se procedió a verificar que la información no estuviese alterada, tal como se
observa en la figura 58. En el lado izquierdo resaltado por el recuadro rojo se aprecia una sección
de los datos de la memoria y en el lado derecho también dentro del recuadro rojo, se ven estos
mismos datos ya almacenados, los cuales no sufrieron ningún cambio y conservan su orden.
Figura 58. Comparativa entre los datos almacenados en la memoria y los enviados a la base de
datos.
9 ANÁLISIS DE RESULTADOS
Los datos obtenidos en cada una de las pruebas a excepción de la prueba de registro de tiempo (3)
se consignaron en la tabla 10.
- Para la prueba 1 se aprecia que de 100 datos que se enviaron, 98 se guardaron en la base de
datos, lo cual da un porcentaje de acierto del 98%. El cálculo del error porcentual se realizó mediante
el procedimiento a continuación, ver ecuación 1.
96 ∗ 100%
𝑋= = 98% (1)
100
Con este resultado se demuestra que el sistema es confiable ya que su porcentaje de acierto es del
98% lo cual garantiza que la gran mayoría de los datos se almacenan en la base de datos. Esto
indica un constante envío de la información sin mayores dificultades, sin embargo, al perderse dos
datos esto sugiere que pueden existir algunos factores que afecten el canal de comunicación como
lo pueden ser la velocidad de transmisión de los diferentes protocolos de comunicación del prototipo
o la red WiFi. Por esta razón se podrían implementar pruebas más rigurosas que permitan identificar
en qué condiciones se pierden datos y cómo evitarlas.
- Respecto a la segunda prueba cuando no hay conexión a internet es importante garantizar que no
se pierdan datos y que su registro sea continuo. Por esta razón en la tabla se observa que de 77
datos generados mientras no había internet, después de restablecerse la conexión todos se
guardaron en la base datos, arrojando como resultado un porcentaje de acierto del 100%.
Lo cual indica que el código responde rápido al momento de detectar la desconexión a la red de
internet y en esta transición, no quedan datos sin guardar en la memoria.
- Para la prueba tres como se observa en la tabla 10, en la memoria no quedaron datos disponibles
después de que el prototipo recuperara la conexión a internet, dado que previamente disponía de 37
datos. Se obtuvo una confiabilidad del 100%, lo que garantiza al usuario del dispositivo que la
información almacenada durante el tiempo de desconexión no se perderá y toda se cargará a la base
de datos.
Con esta prueba se demuestra que el código del prototipo es óptimo al momento de validar
inicialmente si existe información almacenada en la memoria micro SD y en caso de si tener, procede
a enviarla a la base de datos, antes de continuar con la adquisición de nuevos datos.
- En la prueba 5 también cómo se visualiza en la tabla 10, de 23 datos enviados desde el PLC
mediante el protocolo de comunicación MODBUS, solo llegaron 20 de estos, lo cual arroja una
confiabilidad del 87%. Esta pérdida de datos sugiere que a nivel de código puede que exista un
problema entre la librería que recibe e interpreta la información que llega vía conexión RS485 o que
la comunicación UART del módulo presenta alguna interferencia en su conexión al microcontrolador
de la unidad de control.
Aun así, la confiabilidad al estar por encima del 85% es un buen indicador de que el prototipo si
cumple con la tarea de poder conectarse a un PLC para recibir la información proveniente de este y
enviarla a la base de datos.
- Para las pruebas 6 y 7, en ambas se obtuvo una eficiencia del 100% al momento de evaluar que la
información almacenada en la base de datos no sufriera alteraciones. Esto demuestra que los
acondicionamientos de señal, caracterización, muestreo y clasificación de las señales entregadas
por los sensores si funcionan, ya que esto evita la aparición de información que no corresponda a la
clasificación del estado de las entradas y salidas del PLC.
Se diseñó y construyó el prototipo de una interfaz de comunicación a internet para PLC que permite
enviar el estado en que se encuentran sus entradas y salidas. Este sistema permite almacenar y
monitorear en tiempo real la activación de sensores y actuadores para ser enviado a internet. El
sistema se compone de dos módulos para la adquisición de datos, uno para detectar los cambios a
las entradas del PLC y otro conectado a las salidas; en ambos módulos fue necesario realizar un
acondicionamiento de señal. Adicionalmente se cuenta con un sistema de respaldo de
almacenamiento de la información, en caso de que se pierda la conexión a internet. Todo esto se
realizó mediante el protocolo MQTT y se almacenan la información en una base de datos.
El dispositivo se puede conectar a un PLC que disponga de una interfaz de comunicación serial
mediante protocolo MODBUS, para la recepción y transmisión de información a la base de datos. En
base a las pruebas realizadas se obtuvo un porcentaje de acierto del 87%.
La interfaz gráfica de usuario que se diseñó cumple con los requisitos de monitorear la información
en tiempo real. Esta aplicación se puede ejecutar desde diferentes sistemas de cómputo, lo cual
facilita el acceso a la información.
11 TRABAJOS FUTUROS
Incorporar en la tarjeta un módulo ethernet para la conexión mediante cable y así no solo depender
de conexión WiFi.
Como solo se disponen de 6 puertos para las entradas y 4 para las salidas del PLC, en caso de que
se requieran más, diseñar un módulo expansor de puertos.
Incorporar el cálculo de ciertas variables que puedan ser de utilidad para el usuario. Como por
ejemplo a partir de los sensores de corriente, se podría calcular la potencia que consumen las cargas
durante ciertos periodos de tiempo. Esto con el propósito de poder obtener la mayor utilidad del
hardware disponible.
Mejorar la interfaz gráfica para que sea más interactiva donde el usuario pueda añadir información
relevante del proceso que está controlando el PLC.
12 BIBLIOGRAFÍA
[1]. Andrei Tapalaga. "How the Industrial Revolution Changed the World As We Knew It. "HISTORY
OF YESTERDAY. May 19, 2020. Medium. September 18, 2021 https://historyofyesterday.com/how-
the-industrial-revolution-changed-the-world-as-we-knew-it-b4cb0a0a8e3.
[2]. Furore. "3 Sectores de la industria en Colombia que están invirtiendo en tecnología 4.0. "Furore.
Junio 11, 2019. Septiembre 18, 2021 https://furore.co/conoce-los-3-sectores-de-la-industria-en-
colombia-y-el-mundo-que-estan-invirtiendo-en-tecnologia-4-0/.
[3]. REPORTERO INDUSTRIAL. "Corona reconocida como la empresa industrial con mejor
reputación de Colombia. ". Noviembre de 2020. REPORTERO INDUSTRIAL. Septiembre 18, 2021
https://www.reporteroindustrial.com/temas/Corona-reconocida-como-la-empresa-industrial-con-
mejor-reputacion-de-Colombia+136158.
[5]. MinTIC. "MinTIC lanza su estrategia para que las Mipyme entren a la Economía Digital con una
inversión de $47.000 millones. "mintic.gov.co. Junio 27, 2020. Ministerio de Tecnologías de la
Información y Comunicaciones. Septiembre 18, 2021 https://mintic.gov.co/portal/inicio/Sala-de-
Prensa/Noticias/145832:La-oferta-del-MinTIC-para-fortalecer-a-las-mipyme-colombianas.
[7]. Siemens AG. "Controladores básicos SIMATIC S7-1200. "New.siemens. 2021. Siemens AG.
Septiembre 19, 2021
https://new.siemens.com/mx/es/productos/automatizacion/systems/industrial/plc/s7-1200.html.
[8]. RIEVTECH. "About Rievtech. "Rievtech tailored micro - automation solutions. 2014. Rievtech.
September 19, 2021 https://www.rievtech.com/aboutus.html.
[9]. Rockwell Automation. "Controladores CompactLogix 5480. "Rockwell Automation - Allen bradley.
2021. Rockwell Automation. Septiembre 19, 2021 https://www.rockwellautomation.com/es-
co/products/hardware/allen-bradley/programmable-controllers/small-controllers/compactlogix-
family/compactlogix-5480-controllers.html.
[10]. Rosado-Muñoz, Alfredo, et al. "Web monitoring system and gateway for serial communication
PLC." IFAC Proceedings Volumes 45.4 (2012): 296-301.
[12]. SATOSHI. "¿Qué es un SoftPLC?. "Opiron. Noviembre 27, 2017. Opiron. Septiembre 09, 2021,
https://www.opiron.com/que-es-un-softplc-ventajas/.
[13]. John, Asha, et al. "Automation of 11 kv substation using raspberry pi." 2017 International
Conference on Circuit, Power and Computing Technologies (ICCPCT). IEEE, 2017.
[14]. Lokman, Tayeb Bin, Mohammad Touhidul Islam, and Mouslah Uddin Apple. "Design &
Implementation Of IoT Based Industrial Automation System." 2020 11th International Conference on
Computing, Communication and Networking Technologies (ICCCNT). IEEE, 2020.
[15]. Hossain, Md Sanwar, et al. "A smart IoT based system for monitoring and controlling the sub-
station equipment." Internet of things 7 (2019): 100085.
[16]. Joshi, Ramesh, et al. "IoT application for real-time monitor of PLC data using EPICS." 2016
International Conference on Internet of Things and Applications (IOTA). IEEE, 2016.
[17]. Gonzalo, Zuluaga Botero Juan, Herrera Cuartas Jorge Aurelio, and Serna Garces Sergio
Ignacio. "Gateway for Profibus communication between a PLC and embedded system." 2014 XIX
Symposium on Image, Signal Processing and Artificial Vision. IEEE, 2014.
[18]. Liang, Quan, and Li Li. "The study of soft PLC running system." Procedia Engineering 15 (2011):
1234-1238.
[19] i-SCOOP. 2022. Industry 4.0 and the fourth industrial revolution explained. [online] Available at:
https://www.i-scoop.eu/industry-4-0/. [Accessed 17 June 2022].
[20] S. Gillis, Alexander, 2022. What is IoT (Internet of Things) and How Does it Work? - Definition
from TechTarget.com. [online] IoT Agenda. Available at:
https://www.techtarget.com/iotagenda/definition/Internet-of-Things-IoT. [Accessed 17 June 2022].
[21] Catchpoint.com. 2022. The Guide to MQTT Broker. [online] Available at:
https://www.catchpoint.com/network-admin-guide/mqtt-broker. [Accessed 17 June 2022].
[22] TechTalk Blog. 2021. What Is a Programmable Logic Controller (PLC)?. [online] Available at:
https://www.polycase.com/techtalk/electronics-tips/what-is-a-programmable-logic-controller.html.
[Accessed 17 June 2022].
[23] Jost, D., 2019. What is a sensor?. [online] Fierce Electronics. Available at:
https://www.fierceelectronics.com/sensors/what-a-sensor. [Accessed 17 June 2022].
[24] Electronics Tutorials. 2022. Analogue to Digital Converter. [online] Available at:
https://www.electronics-tutorials.ws/combination/analogue-to-digital-converter.html. [Accessed 17
June 2022].
[25] Campbell, S., 2022. Basics of the SPI Communication Protocol. [online] Circuit Basics. Available
at: https://www.circuitbasics.com/basics-of-the-spi-communication-protocol/. [Accessed 17 June
2022].
[26] Weis, O., 2019. Todo sobre Modbus RTU: guía avanzada de comunicación Modbus RTU.
[online] Virtual Serial Port Driver. Available at: https://www.virtual-serial-port.org/es/articles/modbus-
rtu-guide/#1. [Accessed 17 June 2022].
[27] ProtoSupplies. 2022. LM324 Quad Op-Amp - ProtoSupplies. [online] Available at:
https://protosupplies.com/product/lm324-quad-op-amp/. [Accessed 17 June 2022].
[28] Allegromicro.com. 2022. ACS712: Hall-Effect-Based Linear Current Sensor IC. [online] Available
at: https://www.allegromicro.com/en/products/sense/current-sensor-ics/zero-to-fifty-amp-integrated-
conductor-sensor-ics/acs712. [Accessed 17 June 2022].
[29] Circuit Schools. 2022. What is ESP32, how it works and what you can do with ESP32? - Circuit
Schools. [online] Available at: https://www.circuitschools.com/what-is-esp32-how-it-works-and-what-
you-can-do-with-esp32/. [Accessed 17 June 2022].
[30] UNIT Electronics. 2022. Convertidor TTL a RS485 - UNIT Electronics. [online] Available at:
https://uelectronics.com/producto/convertidor-ttl-a-rs485/. [Accessed 17 June 2022].
[31] Sigma Electrónica. 2022. ATMEGA328P-PU - Sigma Electrónica. [online] Available at:
https://www.sigmaelectronica.net/producto/atmega328p-pu/. [Accessed 17 June 2022].
[32] "Geek Factory", Gogeekfactory.com, 2022. [Online]. Available: https://www.gogeekfactory.com/.
[Accessed: 18- Jun- 2022].
[33] Lastminuteengineers.com, 2022. [Online]. Available: https://lastminuteengineers.com/arduino-
micro-sd-card-module-tutorial/. [Accessed: 18- Jun- 2022].
[34] Espressif, 2022. [Online]. Available: https://docs.espressif.com/projects/esp-
idf/en/v4.4.1/esp32/api-reference/peripherals/adc.html. [Accessed: 1- Sept - 2022].
[35] Rockcontent Blog. 2022. [Online]. Available: https://rockcontent.com/es/blog/archivo-json/.
[Accessed: 1- Sept - 2022].
[36] Protosupplies. LM324 Quad Op-Amp. 2022.[Online]. Available:
https://protosupplies.com/product/lm324/.
[37] Sensakey. ACS712 ELC-05B MÓDULO SENSOR HALL DE CORRIENTE DE 5 AMP. 2022.
[Online]. Available:
https://sensakey.com/sensorica/acs712elc-05b-modulo-sensor-hall-de-corriente-de-5-amp/gmx-
niv516-con8922.htm.
[38] Components101. ATMega328P Microcontroller. 2020. [Online]. Available:
https://components101.com/microcontrollers/atmega328p-pinout-features-datasheet.