Logo Studenta
¡Este material tiene más páginas!

Vista previa del material en texto

DISEÑO E IMPLEMENTACIÓN DE UNA HERRAMIENTA DE PROPÓSITO 
GENERAL PARA AUTOMATIZAR EVENTOS EN UN HOGAR 
EMPLEANDO IoT 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CRISTIAN DAVID COBOS SARTA 
DANIEL FELIPE GOMEZ BERNAL 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
UNIVERSIDAD ECCI 
FACULTAD DE INGENIERÍA 
PROGRAMA EN TECNOLOGÍA EN ELECTRÓNICA INDUSTRIAL 
BOGOTÁ, D.C. 
2022 
DISEÑO E IMPLEMENTACIÓN DE UNA HERRAMIENTA DE PROPÓSITO 
GENERAL PARA AUTOMATIZAR EVENTOS EN UN HOGAR 
EMPLEANDO IoT 
 
 
 
 
 
 
 
 
 
 
CRISTIAN DAVID COBOS SARTA 
DANIEL FELIPE GOMEZ BERNAL 
 
 
 
 
 
 
 
 
PROYECTO DE INVESTIGACIÓN 
 
 
 
 
 
 
 
 
Ing. JAVIER ANDRÉS TORRES PERÉZ. M.Sc 
 
 
 
 
 
UNIVERSIDAD ECCI 
FACULTAD DE INGENIERÍA 
PROGRAMA EN TECNOLOGÍA EN ELECTRÓNICA INDUSTRIAL 
BOGOTÁ, D.C. 
2022 
Tabla de contenido 
 
1. TITULO DE LA INVESTIGACIÓN .............................................................................. 4 
2. JUSTIFICACIÓN Y DELIMITACION DE LA INVESTIGACIÓN ................................... 4 
2.1. JUSTIFICACION ................................................................................................. 4 
2.2. DELIMITACIÓN ................................................................................................... 4 
3. OBJETIVOS DE LA INVESTIGACION ....................................................................... 5 
3.1. OBJETIVO GENERAL ......................................................................................... 5 
3.2. OBJETIVOS ESPECIFICOS ................................................................................ 5 
4. MARCO DE REFERENCIAS DE LA INVESTIGACIÓN .............................................. 6 
4.1. ASPECTOS GENERALES DEL SISTEMAS ........................................................ 6 
4.2 MARCO TEÓRICO ............................................................................................ 12 
5 TIPO DE INVESTIGACIÓN ...................................................................................... 17 
6 ESPECIFICACIONES TECNICAS DEL SISTEMA ................................................... 17 
7 COSTOS DEL PROYECTO ..................................................................................... 20 
8 DESAROLLO DEL SISTEMA ................................................................................... 21 
8.1 PRIMERA ETAPA: PROGRAMACIÓN DE MICROCONTROLADORES EN 
MBED. .......................................................................................................................... 21 
8.2 SEGUNDA ETAPA: INTEGRACIÓN NRF24L01 Y MICROCONTROLADOR. ... 21 
8.3 TERCERA ETAPA: CONFIGURACIÓN PUERTO SERIE RASPBERRY PI. ...... 25 
8.4 CUARTA ETAPA: PRUEBA DE COMUNICACIÓN ENTRE SBC Y UBIDOTS. .. 28 
8.5 QUINTA ETAPA: DISEÑO DE MÓDULOS DE CONTROL Y CONTROLADOR 
MAESTRO ................................................................................................................... 30 
8.5.1 DISEÑO MÓDULO DIMMER ...................................................................... 30 
8.5.2 DISEÑO MÓDULO SENSOR CORRIENTE................................................ 42 
8.5.3 DISEÑO MÓDULO DISPENSADOR .......................................................... 52 
8.5.4 DISEÑO MÓDULO MONITOREO PUERTA ............................................... 56 
8.5.5 DISEÑO CONTROLADOR MAESTRO ....................................................... 63 
8.6 SEXTA ETAPA: IMPLEMENTACIÓN GOOGLE ASSISTANT Y UBIDOTS .... 67 
9 TRABAJOS Y OPORTUNIDADES FUTURAS ......................................................... 68 
9.1 OPORTUNIDADES DE MEJORA .................................................................. 68 
10 DISCUSIÓN .......................................................................................................... 69 
11 CONCLUSIONES ................................................................................................. 70 
12 REFERENCIAS ..................................................................................................... 71 
13 ANEXOS ............................................................................................................... 72 
1. TITULO DE LA INVESTIGACIÓN 
 
Diseño e implementación de una herramienta de propósito general para automatizar 
eventos en un hogar empleando IoT 
 
2. JUSTIFICACIÓN Y DELIMITACION DE LA INVESTIGACIÓN 
 
2.1. JUSTIFICACION 
 
La base de este proyecto consiste en implementar una solución que permita 
monitorear y manipular elementos básicos dentro de un hogar desde una 
plataforma web como lo son: interruptores, puntos de red eléctrica, 
dosificadores de comida para mascotas y que también permita monitorear si 
una persona ha ingresado al hogar. Todo lo anterior hace necesario utilizar 
un dispositivo maestro que tenga la capacidad de enlazar las órdenes 
definidas por el usuario en la plataforma, con los elementos mencionados y 
además, debe tener la capacidad de actualizar la información recibida de 
cada evento en la misma plataforma. 
 
Los diferentes comandos de control para cada evento serán ejecutados por 
los diferentes dispositivos electrónicos (microcontroladores, actuadores, 
sensores, etc.) que componen la solución, permitiendo realizar acciones de 
manera remota como las que se mencionan a continuación: Encender, 
apagar y/o dimerizar luces, monitorear y activar o desactivar un punto 
eléctrico, generar reportes cuando se realiza la apertura de la puerta principal 
del hogar, activar los mecanismos de dosificación de comida y bebida para 
la mascota, entre otras. 
 
2.2. DELIMITACIÓN 
 
Este proyecto se limita en realizar una solución que permita monitorear y/o 
controlar cuatro eventos: ingreso a la vivienda, monitoreo de consumo 
eléctrico en tomacorrientes, encendido, apagado y dimerización de luces, y 
dispensación de debida y alimento para mascotas. Para ello se plantea 
utilizar una SBC (Single Board Computer – Computador de placa Sencilla) 
que tenga la capacidad de enviar y recibir información de un dashboard web 
que será la interfaz del usuario con el sistema y así enviar y ejecutar las 
ordenes definidas en la web para cada módulo de control. 
 
La solución a desarrollar constará de: Un dispositivo maestro (módulo 
compuesto por la SBC de elección, un microcontrolador y un radio) y 4 
módulos de control (módulos compuestos por un microcontrolador, un radio, 
un sistema de potencia y un actuador según corresponda) con los cuales se 
realizará cada acción física establecida. 
3. OBJETIVOS DE LA INVESTIGACION 
 
3.1. OBJETIVO GENERAL 
 
Diseñar e implementar una solución de propósito general, que permita 
automatizar 4 eventos dentro de un hogar empleando Internet de las cosas. 
 
3.2. OBJETIVOS ESPECIFICOS 
 
• Seleccionar los elementos en hardware para implementar una 
solución compuesta por un controlador maestro, un sistema de 
comunicación y módulos periféricos que permitan automatizar las 
acciones establecidas dentro de un hogar. 
 
• Implementar un sistema de comunicación inalámbrico que opere en la 
banda ISM (Industrial, Scientific and Medical band) que soporte el 
intercambio de información entre el controlador maestro y los módulos 
periféricos. 
 
• Desarrollar un módulo genérico (radio, microcontrolador, etapa de 
potencia para el actuador) que permita implementar cada una de las 
soluciones a las acciones establecidas. 
 
• Implementar una interfaz de usuario por medio de un dashboard en la 
nube que permita interactuar con el controlador maestro. 
 
• Evaluar el desempeño de la solución desarrollada. 
 
 
 
 
 
 
4. MARCO DE REFERENCIAS DE LA INVESTIGACIÓN 
 
4.1. ASPECTOS GENERALES DEL SISTEMAS 
 
 
 Ilustración 1 Esquema general de la solución 
 
 Ilustración 2 Esquema general controlador maestro y módulos de control 
 
El usuario puede indicar las tareas a realizar y visualizar el estado de los 
diferentes módulos mediante un dashboard alojado en la nube (se explica en 
el siguiente apartado). Dichas tareas son identificadas porel controlador 
maestro que a su vez se encarga de notificar a los diferentes módulos de 
control sobre la tarea pendiente. 
 
Además, el controlador maestro debe tener capacidad de atender y/o recibir 
información relevante de cada módulo que requiere actualizar valores en el 
dashboard. Cada módulo de control se encarga de ejecutar las tareas 
mediante los actuadores según corresponda. 
 
4.1.1 DASHBOARD EN LA NUBE 
 
El dashboard mediante el cual el usuario puede indicar las tareas a realizar 
en cada módulo de control es Ubidots1, una plataforma IoT que permite 
conectar hardware con la nube mediante diferentes protocolos de 
comunicación como HTTP, MQTT, TCP, entre otros. Esta plataforma nos 
permite crear diferentes tableros que incorporan botones, gráficos, alertas y 
demás elementos que permiten visualizar, modificar y/o monitorear los 
valores de las variables ligadas a cada uno de los elementos que componen 
el dashboard. 
 
 
 Ilustración 3 Ejemplo Dashboard en Ubidots: https://ubidots.com/ 
 
1 Ubidots: https://ubidots.com/platform/ 
https://ubidots.com/platform/
4.1.2 CONTROLADOR MAESTRO 
 
Para poder establecer una comunicación entre en dashboard en la nube y el 
controlador maestro es necesario contar con un dispositivo con capacidad de 
conexión a internet. A su vez para conectar el controlador maestro con los 
módulos de control se requiere que la SBC tenga puertos de entrada, salida 
e interfaces de comunicación. 
 
Teniendo en cuenta lo anterior, el controlador maestro implementado a partir 
de una SBC es básicamente un puente entre el dashboard en la nube y los 
módulos periféricos que son los que realizan las mediciones y/o acciones. 
 
 
 Ilustración 4 Esquema General Controlador Maestro 
Para satisfacer dichas necesidades se decide implementar un SBC (Single 
Board Computer – Computador de Placa Simple) que son dispositivos 
capaces de ejecutar tareas complejas y cuentan con todos los elementos 
básicos de un ordenador. Las SBC preseleccionadas se muestran a 
continuación: 
 
 
 Ilustración 5 Comparativa y elección de SBC 
La SBC seleccionada fue Raspberry Pi 4 de 2Gb RAM, ya que el ecosistema 
Raspberry proporciona: programación en Python con una amplia gama de 
librerías para comunicación con internet vía WIFI (en la banda de 2.4 GHz y 
5 GHz), manejo de pines de entrada y salida, documentación actualizada y 
un ecosistema muy bien desarrollado en conjunto con Ubidots. 
 
4.1.3 MÓDULO DE COMUNICACIÓN 
 
La comunicación entre el controlador maestro y los módulos de control se 
realiza de manera inalámbrica en la banda ISM, por lo cual se seleccionó el 
radio de comunicación NRF24L01 debido a su bajo costo en relación con su 
alcance. 
Raspberry Pi 4 
Modelo B
Qualcom Dragón Board 
410C
Asus Tinker Board S ODROID-N2
Procesador
Quad-Core Cortex-
A72 64 bits a 1.5GHz
Quad-Core ARM Cortex 
A53 1.2 GHz 32 bits y 64 
bits
Rockchip RK3288 Quad-
Core Cortex-A17 32 bits 
1.8Ghz
Amlogic S922X Hexa-core 
Quad-Core ARM Cortex-
A73 y Dual-Core Cortex-
A53
Gpu Video Core VI Qualcomm Adreno 306 Mali-T764. ARM Mali-G52
Memoria RAM
1GB, 2GB o 4GB 
LPDDR4
1GB LPDDR3 2GB DDR3 2GB o 4GB DDR4 
Almacenamient
o
Ranura micro SD Ranura micro SD Ranura micro SD Ranura micro SD
Conectividad
Bluetooth 5.0, Wi-Fi 
802.11ac, Gigabit 
Ethernet
Bluetooth 4.1, Wi-Fi 
802.11ac
Bluetooth V4.0, Wi-Fi 
802.11 b, Gigabit 
Ethernet
Bluetooth 4.0, Wi-Fi 
802.11ac, Gigabit 
Ethernet
Puertos video
2x micro HDMI 
(Video 4k 60 fps)
HDMI tipo A (1080p 
HD)
HDMI tipo A (1080p HD) HDMI (4K a 75 Hz)
Puertos audio Jack 3.5 mm Jack 3.5 mm Jack 3.5 mm Jack 3.5 mm
Puertos USB
2x USB 2.0 / 2X USB 
3.0
2x USB 2.0 4x USB 2.0 4 x USB 3.0
GPIO 40 pines 40 pines 40 pines 40 pines
Alimentación 5V - 1.2A 12V - 1A 5V - 3A 12V - 2A
precio
COP:$178.500-
$285.600
COP:$288.300 COP:$315.200 COP:285.421
 
 Ilustración 6 Comparativa y elección de Radio 
Se optó por implementar el radio con la antena incorporada en la PCB, ya 
que el alcance especificado por el fabricante cumple con los requerimientos 
de la solución. Además, esta solución nos permite nos permite ahorrar 
espacio y costos de fabricación de circuitos impresos de la solución. 
4.1.4 MICROCONTROLADORES 
 
Para la elección del microcontrolador a utilizar en cada módulo de control y 
en el controlador maestro se tuvo en cuenta lo siguiente: la inclusión de 
puertos de comunicación Serial (para la comunicación entre la SBC y 
microcontrolador maestro) y SPI (protocolo de comunicación utilizado por los 
radios seleccionados), características técnicas de los microcontroladores 
(capacidad de cómputo), integración en tarjetas de desarrollo y costos de los 
mismos. 
 
 
 Ilustración 7 Comparativa y elección de tarjeta de desarrollo 
Se selecciona el microcontrolador STM32F103C8 incorporado en la tarjeta 
de desarrollo Blue Pill por la superioridad técnica respecto a los demás 
microcontroladores analizados, los costos de dicha tarjeta de desarrollo, y la 
posibilidad de programar la tarjeta con Mbed, lo cual ofrece una simplicidad 
Caracteristicas / Modulo NRF24L01 NRF24L01+PA+LNA XBee S2C lora
Alcance de transmisión 100 metros 800 - 1000 metros 60 metros 10 kilimetros
Consumo corriente 60 mA 115 mA 50 mA 120 mA 
Taza de transferencia de datos 250Kbps, 1Mbps y 2Mbps 250Kbps, 1Mbps y 2Mbps 250Kbps y 1Mbps 250Kbps, 12Mbps y 25 Mbps 
Protocolo de comunicación SPI SPI UART / SPI SPI
Antena Antena incorporada PCB Antena omnidireccional (SMA) Antena incorporada PCB Antena de muelle 
Banda de frecuencia ISM 2,4 GHz ISM 2,4 GHz ISM 2,4 GHz ISM 433 MHz 
Precio (Dólares) 1.32 4 33.80 7.50
Caracteristicas 
/Microcontroladores Arduino nano STM32F103 blue pill Mini 32 board nucleo f303K8
Microcontrolador ATMEGA328P STM32F103C8 PIC32MX534F064H STM32F303K8T6
CPU/FOSC RISC 8-Bit AVR / 16MHz ARM Cortex-M3 32-bit / 72MHz 32-bit MIPS M4K Core / 80MHz ARM Cortex-M4 / 72MHz
ROM / RAM 32 KB / 2KB 64 KB / 20 KB 64 KB / 16KB 64KB / 12KB
Voltaje de funcionamiento 5V 3,3 V 5V / 3,3 V 5 V
ADC (# / Resolución / CH ) 1 / 10 bits / 8 2/12 bits / 16 1 / 10 bits / 16 2 / 12 bits / 9
PWM ( Canales / Resolución ) 6 / 10 bit 15 / 16 bits 5 / 16-32 bits 6 / 16bit
UART/I2C/SPI 1/1/1 3 / 2 / 2 6 / 4 / 3 0 / 1 / 1
DAC ( Resolución / CH ) 10 bit / 1 12 bit / 3 12 bit / 2 12 bit / 3
Precio (Dólares) 3.22 4.02 26.20 25
para el manejo del radio seleccionado y de los puertos de comunicación 
gracias a la amplia gama de librerías disponibles. 
 
 
Ilustración 8 Comparativa Motores 
Se realizaron pruebas con el motor TYC-50 donde se observó que cuando 
se requiere un esfuerzo mecánico superior (la comida intenta bloquear el 
tornillo sin fin) este dispositivo cambia inmediatamente su sentido de giro y 
por lo tanto desplaza la comida en el sentido opuesto a la abertura de salida. 
 
Por lo anterior se selecciona el motor JGY370, un motor de corriente directa 
con alto torque y bajas revoluciones que es capaz de realizar el trabajo 
mecánico necesario para dispensar la comida incluso cuando esta intenta 
bloquear el tornillo sin fin. 
 
 
Ilustración 9 Comparativa motobombas 
Caracteristicas / 
Modulo TYC-50 JGY370
Voltaje de operación 120V AC 12V DC
Corriente de operación 0.04 A 0.5A
Velocidad 5 - 6 RPM 40 RPM
Torque 4 Kg/cm 3 Kg/cm
Motorreductor No Si
Precio (Dólares) 4.5 8.74
Caracteristicas / 
Modulo JT.MC3W-5 R385
Voltaje de operación 5V DC 12V DC
Corriente de operación 0.2A 0.5-0.7A
Flujo volumétrico 0.8 L/min 1.5-2 L/min
Diámetro de salida 6 - 8 mm 6mm
Precio (Dólares) 1,85 3,18
Se realizaron pruebas con ambas motobombas, sin embargo, el modelo 
JT.MC3W-5 entrega un empuje muy pequeño que dificulta el desplazamiento 
del líquido a través de las mangueras instaladas en el dispensador. 
 
El modelo R385 provee de un caudal superior para el desplazamiento del 
líquido, además que su voltaje de operación permite utilizar un módulo 
genérico para controlar la activación y desactivación tanto del motor como de 
la motobomba conuna misma fuente de alimentación. 
4.2 MARCO TEÓRICO 
 
IoT: El internet de las cosas o IoT por sus siglas en inglés es la conexión de 
diferentes dispositivos y objetos cotidianos sin la intervención humana con el 
propósito de intercambiar información con otros dispositivos a través de 
internet. El IoT nace a causa de la falta de tiempo de las personas y busca 
que procesos que no requieren la intervención humana pueda realizarse al 
mantener comunicación constante entre diferentes elementos inteligentes 
dentro del hogar. 
 
SBC: Las SBC o Single Board Computer son computadores de placa única 
que contiene todos los elementos principales de un ordenador común, 
(procesador, memoria RAM, GPU, etc.) sus características principales son 
su tamaño reducido, un rendimiento suficiente para aplicaciones de bajo 
perfil, un precio inferior a ordenadores tradicionales, bajos consumos 
energéticos y son plataformas que buscan enlazar elementos de hardware y 
software para el aprendizaje o desarrollo de proyectos. 
 
 
MICROCONTROLADOR: Un microcontrolador es un dispositivo 
programable encapsulado en un solo circuito integrado que contiene una 
unidad de procesamiento, memoria RAM entradas y salidas de propósito 
general; puertos E/S), osciladores, módulos de comunicación, interfaces de 
control, entre otros componentes que le permiten ejecutar tareas específicas, 
los microcontroladores buscan realizar tareas concretas aplicadas a 
elementos internos o externos al mismo con máxima eficiencia. 
 
 
PROTOCOLOS DE COMUNICACIÓN: El conjunto de normas necesarias 
para que los equipos o dispositivos conectados a una red puedan 
comunicarse entre sí reciben el nombre de protocolos de comunicación. 
Algunos de los componentes para la comunicación entre dispositivos son: rol 
de cada dispositivo, herramientas de recepción de datos, tiempos de 
respuestas, tipos de redes, entre otros que según sea el tipo de protocolo, 
serán necesarios para mejorar la transferencia de información. Algunos 
protocolos de comunicación son: 
 
• Zigbee: Es un sistema de comunicación de radiodifusión digital 
centrado en la comunicación entre dispositivos, cuenta con un 
conjunto de protocolos de alto nivel. Este protocolo de comunicación 
supone un ahorro energético y opera en la banda 2.4GHz basada en 
el estándar IEEE 802.15.4 (estándar que define los niveles de red 
básicos y el control de acceso al medio de redes inalámbricas de área 
personal) 
 
• Bluetooth: El bluetooth es un protocolo de comunicación de IEEE 
802.15 punto a punto o punto a multipunto que opera a través de radio 
frecuencia en la banda de 2,4 GHz. Fue diseñado para sustituir la 
transmisión de voz y datos a través de conexiones cableadas y se 
caracteriza por ser tecnología de bajo costo, de tamaño reducido y de 
corto alcance (10m-15m). 
 
• WIFI: El WIFI está basado en los estándares IEEE 802.11 y se refiere 
a un protocolo de comunicación inalámbrico de ondas de radio, Opera 
en la banda de 2.4GHz (802.11n) y 5GHz(802.11ac). Respecto a la 
seguridad, los datos son cifrados a través de WPA o WPA2. 
 
• WEBSOCKET: El websocket es un protocolo de comunicación que 
aparece con HTML5 y que es capaz de generar la comunicación 
bilateral entre dos dispositivos. La principal ventaja de este protocolo 
de comunicación es que simplifica los tiempos necesarios para enviar 
o recibir información dentro de una red, pues permite que en cualquier 
instante se envíe o reciba información sin necesidad de iniciar de 
nuevo la conexión, es decir, se tiene línea directa permanente entre 
los dispositivos que se estén comunicando. 
 
• MQTT: Message Queuing Telemetry Transport es un protocolo de 
comunicación usado para el intercambio de información y 
comunicación entre máquinas a distancia (M2M), este protocolo es 
principalmente usado para la comunicación de sensores y actuadores 
con un bajo consumo de ancho de banda y consumiendo pocos 
recursos de sistemas (CPU, RAM ) permitiendo implementar este 
protocolo en una computadora de placa única (SBC) con propósitos 
como análisis de eventos en tiempo real, monitoreo de distintos 
entornos, comunicación con dispositivos electrónicos, teledetección y 
control. 
 
• COMUNICACIÓN SERIAL: La comunicación serial es un método de 
intercambio de información que utiliza un único hilo o conductor para 
la transmisión de datos y otro para la recepción. La información es 
enviada un bit tras otro a través del hilo en cuestión (CONTEC, s.f.). 
 
Los microcontroladores incorporan un controlador especial 
denominado UART (Universal Asynchronous Reciver/Transmitter) 
para la comunicación serial con otros dispositivos sin la necesidad de 
incluir una señal de reloj para sincronizar tanto a transmisor como 
receptor (Tyson, 2020). 
 
• PROTOCOLO SPI: La interfaz de comunicación SPI (Serial Peripheral 
Interface) es un protocolo de comunicación ampliamente utilizado para 
el intercambio de información entre microcontroladores y periféricos 
tales como ADC. DAC, radios de comunicación, pantallas de 
visualización, memorias, entre otros. El SPI es una interfaz síncrona 
full-duplex, por lo que requiere de una señal de reloj para sincronizar 
los dispositivos, una línea para habilitar al esclavo, un hilo para la 
transmisión de datos y otro para la recepción de información (Dhaker, 
2018). 
 
SENSORES: Son dispositivos diseñados para monitorear el comportamiento 
de un fenómeno o variable física a partir de la captura de señales en un 
intervalo de tiempo de interés (Mecafenix, 2020). 
 
ACTUADORES: Son dispositivos que responden a un estímulo en su entrada 
(señales de control) para generar una respuesta física como movimientos 
mecánicos, variaciones de temperatura o velocidad, entre otros (Meneses, 
2020). 
 
DIMMER: Un dimmer es un circuito electrónico digital o analógico cuyo 
objetivo principal es controlar la cantidad de energía entregada a una carga. 
Su uso más común dentro del hogar es variar la intensidad lumínica de un 
bombillo (admin@fowlerelectricnv.com, 2019). 
 
OPTOACOPLADOR: Un optoacoplador es un componente electrónico que 
proporciona aislamiento eléctrico entre una fuente de entrada y una carga de 
salida. Su construcción interna incluye un led emisor de luz infrarroja, y un 
semiconductor fotosensible encargado de controlar la fuente de salida. Como 
semiconductores de salida son comúnmente usados: fototransistores, 
optoSCR y optotriacs. Su implementación permite proteger al circuito de 
control (comúnmente microcontroladores) frente a cualquier sobre carga 
producido por una carga de alto consumo conectada al semiconductor de 
salida (Storr, 2018). 
 
AMPLIFICADOR DIFERENCIAL: Un amplificador operacional en 
configuración de amplificador diferencial amplifica la diferencia de potencial 
entre su entrada no inversora e inversora. Su ventaja es que rechaza el ruido 
en modo común, por lo cual es ideal para el tratamiento de señales en 
corriente alterna (Ortega, 2018). 
 
 
 Ilustración 10 Configuración amplificador diferencial: https://hetpro-
store.com/TUTORIALES/amplificador-diferencial/ 
 
AMPLIFICADOR COMPARADOR CON HISTÉRESIS: Un amplificador 
operacional en configuración de comparador es un circuito que permite variar 
el estado de la salida cuando el nivel de tensión en la entrada inversora se 
encuentra por encima o por debajo de un voltaje de referencia conectado a 
la entrada no inversora (Bueso, s.f.). 
 
 
 Ilustración 11 Configuración detector de cruce por cero inversor: (Bueso, s.f.) 
 
El problema se presenta al tener una señal de entrada con ruido: 
 
 
 Ilustración 12 Salida del comparador con una señal de entrada con ruido: (Bueso, s.f.) 
Observemos que la señal de ruido provoca falsos flancos de ascenso y 
descenso no deseados, por lo cual se utiliza la siguiente configuración: 
 
 
 Ilustración 13 Comparador con histéresis inversor: (Bueso, s.f.) 
 
Esta configuración asegura que la saturación positiva y negativa del 
amplificador operacional curra siemprey cuando la señal de entrada recorra 
una ventana de voltajes equivalente tanto al superar el voltaje de referencia 
como al ser menor a este. 
 
 
 
 Ilustración 14 Curva característica de un comparador con histéresis: (Bueso, s.f.) 
 
5 TIPO DE INVESTIGACIÓN 
 
Investigación teórica-práctica. 
 
6 ESPECIFICACIONES TECNICAS DEL SISTEMA 
 
COMPONENTE CARACTERÍSTICAS ASPECTO FÍSICO 
Raspberry Pi 4 
• Procesador: ARM corex-A72 64bits 4 
núcleos 1.5 GHz 
• GPU: Video Core VI 
• Memoria RAM: 2GB 
• Puertos: Pines GPIO (40), micro 
HDMI (2), USB 2.0 (2), USB 3.0 (2) 
• Conectividad: WI-FI, Bluetooth 5.0, 
Gigabit Ethernet 
 
STM32F103C8T6 
(BLUE PILL) 
• Voltaje de operación: 3.3V 
• Pines analógicos: 10 
• Pines Digitales: 37 
• Protocolos de comunicación: SPI (2), 
UART (3), I2C (2) 
• Memoria flash: 64/128 KB 
• Memoria SRAM: 20KB 
Radio nRF24L01 
• Modulo transceptor 
• Voltaje de operación: 3.3V 
• Protocolo de comunicación: SPI 
• Frecuencia:2.4 GHz – 2.5GHz 
• Canales RF: 126 
• Alcance: 20m – 30m 
Cámara IP 
• Modelo: V380 
• Protocolo: ONVIF 
• Visión nocturna 
• Conectividad: WIFI, Red RJ45 
• Resolución: 1080p 
 
Motor 
• Modelo JGY370 
• Motor con motorreductor de 
engranajes 
• Voltaje de operación: 12V DC 
• Corriente de operación: 0.5A 
• Velocidad 40RPM 
• Torque 3 Kg/cm 
Motobomba 
• Modelo: R385 
• Voltaje de operación: 12V DC 
• Corriente de operación: 0.5-0.7A 
• Dimensiones: 90mm x 40 mm x 
35mm 
• Flujo volumétrico: 1.5-2 L/min 
• Diámetro de salida 6mm 
Puente H 
• Circuito Integrado: L298 
• Voltaje de operación: 5V DC 
• Corriente de operación 36mA 
• 2 canales 
• Voltaje por canal: 5V DC - 35V DC 
• Corriente MAX por canal: 2A 
 
Conversor AC/DC 
• Modelo: Hi-link (HLK-PM01) 
• Voltaje de entrada: 120V AC 
• Voltaje de salida: 5V DC 
• Corriente de salida: 0.6 A DC 
 
Regulador de 
voltaje 
• Modelo: L78L33 
• Voltaje Max entrada:30V DC 
• Voltaje de salida: 3.3V DC 
• Corriente de salida: 100mA 
 
Amplificadores 
operacionales 
• Modelo: LM358 
• Numero de amplificadores: 2 
• Voltaje de operación: 3V – 32V 
• Voltaje offset entradas: 2mV 
• Ganancia de voltaje diferencial: 100 
dB 
 
• Modelo: TL084 
• Entradas transistores JFET 
• Numero de amplificadores: 4 
• Voltaje de operación: ± 18V 
• Voltaje offset entradas: 3mV 
 
 
 
 
Optoacoplador 
• Modelo: MOC 3021 
• Salida: Fototriac 
• Voltaje directo Max LED: 1.5V 
• Corriente Max LED: 60mA 
• Corriente de activación LED: 15-
30mA 
• Voltaje Max salida: 400Vp 
Tiristor 
• Modelo: TRIAC BT138 
• Valor instantáneo máximo de pulsos 
de voltaje (VDRM): 600V 
• Valor de corriente RMS ánodo - 
cátodo en directo (IT):12A 
• Valor pico máximo de corriente 
encendido: 95ª 
• Voltaje pico de gate (VGM): 5V 
• Corriente máxima Trigger Gate: 
70mA 
 
 
Sensor corriente 
• Modelo: ZMCT103C 
• Rango corriente de entrada: 0 - 10A 
(50Ω) 
• Rango corriente de salida: 5mA 
• Proporción: 1000:1 
• Linealidad: ≤0.2% 
• Voltaje de aislamiento: 4500V 
 
Sensor magnético 
• Tipo: Interruptor Reed Switch 
• Voltaje máximo: 100V DC 
• Corriente máxima: 0.5A 
• Potencia: 10W 
• Distancia de actuación: 20-25mm 
 
 
Tabla 1 Dispositivos y componentes principales de la solución 
7 COSTOS DEL PROYECTO 
 
COSTOS DEL PROYECTO 
Componente Cantidad 
Precio 
unitario Total 
Raspberry pi 4 1 $ 255.000 $ 255.000 
Microcontrolad
or (BLUE PILL) 5 $ 15.000 $ 75.000 
(nRF24l01) 5 $ 5.000 $ 25.000 
Cámara IP 1 $ 80.000 $ 80.000 
Motor DC 1 $ 33.577 $ 33.577 
Motobomba DC 1 $ 39.500 $ 39.500 
HI-LINK (5V) 4 $ 15.000 $ 60.000 
L78L33 4 $ 1.190 $ 4.760 
LM358 3 $ 900 $ 2.700 
TL084 1 $ 2.400 $ 2.400 
2N2222 2 $ 100 $ 200 
MOC 3021 2 $ 2.380 $ 4.760 
BT138 2 $ 1.600 $ 3.200 
Sensor 
corriente 1 $ 9.500 $ 9.500 
Contacto 
magnético 1 $ 6.900 $ 6.900 
Puente H 1 $ 10.000 $ 10.000 
Componentes 
pasivos 47 $ 200 $ 9.400 
Conectores 19 $ 1.000 $ 19.000 
Fabricación 
PCB 5 $ 44.000 $ 220.000 
Estructura del 
dispensador 1 $ 50.000 $ 50.000 
Total $ 910.897 
 Tabla 2 Costos del proyecto 
8 DESAROLLO DEL SISTEMA 
 
Para el desarrollo del proyecto se optó por dividirlo en etapas descritas a 
continuación: 
 
8.1 PRIMERA ETAPA: PROGRAMACIÓN DE MICROCONTROLADORES 
EN MBED. 
 
La herramienta seleccionada para desarrollar el firmware de los 
microcontroladores fue Mbed Online Compiler. Mbed2 proporciona un 
sistema operativo open source con conectividad, seguridad, 
almacenamiento, administración de dispositivos y aprendizaje automático. 
 
Mbed proporciona soporte para diversos microcontroladores de arquitectura 
ARM (como es el caso del STM32F103C8T6), no solo al incluir una serie de 
librerías oficiales para la tarjeta de desarrollo seleccionada, sino también al 
ser un sistema open source, posee una enorme comunidad que proporciona 
nuevas librerías para facilitar el uso de microcontroladores ARM con 
periféricos como radios, pantallas, entre otros. 
 
8.2 SEGUNDA ETAPA: INTEGRACIÓN NRF24L01 Y 
MICROCONTROLADOR. 
 
El radio NRF24L01 está diseñado para trabajar en la banda de frecuencia 
ISM de 2,4GHz, adicionalmente, el fabricante indica que tiene 126 canales 
de frecuencia seleccionables, lo que se traduce en un rango de trabajo entre 
 
2 Mbed: https://os.mbed.com/ 
https://os.mbed.com/
2,4GHz y 2,515GHz. Tiene una potencia de transmisión de datos de 0,-6,-12 
o -18dBm y una tasa de trasferencia de 250kbps, 1Mbps o 2Mbps. 
 
Para integrar el radio NRF24L01 y el microcontrolador, es necesario utilizar 
una librería3 desarrollada por un miembro de la comunidad Mbed para dicho 
dispositivo. Esta librería proporciona una serie de funciones que facilitan la 
configuración y manipulación de los radios por parte del STM32. 
 
8.2.1 DESCRIPCIÓN PRUEBA DE ALCANCE Y CONECTIVIDAD 
 
Se realizó una prueba con un maestro transmisor y un esclavo receptor, 
donde el maestro envía repetidamente un mensaje a la dirección y frecuencia 
a las que se encuentra configurado el esclavo. Se espera que este último al 
recibir el mensaje lo envíe mediante el puerto serial del microcontrolador a 
un PC. 
 
El transmisor se ubicó en diferentes habitaciones del hogar, mientras que el 
receptor se posicionó en un segundo piso (punto medio a nivel del escenario 
usado) para que, al recibir el mensaje, este sea impreso en un terminal 
(Putty). 
 
 
Ilustración 15 Plano piso 1 del escenario 
 
3 Librería Nrf24l01: https://os.mbed.com/components/nRF24L01/ 
https://os.mbed.com/components/nRF24L01/
 
 
Ilustración 16 Plano piso 2 del escenario 
 
Ilustración 17 Plano piso 3 del escenario 
 
Ilustración 18 Diagramas de flujo simplificados de transmisor y receptor para prueba de Alcance y 
Conectividad 
Para revisar con mayor detalle las pruebas realizadas y los diagramas de 
flujo de los códigos de la prueba revisar el anexo A. 
 
Apreciaciones: 
• El tiempo de espera para la recepción de datos depende directamente 
de la distancia a la que se encuentre el receptor respecto al 
transmisor. Teniendo en cuenta que el sistema propuesto será 
implementado en una vivienda, las pruebas se desarrollaron en una 
vivienda de 3 pisos (12m de fondo x 6m de frente) con un grosor de 
18 y 32 cm para paredes y planchas entre pisos respectivamente. 
 
 
Ubicación 
Receptor 
 
Ubicación 
Transmisor 
 
Distancia 
(m) 
Tiempo 
transcurrido 
para la 
recepción de 
datos 
Color 
Segundo Piso Primer Piso 6 1-15 
Segundos 
 
Segundo Piso Primer Piso 10 + 15 
Segundos 
 
Segundo Piso Primer Piso 10 + 15 
Segundos 
 
Segundo Piso Primer Piso 11 + 15 
Segundos 
 
Segundo Piso Segundo Piso 4 1 a 15 
Segundos 
 
Segundo Piso Segundo Piso 5 1 a 15 
Segundos 
 
Segundo Piso Segundo Piso 5 1 a 15 
Segundos 
 
Segundo Piso Segundo Piso 8 1 a 15 
Segundos 
 
Segundo Piso Segundo Piso 10 1 a 15 
Segundos 
 
Segundo Piso Tercer Piso 3 1 a 15 
Segundos 
 
Segundo Piso Tercer Piso 6 1 a 15 
Segundos 
 
Segundo Piso Tercer Piso 12 + 15 
Segundos 
 
 Tabla 3 Resultados Pruebade Transmisión y Recepción de Datos 
• Obsérvese que en todas las locaciones donde se ubicó al receptor se 
logró la correcta recepción de datos, sin embargo, conforme se aumenta 
la distancia (horizontal y/o a nivel) respecto al transmisor, se hace más 
lenta la recepción de datos, lo que obliga al transmisor a realizar varias 
veces el envío de información. 
8.3 TERCERA ETAPA: CONFIGURACIÓN PUERTO SERIE RASPBERRY 
PI. 
 
Para realizar cualquier tarea con la SBC, es necesario instalar un sistema 
operativo sobre la misma, en este caso, se realizó la instalación de Raspbian 
en la Raspberry Pi 4, el procedimiento se encuentra disponible en el anexo 
B. 
 
Raspbian por defecto configura el puerto serie Lite para conexión con la 
consola del sistema sin la necesidad de estar conectado a internet 
(headless), sin embargo, el puerto serial Lite tiene perdida de tramas de 
información por oscilaciones en la frecuencia del reloj, algo que no se puede 
permitir al utilizar el puerto serial para comunicación. Por lo tanto, se hace 
necesario realizar una serie de ajustes para habilitar el puerto serie, y 
modificar la prioridad del puerto para que este sea usado como principal con 
las ventajas que esto confiere y finalmente, permita acceder al mismo por 
medio de un programa diseñado en Python. La descripción detallada del paso 
a paso para la configuración del puerto Serie en Raspberry Pi se encuentra 
en el anexo C. 
 
Se diseñó un algoritmo muy sencillo ligado a la prueba de comunicación de 
los radios NRF24L01, esto con el fin de no solo comprobar que el puerto serie 
está habilitado para la recepción y envió de información desde programas 
Python, sino también para observar la compatibilidad y los ajustes necesarios 
para interacción entre Raspberry y la BluePill por medio de comunicación 
serial. 
 
8.3.1 CODIGO EJEMPLO PARA LA DETECCIÓN E IMPRESIÓN POR 
CONSOLA DE CADENAS DE CARACTERES RECIBIDAS POR 
SERIAL. 
 
El algoritmo tiene como objetivo recibir e imprimir vía consola los mensajes 
de enviados por la Blue Pill al recibir datos por radio frecuencia, es decir, ya 
estamos enlazando a Raspberry con el microcontrolador vía comunicación 
Serial. 
 
 
 Ilustración 19 Código de prueba funcionamiento de puerto serie en Raspberry Pi 4 
 
 Ilustración 20 Diagrama de flujo simplificado de código para prueba de funcionamiento puerto serie 
 Raspberry Pi 4 
Apreciaciones: 
 
Con el proceso descrito anteriormente realizamos las siguientes 
apreciaciones: 
 
• Al configurar el puerto serie de la Raspberry como principal, 
obtenemos un control total para el manejo de dicho puerto a través de 
Python permitiendo así modificar a conveniencia todos los parámetros 
del puerto. 
• Para el puerto serie de la Raspberry, un nivel lógico alto implica un 
voltaje de 3.3 voltios y un nivel lógico bajo un valor de 0 voltios. Dichos 
valores son compatibles también por el microcontrolador 
STM32F103C8, por lo cual no requiere ningún elemento adicional. 
 
 
 
 
 
8.4 CUARTA ETAPA: PRUEBA DE COMUNICACIÓN ENTRE SBC Y 
UBIDOTS. 
 
Ubidots provee un tutorial para la descarga de la librería REQUEST4 en 
Raspberry Pi para la comunicación HTTP, clase necesaria para la 
comunicación con páginas web. Adicionalmente proporciona un código 
ejemplo en Python que permite generar valores aleatorios para 
posteriormente modificarlos en la plataforma, y otro código para salvar datos 
alojados en la nube y llevarlos a nuestro programa Python. En este caso se 
utilizaron ambos códigos de ejemplo y se realizaron ligeros cambios en los 
mismos para que las funciones propuestas en el tutorial permitan la 
modificación y la lectura de una variable a la vez, esto con el fin de tener un 
mayor control del flujo del programa y optimizar en algunos casos el envío de 
información. 
 
Las pruebas realizadas son descritas en el anexo D. 
 
 
 Ilustración 21 Diagrama de flujo simplificado para prueba unificada de envío y recepción de 
información entre Ubidots y la SBC 
 
4 Instalación librería Requests: https://help.ubidots.com/en/articles/513309-connect-the-raspberry-
pi-with-ubidots 
https://help.ubidots.com/en/articles/513309-connect-the-raspberry-pi-with-ubidots
https://help.ubidots.com/en/articles/513309-connect-the-raspberry-pi-with-ubidots
 
 
 Ilustración 22 Variables bajo prueba Dashboard en Ubidots 
 
 Ilustración 23 Visualización en consola de actualización de información exitosa 
 
 Ilustración 24 Variables actualizadas en el Dashboard 
 
 Ilustración 25 Visualización de rescate de información desde Ubidots 
APRECIACIONES: 
 
Al realizar pruebas con cada uno de los códigos presentados y creando 
diferentes indicadores en Ubidots para la variación y visualización de cada 
variable utilizada, se realizan las siguientes apreciaciones: 
 
• Ubidots aloja cada una de sus variables como tipo flotante, incluso 
cuando de botones son de tipo Booleano. 
 
• Cuando la información es enviada desde Raspberry hacia Ubidots la 
actualización de la información en Ubidots tomas aproximadamente 3 
segundos. Sin embargo, cuando la información es enviada de Ubidots 
hacia las Raspberry el proceso puede tomar hasta 7 segundos. Lo 
anterior depende de las condiciones de conectividad que tenga la 
Raspberry con la red WIFI y de los métodos para el envío y rescate de 
información para y desde la nube que utiliza la librería REQUESTS. 
 
• Objetos tales como sliders pueden ser modificados de forma manual 
por el usuario en la web, pero adicionalmente pueden verse alterados 
de forma externa enviando los nuevos valores desde Raspberry esto 
abre la posibilidad de ajustar de forma física cualquier periférico y 
generar posibles actualizaciones de estado hacia la nube. 
 
8.5 QUINTA ETAPA: DISEÑO DE MÓDULOS DE CONTROL Y 
CONTROLADOR MAESTRO 
 
8.5.1 DISEÑO MÓDULO DIMMER 
 
 
 Ilustración 26 Placa de Circuito Impreso módulo Dimmer 
Para controlar el ángulo de disparo para cada semiciclo de la señal sinusoidal 
de la red doméstica (120V-60Hz para Colombia), es necesario identificar el 
instante de tiempo en el cual la señal tiene un valor de 0V, pues este punto 
será la referencia que tendremos para realizar los cálculos necesarios y 
realizar la activación de la etapa de potencia en el momento justo según la 
orden enviada desde Ubidots. 
 
 Ilustración 27 Control de carga 30% Módulo Dimmer 
 
 Ilustración 28 Control de carga 100% Módulo Dimmer 
 
 
 Ilustración 29 Amplificador Diferencial y Detector de cruce por cero módulo dimmer 
La figura 29 describe el circuito detector de cruce por cero desarrollado, el 
cual está encargado de generar una señal cuadrada a la salida 
(SIGNALZCD), donde los flancos de subida y de baja coinciden con el punto 
exacto donde la señal de la red doméstica toma un valor de 0V. 
 
En la entrada (Fin-Nin) es conectada la señal alterna de la red, esta pasa por 
una etapa de atenuación (R1-R3), además cuenta con dos capacitores (C1-
C2) que proporcionan aislamiento galvánico. La señal atenuada ingresa a un 
amplificador diferencial cuya función es rechazar las señales en modo común 
provenientes de la red eléctrica y evitar que pasen al sistema; para que la 
señal en su salida esté montada sobre un nivel DC, la resistencia R3 se 
conecta a la referencia de 1.65V. Para que el sistema no tenga ganancia R1 
es igual a R2, y R3 es igual a R4. 
 
 Ilustración 30 Señal de Salida Amplificador Diferencial Módulo Dimmer Acople AC (Señal amarilla) vs 
Acople DC (Señal verde) 
La señal filtrada y sumada con un nivel DC es llevada a un amplificador 
operacional configurado como comparador con histéresis. El voltaje de 
referencia o comparación será el mismo voltaje de Offset adicionado a la 
señal en la etapa anterior, pues este nivel DC coincide con los instantes de 
tiempo donde la señal alterna cruza por cero. 
 
 
 Ilustración 31 Curva Característica Comparador con Histéresis Módulo dimmer 
 
 Ilustración 32 Señal de Salida Transistor (SIGNALZCD) 
La salida del comparador no puedeser conectada directamente al 
microcontrolador, pues el voltaje de alimentación del TL084 es de 5V DC y 
su voltaje de saturación supera los 3.3V que es el umbral máximo de las 
entradas de la Blue Pill. Esto nos lleva a conectar un transistor a la salida del 
comparador, con el fin de obtener la señal de salida (señal cuadrada de cruce 
por cero - SIGNALZCD) con valores de 3.3V para un valor ALTO y así evitar 
daños en el microcontrolador. 
 
Una vez tratada la señal de la red doméstica para detectar el cruce por cero, 
el control de ángulo de disparo es determinado por el microcontrolador según 
el porcentaje definido por el usuario desde Ubidots, pues dicho porcentaje 
será el entregado a la carga tanto en el semiciclo positivo, como en el 
negativo. 
 
 
 Ilustración 33 Etapa de control módulo dimmer 
En la figura 33 se observa que se adicionaron 2 conectores a los cuales irán 
conectados 3 botones capacitivos los cuales permiten variar el ciclo útil de la 
señal de disparo manualmente (aumentar o disminuir) o apagar directamente 
la carga. 
 
 Ilustración 34 Señal de Disparo para Optoacoplador con Carga al 30% 
 
 Ilustración 35 Señal de Disparo para Optoacoplador con Carga al 100% 
 
 
 
 Ilustración 36 Bloque de código para cálculo de tiempo en alto y bajo para la señal de disparo 
Primero, se descompone el vector de información recibida por RF desde el 
maestro para identificar el valor porcentual definido por el usuario. 
Posteriormente, dicho valor porcentual se multiplica por 83.33 (que es el 
tiempo de cada semiciclo) y es almacenado en una variable denominada 
T_ALTO, pues si el porcentaje fuera igual a 100, el tiempo en alto (tiempo 
que debe estar activo el TRIAC) de la señal debería ser de 8333uS. En otras 
palabras, el tiempo en alto de la señal corresponde a un valor porcentual 
definido por el usuario, y el tiempo en bajo (el TRIAC se encuentra apagado) 
será igual al tiempo de oscilación menos el tiempo en alto calculado. Lo 
anterior aplica tanto para el semiciclo positivo como para el semiciclo 
negativo 
 
Es importante resaltar que desde Ubidots se cuenta con 101 pasos para la 
selección del porcentaje de potencia entregada a la carga (valores de 0 a 
100), mientras que la configuración del ciclo útil mediante los botones 
capacitivos permite únicamente 11 pasos (cada paso aumenta o disminuye 
en 10% la potencia entregada a la carga). 
 
 
 Ilustración 37 Función de interrupción en microcontrolador para control de disparo 
Posteriormente, el microcontrolador detecta cada flanco (tanto subida como 
bajada) de la señal de cruce por cero mediante una interrupción. Si el 
porcentaje de luminosidad determinado por el usuario es igual a 0, entonces 
se asegura que la señal de disparo del TRIAC se mantenga siempre en bajo, 
mientras que cuando dicho valor es igual a 100, se asegura que la etapa de 
potencia esté activa todo el tiempo. Cuando el valor del dimmer 
proporcionado por el usuario es diferente a 0 y 100, entonces, el 
microcontrolador asegura un valor lógico de 0 en la señal de disparo, y sólo 
activará la etapa de potencia una vez pasado el tiempo en bajo (T_BAJO) 
calculado. 
 
 
 Ilustración 38 Funcionamiento Dimmer ajustando Ciclo Útil desde Ubidots 
Como resultado, la señal de DISPARO es una señal cuadrada, de 120 Hz, 
alineada a la derecha, y cuyo ciclo útil es proporcional al valor definido en el 
dashboard por el usuario. 
 
La etapa de potencia está compuesta por un optoacoplador con salida de 
TRIAC sin circuito de detección de cruce por cero (para un control arbitrario 
del TRIAC) junto a un BT138 capaz de soportar cargas de máximo 12A. Al 
TRIAC se le adicionó una red Snubber para evitar falsos disparos en gate y 
se provee la inclusión de otra red Snubber para cargas inductivas (R14 - C6). 
 
 Ilustración 39 Señal de Salida entregada a la carga al 30% 
 
Ilustración 40 Señal de Salida entregada a la carga al 50% 
 
 
 
 Ilustración 41 Etapa de potencia módulo dimmer 
 
 Ilustración 42 Alimentación y referencia módulo dimmer 
La figura 42 presenta la etapa de alimentación y referencia del módulo 
Dimmer. 
 
Los códigos y diagramas de flujo del programa desarrollados se encuentran 
en el anexo E. 
 
 
 Ilustración 43 Diagrama de flujo simplificado para el módulo de control dimmer 
 
8.5.2 DISEÑO MÓDULO SENSOR CORRIENTE 
 
 
 Ilustración 44 Tarjeta de Circuito Impreso Módulo Sensor de Corriente 
El funcionamiento del sensor de corriente no invasivo (HMCT103C) consiste 
un transformador de corriente con una relación 1000:1, lo que equivale a 
obtener 1mA en los terminales de salida del transformador por cada Amperio 
consumido por la carga. 
 
 
 Ilustración 45 Tablero de Pruebas Módulo Sensor de Corriente 
 
 Ilustración 46 Diagrama de Conexiones Tablero de Pruebas 
Para poder sensar la corriente entregada a la carga, es necesario conectar 
en paralelo una resistencia de Shunt al transformador de corriente, cuya 
función es entregar una caída de tención que es directamente proporcional a 
la corriente inducida en el bobinado del sensor. 
 
 Ilustración 47 Circuito de tratamiento de señal del transformador de corriente 
En la figura 47 se puede observar el circuito para el tratamiento de la señal 
captada por el sensor de corriente. La resistencia de Shunt seleccionada fue 
un potenciómetro lineal (RV1), ya que facilita el ajuste de la señal para 
efectos de cálculo en el microcontrolador. 
 
La caída de tensión en la resistencia variable ingresa a un amplificador 
diferencial cuya función es rechazar las señales en modo común 
provenientes de la red eléctrica y evitar que pasen al sistema; a su vez en 
esta etapa se adiciona un voltaje de offset de 1.65V. Posteriormente la señal 
pasa por un amplificador seguidor que a la salida incluye un filtro pasa bajos 
RC con frecuencia de corte en 159 Hz. 
 
𝐹𝐹𝐹𝐹 = 
1
2𝜋𝜋𝜋𝜋𝐹𝐹
=
1
2𝜋𝜋(10000)(100 × 10−9)
= 159,155 𝐻𝐻𝐻𝐻 
 
 Ilustración 48 Señal de Salida Amplificador Diferencia Acople DC (Señal verde) vs Acople AC (Señal 
Amarilla) 
 
 Ilustración 49 Señal de Salida Filtro Pasa Bajos (SIGNAL) 
La señal de salida (SIGNAL) es ingresada al ADC del microcontrolador y 
representa la corriente sensada por el sistema. 
 
 
 Ilustración 50 Circuito detector de cruce por cero, módulo sensor de corriente 
 
 Ilustración 51 Curva Característica Comparador con Histéresis Módulo Sensor de Corriente 
La figura 50 muestra un circuito detector de cruce por cero idéntico al utilizado 
en el módulo dimmer, pues cada vez que exista un consumo de corriente, 
este circuito genera una señal cuadrada que es la referencia utilizada por el 
microcontrolador para saber en qué momento iniciar la lectura de los puertos 
analógicos y realizar los cálculos respectivos de la corriente RMS. 
 
 
 Ilustración 52 Señal de Salida Detector de Cruce por Cero (SIGNALZCD) 
 
 Ilustración 53 Referencia circuito detector de cruce por cero módulo sensor de corriente 
Es importante mencionar que en este circuito es necesario una referencia de 
voltaje estable, pues a diferencia del dimmer, la señal AC (correspondiente a 
la corriente entregada a una carga resistiva) es ingresada al ADC del 
microcontrolador, y para que los cálculos realizados por el microcontrolador 
concuerden con la lectura real, se requiere de que el nivel DC sumado a la 
señal sea estable en el tiempo, además que permite garantizar que a medida 
que la corriente se incrementa (la amplitud de la señal crece), los límites de 
lectura para el semiciclo positivo y negativo sean los mismos (recordemos 
que el voltaje de lectura del ADC se encuentre entre 0 y 3.3V). 
 
 
 Ilustración 54 Ventana de lectura para ADC de STM32 
Como se observa en 54, las entradas analógicas del microcontrolador 
incorporado en la Blue Pill tiene una ventana de medición entre 3.3V como 
valor máximo (voltaje de alimentación) y 0V. Cualquier voltaje fuera de esta 
ventana no puede ser leído por el ADC e incluso puede causardaños en el 
mismo. 
 
 
 Ilustración 55 Etapa de control módulo sensor de corriente 
La etapa de control está compuesta por el microcontrolador, quien realiza el 
cálculo de la corriente RMS, y el radio de comunicación se encarga de enviar 
la corriente sensada al maestro y recibir las ordenes de activación o 
desactivación de la etapa de potencia. 
 
 
 Ilustración 56 Lectura Almacenada en el Dashboard vs Lectura con Multímetro 
El microcontrolador realiza el cálculo del valor RMS de corriente a partir de 
la lectura de las señales del ADC. este valor es actualizado en el dashboard 
y dependiendo de la acción establecida por el usuario se activa o desactiva 
la carga mediante un optoacoplador y un TRIAC. 
 
 
 Ilustración 57 Etapa de potencia módulo sensor de corriente 
La etapa de potencia para este módulo tiene como objeto habilitar o 
deshabilitar la conexión a la carga de corriente alterna mediante la señal 
DISPARO, por lo cual, no se incluye ninguna red Snubber para falsos 
disparos en el gate del TRIAC, además, recordemos que se pretende 
sensar únicamente corrientes entregadas a cargas resistivas, por lo que 
tampoco se incluye la red Snubber para cargas inductivas. 
 
Los terminales J3 y J4 representan perforaciones realizadas a la PCB, cuyo 
objeto es soldar un cable entre ellos que será el que atravesará el sensor de 
corriente. 
 
 
 Ilustración 58 Fotografía Sensor de Corriente y Cable Soldado entre terminales J3 y J4 
 
 Ilustración 59 Alimentación módulo sensor de corriente 
El software desarrollado para este módulo cuenta con un circuito detector de 
cruce por cero con el cual se pretende realizar la lectura del ADC únicamente 
durante el semiciclo positivo de la señal, y almacenar el valor más alto 
censado en el mismo (valor pico). 
 
 
 Ilustración 60 Bloque de código para lectura de ADC's y cálculo de corriente RMS 
Al detectar el flanco de subida que concuerda con el cruce por cero previo al 
inicio del semiciclo positivo de la señal, se habilita la secuencia de cálculos 
para interpretar la señal AC del sensor de corriente. En la figura 55 se 
observa que la señal AC montada sobre un nivel DC ingresa a una entrada 
analógica, la lectura realizada en el ADC es multiplicada por 3.3V para 
obtener su equivalente en voltaje y finalmente se le resta 1.65V, que 
corresponde al offset de la señal. Así entonces almacenamos en COR_PICO 
el valor máximo AC de la señal. 
 
El valor pico de la señal es dividida entre 75mV (cada 75mVp equivalen a 1 
Ap entregado a la carga), este valor debe ser multiplicado por 0.707 para 
obtener el valor eficaz de la corriente entregada a la carga. 
 
Obsérvese que el valor de la corriente RMS solo es actualizado cada vez que 
se toma una lectura pico mayor que la anterior. 
 
Para observar en detalle el código y diagrama de flujo del módulo sensor de 
corriente, revisar anexo F. 
 
 
 Ilustración 61 Diagrama de flujo simplificado módulo sensor de corriente 
 
8.5.3 DISEÑO MÓDULO DISPENSADOR 
 
 
 Ilustración 62 Tarjeta de Circuito Impreso Módulo Dispensador 
Este módulo está encargado de dispensar el alimento y el agua para la 
mascota. Para la comida se optó por utilizar un tornillo sin fin, cuya función 
es transportar la comida desde el depósito hasta la salida donde se ubicará 
el recipiente. Mientras que, para el agua se optó por usar una motobomba 
para transportar el líquido desde el recipiente (por medio de una manguera) 
hasta la salida. 
 
 
 Ilustración 63 Dispensador de Comida (Tornillo sin Fin) 
 
 Ilustración 64 Dispensador de Bebida 
Para la activación eléctrica del motor DC y la motobomba DC, se usó un 
puente H de dos canales el cuál viene configurado con sus componentes 
externos en un PCB (revisar tabla de especificaciones técnicas del sistema). 
El puente H se utiliza como driver de corriente y por cada canal se utiliza en 
configuración de medio puente teniendo en cuenta que no se necesita 
inversión de giro; el control de velocidad solo tendrá 2 estados (encendido o 
apagado). 
 
 Ilustración 65 Conexión PCB Módulo Dispensador con Driver de Corriente 
 
 
 Ilustración 66 Etapa de control y alimentación módulo dispensador de comida y bebida para 
mascotas 
En la figura 66 se ilustra la conexión entre el microcontrolador y el puente H 
para el control de los dos actuadores. Además, se cuenta con 2 conectores 
(J3 y J5) de los cuales saldrán las señales para el control de cada canal en 
el driver de corriente. 
 
 Ilustración 67 Conexiones Generales Módulo Dispensador 
 
 Ilustración 68 Prototipo Dispensador 
Para visualizar el código y diagrama de flujo del módulo dispensador revisar 
anexo G. 
 
 
 Ilustración 69 Diagrama simplificado módulo dispensador de comida y bebida para mascotas 
 
8.5.4 DISEÑO MÓDULO MONITOREO PUERTA 
 
 
 Ilustración 70 Tarjeta de Circuito Impreso Módulo de Monitoreo de Puerta 
El sistema de monitoreo está encargado de detectar la apertura de la puerta 
mediante un interruptor magnético normalmente cerrado y enviar una alerta 
al controlador maestro para que la SBC se encargue de tomar un breve video 
(10 segundos) desde la cámara IP para posteriormente enviarlo al correo 
electrónico del usuario. Para realizar la comunicación entre la Raspberry Pi 
y la cámara IP, y además capturar el video, es necesario instalar una serie 
de librerías descritas a continuación: 
 
• OPENCV: Encargada de forzar la grabación y procesar el video 
proporcionada por la cámara IP. 
 
• PICKLE: Encargada de extraer y almacenar el token de 
"CREDENCIALES.json" para la autenticación con la API de Gmail. 
 
 
• CLIENTE DE GOOGLE: Biblioteca del cliente de Google encargada 
de enviar correos electrónicos mediante la API de Google. 
 
 
 Ilustración 71 Cámara Implementada en la Solución 
 
 Ilustración 72 Sensor Magnético para Apertura de la Puerta 
Una vez enviada la alerta al controlador Maestro, la SBC se encarga de 
establecer comunicación con la cámara IP, iniciar la grabación y 
posteriormente enviar el video por correo electrónico, por lo cual, es 
necesario realizar una serie de ajustes en la cámara para asignarle una IP 
estática. La configuración realizada se encuentra en el anexo H. 
 
 Desarrollo e implementación del software en Python 
La SBC requiere una serie de parámetros para la conexión con la cámara y 
características finales del video grabado: 
 
 
 Ilustración 73 Parámetros de grabación mediante cámara IP 
En este bloque de código se configuran los parámetros que tendrá el video: 
ancho de imagen (pixeles), alto de imagen (pixeles), y fotogramas por 
segundo. También se debe configurar el formato en el cual está codificado el 
video (.x264) posteriormente este formato se cambiará a .mp4 para que se 
pueda reproducir en casi cualquier dispositivo, y finalmente, el nombre que 
recibirá la grabación al guardarse. 
 
Ilustración 74 Función grabar video mediante cámara IP 
Una vez la SBC recibe la orden de grabar el video y este ha sido procesado 
se procede a enviar al correo electrónico del usuario mediante la API de 
Gmail y la autenticación OAuth 2.0 recomendada por Google, ya que el 
cliente de protocolo SMTP (Protocolo simple de transferencia de correo) 
comúnmente usada para él envió de correos electrónicos requiere acceso de 
aplicaciones poco seguras y esta opción pierde su acceso a partir del 30 de 
mayo de 2022. 
 
La configuración de la API Gmail realizada se encuentra en el anexo H. 
 
 
 Ilustración 75 Mensaje Enviado por Correo Electrónico 
 
 
 Ilustración 76 Datos para envío de correo electrónico 
Una vez finalizado el proceso de captura de video, este será almacenado en 
una ruta especifica y enviado al correo electrónico, dicho video será 
sobrescrito con cada nueva alerta. 
 
El código Python y su diagrama de flujo se encuentran en el anexo H. 
 
 Ilustración 77 Diagrama de flujo código Python (SBC) para captura y envío de video de cámara IP por 
 correo electrónico 
 Desarrollo del móduloIlustración 78 Alimentación módulo de monitoreo de puerta 
 
 Ilustración 79 Circuito interruptor magnético módulo monitoreo de puerta 
La figura 79 muestra un circuito resistivo tipo pull up con antirrebote, ya que 
el sensor magnético es en esencia un interruptor mecánico activado 
mediante un campo magnético (Reed switch). Al ser accionado con la 
apertura de la puerta cambia su estado, por lo cual el circuito antirrebote es 
indispensable para evitar falsos disparos en las interrupciones por flancos del 
microcontrolador. También se observa un led encargado de indicar el cambio 
de estado del sensor. 
 
 
 Ilustración 80 Funcionamiento interruptor magnético 
 
 Ilustración 81 Etapa de control módulo monitoreo de puerta 
La figura 81 muestra la etapa de control compuesta por el microcontrolador, 
encargado de monitorear el estado del sensor magnético, y el radio 
NFR24L01, encargado de comunicarse con el maestro enviándole una alerta 
indicando la apertura de la puerta, para que este inicie el proceso de captura 
y envió del video desde la cámara IP. 
 
El código y diagrama de flujo para el microcontrolador del módulo de control 
de la cámara se encuentra en el anexo H. 
 
 
 Ilustración 82 Diagrama de flujo simplificado módulo monitoreo de puerta 
8.5.5 DISEÑO CONTROLADOR MAESTRO 
 
 
 Ilustración 83 Placa de Circuito Impreso módulo controlador maestro 
 
 
 Ilustración 84 Conexión Raspberry Pi y Módulo Controlador Maestro 
 
Si bien la SBC tiene la capacidad de enviar y recibir información desde y 
hacia Ubidots, es necesario implementar un radio NRF24L01 con un 
microcontrolador como etapa previa entre la Raspberry y los módulos de 
control. La Raspberry Pi cuenta con una interfaz de comunicación SPI, por lo 
que la conexión con el radio podría ser directa, sin embargo, para facilitar el 
desarrollo del controlador maestro, se decide habilitar el puerto serie de la 
Raspberry Pi. De esta forma la etapa del microcontrolador y el radio 
conforman una etapa que puede modelarse como un buffer, el cual evitará 
pérdida de datos teniendo en cuenta que el sistema operativo que corre la 
Raspberry no es un sistema en tiempo real. Por otra parte, ya existen librerías 
que facilitan el desarrollo de la comunicación entre los radios y el 
microcontrolador. 
 
 
 Ilustración 85 Diagrama esquemático módulo controlador maestro 
Por lo tanto, el módulo del controlador maestro cuenta con un conector GPIO 
macho de 40 pines (J1) que permite la comunicación serial entre la Raspberry 
pi y el microcontrolador, y además, proporciona la alimentación necesaria 
para los componentes de la PCB (microcontrolador y radio). Se adicionó un 
led que permite reconocer si el programa se está ejecutando en la Raspberry 
Pi, y unos filtros pasivos (condensadores) para intentar minimizar el ripple en 
las salidas de 3.3V y 5V. 
 
Para consultar los códigos y diagramas de flujo del controlador maestro 
revisar anexo I. 
 
 
 Ilustración 86 Diagrama de flujo simplificado código controlador maestro (SBC) 
 
 
 Ilustración 87 Diagrama de flujo simplificado código controlador maestro (microcontrolador) 
 
 
 
 
8.6 SEXTA ETAPA: IMPLEMENTACIÓN GOOGLE ASSISTANT Y UBIDOTS 
 
Con la implementación de Google assistant y Ubidots se podrá controlar el 
estado del interruptor (encendido y apagado), el nivel de intensidad lumínica 
del dimmer, solicitar el accionamiento del dispensador tanto para agua como 
para comida usando comandos de voz. Esto se logra usando IFTTT5, el cual 
es un servicio web que permite conectar aplicaciones y automatizar tareas. 
En este caso al recibir un comando de voz mediante Google Voice assistant, 
realiza una solicitud web con webhook a Ubidots para modificar las variables 
requeridas. En otras palabras, IFTTT es un intermediario que envía la 
solicitud realizada por Google Assistant a Ubidots directamente. 
 
Para configurar una acción en IFTTT se deben seguir una serie de pasos 
descritos a continuación: 
 
1. Crear una cuenta en IFTTT, esta cuenta al ser gratuita nos permite 
crear 5 applets. Además, se debe otorgar permisos a la cuenta de 
Google para que se pueda usar los servicios de IFTTT. 
 
2. Creación de un applet. 
 
 
3. Una vez configurado el activador, la acción ya se puede verificar por 
medio de la aplicación de Google Voice assistant. 
 
 
 Ilustración 88 Configuración de comandos de voz en IFTTT 
 
5 IFTTT: https://ifttt.com/ 
https://ifttt.com/
 
 Ilustración 89 Prueba comandos de voz mediante Google Assistant 
Para revisar en detalle los pasos seguidos para la implementación de Google 
Assistant revisar anexo J. 
 
9 TRABAJOS Y OPORTUNIDADES FUTURAS 
 
9.1 OPORTUNIDADES DE MEJORA 
 
Con el desarrollo de la presente solución se enumeran algunas 
oportunidades de mejora enfocadas al rendimiento del sistema: 
 
1. Añadir un librería o sistema de gestión de subprocesos para 
programas Python en la SBC, pues tareas cómo el monitoreo 
constante de variables en la nube se realizaría fuera de la rutina del 
programa principal, lo que evitaría retrasos en la atención de alertas. 
 
De igual manera, la gestión de subprocesos permitiría grabar y enviar 
el video de la cámara IP sin necesidad de esperar que todo el proceso 
culmine para continuar la ejecución de la rutina principal. 
 
2. Implementar módulos en hardware comerciales, que incorporan todos 
los elementos en una misma placa como las soluciones de variscite, 
toradex entre otros. Estas soluciones emplean procesadores más 
veloces, mejores antenas y tiene un mayor soporte. 
 
3. Desarrollar una arquitectura en software que permita al módulo sensor 
de corriente realizar lecturas True RMS, lo cual elimina la limitación de 
lectura sólo para cargas resistivas. 
 
4. Desarrollar una solución empleando Django y FastAPI para construir 
nuestra propia aplicación en la nube, de tal forma que no 
necesitaríamos utilizar Ubidots con las limitaciones que sus cuentas 
gratuitas tienen. 
 
10 DISCUSIÓN 
Al realizar las pruebas del desempeño del funcionamiento del prototipo 
encontramos que 
 
1. Los radios presentan un desempeño adecuado al transmitir y recibir 
la información (comandos más no paquetes) en línea de vista directa 
dentro de una ventana de tiempo inferior a 5 segundos; al realizar las 
mismas pruebas al interior de una residencia teniendo en cuenta los 
muros, se logró establecer una comunicación exitosa en un intervalo 
máximo de 15 segundos (4 muros, cada uno de 18 cm de grosor). 
 
2. La solución cumple con el requerimiento de implementar módulos 
periféricos de propósito general con un costo de producción inferior 
a $50.000 COP. 
 
3. Al realizar pruebas durante 2 semanas relacionadas con la activación 
de dosificación de comida y bebida, activación, desactivación y 
dimerización de cargas resistivas, monitoreo de consumo en 
corriente AC se determinó que el prototipo cumple satisfactoriamente 
con los requerimientos establecidos, teniendo en cuenta que ninguna 
acción solicitada dejó de generar respuestas en sitio. A su vez las 
lecturas de consumo de corriente, visualizadas en el dashboard 
tienen un error6 de 6% respecto al multímetro que se utiliza como 
patrón en el sitio. 
 
4. En el mismo intervalo temporal de pruebas se obtuvieron 
notificaciones vía correo electrónico las cuales contenían un video en 
extensión MP4 con una duración máxima de 10 segundos, en todas 
las ocasiones que se generó una apertura o cierre de la puerta 
principal, sin embargo, se determinó que el video tiene un retraso 
máximo de 15 segundos a partir del instante en que se abre la puerta 
y el inicio de la grabación. 
 
11 CONCLUSIONES 
 
• Se verifica que los elementos seleccionados para implementar una 
solución compuesta por un controlador maestro, un sistema de 
comunicación y módulos periféricos son pertinentes y cumplen con los 
requisitos mínimos para solución propuesta. 
 
• Al realizar las pruebas con los radios de comunicación nRF24L01 se 
determinó queson adecuados, teniendo en cuenta que funcionan 
sobre a banda ISM (Industrial, Scientific and Medical band) por lo tanto 
su relación costo-beneficio es alta al considerar que no se deben 
pagar regalías como es el caso de ZigBee, Bluetooth, XBee entre 
otras. 
 
• Concluimos que el módulo implementado a partir de un 
microcontrolador junto al radio y la etapa de potencia, es funcional, de 
bajo costo y puede ser utilizado como interfaz entre el controlador 
maestro y los elementos que se deseen automatizar dentro del hogar, 
puesto que puede manejar cargas resistivas tanto AC como DC. 
 
• Ubidots satisface plenamente las necesidades de visualización de 
variables (como es el caso del sensor de corriente) y la asignación de 
acciones para los módulos de control mediante botones y/o sliders. La 
plataforma es muy amigable e intuitiva, y además es compatible con 
protocolos de comunicación como MQTT, TCP, UDP y HTTP, este 
último utilizado para integración entre Ubidots y Raspberry Pi 
mediante la librería Requests. 
 
 
6 Cálculo de error: https://instrumentacionycontrol.net/video-concepto-de-error-y-exactitud-en-
instrumentacion/ 
https://instrumentacionycontrol.net/video-concepto-de-error-y-exactitud-en-instrumentacion/
https://instrumentacionycontrol.net/video-concepto-de-error-y-exactitud-en-instrumentacion/
12 REFERENCIAS 
1. admin@fowlerelectricnv.com. (29 de 12 de 2019). Obtenido de 
Fowlerelectric: http://fowlerelectricnv.com/dimmer-
switches/#:~:text=Modern%20dimmers%20take%20electricity%20that,throu
gh%20the%20lightbulb%20is%20reduced 
2. Bueso, I. S. (s.f.). COMPARADOR CON AMPLIFICADOR OPERACIONAL. 
Obtenido de 
https://edisciplinas.usp.br/pluginfile.php/5619467/mod_resource/content/2/C
omparador%20com%20Amplificador%20Operacional.pdf#:~:text=Para%20s
olucionar%20este%20problema%20se,de%20una%20se%C3%B1al%20de
%20ruido.&text=En%20la%20expresi%C3%B3n%20anterior%2C%20 
3. CONTEC. (s.f.). Obtenido de CONTEC: 
https://www.contec.com/support/basic-knowledge/daq-control/serial-
communicatin/ 
4. Dhaker, P. (09 de 2018). Obtenido de Analog Dialogue: 
https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-
interface.html 
5. L.M. Engineers. (2020). Obtenido de Last Minute Engineers: 
https://lastminuteengineers.com/nrf24l01-arduino-wireless-communication/ 
6. Mecafenix, I. (20 de 05 de 2020). Obtenido de Ingeniería Mecafenix: 
https://www.ingmecafenix.com/automatizacion/sensores/ 
7. Meneses, M. (2020). Obtenido de Quora: https://es.quora.com/Qu%C3%A9-
es-un-actuador-en-mecatr%C3%B3nica 
8. Ortega, D. H. (2018). Obtenido de HETPRO: https://hetpro-
store.com/TUTORIALES/amplificador-diferencial/ 
9. R. Pi Fr. (24 de 08 de 2020). Obtenido de Raspberry Pi España: 
https://raspberrypi-espana.es/habilitar-puerto-serial-raspberry-pi/ 
10. Storr, W. (16 de 05 de 2018). Obtenido de Electronics Tutorials: 
https://www.electronics-tutorials.ws/blog/optocoupler.html 
11. Tyson, J. (27 de 07 de 2020). Obtenido de howstuffworks: 
https://computer.howstuffworks.com/modem.htm 
 
 
13 ANEXOS 
• Anexo A Prueba de Radios: https://github.com/IoT-EBOT/IoT-Home-Sistem-
with-STM32-and-
Raspberry/tree/main/Controlador%20Maestro/Microcontrolador%20Maestro/
Prueba%20Radios 
• Anexo B Instalación sistema operativo Raspbian en Raspberry Pi: 
https://www.raspberrypi.com/software/ 
• Anexo C Configuración Puerto Serie Raspberry Pi: https://github.com/IoT-
EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Configuraci
on%20Puerto%20Serie%20Raspberry%20Pi 
• Anexo D Prueba de Enlace entre Ubidots y Raspberry: 
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Prueba%20
de%20Enlace%20Ubidots%20y%20Raspberry 
• Anexo E Diseño Módulo Dimmer: https://github.com/IoT-EBOT/IoT-Home-
Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Dimmer 
• Anexo F Diseño Módulo Sensor de Corriente: https://github.com/IoT-
EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/M%C3%B3dulo%20Sensor%20de%20Corriente 
• Anexo G Diseño Módulo Dispensador de Comida y Bebida para Mascotas: 
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/M%C3%B3dulo%20Dispensador 
• Anexo H Diseño Módulo de Monitoreo de Puerta: https://github.com/IoT-
EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/M%C3%B3dulo%20Monitoreo%20de%20Puerta 
• Anexo I Diseño Controlador Maestro: https://github.com/IoT-EBOT/IoT-
Home-Sistem-with-STM32-and-
Raspberry/tree/main/Controlador%20Maestro 
• Anexo J Implementación Google Assistant y Ubidots: https://github.com/IoT-
EBOT/IoT-Home-Sistem-with-STM32-and-
Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Implementa
ci%C3%B3n%20Google%20Assistant%20y%20Ubidots 
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Microcontrolador%20Maestro/Prueba%20Radios
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Microcontrolador%20Maestro/Prueba%20Radios
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Microcontrolador%20Maestro/Prueba%20Radios
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Microcontrolador%20Maestro/Prueba%20Radios
https://www.raspberrypi.com/software/
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Configuracion%20Puerto%20Serie%20Raspberry%20Pi
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Configuracion%20Puerto%20Serie%20Raspberry%20Pi
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Configuracion%20Puerto%20Serie%20Raspberry%20Pi
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Configuracion%20Puerto%20Serie%20Raspberry%20Pi
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Prueba%20de%20Enlace%20Ubidots%20y%20Raspberry
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Prueba%20de%20Enlace%20Ubidots%20y%20Raspberry
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Prueba%20de%20Enlace%20Ubidots%20y%20Raspberry
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Dimmer
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Dimmer
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Sensor%20de%20Corriente
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Sensor%20de%20Corriente
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Sensor%20de%20Corriente
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Dispensador
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Dispensador
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Monitoreo%20de%20Puerta
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Monitoreo%20de%20Puerta
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/M%C3%B3dulo%20Monitoreo%20de%20Puerta
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Implementaci%C3%B3n%20Google%20Assistant%20y%20Ubidotshttps://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Implementaci%C3%B3n%20Google%20Assistant%20y%20Ubidots
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Implementaci%C3%B3n%20Google%20Assistant%20y%20Ubidots
https://github.com/IoT-EBOT/IoT-Home-Sistem-with-STM32-and-Raspberry/tree/main/Controlador%20Maestro/Raspberry%20Pi/Implementaci%C3%B3n%20Google%20Assistant%20y%20Ubidots
	1. TITULO DE LA INVESTIGACIÓN
	2. JUSTIFICACIÓN Y DELIMITACION DE LA INVESTIGACIÓN
	2.1. JUSTIFICACION
	2.2. DELIMITACIÓN
	3. OBJETIVOS DE LA INVESTIGACION
	3.1. OBJETIVO GENERAL
	3.2. OBJETIVOS ESPECIFICOS
	4. MARCO DE REFERENCIAS DE LA INVESTIGACIÓN
	4.1. ASPECTOS GENERALES DEL SISTEMAS
	4.2 MARCO TEÓRICO
	5 TIPO DE INVESTIGACIÓN
	6 ESPECIFICACIONES TECNICAS DEL SISTEMA
	7 COSTOS DEL PROYECTO
	8 DESAROLLO DEL SISTEMA
	8.1 PRIMERA ETAPA: PROGRAMACIÓN DE MICROCONTROLADORES EN MBED.
	8.2 SEGUNDA ETAPA: INTEGRACIÓN NRF24L01 Y MICROCONTROLADOR.
	8.3 TERCERA ETAPA: CONFIGURACIÓN PUERTO SERIE RASPBERRY PI.
	8.4 CUARTA ETAPA: PRUEBA DE COMUNICACIÓN ENTRE SBC Y UBIDOTS.
	8.5 QUINTA ETAPA: DISEÑO DE MÓDULOS DE CONTROL Y CONTROLADOR MAESTRO
	8.5.1 DISEÑO MÓDULO DIMMER
	8.5.2 DISEÑO MÓDULO SENSOR CORRIENTE
	8.5.3 DISEÑO MÓDULO DISPENSADOR
	8.5.4 DISEÑO MÓDULO MONITOREO PUERTA
	8.5.5 DISEÑO CONTROLADOR MAESTRO
	8.6 SEXTA ETAPA: IMPLEMENTACIÓN GOOGLE ASSISTANT Y UBIDOTS
	9 TRABAJOS Y OPORTUNIDADES FUTURAS
	9.1 OPORTUNIDADES DE MEJORA
	10 DISCUSIÓN
	11 CONCLUSIONES
	12 REFERENCIAS
	13 ANEXOS