Informe - Luis Lebus
Informe - Luis Lebus
Proyecto Final
Autores:
Director:
en la
Julio de 2017
Declaración de autoría:
Firmas:
Fecha:
AGRADECIMIENTOS
En primer lugar doy gracias a Esequiel, quien fue la persona con la que
compartí hogar durante mi estadía en Paraná y la primera que me ayudó en
mis inicios en la actividad universitaria.
Un especial agradecimiento a Santiago con quien compartí invaluables
momentos y experiencias.
A “Correntino” quien junto a Nico y los mellizos me brindaron un segundo hogar
siempre que lo necesité.
Luis Lebus
Universidad Tecnológica Nacional
Abstract
Ingeniero en Electrónica/Civil/Electromecánica
Abstract:
This document presents the design and implementation of a device that allows to control
home appliances that have infrared communication, such as televisions, DVD players,
signal decoders, etc. The user performs the control through a mobile application that
communicates over a WiFi link.
Keywords:
Communication, signal processing, infrared, protocol
Resumen:
En este documento se presenta el diseño e implementación de un dispositivo que permite
controlar artefactos o electrodomésticos que poseen comunicación infrarroja, tales como
televisores, reproductores de DVD, decodificadores de señal, etc. Para ello el usuario
realiza el control mediante una aplicación móvil que se comunica con un dispositivo a
través un enlace WiFi.
Palabras Clave:
Comunicación, procesamiento de señales, infrarrojo, protocolo
RECONOCIMIENTOS
Luis Lebus
Índice
Página
Capítulo 1: Introducción…………………………………………………………………….…..16
Capítulo 2: Desarrollo……………………………………………………….…………………. 20
2.1 Descripción general…………………………………………………….……………..20
2.2 Unidad de procesamiento…………………………......…………………………….. 20
2.3 Comunicación infrarroja……………………………….……………………….……..29
2.3.1 Señales infrarrojas……………………………………………....…………. 29
2.3.2 Modulación…………………..…………………………………...…………. 29
2.3.3 Emisión……………………………………………………………...………. 30
2.3.4 Recepción……..…………………………………………………………….. 30
2.3.5 Ensayos de controles remotos………………………………...………….. 32
2.3.6 Decodificación………………………………………………………………. 39
2.3.7 Codificación……………………………………...………………………….. 40
2.4 Comunicación WiFi……………………………………………………….….………. 41
2.4.1 Protocolo de comunicación propio….………………………...…….……. 43
2.4.2 Protocolo de transferencia de hipertexto...…………………..…….……. 44
2.5 Aplicación móvil……………………………………….……………..………….……. 45
2.6 Servidores…………………………………………………….……………………….. 49
2.6.1 Servidor JSON…..……………………………………………....…………..50
2.6.2 Servidor de imágenes.……..…………………………………..….………. 52
2.7 Control de cargas AC…………………………………………………..…………….. 53
2.8 Fuente de alimentación…………………………………..……………….…………. 54
2.9 Diseño completo……………………………………………..…………….…………. 55
2.9.1 Hardware……………………………………………………………..…..……….....55
2.9.2 Software……………………………………………………………………………... 61
Capítulo 3: Resultados………………………………..……………………………………...... 63
Capítulo 4: Análisis de costo…………………………………………………………………...64
Capítulo 5: Discusión y conclusión…………………………………………………………… 66
Capítulo 6: Literatura citada…………………………………………………………………… 68
Lista de Figuras
Página
Figura N° 1: Captura 1 IR Remote Control ………………………….……………………… 18
Figura N° 2: Captura 2 IR Remote Control ……………………………………….…….…... 18
Figura N° 3: Captura 1 ASmart Remote IR …………………………………………………. 18
Figura N° 4: Captura 2 ASmart Remote IR …………………………………………………. 18
Figura N° 5: Captura 1 IR Universal TV Remote …………………………………………… 19
Figura N° 6: Captura 2 IR Universal TV Remote …………………………………………… 19
Figura N° 7: Esquema general del sistema completo……………………………………… 21
Figura N° 8: Microcontrolador PIC18F14K50…………………………………….…………. 22
Figura N° 9: Placa 3D PIC18F14K50 (bottom).…………………………..…………………. 22
Figura N° 10: Placa 3D PIC18F14K50 (top).…………………………………….……..…… 22
Figura N° 11: Placa real PIC18F14K50 (bottom)..………………………………...………... 22
Figura N° 12: Placa real PIC18F14K50 (top).…………………………...………………….. 22
Figura N° 13: Esquemático placa PIC18F14K50………………………………………….... 23
Figura N° 14: Placa Stellaris LunchPad……………………….…………………………...... 25
Figura N° 15: Placa 3D adaptadora (bottom)……………………………………………….. 25
Figura N° 16: Placa 3D adaptadora (top)……………………..……………………………... 25
Figura N° 17: Placa real adaptadora (bottom)………………..…………………………...… 25
Figura N° 18: Placa real adaptadora (top)…………………….………………………...…... 25
Figura N° 19: Esquemático placa adaptadora………………..…………………………...... 26
Figura N° 20: Placa real adaptadora acoplada (bottom)…….…………………………….. 27
Figura N° 21: Placa real adaptadora acoplada (top)……………………………………...... 27
Figura N° 22: Placa 3D adaptadora 2 (bottom)……………….…………………………..… 27
Figura N° 23: Placa 3D adaptadora 2 (top)…………………...………………………...…... 27
Figura N° 24: Placa real adaptadora 2 (bottom)……………...…………………………...... 27
Figura N° 25: Placa real adaptadora 2 (top)……………………………………….………... 27
Figura N° 26: Esquemático placa adaptadora 2.………….…………….………………...... 28
Figura N° 27: Esquema emisor y receptor infrarrojo……………………………………….. 29
Figura N° 28: Circuito emisor de señal infrarroja…………………………………..……..… 31
Figura N° 29: Esquema módulo receptor.………………………………..………………..… 31
Figura N° 30: Receptor IR 1…………………………………….…………………………...... 32
Figura N° 31: Receptor IR 2………………………………………….…………………...…... 32
Figura N° 32: Control remoto Reproductor DVD Tonomac……….…………………...……32
Figura N° 33: Señal control remoto Reproductor DVD Tonomac…………………………. 33
Figura N° 34: Control remoto Decodificador RTC………………………………………...... 33
Figura N° 35: Señal control remoto Decodificador RTC………………………………..….. 33
Figura N° 36: Control remoto LCD Smart TV RCA……………………….…………….…... 34
Figura N° 37: Señal control remoto LCD Smart TV RCA………………………………….. 34
Figura N° 38: Control remoto LCD BGH…………………………………………………...... 34
Figura N° 39: Señal control remoto LCD BGH……………………………………...………. 35
Figura N° 40: Control remoto LCD Noblex…………………………………………………... 35
Figura N° 41: Señal control remoto LCD Noblex………………………………………….... 35
Figura N° 42: Control remoto Reprod. VHS Philco…………………………………………. 36
Figura N° 43: Señal control remoto Reproductor VHS Philco……………………………...36
Figura N° 44: Control remoto LCD Tonomac……………………………………………...… 36
Figura N° 45: Señal control remoto LCD Tonomac…………………………………...…..…37
Figura N° 46: Control remoto TV Tonomac Tubo………………………………..………….. 37
Figura N° 47: Señal control remoto TV Tonomac Tubo………………………………..…… 37
Figura N° 48: Control remoto TV Philco Tubo……………………………………..……...… 38
Figura N° 49: Señal control remoto TV Philco Tubo………………………………………... 38
Figura N° 50: Control remoto TV Samsung Tubo………………………………………....... 38
Figura N° 51: Señal control remoto TV Samsung Tubo………………………………........ 39
Figura N° 52: Módulo ESP826……………………………….…………………………..…… 42
Figura N° 53: Distribución de pines ESP8266.………………………………….……...…… 42
Figura N° 54: Comandos AT de módulo ESP8266.………………………..…………..…… 42
Figura N° 55: Módulo RN171.……………………………………………..……………..…… 43
Figura N° 56: Pantalla inicial de la aplicación.………………………………………….…… 46
Figura N° 57: Pantalla de control de cargas AC……………..………………………..……. 47
Figura N° 58: Pantalla de control aire acondicionado……...……………………….……… 47
Figura N° 59: Pantalla de “modo editor”……………………..…………………….………… 47
Figura N° 60: Pantalla de selección de ambiente…………..…………………….………… 47
Figura N° 61: Pantalla de carga de un botón………………………………………..………. 48
Figura N° 62: Pantalla de ajustes……………………………………………………..……… 48
Figura N° 63: Pantalla menú contextual……………………..………………………………. 49
Figura N° 64: Pantalla del control completo………………..…………………………...…... 49
Figura N° 65: Esquema de un servidor.…………………………..…………….…………… 50
Figura N° 66: Formato JSON.……………………..…………………………………..……… 51
Figura N° 67: Pantalla descripción de modelo de un dispositivo……………………......... 53
Figura N° 68: Circuito control AC.……………………………………………………...…….. 53
Figura N° 69: Implementación control AC (Bottom)…………………………….……...…… 54
Figura N° 70: Implementación control AC (Top)…………………………………………..… 54
Figura N° 71: Batería BC50 Motorola………………………………………………………... 54
Figura N° 72: Circuito cargador de baterías…………………………………..………...…... 55
Figura N° 73: Placa 3D cargador de baterías……………………………...…………...…....55
Figura N° 74: Placa real cargador de baterías.…………………………………………...… 55
Figura N° 75: Placa definitiva 3D (bottom).………………………………………….…..… 56
Figura N° 76: Placa definitiva 3D (top)………………………………………….……………. 56
Figura N° 77: Placa definitiva real (bottom)………………………………………….……… 57
Figura N° 78: Placa definitiva real (top)……………………………………………….……... 57
Figura N° 79: Placa definitiva real montada (bottom).………………………………....…... 57
Figura N° 80: Placa definitiva real montada (top)……………………………………….….. 57
Figura N° 81: Placa definitiva acoplada a Stellaris (der)…………………………………... 57
Figura N° 82: Placa definitiva acoplada a Stellaris (izq)………………………………….... 57
Figura N° 83: Esquemático placa definitiva (Página 1)………………………………….… 59
Figura N° 84: Esquemático placa definitiva (Página 2)………………………………….… 60
Figura N° 85: Diagrama de flujo de firmware (1) ……………………………………….….. 61
Figura N° 86: Diagrama de flujo de firmware (2).…………………………………………... 62
Lista de Tablas
Página
Tabla N° 1: Descripción de pines ESP8266…………………………………...…………….. 43
Tabla N° 2: Costos de componentes del proyecto……………………………...…………... 64
Tabla N° 3: Costos de componentes del proyecto reducido…...……………..…………… 65
Lista de Abreviaciones
IR: Infrarrojo
IdC: Internet de las cosas
AC: Corriente alterna
RAM: Memoria de acceso aleatorio
ROM: Memoria de acceso único
EEPROM: Memoria de acceso único eléctricamente borrable
SMD: Dispositivo de montaje superficial
PWM: Modulación de ancho de pulso
AGC: Control automático de ganancia
HTTP: Protocolo de transferencia de hipertexto
MAC: Control de acceso al medio
XML: Lenguaje de marcado extensible
JSON: Notación objeto JavaScript
RMS: Valor cuadrático medio
DEDICATORIA
Luis Lebus
1 - Introducción 16
Capítulo 1: Introducción
El ser humano siempre ha estado y estará imaginando cómo será el futuro, es lo que le permite
seguir evolucionando, creando y también, condenándose a un futuro que siempre está llegando. En
este aspecto, la domótica es ese campo que más está aprovechando dichas ideas de futuro aunque
también uno de los que más sufre la velocidad de innovación y la falta de un consenso o
estandarización de las normas que se crean.
Años atrás ya se soñaba con hogares automatizados, futuristas, capaces de ofrecer las mayores
comodidades a sus habitantes. Y uno de los puntos que más visiones generaba era la cocina.
Muebles que tras insertar una tarjeta preparaban la receta, cocinas de inducción para calentar los
alimentos y mecanismos con los que la comida llegaba sola a la mesa. La cocina siempre ha sido
uno de los puntos del hogar más usados para mostrar el futuro. Ideas que en aquel momento
dejarían sorprendidas a muchas amas de casa pero que con el tiempo se han ido desdibujando. Se ha
sobrepasado el año 2000 y aún no se ha llegado a esas ideas futuristas, sin embargo lo que quedó en
bocetos dio paso a otras ideas que sobrepasan lo imaginado.
Si se observa la actualidad de las últimas ferias de electrónica de consumo, como IFA, seguro que
se reconocerán mucho de los dispositivos de los que se hace mención más arriba. En estos
momentos es posible encontrar una gran variedad de aparatos capaces de ser controlados a través de
aplicaciones para teléfonos inteligentes. Existen bombillas, interruptores, persianas, cerraduras e
incluso cafeteras entre otros tantos gadgets.
Mediante el uso de la conectividad WiFi o Bluetooth, estos dispositivos permiten ser controlados
remotamente desde una aplicación instalada en nuestro terminal móvil. Por ejemplo, se puede
configurar el color y potencia de las bombillas Philips HUE, modificar la temperatura de un aire
acondicionado a través de un termostato como NEST o recibir una notificación una vez finalice el
lavado en la nueva Samsung WW9000. Esta forma de automatizar y gestionar datos se engloba en
un concepto muy moderno denominado “internet de las cosas”, el cual hace referencia a la forma en
que objetos cotidianos se conectan con internet y entre ellos (Santamaría, 2014).
Se estima que Internet de las cosas (IdC), algunas veces denominado "Internet de los objetos", lo
cambiará todo, incluso a los comportamientos humanos. Si bien puede parecer una declaración
arriesgada, hay que tener en cuenta el impacto que Internet ha tenido sobre la educación, la
comunicación, las empresas, la ciencia, el gobierno y la humanidad. Claramente Internet es una de
las creaciones más importantes y poderosas de toda la historia de la humanidad.
Ahora, se debe tener en cuenta que IdC representa la próxima evolución de Internet, que será un
enorme salto en su capacidad para reunir, analizar y distribuir datos que pueden ser convertidos en
información, conocimiento y en última instancia, sabiduría. En este contexto, IdC se vuelve
inmensamente importante.
Ya están en marcha proyectos de IdC que prometen cerrar la brecha entre ricos y pobres, mejorar la
distribución de los recursos del mundo para quienes más los necesitan y ayudarnos a comprender el
planeta para que podamos ser más proactivos y menos reactivos. Aun así, son varias las barreras que
amenazan con retrasar el desarrollo de IdC, como la transición a IPv6, el establecimiento de un
conjunto de normas en común y el desarrollo de fuentes de energía para millones de sensores
diminutos (Evans, 2011).
1 - Introducción 17
Siguiendo las tendencias y el concepto de IdC, en este proyecto se diseñó e implementó un
dispositivo que permite controlar artefactos o electrodomésticos que poseen comunicación
infrarroja (IR), tales como, televisores, reproductores de DVD, decodificadores de señal, etc. El
usuario realiza el control mediante una aplicación móvil que se comunica con un dispositivo a
desarrollar, a través un enlace WiFi.
Se puede deducir, fácilmente, que este sistema está orientado a mejorar el confort en el hogar. En la
actualidad es muy común que las personas posean un teléfono móvil inteligente, de modo que sería
muy útil utilizar este teléfono para reemplazar los controles remotos IR convencionales, más aún
cuando en una misma habitación se tienen varios artefacto IR, como puede ser un televisor, un
reproductor de DVD, un reproductor de música y un aire acondicionado. El usuario puede
personalizar la aplicación móvil cargando solamente los botones que suele utilizar de cada control
remoto. De este modo, en una sola pantalla del móvil puede comandar todos sus artefactos.
Además, se le agrega la posibilidad de controlar cargas de corriente alterna (AC) tales como
lámparas, ventiladores, etc.
En la actualidad existen una gran cantidad de aplicaciones móviles que permiten controlar
dispositivos del hogar como televisores, aires acondicionados, etc. Como ejemplo, se mencionan a
continuación los tres primeros resultados luego de realizar una búsqueda en Play Store:
IR Remote Control
Esta aplicación permite utilizar el teléfono como un control remoto para TV, DVD, VCR. La
misma utiliza el emisor infrarrojo presente en el móvil y actualmente pueden ser controlados los
siguientes fabricantes de dispositivos.
LG
Panasonic
Samsung
Sony
Para ser capaz de utilizar esta aplicación se debe contar con un dispositivo móvil con sistema
operativo Android 4.4 (KitKat) o superior con transmisor infrarrojo incluido. Esta aplicación es
ofrecida por Johan Westling y posee una calificación de 3,2/5. En las figuras N° 1 y N° 2 se puede
observar la apariencia y como se selecciona un dispositivo deseado.
ASmart Remote IR
Esta aplicación es ofrecida por NXRsoft y posee una calificación 3,7/5. Esta aplicación sólo
funciona con sistema Android que posean transmisor infrarrojo incorporado. Los dispositivos que
pueden ser controlados son, por ejemplo:
Televisores.
Decodificadores de señal.
Proyectores.
Reproductores de DVD.
1 - Introducción 18
Figura N° 1: Captura 1 IR Remote Control. [11] Figura N° 2: Captura 2 IR Remote Control. [11]
Esta aplicación tiene la característica de poder definir “habitaciones” o “ambientes” y configurar los
dispositivos existentes en cada lugar. En las figuras N° 3 y N° 4 se puede observar cómo se presenta
la aplicación.
Figura N° 3: Captura 1 ASmart Remote IR.[12] Figura N° 4: Captura 2 ASmart Remote IR.[12]
IR Universal TV Remote
Esta aplicación busca reemplazar los controles remotos físicos de televisores, además de otros
dispositivos como acondicionadores de aire, ventiladores, luces, entre otros. El funcionamiento se
basa en la utilización de un transmisor infrarrojo presente en los dispositivos móviles como
teléfonos y tablets.
Esta aplicación es altamente personalizable, por ejemplo, se puede cambiar el color de la barra de
herramientas, modificar el color de fondo o agregar una imagen, se puede modificar los códigos IR,
colores, textos y posición de los botones. Se puede programas para se envíen múltiples comandos
con un único clic de un botón.
Esta aplicación esta ofrecida por WaveSpark y posee una calificación de 3,7/5. En las figuras N° 5 y
N° 6 se observa la misma.
1 - Introducción 19
Tanto las tres aplicaciones mencionadas, como la mayoría que se puede encontrar en la tienda de
Android, poseen una o más de las tres características que se nombran a continuación:
1. Es necesario que el teléfono móvil o tablet tenga un emisor infrarrojo.
2. Se basan, exclusivamente, en bases de datos para obtener la información de las señales de
los botones de un control remoto. En muchos casos, estas bases de datos se encuentran
almacenadas dentro de la misma aplicación.
3. La aplicación es poco personalizable, esto es, se tiene una pantalla por electrodoméstico con
botones ya definidos.
Teniendo en cuenta lo mencionado anterior, se describen a continuación las características
fundamentales que tendrá este sistema, que en cierta forma busca solventar los inconvenientes y
diferenciarse de las demás aplicaciones móvil.
1. Este sistema contará con un dispositivo que se conectará a la red WiFi del hogar, el mismo
se comunicará con una aplicación móvil que correrá en teléfonos o tablets. Este dispositivo
será el encargado de emitir y recibir señales infrarrojas, por lo tanto ya no es necesario que
el móvil cuente con un transmisor incorporado.
2. De forma similar, este sistema obtendrá la información para emitir las señales infrarrojas a
partir de una base de datos. Sin embargo, esta no se ubicará en la aplicación o en el móvil
sino que se almacenará en un servidor en Internet desde donde la aplicación descargará
solamente los datos de los botones que son utilizados. De esta forma se evita tener
almacenado en el teléfono datos que nunca se utilizaran.
Por otro lado, esta base de datos se irá actualizando por los mismos usuarios ya que el
sistema contará con un receptor infrarrojo que decodificará la señal de un botón de un
control remoto dado y almacenará los datos en el servidor para que otros usuarios puedan
utilizarlos. De esta forma, a medida que más usuarios utilizan este sistema, la base de datos
crecerá más rápidamente.
3. La aplicación que se desarrollará tendrá como característica que el usuario podrá seleccionar
cuantos botones quiere en pantalla, la ubicación, el texto y función de manera que desde una
sola pantalla podrá comandar distintos artefactos.
2 - Desarrollo 20
Capítulo 2: Desarrollo
2.1 Descripción general
El sistema se basa en el desarrollo de dos partes principales, a continuación se mencionan en forma
resumida.
Aplicación móvil: Se desarrolló una aplicación para teléfonos móviles para sistema
operativo Android, la cual posee botones y una apariencia similar a la de un control remoto
IR convencional. La aplicación se comunica con un dispositivo que funciona como interfaz
IR-WiFi.
Interfaz IR-WiFi: Este dispositivo tiene la función de recibir y decodificar señales infrarrojas
provenientes de controles remotos convencionales, las almacena y puede emitir las mismas
cuando la aplicación móvil lo indique. Este dispositivo está basado en la placa de desarrollo
Stellaris Lunchpad de Texas Instruments a la cual se le incorpora un receptor y emisor IR,
un módulo WiFi, entre otros componentes.
La figura N° 7 muestra un esquema general del sistema completo. En las siguientes páginas se
describirán los bloques que conforman el sistema.
Para poder realizar los primeros ensayos se diseñó y fabricó una pequeña placa de desarrollo la cual
incluía un receptor infrarrojo, el circuito emisor, el microcontrolador mencionado anteriormente y
un conversor RS232/TTL, este último componente es necesario para comunicarse con una
computadora mediante el puerto serial y realizar el debug por consola. En las figuras N° 9 y N° 10
puede observarse la visualización 3D, mientras que en las figuras N° 11 y N° 12 se muestra la placa
fabricada mediante el método casero clásico. Por otro lado, la figura N° 13 muestra el esquemático
de la placa mencionada. El software utilizado en el diseño de todas las placas en este proyecto fue
EAGLE Professional Edition, mientras que para generar la representación 3D se utilizó el software
SketchUP de Google. Los circuitos y componentes utilizados se describirán en las páginas
siguientes.
Figura N° 11: Placa real PIC18F14K50 (bottom). Figura N° 12: Placa real PIC18F14K50 (top).
2 - Desarrollo 23
regulador de 3,3[V], y se acopla al Stellaris LunchPad mediante los conectores de expansión. En las
figuras N° 15 y N° 16 se muestra la representación 3D, mientras que en las figuras N° 17 y N° 18 se
observa la placa real. Por otro lado, la figura N° 19 muestra el esquemático de la misma.
Figura N° 15: Placa 3D adaptadora (bottom). Figura N° 16: Placa 3D adaptadora (top).
Figura N° 17: Placa real adaptadora (bottom). Figura N° 18: Placa real adaptadora (top).
2 - Desarrollo 26
Figura N° 20: Placa real adaptadora acoplada (bottom). Figura N° 21: Placa real adaptadora acoplada (top).
Además de las placas mencionadas, se diseñó y fabricó una segunda placa adaptadora cuya
representación 3D e implementación se observa en las figuras N° 22, N° 23, N° 24 y N° 25,
mientras que la figura N° 26 se muestra el esquemático de la misma. Esta placa se utilizó junto a la
anterior para comprobar el funcionamiento del dispositivo en múltiples ambientes del hogar en
forma simultánea. Esto se desarrollará cuando se describa el diseño de la aplicación móvil.
Esta placa se diferencia de la anterior en que aquí se eliminaron los pulsadores y el receptor IR,
mientras que se agregó un buzzer para indicar cuando el sistema recibe un comando y se utilizaron
dos leds infrarrojos en vez de solamente uno.
Figura N° 22: Placa 3D adaptadora 2 (bottom). Figura N° 23: Placa 3D adaptadora 2 (top).
Figura N° 24: Placa real adaptadora 2 (bottom). Figura N° 25: Placa real adaptadora 2 (top).
2 - Desarrollo 28
2.3.2 Modulación
Deben distinguirse dos clases de codificación. En primer lugar la señal IR debe ser modulada, es
decir que esta se enciende y apaga a una frecuencia determinada para poder diferenciar la señal
válida de todas las emisiones infrarrojas existentes en el ambiente, las que generalmente serán
continuas o de frecuencia aleatoria. Esta señal periódica se conoce como señal portadora y su
frecuencia se suele ubicar entre 30[KHz] y 60[KHz]. Sin embargo, el valor más común es 38[KHz].
Además de generar la señal anterior, es necesario emitirla e interrumpirla en lapsos pre-establecidos
de antemano para enviar o recibir comandos que el receptor pueda entender. Lo anterior queda
determinado por el protocolo de comunicación utilizado (Grassi, s.f.).
En la figura N° 27 se puede ver una señal modulada que es emitida por el led IR del transmisor en
el lado izquierdo. La señal detectada sale del receptor en el otro lado.
2.3.4 Recepción
En la figura N° 29 se puede observar un típico diagrama de bloques de un receptor IR. La señal
recibida es captada por el diodo de detección IR en el lado izquierdo del diagrama. Esta señal es
amplificada y limitada en las primeras dos etapas. El limitador actúa como un control de ganancia
2 - Desarrollo 31
En este proyecto se utilizó en primer lugar el receptor mostrado en la figura N° 30, sin embargo se
encontraron dos inconvenientes:
No puede alimentarse con 3,3[V], lo cual lo hace incompatible con la placa Stellaris.
En determinados tipos de señales, los pulsos tienden a deformarse en lugar de mantener la
forma de señal cuadrada, lo que produce que la medición no sea fiable.
2 - Desarrollo 32
Debido a esto, se optó por utilizar el receptor mostrado en la figura N° 31 el cual no presentó las
desventajas descriptas.
Cantidad de bytes: 4
Figura N° 32: Control remoto Reproductor DVD Tonomac.
2 - Desarrollo 33
Decodificador RTC
Cantidad de bytes: 4
Figura N° 34: Control remoto Decodificador RTC.
Cantidad de bytes: 3
Figura N° 36: Control remoto LCD Smart TV RCA.
LCD BGH
LCD Noblex
Cantidad de bytes: 4
Figura N° 40: Control remoto LCD Noblex.
Cantidad de bytes: 2
Figura N° 42: Control remoto Reprod. VHS Philco.
LCD Tonomac
Cantidad de bytes: 4
Figura N° 44: Control remoto LCD Tonomac.
2 - Desarrollo 37
TV Tonomac Tubo
Cantidad de bytes: 2
Figura N° 46: Control remoto TV Tonomac Tubo.
Cantidad de bytes: 2
Figura N° 48: Control remoto TV Philco Tubo.
TV Samsung Tubo
Cantidad de bytes: 2
Figura N° 50: Control remoto TV Samsung Tubo.
2 - Desarrollo 39
A partir de información expuesta anteriormente, se puede concluir, en principio, que los distintos
protocolos IR pueden ser agrupados en 3 conjuntos. Para esta clasificación se tiene en cuenta las
similitudes que presentaban los protocolos.
1) Aquellos que poseen encabezado (AGC) y agregan de forma negada, tanto el comando
como la dirección. Como es el caso del LCD Noblex.
2) Aquellos que poseen encabezado (AGC) pero no envían los datos negados. Como es el caso
del TV Tonomac Tubo.
3) Aquellos que no poseen encabezado (AGC). Como es el caso del LCD BGH.
La diferencias entre protocolos de un mismo grupo son, por ejemplo, el tiempo en alto y bajo de la
cabecera, de un “1” lógico, de un “0” lógico. Sin embargo, mantienen una estructura de trama muy
similar. Por otro lado, el grupo 1 y 2 se diferencian que el primero envía cuatro bytes de dato
mientras que en el segundo se envían dos byte de datos. Este hecho servirá, posteriormente, para
unificar estos dos grupos.
2.3.6 Decodificación
Para la programación de los microcontroladores de Texas Instruments se utiliza en general el
entorno de programación ofrecido por la empresa, este es el software Code Composer Studio y el
lenguaje de programación es C.
El algoritmo de decodificación se basa en la medición de la cantidad de tiempo o de ciclos de reloj
existentes entre los flancos, tanto ascendientes como descendientes, de la señal que genera el
módulo receptor IR. Además, teniendo en cuenta los resultados de los ensayos, se han fijado
umbrales de tiempos comunes a todos los protocolos ensayados. Esto quiere decir, por ejemplo, si el
tiempo en alto de la señal excede a 1[ms] entonces se debe interpretar como un “1” lógico, de lo
contrario se interpretará como un “0” lógico. Este proceso se realiza en tiempo real.
2 - Desarrollo 40
El proceso comienza cuando el modulo IR genera una interrupción en el microcontrolador, lo que
indica que comienza una trama. En ese instante se enciende un temporizador que se incrementará
hasta que ocurra el siguiente flanco. Cuando esto suceda, se detendrá el temporizador, se asignará
este valor a “headerLow” y se reiniciará el temporizador desde cero. En el siguiente flanco se
registrará “headerHigh” y a continuación se registrarán los “1” y “0” decidiendo entre uno y otro
según si el tiempo del pulso se encuentra por encima del umbral o por debajo. Los datos
decodificados se almacenaran en una estructura como la siguiente.
typedef struct
{
uint32_t headerLow;
uint32_t headerHigh;
uint32_t tiempoUnoCero[2][2];
uint32_t interLow;
uint32_t interHigh;
uint32_t stopLow;
uint8_t datos[4];
uint8_t numeroBytes;
uint8_t numeroBits;
tBoolean valido;
uint8_t id;
}_boton;
Algunas de las variables que se observan en la estructura cumplen funciones auxiliares en la
decodificación como, por ejemplo, “numeroBits” o “valido”. Esta información extra no será
almacenada en el servidor ya que no es necesaria para poder generar la señal posteriormente.
Por otro lado, la variable “interLow” e “interHigh” almacenan los tiempos de un pulso intermedio
que aparece entre el dato de “dirección” y “comando” en aquellos protocolos donde no se agrega la
información negada.
El campo “id” representa una clave que identifica de forma univoca toda la información de una
señal de un botón dado. Es el mismo valor con el que se identifica en el servidor.
En el caso de los equipos de aire acondicionado no se decodifican las tramas IR, es decir que el
sistema no puede “aprender” a partir de una control remoto. Esto se debe a que la señal que emite el
control depende del estado anterior, dicho de otro modo, un mismo botón tiene múltiples funciones.
Por ejemplo, el botón MODE envía cíclicamente las órdenes de COOL, HOT, FAN, DRY, etc. Para
solucionar el inconveniente anterior, se pre-cargaron en el dispositivo los códigos correspondiente a
los fabricantes de aire acondicionado más comunes en el mercado.
2.3.7 Codificación
Para la generación de la señal portadora se utiliza el módulo PWM del microcontrolador, el cual se
configura a una frecuencia de 38[KHz] con un ciclo de trabajo del 50%.
El método para generar la señal consiste en activar o desactivar el la señal PWM durante los
intervalos temporales correspondientes. Por ejemplo, en primer lugar se activa la salida de la
portadora e inmediatamente se genera un retardo correspondiente al tiempo de “headerLow”,
2 - Desarrollo 41
cuando el retardo termina se desactiva la señal PWM y se dispara un retardo equivalente a
“headerHigh”, se continúa de esta manera hasta completar la trama correspondiente.
El módulo mencionado viene de fábrica con un firmware grabado tal que se puede comandar el
dispositivo mediantes comandos AT, lo cual es común en muchos módulos como GPRS, GSM,
GPS, Bluetooth y WiFi. La figura N° 54 muestra algunos de los comandos utilizados.
5C:CF:7F:16:77:08
Por otro lado, cuando el usuario presiona un botón de en la pantalla de su teléfono la aplicación
envía una petición PUT, con el código de identificación del botón presionado. El módulo contesta
de la siguiente forma:
HTTP/1.1 200 OK
Content-Type: text/plain"
Connection: close
OK
En el menú principal, ubicado en la “toolbar” se encuentran los principales controles, estos son:
Seleccionar ambiente: Este botón despliega una lista con los ambientes configurados por el
usuario y permite seleccionar uno de ellos. El nombre el ambiente actual aparece en la parte
superior de la pantalla principal.
Control de cargas AC: Este botón muestra la pantalla que permite activar o desactivar las
salidas de corriente alterna.
Control de aire acondicionado: Este botón muestra la pantalla donde se puede comandar los
2 - Desarrollo 47
equipos de aire acondicionado.
Cargar botones: Este botón despliega el formulario y comandos para subir al servidor la
información de un nuevo botón.
Ver botones: Esta acción permite ver los botones que se encuentran actualmente disponibles
en el servidor.
Editar pantalla: Este botón habilita el modo “editor”, en el cual se puede agregar y ubicar los
botones virtuales en cada ambiente. A este modo se puede acceder, además, haciendo doble
clic en la pantalla.
Ajustes: Este botón muestra la pantalla donde se realizan las configuraciones generales del
sistema.
En cuanto al control de aire acondicionado, se implementaron las acciones para comandar equipos
de los fabricantes TCL, ICP RESIDENTIAL e HITACHI. En futuras actualizaciones se agregarían
otros fabricantes. Cabe mencionar que todas las actualizaciones se realizarían a través de la tienda
de Google, de forma remota y automatizada. En las figuras N° 57, N° 58, N° 59 y N° 60 se
muestran algunas de las pantallas que conforman la aplicación.
Figura N° 57: Pantalla de control de cargas AC. Figura N° 58: Pantalla de control aire acondicionado.
Figura N° 59: Pantalla de “modo editor”. Figura N° 60: Pantalla de selección de ambiente
2 - Desarrollo 48
La figura N° 61 muestra la pantalla para subir un nuevo botón, de un control remoto dado, al
servidor. En primer lugar se debe presionar el botón “CAPTURAR”, en ese momento la aplicación
envía la orden al sistema para que capture la siguiente señal infrarroja, el usuario tiene 5 segundos
para presionar el botón del control remoto que quiere almacenar. Luego, debe presionar “PROBAR”
para comprobar que el sistema decodificó de forma correcta. Si la prueba es exitosa, el usuario debe
completar los datos del formulario, donde la descripción y la imagen son opcionales. Por último se
deberá presionar el botón “GUARDAR” para que la aplicación almacene toda la información en el
servidor.
En la figura N° 62 se observa la pantalla de configuraciones. Desde allí, se puede activar o
desactivar los avisos sonoros y de vibración, realizar la configuración manual de los ambientes e
indicar al dispositivo la red WiFi a la cual debe conectarse.
El método para configurar y asignar uno de los dispositivos a un ambiente en particular es como se
describe a continuación:
1) Se debe presionar un switch ubicado convenientemente en la placa del dispositivo, esto
provocará que el mismo se configure en modo “Access point” creando una red propia
llamada “WiFi IR”.
2) Presionar sobre “Nombre de la red”. La aplicación detectará las redes disponibles en el lugar
y las mostrará en pantalla. Se deberá seleccionar la red a la cual se conectará el dispositivo.
3) Presionar sobre “Contraseña de la red” e ingresar la contraseña de la red anteriormente
seleccionada.
4) Presionar “Conectar”. La aplicación indicará al dispositivo que se conecte a la red indicada,
si la conexión es exitosa se mostrará una lista con los ambientes previamente añadidos en la
aplicación. El usuario seleccionará a que ambiente pertenece el dispositivo, pudiendo añadir
en ese momento uno nuevo si es necesario.
5) El dispositivo utiliza una asignación dinámica de IP, por lo que se recomienda configurar el
router para que se reserve dicha IP para el dispositivo en cuestión, esto asegura que cuando
se desconecte o se quite la alimentación se asigne la misma dirección al reconectarse.
Figura N° 63: Pantalla menú contextual. Figura N° 64: Pantalla del control completo.
2.6 Servidores
Con el fin de que la información capturada se las señales infrarrojas esté disponible y accesible para
ser utilizada por cualquier usuario que lo necesite, se hizo uso de un servidor, en este caso gratuito,
que puede ser accedido a través de internet.
Un servidor, como la misma palabra indica, es un ordenador o máquina informática que está al
“servicio” de otras máquinas, ordenadores o personas llamadas clientes y que le suministran a estos,
todo tipo de información. Por tanto, se tiene el esquema representado en la figura N° 65, conocido
comúnmente como “cliente-servidor”, es uno de los más usados ya que en él se basa gran parte de
internet.
Como vemos, tenemos una máquina servidora que se comunica con variados clientes, todos
demandando algún tipo de información. Esta información puede ser desde archivos de texto, video,
audio, imágenes, emails, aplicaciones, programas, consultas a base de datos, etc.
Por regla general, las máquinas servidoras suelen ser algo más potentes que un ordenador normal.
2 - Desarrollo 50
Sobre todo suelen tener más capacidad tanto de almacenamiento de información como de memoria
principal, ya que tienen que dar servicio a muchos clientes. Pero como todo, también depende de las
necesidades, ya que podemos tener un servidor de menores prestaciones si vamos a tener pocos
clientes conectados, o si los servicios que queramos en el servidor no requieren una gran capacidad
servidora. A modo de ejemplo, podríamos hacer funcionar un ordenador en nuestra casa como si
fuera un servidor, aunque esto no es lo más habitual. Por general, los servidores suelen estar
situados en centros de datos de empresas (edificios con grandes salas dedicadas a alojar a los
servidores)(Sierra García, 2006).
En este proyecto se utilizaron dos archivos JSON. El primero de ellos almacena los datos necesarios
para generar una señal infrarroja de un botón y control remoto determinado. Por otro lado, el
segundo archivo almacena el nombre, fabricante, modelo y tipo de dispositivo del mismo botón
anterior. Para relacionar la información entre los dos archivos se utiliza un número único de
identificación. A continuación se muestra los primeros dos objetos del primer archivo mencionado
anteriormente, debe notarse que el nombre de cada objeto es precisamente el ID.
"1": {
"headerHigh": "76008",
"headerLow": "150158",
"tiempoUnoHigh": "28013",
"tiempoUnoLow": "8994",
"tiempoInter": "0",
"dato0": "16",
"dato1": "239",
"dato2": "1",
"dato3": "254"
},
"2": {
"headerHigh": "75610",
"headerLow": "150101",
"tiempoUnoHigh": "28031",
"tiempoUnoLow": "9398",
"tiempoInter": "0",
"dato0": "16",
"dato1": "239",
"dato2": "113",
"dato3": "142"
}
A continuación se muestra, parcialmente, el segundo archivo en donde se observa la información de
los botones correspondientes al ID 1 e ID 2.
{
"nombre": "Dispositivos",
"items": [
{
2 - Desarrollo 52
"nombre": "Televisor",
"items": [
{
"nombre": "TONOMAC",
"items": [
{
"items": [
{
"nombre": "Subir canal",
"idir": "1"
},
{
"nombre": "Bajar canal",
"idir": "2"
}
],
"nombre": "TO-39-4422-LED",
"descripcion": "LED 39\""
}
]
}
]
}
]
}
En este proyecto se definió que la comunicación con el servidor se realice a través de la aplicación
móvil, de esta forma se canaliza las transmisiones y se puede detectar con mayor facilidad fallos de
conexión o similares. Esto surgió a partir de las primeras pruebas en donde el módulo WiFi se
comunicaba directamente con el servidor para gestionar uno de los archivos JSON, mientras que el
restante lo procesaba el teléfono móvil. Sin embargo, si alguno de los dos fallaba al subir o bajar la
información, en determinados casos, no lograban notificarse el error entre sí y se perdía la
sincronización de los mismos. Por otro lado, el módulo WiFi posee memoria limitada en
comparación con un teléfono móvil, esto obligaba a dividir el archivo del servidor en múltiples
archivos de menor tamaño y se debía determinar cuál de ellos descargar a partir del ID solicitado
para emitir. Todo esto hacía que el procesamiento sea de mayor complejidad, contribuía a aumentar
la posibilidad de errores y es por ello que se decidió que sea la aplicación móvil quien inicia y
gestiona todos los intercambios de información.
Figura N° 69: Implementación control AC (Bottom). Figura N° 70: Implementación control AC (Top).
Con las pruebas realizadas se logró observar que el cargador funciona de manera adecuada,
coincidiendo las mediciones de tensión y corrientes con las calculadas en la etapa de diseño. Sin
embargo, cuando se conecta el sistema a la batería, el valor de tensión de la misma se reduce
llegando muy cerca del valor límite de entrada del regulador de tensión de 3,3[V]. Esto es un
inconveniente ya que la autonomía resultaría de muy poco tiempo con lo cual no tendría utilidad el
uso de una batería.
Para el desarrollo de este prototipo se optó por suprimir la batería y el cargador, y alimentar el
sistema directamente con un cargador de teléfono móvil. Sin embargo, la placa deberá contar con un
regulador de 3,3[V], en este caso se utilizará el circuito integrado TPS76733 de Texas Instruments,
el cual soporta una corriente de hasta 1[A] con una caída de tensión de 230[mV].
Figura N° 75: Placa definitiva 3D (bottom). Figura N° 76: Placa definitiva 3D (top).
2 - Desarrollo 57
Figura N° 77: Placa definitiva real (bottom). Figura N° 78: Placa definitiva real (top).
Figura N° 79: Placa definitiva real montada (bottom). Figura N° 80: Placa definitiva real montada (top).
Figura N° 81: Placa definitiva acoplada a Stellaris (der). Figura N° 82: Placa definitiva acoplada a Stellaris (izq).
2 - Desarrollo 58
En las figuras N° 83 y N° 84 se muestran los esquemáticos definitivos para este prototipo, en donde
se pueden hacer las siguientes observaciones:
Se incorporó un conjunto de 8 leds, de montaje superficial y color rojo, junto al circuito
integrado ULN2803A el cual funciona como buffer de corriente. El significado de cada led
es como se describe a continuación, de izquierda a derecha según la ubicación en la placa:
1. Se enciende cuando el sistema esta energizado e inicializado.
2. Se enciende si el sistema se encuentra conectado al router, en caso contrario
permanece intermitente.
3. Se enciende por un instante cada vez que llega una petición por parte de la aplicación
móvil. Además, cuando se necesita capturar una señal infrarroja este led parpadea
indicando que se debe presionar el botón a registrar.
4. Realiza un parpadeo cuando ocurre un error como, por ejemplo, cuando falla la
decodificación.
5. Se enciende o apaga según si la primera salida AC esta activada o desactivada.
6. Se enciende o apaga según si la segunda salida AC esta activada o desactivada.
7. Se enciende o apaga según si la tercera salida AC esta activada o desactivada.
8. Se enciende o apaga según si la cuarta salida AC esta activada o desactivada.
Se incorporó un pulsador el cual tiene dos funciones:
1. Cuando se mantiene presionado por más de 1 segundo se elimina de la memoria,
tanto RAM como EEPROM, la información almacenada sobre las señales de los
últimos botones emitidos. Esta función es una forma de realizar un reset del sistema
y puede ser de utilidad en determinados casos, como cuando se ha decodificado de
forma incorrecta o se presenta algún comportamiento incorrecto.
2. Si se presiona por menos de 1 segundo, el módulo WiFi se configura como Access
Point. Esto es necesario cuando se quiere establecer el ambiente del hogar en el que
se sitúa el dispositivo.
Se incorporó un buzzer que emite un aviso sonoro en distintas situaciones, como cuando la
aplicación móvil realiza una petición o cuando se borra la memoria mediante el pulsador,
por ejemplo. Este aviso puede activarse o desactivarse mediante el teléfono celular.
2 - Desarrollo 59
Capítulo 3: Resultados
Con las placas fabricadas y el firmware finalizado se procedió a realizar las pruebas definitivas en la
mayor cantidad de electrodomésticos a los cuales se pudo acceder, se verificó que el sistema pueda
recibir y emitir de forma correcta las señales infrarrojas. Se ensayaron 6 televisores LCD, 3
televisores de tubo, 2 reproductores de DVD, 1 reproductor VHS, 2 decodificadores de señal, 5
acondicionadores de aire y 1 equipo de música.
El sistema se desempeñó sin inconvenientes en la mayoría de ellos, dado que en el caso de un
televisor Tonomac y otro Samsung, ambos de tubo, el sistema logró decodificar de forma correcta la
señal de los controles remotos originales pero en el momento de emitir la misma, los televisores en
cuestión no reconocieron la señal. Es posible que la frecuencia de portadora utilizada en este
proyecto se encuentre muy alejada de la correcta para estos electrodomésticos. Además, se encontró
que un reproductor de DVD Philips utiliza el protocolo RC-6 el cual no está soportado por este
sistema por lo que este falla al intentar decodificarlo.
También se observó que en la mayoría de los electrodomésticos no es necesario orientar el emisor
infrarrojo hacia los mismos, es decir, la transmisión es omnidireccional. Esto no se logró en los
siguientes dispositivos: televisor Ken Brown, reproductor de DVD Tonomac, reproductor VHS
Philco, uno de los acondicionadores de aire y un equipo de música Philco. En estos casos es
necesario direccionar el diodo emisor, lo cual representa una limitación del sistema.
En relación a la comunicación WiFi se probó utilizar distintos routers con el fin de observar si
afectaba al desempeño. Se probaron routers de la marca Kozumi, Edimax, TP-LINK, en estos casos
con la empresa Arnet como proveedor de Internet. También se verificó el funcionamiento con un
router CISCO, el cual es provisto a sus clientes por la empresa Fibertel.
En el caso de los primeros routers mencionados no se encontró ningún problema, el sistema se
conectaba sin dificultad. No obstante, en el caso de CISCO, en algunas ocasiones la conexión
fallaba en el primer intento teniendo que volver a indicar que se realice la conexión. En todos los
casos, el tiempo de respuesta desde que se presiona un botón en la pantalla del móvil y se observa la
acción en el dispositivo en cuestión es prácticamente inmediato.
En cuanto a la aplicación móvil, se verificó el funcionamiento de la misma en diversos dispositivos
móviles. En concreto esto se realizó sobre un teléfono Samsung Galaxy Grand Prime con una
pantalla de 5” con Android 5.1, un teléfono LG L1 con una pantalla de 3” y Android 4.1 y una
tablet Samsung Tab 3 con una pantalla de 7” y Android 4.4.
Se observó que la aplicación funciona de manera correcta sobre el teléfono Samsung, lo cual era
previsible ya que con este dispositivo se realizó todo el desarrollo del proyecto. Por otro lado, en el
teléfono LG, por tener una pantalla de menor tamaño, se observaron algunos controles con un
tamaño desproporcionado llegando, en algunos casos, a solaparse u ocultarse entre sí haciendo
imposible la correcta utilización. En cuanto a la tablet, se observa que la aplicación es
completamente funcional, sin embargo, al tener una pantalla relativamente grande, los controles se
presentan mal distribuidos o muy separados entre sí lo que genera una apariencia visual no muy
agradable.
4 - Análisis de costos 64
En cuanto a las horas de dicadas al desarrollo del proyecto, este requirió alrededor de 4 meses y fue
ejecutado por solo una persona. En este periodo se llevó a cabo la investigación, el diseño, los
ensayos, la documentación, la fabricación de placa y la realización de la aplicación móvil.
Tal como se puede percibir, el valor total de los componentes utilizados sin contabilizar las horas de
trabajo es algo elevado. Se puede reducir el costo eliminando algunas prestaciones del sistema, por
ejemplo, se podría suprimir el control de cargas AC, se podría quitar el buzzer y los leds
indicadores, también se debería eliminar la placa de desarrollo y sólo utilizar el microcontrolador de
la misma. Con estas simplificaciones se reduciría a la mitad el tamaño del PCB por lo que el costo
del mismo también sería menor, más aun si se lo fabrica en grandes cantidades y en plazos no tan
rígidos.
A continuación se presenta una segunda lista de componentes teniendo en cuenta los comentarios
anteriores
4 - Análisis de costos 65
Cant. Descripción Costo
9 Res. 0805 $0,75
3 Cap. 0805 $0,79
1 Trans. BC817 $0,66
1 ESP8266 $150
1 Pulsador $2,27
1 Reg. TPS76733 $23,46
1 Receptor IR $30
1 Led IR $2,20
1 Cap. 10uF/10V Tant. $4,01
1 Micro TM4C123GH6PM $83,36
1 PCB $200(*)
1 Fuente de alim. $80
Total $577,77
Tabla N°3: Costos de componentes del proyecto reducido.
(*) Estimado.
Se observa que el costo de los componentes se reduce casi en un 50%. Se podría reducir aún más
este valor si se considera adquirir estos artículos en cantidades grandes y comprándolos
directamente en el exterior, como por ejemplo en las empresas distribuidoras Digikey o Mouser,
ubicadas en Estados Unidos.
5 - Discusión y conclusión 66
http://www.test.cellphonepartscanada.com/mobile_detail_acc.asp?pid=MOTOBATBC