Informe Domótica

Embed Size (px)

DESCRIPTION

Proyecto Domótica mediante uso de Arduino

Citation preview

INTRODUCCIN

En este trabajo analizamos la comunicacin inalmbrica, especficamente Wi-Fi a travs de un microcontrolador , la idea es desarrollar un proyecto de control inalmbrico haciendo uso de la red de Wlan.Evaluaremos alternativas en cuanto a materiales a usarse y el gasto econmico que tienen cada una de estas opciones .Usaremos en el trabajo el microcontralador Arduino Uno placa la cual es conocida en la actualidad por ser utilizada para realizar aplicaciones de ensayo especialmente para estudiantes la cual consta con entradas y salidas anlogas y digitales asi como tambin una amplia gama de mdulos compatibles para realizar un trabajo completo. En este proyecto implementaremos un programa de control a travs de la red utilizando como interface una simple pagina Web desde la cual podremos controlar el encendido y apagado de luces.

DESARROLLO

Al iniciar el trabajo nos encontramos con dos grandes disyuntivas las cuales eran utilizar el modulo Wi-Fi para Arduino el cual nos permite transmitir datos de manera inalmbrico o usar un modulo Ethernet el cual requerira de mas equipos para establecer una comunicacin inalmbrica . El factor fundamental para tomar la decisin fue el elevado precio que debamos contemplar si nos inclinbamos por los modulos Wi-Fi y la poca informacin que se manejaba de estos componentes .

Dejamos ac informacin econmica de precios los cuales fueron extrados desde la pgina Olimex Chile al dia de 23 de Junio de 2014 :

Opcin 1: -Mdulo Wi-Fi / WIZ610wi-Arduino WiFi Shield (WIZ610)- Arduino Uno - R3- Transformador AC/DC 9V 650mA Regulado- Cable USB A/Macho B/Macho

Opcin 2:

-Arduino Uno - R3-Transformador AC/DC 9V 650mA Regulado-3 Cable USB A/Macho B/Macho-Arduino Ethernet Shield R3-CAT 6 Cable - 3ft (0.91mts)

Arduino Uno

El Arduino Uno es una placa electrnica basada en elmicroprocesador Atmega328. Cuenta con 14 pines digitales de entrada / salida (de los cuales 6 pueden ser utilizados como salidas PWM), 6 entradas analgicas, un resonador cermico de un 16MHz, una conexin USB, un conector de alimentacin, un header ICSP, y un botn de reinicio.Contiene todo lo necesario para apoyar el microcontrolador; basta con conectarlo a un ordenador con un cable USB, o alimentarla con un adaptador o la batera para empezar de CA a CC.El Uno se diferencia de todas las placas anteriores en que no utiliza el chip controlador de USB a serial FTDI.En lugar de ello, se cuenta con elAtmega16U2 como convertidor USB a serial.

Resumen

MicrocontroladoresATmega328

Tensin de funcionamiento5V

Voltaje de entrada (recomendado)7-12V

Voltaje de entrada (lmites)6-20V

Digital I / O Pins14 (de los cuales 6 proporcionan PWM)

Pines de entrada analgica6

Corriente continua para las E / S Pin40 mA

Corriente de la CC para Pin 3.3V50 mA

Memoria Flash32 KB (ATmega328) de los cuales 0,5 KB utilizado por el gestor de arranque

SRAM2 KB (ATmega328)

EEPROM1 KB (ATmega328)

Velocidad del reloj16MHz

MemoriaElATmega328tiene 32 KB (con 0,5 KB utilizado por el gestor de arranque).Tambin dispone de 2 KB de SRAM y 1 KB de EEPROM (que puede ser ledo y escrito con lalibrera EEPROM).Entradas y Salidas

Cada uno de los 14 pines digitales en el Uno se puede utilizar como una entrada o salida, utilizando las funciones pinMode (),digitalWrite (), y() digitalRead.Operan a 5 voltios.Cada pin puede proporcionar o recibir un mximo de 40 mA y tiene una resistencia de pull-up (desconectado por defecto) de 20-50 kOhms.Adems, algunos pines han especializado funciones:

De serie: 0 (RX) y 1 (TX).Se utiliza para recibir (RX) y de transmisin (TX) TTL datos en serie.Estos pines estn conectados a los pines correspondientes delATmega8U2USB-to-TTL de chips de serie. Interrupciones externas:. 2 y 3Estos pines pueden ser configurados para activar una interrupcin en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. PWM: 3, 5, 6, 9, 10, y 11proporcionan PWM de 8 bits con la funcin analogWrite (). SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)Estos pines soportan comunicacin SPI utilizando labiblioteca de SPI. LED:. 13Hay un built-in LED conectado al pin digital 13 Cuando el pin es de alto valor, el LED est encendido, cuando el pasador es bajo, es apagado..El Uno tiene 6 entradas analgicas, etiquetados A0 a A5, cada uno de los cuales proporcionan 10 bits de resolucin (es decir, 1.024 valores diferentes).Por defecto se miden desde el suelo a 5 voltios, aunque es posible cambiar el extremo superior de su rango con el pin AREF y lafuncin analogReference().Adems, algunos pernos han especializado funcionalidad: TWI: A4 o A5 pin SDA y SCL o pin.Apoyar la comunicacin TWI utilizando lalibrera Wire.Hay un par de otras patas de la placa: AREF.Voltaje de referencia para las entradas analgicas.Se utiliza conanalogReference(). Restablecer.Lleve esta lnea BAJO para reiniciar el microcontrolador.Normalmente se utiliza para agregar un botn de reinicio para escudos que bloquean el uno en el tablero.

ComunicacinEl Arduino Uno tiene una serie de instalaciones para la comunicacin con un ordenador, otro Arduino, u otros microcontroladores.ElATmega328ofrece UART TTL (5V) de comunicacin en serie, que est disponible en los pines digitales 0 (RX) y 1 (TX).UnATmega16U2en los canales de mesa esta comunicacin serie a travs de USB y aparece como un puerto Com virtual para el software en el ordenador.El firmware '16U2 utiliza los controladores COM USB estndar, y no se necesita ningn controlador externo.El software de Arduino incluye un monitor de serie que permite que los datos simples de texto que se envan desde y hacia la placa Arduino.Las RX y TXLEDen el tablero parpadearn cuando se estn transmitiendo datos a travs del chip de USB a serie y conexin USB al ordenador (pero no para la comunicacin en serie en los pines 0 y 1).

Unabiblioteca SoftwareSerialpermite la comunicacin en serie en cualquiera de los pines digitales de la ONU.ElATmega328tambin es compatible conI2C(TWI) y la comunicacin SPI.El software de Arduino incluye una biblioteca de alambre para simplificar el uso de laI2Cbus;ver ladocumentacinpara ms detalles.Para la comunicacin SPI, utilice labiblioteca de SPI.

Arduino Ethernet Shield

La Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Est basada en el chip ethernetWiznet W5100(datasheet). El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultneas. Usa lalibrera Ethernetpara escribir programas que se conecten a internet usando la shield.La ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genricas.

La shield provee un conectore ethernet estndarRJ45El botn de reset en la shield resetea ambos, el W5100 y la placa Arduino.La shield contiene un nmero deLEDspara informacin: PWR: indica que la placa y la shield estn alimentadas LINK: indica la presencia de un enlace de red y parpadea cuando la shield enva o recibe datos FULLD: indica que la conexin de red es full duplex 100M: indica la presencia de una conexin de red de 100 Mb/s (de forma opuesta a una de 10Mb/s) RX: parpadea cuando la shield recibe datos TX: parpadea cuando la shield enva datos COLL: parpadea cuando se detectan colisiones en la redEl jumper soldado marcado como "INT" puede ser conectado para permitir a la placa Arduino recibir notificaciones de eventos por interrupcin desde el W5100, pero esto no est soportado por la librera Ethernet. El jumper conecta el pin INT del W5100 al pin digital 2 de Arduino.El slot SD en la shield no est soportado por el software Arduino.

El dispositivo ruteador empleado para este proyecto pertenece a la empresa TP-LINK y a continuacin se muestran sus caractersticas y modelo

Prestaciones:Velocidad de transmisin inalmbrica de datos a 150 Mbps ideal para la transmisin de vdeo, juegos en lnea y llamadas por InternetEncriptacin inalmbrica de seguridad slo al presionar el botn QSSControl de ancho de banda basado en IP permite a los administradores determinar la cantidad de ancho de banda asignado a cada PCPuente WDS inalmbrico ofrece una interconexin de ampliar su red inalmbricaCaractersticas: Interface: 4 puertos LAN de 10/100Mbps1 puerto WAN 10/100Mbps Botones: Botn de configuracin rpida de seguridadBotn de reinicio Alimentacin:9VDC / 0.6A Estandar: IEEE 802.11n*, IEEE 802.11g, IEEE 802.11b Antena: Fija, omnidireccional de 5dBi Frecuencia:2.4-2.4835GHz Seal:11n: Hasta 150Mbps (dinmico)11g: hasta 54Mbps (dinmico)11b: hasta 11Mbps (dinmico) EIRP: Ejemplos => Ethernet => Webserver

Donde encontraremos lo siguiente:

Donde el comando "IPAddress" indica la direccin IP con la que cuenta el dispositivo, esta es la direccin que debemos modificar segn la configuracin de nuestro Router. En nuestro caso, la direccin a utilizar ser "192.168.0.17".Una vez que logramos la comunicacin con el controlador, procedemos a realizar las modificaciones necesarias al programa de ejemplo y as lograr el control inalmbrico de nuestras luminarias.Cuando nos comunicamos con la tarjeta Arduino mediante la direccin IP, muestra una pgina en formato HTML, es por esto que despus de una rpida bsqueda en foros de internet, encontramos una explicacin de cmo lograr mostrar botones en esta pgina y as poder tener el control de las salidas en la tarjeta y como integrarlas a nuestro cdigo del programa, basado en el formato, tipo, forma y ubicacin que se le quera dar al botn.Para nuestra aplicacin de control inalmbrica de luminarias, decidimos trabajar con 3 salidas (7, 8, 9) del microcontrolador, a las cuales conectamos unos leds y de esta manera poder realizar la simulacin del funcionamiento real de nuestro proyecto y junto estos, unas resistencias de 100 ohms, las cuales ayudan a limitar la corriente de consumo del led y como mtodo de proteccin para las salidas del controlador.

A continuacin mostraremos el cdigo del programa sobre el cual logramos realizar el proyecto de control inalmbrico de luminarias. Cabe destacar que Arduino tiene un lenguaje de programacin bastante avanzado y muy amigable para poder trabajar con el basado en C/C++, lo que nos facilito bastante la tarea de programacin, ya que contbamos con conocimientos previos sobre este lenguajeCDIGO DEL PROGRAMA//Sketch Arduino Ethernet ON/OFF

#include #include //Declaracin de la direcciones MAC e IP. Tambin del puerto 80 byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC IPAddress ip(192,168,0,17); //asignacion IP para la shield EthernetServer servidor(80); int PIN_LED7=7; //salidas con las que se trabajaraint PIN_LED8=8; //salidas con las que se trabajaraint PIN_LED9=9; //salidas con las que se trabajaraString readString=String(30); String estado_L7=String(3);//lectura estado led 7 String estado_L8=String(3);//lectura estado led 9 String estado_L9=String(3);void setup() {Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas servidor.begin(); pinMode(PIN_LED7,OUTPUT); //asignacion de funcionamiento del puertodigitalWrite(PIN_LED7,LOW); // condicion inicial de la salidaestado_L8="OFF";//asigancion led 7pinMode(PIN_LED8,OUTPUT);digitalWrite(PIN_LED8,LOW);estado_L7="OFF";//asigancion led 9pinMode(PIN_LED9,OUTPUT);digitalWrite(PIN_LED9,LOW);estado_L9="OFF";//fin asignacion led 9

}void loop() {EthernetClient cliente= servidor.available(); if(cliente) {boolean lineaenblanco=true; while(cliente.connected()) {if(cliente.available()) {char c=cliente.read(); if(readString.length()