Casa inteligente y segura Universidad Autónoma de Ciudad Juárez Javier Sánchez Carlos Rector David Ramírez Perea Secretario General Antonio Guerra Jaime Director del Instituto de Ingeniería y Tecnología Martha Patricia Barraza de Anda Coordinadora General de Investigación y Posgrado Servando Pineda Jaimes Director General de Difusión Cultural y Divulgación Científica Universidad Autónoma de Ciudad Juárez Casa inteligente y segura Jenaro Carlos Paz Gutiérrez Jesús Rodarte Dávila Ricardo Enrique Pérez Blanco Área: Ingeniería y Tecnología Coordinación General de Investigación y Posgrado Lisbeily Domínguez Ruvalcaba Coordinadora de la colección Paz Gutiérrez, Jenaro Carlos. Casa inteligente y segura / Comp. Jenaro Carlos Paz Gutiérrez, Jesús Rodarte, Ricardo Pérez Blanco. Ciudad Juárez, Chih. : Universidad Autónoma de Ciudad Juárez, 2010. (Colección Textos Universitarios, serie Investigación) 50 p.; 30cm. Incluye bibliografía Colección Reportes Técnicos de Investigación ISBN: 978-607-7953-80-7 Serie IIT, Vol. 1, ISBN: 978-607-7953-85-2 Durante el proyecto con duración de ocho meses, se trabajó con dispositivos como el Arduino, el XPort de Lantronix, el WIZnet, las tablillas shield para ambos, el dispositivo PSC05 de X10, la programación en lenguaje “C++” con varias bibliotecas de funciones que ha desarrollado la comunidad mundial y el propio código embebido en dispositivos para controlarlos. Se desarrollaron nuevos dispositivos a partir de unos ya existentes, y se configuraron con nuevas partes, alambrados y programación para que los obtenidos permitan adaptarlos a las necesidades del entorno, para hacer una casa inteligente y segura. Domótica – Investigación Edificios inteligentes – Investigación Vivienda – Innovaciones tecnológicas – Investigación TK7881.25 P47 2010 D.R. © 2011 Jenaro Carlos Paz Guitiérrez, Jesús Rodarte Dávila, Ricardo Enrique Pérez Blanco La edición, diseño y producción editorial de este documento estuvo a cargo de la Dirección General de Difusión Cultural y Divulgación Científica, a través de la Subdirección de Publicaciones Corrección: Jorge Hernández Martínez Diagramación: Diana Prado González Diseño de cubierta: Diana Prado González Primera edición, 2011 © 2011 Universidad Autónoma de Ciudad Juárez Av. Plutarco Elías Calles 1210 Fovissste Chamizal, C.P. 32310 Ciudad Juárez, Chihuahua, México Tel. +52 (656) 688 2260 http://www2.uacj.mx/publicaciones RTI-FI-001 Índice Resumen Abstract Palabras clave Usuarios potenciales Reconocimientos 9 11 12 12 12 I. Introducción 1.1 Descripción del proyecto 1.2 Justificación del proyecto 13 13 II. Planteamiento 2.1 Antecedentes y marco teórico 2.2 ¿Qué es el Túnel Serial? Figura 1. Conexión entre dos servidores de dispositivos 2.3 ¿Qué es X10? Figura 2. Ejemplo de una instalación X10 2.4 ¿Qué es HTTP? 2.4.1 ¿Qué son los recursos? 2.4.2 Estructura de las transacciones HTTP 2.5 Descripción Figura 3. Diferentes tipos de Arduinos 2.5.1 Configuración de entradas y salidas 2.5.1.1 Elementos con los que se puede interactuar Figura 4. Pins de configuración tomando como ejemplo la placa USB 2.5.2 Tipos de placas 2.5.2.1 Placa serie 2.5.2.2 Placa USB 2.5.2.3 Placa de prototipos 15 15 17 17 18 18 18 19 19 20 20 20 20 21 21 21 21 2.5.2.4 Bluetooth 2.5.2.5 XBee 2.5.2.6 ArCan 2.6 Arduino Ethernet Shield Figura 5. Ethernet Shield, módulo para Arduino 2.6.1 Configuración de pins Motores paso a paso Figura 6. Rotor Figura 7. Estator y bobinas Figura 8. Conexiones de nuestro motor 2.7 Secuencia para el manejo de motores paso a paso Cámara de video IP 2.8 Cámara AIRLINK AIC250W inalámbrica Figura 9. Cámara de video IP 21 21 22 22 22 22 23 24 24 24 24 25 25 26 III. Metodología 3.1 Control de luces y dispositivos eléctricos mediante un Arduino y un módem PSC05 de X10 Figura 10. Cable con conector RJ11 Figura 11. Módem PSC05 Figura 12. Módulo de lámpara LM465 3.2 Procedimiento Figura 13. El circuito impreso Figura 14. Arduino alambrado al módem PSC05 Figura 15. Módem PSC05 de X10 Figura 16. Conexión del cable telefónico al módem PSC05 Figura 17. Cargando el programa al Arduino Tabla 1. Código embebido en Arduino para prender y apagar dispositivos Tabla 2. Código embebido en Arduino para control de luces Figura 18. La lámpara comienza a incrementar su intensidad 3.3 Envío de correo electrónico cuando un sensor de movimiento se activa Figura 19. Arduino Mega y Duemilanove Figura 20. Módulo Lantronix para Arduino Figura 21. Configuración de Lantronix mediante DeviceInstaller 4.2 Tabla 3. Código de Arduino para interactuar con Lantronix y Arduino Mega 27 27 28 28 28 29 29 30 30 31 32 33 34 34 34 35 36 37 IV. Resultados Figura 22. Correo electrónico recibido por interesados 39 V. Conclusiones Bibliografía Anexo 1 Conexión entre módulos Figura 1. Diagrama de alambrado entre Arduino Mega y un módem PSC05 Anexo 2 Controlador para motor paso a paso Figura 1. LM7805, regulador de voltaje de 5V, 1A Figura 2. 74HC595 Figura 3. Estructura interna de un transistor tipo Darlington Figura 4. Conexiones del ULN2803 y los motores unipolares paso a paso Figura 5. Circuito de tablilla controladora 43 45 45 45 46 46 46 47 48 48 49 Resumen E l problema de robo a casa-habitación es, en la actualidad, si no el más grave, sí el que tiene un mayor índice delictivo. De acuerdo al Buró Federal de Investigación (FBI, por sus siglas en inglés), un robo ocurre cada 15.4 segundos en Estados Unidos. Las estadísticas nos dicen que el 70% de los ladrones, utilizan algún tipo de fuerza para ingresar a una vivienda, pero su preferencia es ganar acceso fácil a través de una puerta o ventana abierta. Herramientas caseras como destornilladores, pinzas de corte, pequeñas barras como palanca y martillos pequeños, son los más utilizados por los maleantes. Esta modalidad de robo, se considera en aumento, dado que la policía sólo puede aclarar alrededor del 13% de todos los robos denunciados y rara vez atrapa al ladrón en el acto. Este problema se magnifica en Ciudad Juárez, donde el robo a casas-habitación, oficinas, comercios, empresas y organizaciones en general, se estima que rebasa los promedios nacionales como en muchos otros renglones relacionados con la inseguridad de la población. Existen en la ciudad empresas que proporcionan servicios de monitoreo, que haciendo uso de dispositivos de detección de movimiento o apertura de puertas y ventanas, mandan una señal vía telefónica local a la central y ésta al contratante y a los servicios de seguridad pública. Dependiendo de la organización, es el cobro que se hace por los servicios de monitoreo y la instalación del equipo. El más bajo puede ser de $500.00 al mes y de $3500.00 en una exhibición, con contratos de uno o dos años. La domótica (casa robot) abarca todas las fases de la tecnología de hogar inteligente, incluidos los sensores altamente sofisticados y controles que automatizan la temperatura, iluminación, sistemas de seguridad y muchas otras funciones. Un sistema de seguridad de una manera económica, a mediano plazo, se implementa para esta fase de “casa inteligente”, el cual está formado por una red de sensores de movimiento con comunicación, a través de la red de alimentación de la casa, con el uso del protocolo X10, logrando un proceso de enlace a un sistema de hardware libre Arduino, para que éste, a su vez, sirva como interfaz al entorno del hogar y también a la Web. 9 10 Con el crecimiento que han tenido los servicios de internet y la gran expansión de esta red, hoy en día una gran cantidad de hogares de clase media y alta, cuentan con una conexión 24/7 para navegar y hacer consultas en muy diversos sitios, según las preferencias de los cibernautas. Por otro lado, los proveedores de equipo cada día van incorporando nuevos dispositivos, que de una u otra forma, mediante diferentes protocolos, pueden comunicarse entre ellos o enlazarse a internet para poner a disposición algún tipo de servicio o información. Aunado a lo anteriormente expuesto y con el surgimiento de sistemas Web embebido como Lantronix; sistemas de comunicación de bajo consumo, como el ZigBee; y tecnologías o protocolos, como UPnP, bluetooth, TCP/IP, X10 y más, que pudiendo interconectarse, adaptarse y programarse, nos permiten producir verdaderas soluciones a diferentes problemas de la vida diaria. Desde hace varios años, han surgido en el mercado tecnologías que pueden conjuntarse para prestar un servicio de monitoreo para seguridad, que haga uso de internet ya instalado en el lugar, proveyendo al usuario final con notificaciones y vigilancia los 365 días del año las 24 horas, prescindiendo así de la contratación de compañías externas, con la finalidad de bajar costos y contar con información en el momento, inclusive en el propio teléfono celular. Este sistema de seguridad “interactivo” propuesto, tiene inicialmente un costo mayor al que se daría con la contratación de servicios de seguridad privada; sin embargo, ya realizada la inversión, se considera poder cubrir sus costos en aproximadamente tres años, por lo que quedaría el usuario libre de rentas y con un potencial enorme de hacer crecer este sistema. Casa inteligente y segura Abstract H ouse robbery is today a problem, currently not very serious, but it has a higher crime rate. According to the Federal Bureau of Investigation (FBI), a burglary occurs every 15.4 seconds in the United States. Statistics tell us that 70% of thieves use some sort of force to enter a home, but their preference is to gain easy access through an open door or window. Household tools, such as screwdrivers, cutting pliers, small bar clamps as lever, and small hammers are the most frequently used by burglars. This type of theft is considered on the rise since the police can only clear only around 13% of all robberies reported and rarely catch the thief in the act. This problem is magnified in Ciudad Juárez where theft to homes, offices, shops, businesses and organizations, is in general estimated to exceed national averages, as in many other lines related to insecurity among the population. There are city companies like ADT that provide monitoring services using motion detection or devices when a door or window is opened, sending a signal via local telephone central to the contractor and then to public safety services. Depending on the organization is the collection that is done by monitoring services and equipment installation. The lowest can be $40.00 USD per month and up to $280.00 USD on an exhibit with a contract by one or two years. Domotics (robot house) covers all phases of smart home technology, including highly sophisticated sensors and controls to automate the temperature, lighting, security systems and many other features. A security system in an economical manner, in the medium term, is implemented for this phase of “smart home”, which form a network of motion sensors in conjunction with the power supply of the house, using the X10 protocol, achieving a binding process to a system of free hardware Arduino. This serves as an interface to the home environment and the World Wide Web. With the growth shown by the Internet service and the great expansion of this network, at present, a large number of middle and upper classes households have a connection 24/7 for browsing and querying in many different places depending on the 11 Resumen 12 preferences of Internet users. On the other hand, equipment suppliers every day incorporate new devices which in one way or another, using different protocols, can communicate with each other or link to the Internet to make available any information or service. In addition to the above, and the emergence of Web systems embedded as Lantronix, low power consumption communication systems such as ZigBee, and technologies or protocols such as UPnP, Bluetooth, TCP/IP, X10 and more that can interconnect, tailored and programmed allow us to produce real solutions to various problems of daily life. For several years there have been on the market technologies that can be combined to provide a security monitoring service to make use of the Internet already installed on site, providing end users with notifications and surveillance 24 hours and 365 days a year, thus ignoring the hiring of outside companies in order to cut costs and obtain information at the moment, even in your own cellular phone. However, this “interactive” security system proposed in a home is initially at a higher cost that would occur with the hiring of private security services, because it includes the use of a Web camera, making iterative surveillance. Furthermore already made the investment, is considered to cover the costs in approximately three years, so the user would be free of income and with a huge potential to grow the system facilities. Palabras clave: Domótica, TCP/IP, X10. Usuarios potenciales: Casas-habitación, comercios, instituciones públicas (escuelas, hospitales, etcétera). Reconocimientos: Nuestro agradecimiento al Departamento de Ingeniería Eléctrica y Computación, por las facilidades brindadas para la realización del proyecto; al Laboratorio de Eléctrica y el Centro de Cómputo avanzado, por su tiempo; a los alumnos Nidia Carolina Verdugo González y Surinam Zambrano Sánchez. Casa inteligente y segura I. Introducción E 1.1 Descripción del proyecto l problema de inseguridad en la República Mexicana, es uno de los más graves con que cuenta la población. Éste se magnifica en Ciudad Juárez, donde el robo a casas-habitación, oficinas, comercios, empresas y organizaciones en general, se estima que rebasa los promedios nacionales como en muchos otros renglones relacionados con la inseguridad de la población. Existen en la ciudad negocios de monitoreo, que haciendo uso de dispositivos de detección de movimiento o apertura de puertas y ventanas, mandan una señal —vía el servicio telefónico local— a la central y ésta al contratante y a los servicios de seguridad pública. Dependiendo de la organización, es el cobro que se hace por los servicios de monitoreo y la instalación del equipo. El más bajo puede ser de $500.00 al mes y hasta de $3500.00 en una exhibición, con contratos de uno o dos años. La UACJ cuenta con varios sistemas de monitoreo en sus instalaciones y, por consiguiente, tiene que realizar un pago mensual por el servicio, el cual asciende a varios miles de pesos. 1.2 Justificación del proyecto Desde hace varios años, han surgido en el mercado tecnologías que pueden conjuntarse para prestar un servicio de monitoreo para seguridad, que haga uso de internet ya instalado en el lugar, proveyendo al usuario final con notificaciones y vigilancia los 365 días del año las 24 horas, prescindiendo así de la contratación de compañías externas, con la finalidad de bajar costos y contar con información en el momento, inclusive en el propio teléfono celular. 13 II. Planteamiento C 2.1 Antecedentes y marco teórico on el crecimiento que han tenido los servicios de internet y su gran expansión, hoy en día, una gran cantidad de hogares de clase media y alta cuentan con una conexión 24/7 para navegar y hacer consultas en muy diversos sitios, según las preferencias de los cibernautas. Por otro lado, los proveedores de equipo cada día van incorporando nuevos dispositivos, que de una u otra forma, mediante diferentes protocolos, pueden comunicarse entre ellos o enlazarse a internet para poner a disposición algún tipo de servicio o información. Así es que vemos surgir equipo de marcas como: Lantronix, ZigBee, Arduino, y tecnologías o protocolos como: UPnP, bluetooth, TCP/IP, X10 y más, que pudiendo interconectarse, adaptarse y programarse, nos permiten producir verdaderas soluciones a diferentes problemas de la vida diaria. Túnel Serial 2.2 ¿Qué es el Túnel Serial? Los dispositivos seriales, se conectan directamente mediante un cable, lo cual resulta muy sencillo cuando esta distancia es pequeña. Pero si se necesita que ésta sea de varios cientos o miles de metros, esta distancia rebasa lo permisible para la conexión serial y, por lo tanto, se necesita de un método que sirva de puente a la distancia y que permita pasar a los datos, a pesar de tan grande distancia y ser transparente a los dispositivos que los manejarán. Para esta empresa, el método más factible de utilizar es TCP/IP, ya que puede transportar los datos de un punto a otro, sin que haya ninguna pérdida, y esto se 15 16 debe a la manera como están estructurados estos protocolos, que pueden pasar datos en una red local o a través de una red de área extendida, utilizando ruteadores o, en términos generales, entre dos puntos cualesquiera de internet. Se pueden utilizar varios medios de transmisión, como son: redes cableadas, inalámbricas, módems y postería o satelital, lo cual quiere decir que los paquetes IP pueden enviarse a cualquier parte del mundo, para: ɶɶ Lograr que los puertos COM conecten equipos PC o servidores con dispositivos serie remotos sobre Ethernet ɶɶ Comunicar simultáneamente con múltiples dispositivos serie de una red ɶɶ Utilizar Ethernet para sustituir conexiones de módem de conexión telefónica preexistentes ɶɶ Administrar el puerto de consola de equipos remotos (servidores, ruteadores, conmutadores, etcétera) sobre Ethernet La función de conversión de los datos seriales a IP, es llevada a cabo por un servidor (de conversión) y encargándose otro de reconvertirlos de IP a seriales de nuevo. Este proceso se conoce como Túnel Serial (Serial Tunneling). En el caso de conexiones TCP, un servidor es el encargado de iniciar la conexión, mientras que el otro está sólo esperando una conexión entrante. Una vez establecida la conexión, los datos se pueden mover en cualquier dirección de manera bidireccional. Este empaquetado TCP/ IP, permite a un usuario conectar un servidor de dispositivos serie a un dispositivo serie existente y lograr que la comunicación con otro tenga lugar sobre Ethernet, sin realizar ningún cambio en aplicaciones de red críticas. Instalar un servidor de dispositivos serie a Ethernet en un extremo de una LAN y otro en otro punto de la LAN, para permitir el paso de datos RS232, es lo indicado para acceder a dispositivos seriales que se encuentran físicamente en posiciones remotas. Veamos un ejemplo: un servidor de dispositivos serie, puede conectarse al puerto serie de un equipo que ejecuta una aplicación crítica en una oficina central o un centro de datos. El segundo servidor de dispositivos serie, se conecta al puerto serie de un dispositivo de adquisición de datos situado en otra población. Cuando ambos servidores de dispositivos serie, disponen de conexión LAN y reciben alimentación, se inicia automáticamente una sesión entre los dos servidores de dispositivos dedicados. Dicho de otro modo: una vez que ambos servidores de dispositivos serie, se utilizan formando un túnel serie, transfieren automáticamente datos a través de la LAN como si ésta fuera transparente. La aplicación del equipo central sólo abre el puerto COM y envía datos. Casa inteligente y segura 17 Dispositivo de adquisición de datos serie Aplicación de equipo central Device Server Device Server Figura 1. Conexión entre dos servidores de dispositivos Red El hecho de que la función de creación de túneles serie, convierta la LAN en transparente, hace que resulten factibles otras aplicaciones. Un lector de tarjetas puede enviar datos a una pantalla o una cámara de seguimiento, puede enviar información a una controladora en una línea de fabricación. Protocolo X10 2.3 ¿Qué es X10? X10 es un “protocolo de comunicación” para el control remoto de dispositivos, que funciona a través del cableado eléctrico. Es un estándar para transmitir señales entre equipos eléctricos en formato digital, para su automatización a través de la red eléctrica (220V o 110V). Es la tecnología que le permite construir una instalación inteligente para el hogar, oficina, empresa o taller. Debido a que no se necesitan instalar cables adicionales, este tipo de transmisión fue adoptado por varias marcas de equipos de automatización y seguridad en todo el mundo, haciéndolos compatibles entre sí. X10 fue desarrollado en 1975 por Pico Electronics de Glenrothes, Escocia. Fue la primera tecnología domótica en aparecer y sigue siendo la más ampliamente disponible. Actualmente, X10 es un protocolo que está presente en el mercado mundial, sobre todo en Norteamérica y Europa (España y Gran Bretaña, fundamentalmente). Las señales de control de X10, se basan en la transmisión de ráfagas de pulsos de RF (120 Khz), que representan información digital. Estos pulsos se sincronizan en el cruce por cero de la señal de red (50 Hz o 60 Hz). Con la presencia de un pulso en un semiciclo y la ausencia del mismo en el siguiente semiciclo, representa un “1” lógico y a la inversa, se representa un “0”. A su vez, cada orden se transmite dos veces, con lo cual toda la información transmitida tiene cuádruple redundancia. Cada orden involucra 11 ciclos de red (220 ms para 50 Hz y 183.33 para 60 Hz). De esta manera II. Planteamiento 18 la comunicación es eficaz. El sistema de corrientes portadoras, trabaja tanto en redes de corriente alterna monofásica como trifásica. Figura 2. Ejemplo de una instalación X10 En el uso del protocolo de control X10, primero se transmite un comando con el código de casa (house code), que consta de cuatro bits; luego el número de módulo (number code), que consta de 5 bits y, al final, el código de función (function code), que consta de otros 4 bits. HTTP 1.0 2.4 ¿Qué es HTTP? HTTP significa Hypertext Transfer Protocol (protocolo de transferencia de hipertexto). Es el protocolo de red usado para entregar virtualmente todos los archivos y datos (llamados recursos por la comunidad) en la Web, ya sean archivos HTML, imágenes, resultados de preguntas (querys) o cualquier cosa. Usualmente, HTTP se lleva a cabo mediante sockets TCP/IP. Un navegador de internet es un cliente de HTTP, ya que envía solicitudes (requests) a un servidor de HTTP (servidor Web), quien luego envía sus respuestas (responses) de regreso al cliente. El puerto estándar (y por defecto) para que los servidores HTTP escuchen, es el 80, pero pueden usarse otros puertos. 2.4.1 ¿Qué son los recursos? Casa inteligente y segura El HTTP se usa para transmitir recursos, no sólo archivos. Un recurso en un conglomerado de información, que puede ser identificado por un URL (Universal Resource Locator). El tipo más común de recurso es el archivo, pero también puede ser el resultado dinámicamente generado de una pregunta que se formula, el de un guión CGI, ASP o PHP o cualquier otra cosa. Mientras se aprende HTTP, ayudará el pensar en un recurso como un archivo pero mucho más general. Como cuestión práctica, actualmente casi todos los recursos HTTP son como archivos o la salida de un programa en el lado del servidor. 2.4.2 Estructura de las transacciones HTTP Como la mayoría de los protocolos, HTTP usa el modelo cliente-servidor: un cliente HTTP abre una conexión y envía un mensaje de requisición a un servidor HTTP, donde el servidor regresa un mensaje de respuesta, usualmente conteniendo el recurso que fue solicitado. Después de entregar la respuesta, el servidor cierra la conexión (haciendo de HTTP un protocolo sin estado; i.e., no manteniendo ninguna información de conexión entre transacciones). El formato de los mensajes de solicitud y respuesta son similares, y orientados al inglés. Ambos tipos de mensajes consisten de: ɶɶ Una línea inicial ɶɶ Cero o más líneas de encabezado ɶɶ Una línea en blanco (por ejemplo, un CRLF), y ɶɶ Un cuerpo de mensaje opcional (por ejemplo, un archivo, datos, otros) Arduino 2.5 Descripción Arduino es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas y un entorno de desarrollo, que implementa el lenguaje de programación Processing/Wiring. Se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software de la computadora (por ejemplo, Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno libre de desarrollo integrado, se puede descargar gratuitamente. Las plataformas Arduino están basadas en los microcontroladores Atmega328, Atmega168 o en el ATmega8, chips sencillos y de bajo costo que permiten el desarrollo de múltiples diseños. Al ser open-hardware, tanto su diseño como su distribución son libres, es decir, se puede utilizar libremente para el desarrollo de cualquier tipo de proyecto sin haberse adquirido ninguna licencia. II. Planteamiento 19 20 Figura 3. Diferentes tipos de Arduinos 2.5.1 Configuración de entradas y salidas Consta de 14 entradas digitales configurables como entradas y/o salidas, que operan a 5 volts. Cada pin puede proporcionar o recibir como máximo 40 mA. Los pins 3, 5, 6, 8, 10 y 11, pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier dispositivo a los pins 0 y 1, eso interferirá con la comunicación USB. Diecimila también tiene seis entradas analógicas, que proporcionan una resolución de 10 bits. Por defecto miden desde 0 hasta 5 volts, aunque es posible cambiar el nivel más alto, utilizando el pin Aref y algún código de bajo nivel. 2.5.1.1 Elementos con los que se puede interactuar Figura 4. Pins de configuración tomando como ejemplo la placa USB Casa inteligente y segura 21 Empezando en el sentido de las manecillas del reloj, desde el centro de la parte superior: ɶɶ Pin de referencia analógica (naranja) ɶɶ Señal de tierra digital (verde claro) ɶɶ Pins digitales 3-13 (verde) ɶɶ Pins digitales 1-2/entrada y salida del puerto serie: TX/RX (verde oscuro) ɶɶ Botón de reset (azul oscuro) ɶɶ Entrada del circuito del programador serie (azul turquesa) ɶɶ Pins de entrada analógica 0-5 (azul claro) ɶɶ Pins de alimentación y tierra (voltaje: naranja; tierra: naranja claro) ɶɶ Entrada de la fuente de alimentación externa (9-12V DC)-X1 (rosa) ɶɶ Conmuta entre fuente de alimentación externa o alimentación, a través del puerto USB-SV1 (violeta) ɶɶ Puerto USB (amarillo) 2.5.2 Tipos de placas 2.5.2.1 Placa serie Es la placa básica y se emplea una interfaz RS-232. Ésta puede ser utilizada, además, para la programación de la placa para comunicarse con otros elementos externos que utilicen el puerto serie, por ejemplo, una PC. 2.5.2.2 Placa USB Es igual a la placa serie, pero en vez de un puerto serie como tal, tenemos un conector USB (para poder conectar equipos PC sin puerto serie, como las portátiles de ahora) más un convertidor a serie. Si conectamos un aparato que siga la interfaz USB, no funcionará, pues en realidad es un puerto serie, no USB. II. Planteamiento 22 2.5.2.3 Placa de prototipos Esta placa está pensada para poder incorporar hardware adicional al diseño base de Arduino. Incorpora una matriz de agujeros, en la que se puede añadir hardware adicional. No dispone de puerto serie ni USB y por ese motivo es necesario disponer de otro programador que utilice ICSP. 2.5.2.4 Bluetooth Es la última versión en la que se está trabajando. Elimina la necesidad de cables para comunicarse con la PC. 2.5.2.5 XBee Esta placa Arduino posee el estándar XBee, para comunicarse con otras Arduino XBee. 2.5.2.6 ArCan Este shield dota a Arduino con la capacidad de intercomunicarse vía CAN-Bus. El microcontrolador Arduino Diecimila y Arduino Duemilanove, están basados en Atmega168 y Atmega328, respectivamente. Ethernet Shield 2.6 Arduino Ethernet Shield El Arduino Ethernet Shield, permite a una placa Arduino conectarse a internet. Está basado en el chip Ethernet WIZnet W5100, que maneja los protocolos IP y TCP como UDP. Soporta hasta cuatro conexiones de socket simultáneamente. Utiliza la librería Ethernet para escribir programas, los cuales se conectan a internet utilizándolo. Figura 5. Ethernet Shield, módulo para Arduino El Ethernet Shield, se conecta a una placa de Arduino utilizando alfileres de coCasa inteligente y segura nexión largos, los cuales se extienden a través del shield. Esto mantiene la disposición de alfiler intacta y permite a otro shield, ser apilado en la parte superior. Arduino utiliza los pins digitales 10, 11, 12 y 13 (SPI), para comunicarse con el W5100 en el Ethernet Shield. Estos pins no pueden ser usados para entradas y salidas (E/S) generales. El shield proporciona un conector Ethernet RJ45 estándar y cuenta con un botón que reinicia tanto el W5100 como la placa Arduino. 2.6.1 Configuración de pins El shield contiene un número de LEDS informativos: ɶɶ PWR: indica que la placa y el shield son alimentados (con una fuente de energía externa) ɶɶ LINK: indica la presencia de un enlace de red y parpadea cuando el shield transmite o recibe datos ɶɶ FULLD: indica que la conexión de red es full duplex ɶɶ 100M: indica la presencia de una conexión de red de 100 Mb/s (a diferencia de 10 Mb/s) ɶɶ RX: parpadea (destellos) cuando el shield recibe datos ɶɶ TX: parpadea cuando el shield envía datos ɶɶ COLL: parpadea cuando se detectan las colisiones de red El jumper de soldadura marcado como “INT”, puede ser conectado para permitir que la placa Arduino reciba interrupciones de notificación de eventos del W5100, pero éste no es soportado con la librería de Ethernet. El jumper conecta el pin INT del W5100 al pin digital 2 del Arduino. Motores paso a paso Los motores paso a paso, son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos. La característica principal es el hecho de poder mover un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan sólo 1.8°, es decir, que se necesitarán cuatro pasos en el primer caso (90°) y 200 para el segundo (1.8°) para completar un giro completo de 360°. En la aplicación que se implementará y que se describe más adelante, utilizamos un motor que gira 3.6°; por lo tanto, son necesarios 100 pasos para poder girar una vuelta completa (360°/3.6° = 100 pasos). Estos motores poseen la habilidad de poder quedar enclavados en una posición o bien, totalmente libres. Si una o más de sus bobinas están energizadas, el motor estará enclavado en la posición correspondiente y, por el contrario, quedará completamente libre si no circula corriente por ninguna de sus bobinas. III.PM etodología II. lanteamiento 23 24 Básicamente estos motores están constituidos normalmente por un rotor (figura 6), sobre el que van aplicados distintos imanes permanentes, y por un cierto número de bobinas excitadoras bobinadas en su estator (figura 7). Las bobinas son parte del estator y el rotor es un imán permanente. Toda la conmutación (o excitación de las bobinas) debe ser externamente manejada por un controlador. Figura 6. Rotor Figura 7. Estator y bobinas Figura 8. Conexiones de nuestro motor Casa inteligente y segura Estos motores suelen tener seis o cinco cables de salida, dependiendo de su conexión interna. El motor que utilizamos tiene cinco cables (figura 8). Este tipo de motores, se caracterizan por ser más simples de controlar. 2.7 Secuencia para el manejo de motores paso a paso Estos motores necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad, provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida. Todas las secuencias comienzan nuevamente por el paso 1, una vez alcanzado el paso final. Para poder lograr la inversión de la corriente, utilizaremos el circuito ULN2803, el cual es un arreglo de ocho transistores tipo Darlington capaces de manejar cargas de hasta 500mA, con el cual podremos controlar los dos motores necesarios. Las entradas de activación pueden ser directamente activadas por un microcontrolador. En nuestro caso, es el ATMega con la placa de Arduino. Esta es la secuencia más usada y la que generalmente se recomienda. Con ésta el motor avanza un paso por vez y debido a que siempre hay, al menos, dos bobinas activadas, se obtiene un alto torque de paso y de retención. Cámara de video IP Una cámara de video IP —también conocida como cámara de red— puede ser descrita como la combinación de una cámara y una computadora en una sola unidad, la cual captura y transmite imágenes en vivo a través de una red IP, habilitando a usuarios autorizados a ver, almacenar y administrar el video sobre una infraestructura de red estándar basada en el protocolo IP. Una cámara de red tiene su propia dirección IP, se conecta a la red y tiene interconstruidos una serie de aplicaciones, funciones y servicios. A diferencia de cualquier otro tipo de cámara, las cámaras de red no necesitan estar conectadas a una compu- III.PM etodología II. lanteamiento 26 tadora ni dependen de ella, porque son totalmente independientes y autoadministrables, lo cual incrementa aún más su funcionalidad. En resumen, podemos decir que todo lo necesario para tomar y transmitir imágenes está dentro de la cámara y lo único que se necesita afuera de ella es el medio para ver el video, que es una computadora con un explorador de internet, las cuales se pueden encontrar prácticamente en cualquier lugar del mundo. 2.8 Cámara AIRLINK AIC250W inalámbrica ɶɶ Soporta conectividad inalámbrica IEEE802.11g ɶɶ Visualiza video de movimiento total, a través de internet, con una resolución de 640 x 480 ɶɶ Soporta para configuración de la Web con protección a través de contraseña ɶɶ Funciones de captura de imágenes, grabación de video y notificación por correo electrónico ɶɶ Utiliza hasta 16 cámaras para el control completo de un área Figura 9. Cámara de video IP La SkyIPCam 250W, se conecta directamente con una red inalámbrica IEEE802.11g, sin la necesidad de utilizar una computadora. A través de la interfaz gráfica y configuración fácil de utilizar, podrá estar tranquilo dondequiera que esté. La SkyIPCam 250W funciona correctamente con la red DHCP de internet por Casa inteligente y segura cable o DLS y sólo se tiene que registrar en cualquier servicio de DNS dinámico en la Web. Además, incluye el software IPViewPro para la visualización de hasta 16 cámaras a la vez. III. Metodología 3.1 Control de luces y dispositivos eléctricos mediante un Arduino y un módem PSC05 de X10 E n esta parte del proyecto, se utiliza un Arduino, un módem PSC05, un cable de cuatro hilos con conector RJ11 y un módulo de lámpara LM465. 27 II. Planteamiento 28 Figura 10. Cable con conector RJ11 Cable telefónico Es un conector usado para enlazar redes de telefonía. Es de medidas reducidas y tiene cuatro contactos para soportar cuatro vías de dos cables. Es el conector más difundido globalmente para la conexión de aparatos telefónicos convencionales, donde se suelen utilizar generalmente sólo los dos pins centrales para una línea simple o par telefónico. Una vez sujeto al cable, resulta casi imposible desarmarlo sin provocar su inutilización. Figura 11. Módem PSC05 Esta interfaz de red eléctrica de dos vías proporciona un enlace a la red eléctrica mediante comandos de X10. Cuenta con un buffer de recepción, que le permite almacenar los mensajes recibidos a la espera de ser consultados por el producto OEM conectado. Figura 12. Módulo de lámpara LM465 Casa inteligente y segura 29 PSC05 Interfaz x10 Es una de las piezas clave del sistema de domótica X10. Actúa como receptor de +5V 4 3 2a la 1 que está señal X10, es decir, recibe una orden a través de la corriente eléctrica conectado y la ejecuta. A cada módulo, se le asigna un código consistente en una le10kΩ tra y un número. Tan sencillo como girar los mandos frontales a la posición deseada, lo cual quiere decir que cuando se activa un interruptor o un control remoto con un código, la lámpara que esté conectada a dicho módulo se encenderá. Se puede enviar pin de Datos - a pin digital de Arduino la orden de encenderse, apagarse, atenuar la señal o encender la lámpara muy lentacruceque por cero a pin digital de mente, al pin igual un -regulador deArduino luz normal, pero todo ello a distancia. 3.2 Procedimiento Realizar la correcta configuración para la conexión entre el cable con conector RJ11 y el Arduino. Del cable telefónico se separan los hilos, los cuales se conectan al Arduino con la siguiente configuración: Figura 13. El circuito impreso ɶɶ Negro: zero crossing 1 = pin 2 de Arduino ɶɶ Rojo: ground de Arduino III. Metodología 30 ɶɶ Verde: sin conexión ɶɶ Amarillo: resistencia de 10 kΩ, pin 3 de Arduino, 5 volts Figura 14. Arduino alambrado al módem PSC05 1234 Cuando se desea transmitir y recibir usando este dispositivo PSC05 de X10, debe tenerse en mente la siguiente configuración: ɶɶ Detección cruce cero ɶɶ Común (tierra) ɶɶ Recepción X10 ɶɶ Transmisión X10 Figura 15. Módem PSC05 de X10 El otro extremo del cable RJ11, va conectado al módem PSC05. Casa inteligente y segura 31 Figura 16. Conexión del cable telefónico al módem PSC05 Se procede a la conexión del Arduino con la PC, mediante un cable USB, para tener comunicación entre ellos y cargar el programa. Figura 17. Cargando el programa al Arduino III. Metodología 32 El siguiente código, se puede utilizar para el encendido y apagado de aparatos eléctricos: Tabla 1. Código embebido en Arduino para prender y apagar dispositivos //Encendido y apagado de lámpara y aparatos eléctricos #include <x10.h> #include <x10constants.h> // ************ Pins usados del ARDUINO ********************** // La consola conectada por USB usando los pins 0 y 1 // Transmite bits mediante al módem PSC05 usando los pins 2 y 3 #define zcPin 2 // zero crossing pin #define dataWPin 3 // pin de transmisión #define RPT_SEND 2 // número de veces que se reenvía un código X10 // Crear una nueva instancia de X10 X10 myHouse = X10(zcPin, dataWPin); Casa inteligente y segura 33 void setup() { // Establece la velocidad de transmisión-recepción para la consola Serial.begin(9600); // Configura el pin especificado como una entrada pinMode(zcPin, INPUT); // Configura el pin especificado como una salida pinMode(dataWPin, OUTPUT); // Se polariza la entrada con 5V (HIGH) digitalWrite(zcPin, HIGH); } void loop() { //Mensaje a la consola Serial.println("Prender dispositivo…"); // Envía datos al módem PSC5 conectado al Arduino myHouse.write(A,UNIT_1,RPT_SEND); myHouse.write(A, ON,RPT_SEND); //Detiene el programa un momento (en milisegundos) delay(3000); Serial.println ("Apagar dispositivo…"); // Envía datos al módem PSC05 conectado al Arduino myHouse.write(A,UNIT_1,RPT_SEND); myHouse.write(A, OFF,RPT_SEND); //Detiene programa de nuevo delay(3000); } El siguiente código, se puede utilizar para el control de lámparas: Tabla 2. Código embebido en Arduino para control de luces #include <x10.h> #include <x10constants.h> #define zcPin 2 #define dataWPin 3 #define RPT_SEND 2 // número de veces que se reenvía un código X10 // set up a new X10 instance: X10 myHouse = X10(zcPin, dataWPin); III. Metodología 34 void setup() { // Establece la velocidad de transmisión-recepción para la consola Serial.begin(9600); // Configura el pin especificado como una entrada pinMode(zcPin, INPUT); // Configura el pin especificado como una salida pinMode(dataWPin, OUTPUT); // Se polariza la entrada con 5V (HIGH) digitalWrite(zcPin, HIGH); // Envía un comando "Lights ON" 2 veces myHouse.write(A,UNIT_1, RPT_SEND); myHouse.write(A, ON, RPT_SEND); } void loop() { // Mensaje a la consola Serial.println("Encendiendo luces:"); // Enviando un comando "lights BRIGHT" 19 veces // Le toma 19 BRIGHT or DIM comandos para // una lámpara incandescente encender. myHouse.write(A,UNIT_1, RPT_SEND); myHouse.write(A, BRIGHT,19); delay(500); Serial.println("Lights down:"); // Enviar el comando "lights DIM" 19 veces: myHouse.write(A,UNIT_1, RPT_SEND); myHouse.write(A, DIM,19); delay(500); } En la figura 18, se puede observar el efecto de enviar los códigos X10 al módem PSC05 desde el Arduino. Figura 18. La lámpara comienza a incrementar su intensidad Casa inteligente y segura 35 3.3 Envío de correo electrónico cuando un sensor de movimiento se activa En este proyecto se utilizan un Arduino Mega y otro Duemilanove, un módulo Lantronix para Arduino, un cable de cuatro hilos con conector RJ11, un módem PSC05, un sensor inalámbrico de movimiento MS16A y un mini Transceiver TM751, los 3 últimos de X10. Figura 19. Arduino Mega y Duemilanove Figura 20. Módulo Lantronix para Arduino III. Metodología 36 El módulo Lantronix para Arduino, es un dispositivo que provee gran flexibilidad al agregar conectividad para internet a los Arduinos. Se puede insertar en el módulo, el modelo XPort de Lantronix para darle esta función. Se puede usar un XPort, un XPort Direct o un XPort Direct+. Estos dispositivos tienen una dirección MAC preasignada de fábrica y un cliente DHCP. Lo anterior indica que el proyecto que lo incorpora, puede conectarse a una red, sin que tenga que reconfigurarse. Todos los dispositivos XPort usan protocolos seriales para comunicarse y, por lo tanto, también para configurarse. Sólo puede tenerse una comunicación a la vez. Toda la familia de protocolos TCP/IP, se encuentran en el dispositivo, haciendo sumamente fácil de entablar comunicación con él. Para usarse sólo es necesario utilizar cuatro pins del Lantronix (y del Arduino). El uso del módulo Lantronix para Arduino, se puede utilizar solamente con el Arduino Duemilanove, ya que la redistribución de funciones en los pins del Mega lo hacen incompatible. Las bibliotecas de funciones Ethernet publicadas en el sitio web de Arduino, son completamente compatibles con este módulo de red. El módulo Lantronix utilizado tiene un XPort Direct+ instalado y se puede conectar a un microcontrolador (como el Arduino), usando comunicación de dos pins. Para hacer una conexión, simplemente mande un comando en la forma C127.0.0.1/80, donde C indica “conectar”, 127.0.0.1 es la dirección IP (ya que los XPort no soportan resolución DNS) del servidor web al que se desea conectar y /80 es el puerto de comunicación. El XPort, además de poderse comunicar, puede aceptar conexiones, pues cuenta con un servidor web interno que puede ejecutar applets de Java. Es conveniente indicar que esta aplicación no utiliza para nada la biblioteca de funciones Ethernet publicadas en el sitio web de Arduino. Para que el módulo Lantronix acepte conexiones mediante el puerto serial (Tunneling, véase la sección 2.2), es necesario configurarlo mediante una consola de hyperterminal o un programa de la compañía Lantronix conocido como DeviceInstaller. En la figura 21 se muestra la aplicación. Casa inteligente y segura 37 Figura 21. Configuración de Lantronix mediante DeviceInstaller 4.2 Una vez configurado el Lantronix XPort Direct+, se puede programar el Arduino para que haya comunicación tipo túnel entre el Arduino y el Lantronix. El siguiente código en C, es el código embebido en el Duemilanove para interactuar con el Mega y el Lantronix. III. Metodología Tabla 3. Código de Arduino para interactuar con Lantronix y Arduino Mega 39 41 D IV. Resultados urante el desarrollo de este proyecto, fueron algunos los resultados obtenidos, tales como el encendido de una lámpara como indicador visual de la activación de un estado de alarma. Fueron algunos otros eventos también como el encendido de la cámara IP, para enviar video en tiempo real cuando se activaron las condiciones dadas para ello. Sin embargo, uno de los resultados más concluyentes y significativos, pero no por ello más importante que los anteriores, fue el de poder enviar mediante correo electrónico avisos de eventos informando la intrusión al espacio sensado. En la figura 22 se muestra el correo electrónico enviado a las personas registradas para recibirlo, con los códigos que el módem PSC05 detectó de la red eléctrica. Figura 22. Correo electrónico recibido por interesados 41 D V. Conclusiones urante ocho meses, se trabajó con la idea de que un ingeniero en Sistemas Computacionales puede desarrollar nuevos sistemas integrados por equipo y programas computacionales, que le hagan más agradable la vida, sabiendo que la inmensa mayoría de todo aquello que es desarrollado por la humanidad debe de permitírselo. En nuestro caso, el haber trabajado con dispositivos como el Arduino, el XPort de Lantronix, el WIZnet, las tablillas shield para ambos, el dispositivo PSC05 de X10, la programación en lenguaje “C++” con varias bibliotecas de funciones que ha desarrollado la comunidad mundial y nuestro propio código embebido en dispositivos para controlarlos, ha sido una experiencia muy enriquecedora, en donde se ponen a prueba los conocimientos adquiridos en las diferentes materias de una currícula de Sistemas, así como aquellos que mediante la investigación documental y aplicada se adquieren. Este proyecto no se habría podido llevar a cabo, si por parte de todos los participantes no se hubiera contribuido con alguna aportación en dispositivos, tiempo, esfuerzo y dedicación. Finalmente, alcanzamos nuestras metas y pudimos desarrollar nuevos dispositivos a partir de unos ya existentes, y configurarlos con nuevas partes, alambrados y programación para que los obtenidos nos permitan adaptarlos a las necesidades del entorno, para hacer una CASA INTELIGENTE Y SEGURA. Este proyecto no termina, tal vez el día de mañana cambie de nombre, pero pretendemos seguir contribuyendo con dispositivos y programación, para que el mundo en el que vivimos sea más cómodo, inteligente, seguro y divertido. 43 43 Bibliografía Túnel Serial Serial to Ethernet Converters/Adapters http://www.perle.com/products/Serial-to-Ethernet.shtml http://www.gridconnect.com/net232.html http://www.lantronix.com/ Dispositivos X10 http://www.X10.com http://www.TheHomeAutomationStore.com http://en.wikipedia.org/wiki/X10_(industry_standard) http://www.x10pro.com/pro/pdf/technote.pdf http://www.scribd.com/doc/12843158/powerline-communication-using-x10-protocol http://www.8051projects.net/_X10_protocol Protocolo de transferencia de hipertexto http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http://www.webopedia.com/TERM/H/HTTP.html http://www.jmarshall.com/easy/http/ Traducción por Daniel Morales R. y J. Paz http://www.freesoft.org/CIE/Topics/102.htm Arduino http://www.arduino.cc http://www.arduino.cc/en/Main/Hardware http://arduino.cc/en/Reference/HomePage http://arduino.cc/en/Tutorial/HomePage http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl http://www.arduino.cc/playground/Main/SimilarBoards http://www.ladyada.net/make/eshield/ http://adafruit.com/index.php?main_page=index&cPath=17_21 Cámara de video IP http://www.airlink101.com/products/aic250w.php 45 Anexo 1 46 D Conexión entre módulos ado que el módulo PSC05, se encargará de recoger los códigos de la red eléctrica y serán leídos por un Arduino Mega, que los procesará mediante su programación interna, se muestra el diagrama de conexión: Figura 1. Diagrama de alambrado entre Arduino Mega y un módem PSC05 Casa inteligente y segura 47 Anexo 2 Controlador para motor paso a paso A2.1 Fuente de voltaje La fuente de voltaje que se utiliza en este proyecto es de 12V/300mA, lo necesario para el motor unipolar paso a paso. Los demás circuitos se alimentarán de 5V, por lo que se necesita un regulador de voltaje. El L7805 puede tener una entrada de hasta 35V y el voltaje de salida será de 5V, con el máximo de corriente de salida de 1A. Se colocó un capacitor en la entrada del regulador para poder mantener el voltaje estable y se colocó un LED para poder saber si el circuito se encuentra encendido. Para poder calcular la resistencia necesaria para el LED, se utiliza la Ley de Ohm. Para el LED, la corriente máxima de funcionamiento es de 20mA, y la calculamos de la siguiente manera: Sustituyendo: V = 1 * R (1) R= vR = v 1 1 Calculando: R = (2) 5v = 250 ΩR = 5v = 250 ΩR 20 mA 20 mA Por no ser un valor comercial, se coloca una resistencia de 220 ohms. Figura 1. LM7805, regulador de voltaje de 5V, 1A Anexo (3) 48 A2.2 Convertidor de serial a paralelo Esta es la primera etapa en el circuito de la tablilla del control de los motores. El convertidor de serial a paralelo, se utilizará para poder mandar la información del microprocesador en paralelo al controlador del motor, debido que la información que se transmite del microprocesador en el pin de dato es en serie. Este circuito se alimenta de 5V en el pin 16 (VCC) con la respectiva tierra en el pin 8. Los pins que se van a utilizar como salida son: 1-7 y 15, donde la información sale en paralelo. El pin 14 es el de entrada de datos. En el pin 12, al momento de mantenerse en 0V, el buffer del circuito se llena de información y el orden que se obtiene es del valor menos significativo al más significativo. Al momento de poner un pulso positivo (5V), el buffer se descarga en paralelo y el pin 11 es el que da el ritmo en el cual el buffer se llenará (8 bits). Se utiliza un capacitor entre el pin 12 hacia tierra, para poder mantener el pulso bajo y limpio. Figura 2. 74HC595 A2.3 Circuito controlador El transistor Darlington es un dispositivo semiconductor, que combina dos transistores bipolares para obtener una alta ganancia de corriente. Casa inteligente y segura Figura 3. Estructura interna de un transistor tipo Darlington Dentro del ULN2803, se encuentran ocho transistores NPN Darlington. Es un circuito integrado ideal para ser empleado como interfaz entre las salidas de un microprocesador o cualquier integrante de las familias TTL o CMOS y dispositivos que necesiten una corriente más elevada para funcionar. En este caso, los motores utilizados para el movimiento de la cámara. Todas sus salidas son a colector abierto y dispone de un diodo para evitar las corrientes inversas. Figura 4. Conexiones del ULN2803 y los motores unipolares paso a paso A2.4 Construcción de tablilla controladora A2.4.1 Diseño eléctrico En el circuito que se muestra a continuación, se encuentran todas las etapas descritas anteriormente: Anexo 49