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