Tecnicas digitales ii proyecto ultrahouse 3000 v1

19
- 1 - TECNICAS DIGITALES II Proyecto de aplicación ULTRA HOUSE 3000 Profesor Titular: Ing. Daniel Remondegui Alumnos: FARIAS, Andrés Legajo: 14192 NOELLO, Walter Legajo: 4658 2014

Transcript of Tecnicas digitales ii proyecto ultrahouse 3000 v1

Page 1: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 1 -

TECNICAS DIGITALES II

Proyecto de aplicación

ULTRA HOUSE 3000

Profesor Titular: Ing. Daniel Remondegui

Alumnos:

FARIAS, Andrés Legajo: 14192

NOELLO, Walter Legajo: 4658

2014

Page 2: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 2 -

Contenido Introducción: ........................................................................................................................................................... 3

Características del Proyecto: .................................................................................................................................. 3

Objetivo:.............................................................................................................................................................. 3

Alcance: ............................................................................................................................................................... 4

Justificación del Proyecto: ...................................................................................................................................... 4

Descripción del Proyecto: ....................................................................................................................................... 4

Materiales que utilizaremos: .............................................................................................................................. 5

Placa de desarrollo ARDUINO MEGA 2560 (Micro ATMEL 2560) ................................................................... 5

Módulo ARDUINO ETHERNET SHIELD ............................................................................................................. 6

Módulos de comunicación inalámbrica .......................................................................................................... 6

Esquema de Interconexión: .................................................................................................................................... 7

Cronograma del Proyecto: ...................................................................................................................................... 8

Desarrollo del Proyecto: ......................................................................................................................................... 8

Etapas principales: .............................................................................................................................................. 8

Diagrama de flujo del Proyecto:.......................................................................................................................... 9

Definición y programación de las entradas/salidas: ......................................................................................... 10

Programa ON/OFF 2 LED´s: ........................................................................................................................... 10

Manejo de entradas/salidas vía Web ................................................................................................................ 11

Programa control de entradas/salidas vía Web: .......................................................................................... 11

Foto de la pantalla del programa control de entradas/salidas vía Web: ...................................................... 14

Diseño de los circuitos de TX y RX: .................................................................................................................... 15

Configuración codificador: ............................................................................................................................ 15

Configuración decodificador: ........................................................................................................................ 15

Circuito básico de salida Opto Triac - Triac: .................................................................................................. 16

Diseño de las placa de TX:............................................................................................................................. 16

Diseño de las placa de RX con salida Opto Triac – Triac: .............................................................................. 16

Fotos: ................................................................................................................................................................ 17

Placa de TX: ................................................................................................................................................... 17

Placa de RX con salida Opto Triac – Triac: .................................................................................................... 17

Placa de Salidas Cableadas: .......................................................................................................................... 17

Sistema integrado: ........................................................................................................................................ 18

Objetivos alcanzados: ............................................................................................................................................ 18

Objetivos no alcanzados: ....................................................................................................................................... 19

Conclusiones: ......................................................................................................................................................... 19

Page 3: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 3 -

Introducción:

La ingeniería es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto físicas como teóricas) para la resolución de problemas que afectan la actividad cotidiana de la sociedad.

Para ella, el estudio, conocimiento, manejo y dominio de las matemáticas, la física y otras ciencias es aplicado profesionalmente tanto para el desarrollo de tecnologías, como para el manejo eficiente de recursos y/o fuerzas de la naturaleza en beneficio de la sociedad. La ingeniería es la actividad de transformar el conocimiento en algo práctico.

Otra característica que define a la ingeniería es la aplicación de los conocimientos científicos a la invención o perfeccionamiento de nuevas técnicas. Esta aplicación se caracteriza por usar el ingenio principalmente de una manera más pragmática y ágil que el método científico, puesto que la ingeniería, como actividad, está limitada al tiempo y recursos dados por el entorno en que ella se desenvuelve.

En nuestro caso el problema a resolver es como controlar de manera remota el encendido y apagado de equipos dentro de un recinto al que, debido a la distancia, no tenemos acceso físico momentáneamente.

Características del Proyecto:

Objetivo:

Tener control sobre todos los artefactos eléctricos y electrónicos que se encuentran dentro de nuestra casa de forma remota, tanto desde un navegador web de un computadora personal, como una Tablet o Smartphone.

Con el proyecto implementado tendremos la posibilidad de apagar artefactos para economizar energía, programar el sistema para que actúe en forma autónoma encendiendo calefactores o A/A dependiendo de la temperatura de la sala, hacer un monitoreo remoto mediante una cámara web y tomar decisiones a partir de lo que vemos, integrar el sistema de alarmas a nuestro sistema ULTRA HOUSE 3000, de manera que nos avise en caso de un evento que hayamos programado previamente.

Page 4: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 4 -

Alcance:

En ésta primer etapa podremos controlar vía web un pull de 4 dispositivos independientes, dos de ellos estarán conectados a la placa controladora mediante un cableado que va desde las entradas/salidas de la placa controladora a los mismos.

Los otros dos dispositivos los conectaremos en forma inalámbrica para dar una mayor flexibilidad al sistema, facilitando la interconexión de electrodomésticos que por algún motivo no podemos alcanzar mediante el cableado físico.

Justificación del Proyecto:

En el mundo actual, en donde los recursos energéticos son cada vez más escasos debido a la superpoblación de artefactos eléctricos y electrónicos que consumen gran cantidad de la energía que producimos resulta primordial encontrar diversas soluciones que nos permitan economizar energía.

Por otro lado hay situaciones en las que necesitamos conocer las condiciones en que se encuentra nuestra casa en momentos que no nos encontramos en ella, ya sean las condiciones de temperatura, humedad, estados del sistema de alarma o simplemente poder observar y tomar decisiones de manera remota desde cualquier parte de mundo, incluso mediante la comodidad de nuestro Smartphone.

Descripción del Proyecto:

Para la realización del proyecto utilizaremos una placa de desarrollo Arduino Mega 2560, que cuenta con un microcontrolador ATmega2560. Mediante la programación del mismo podremos controlar los estados de una serie de pines de entrada/salida.

Para realizar el control vía web adicionaremos al sistema un placa Arduino Shield, que mediante una programación previa nos permitirá crear un servidor web al que accederemos para controlar la activación y desactivación de las entradas/salidas.

Por otro lado debemos crear el hardware necesario para permitir que la interconexión de alguno de los dispositivos con la placa controladora sea inalámbrica. Para ello diseñaremos e implementaremos una placa transmisora, que estará conectada directamente a las entradas/salidas de la placa controladora. Tendrá la tarea de retransmitir la información que reciba de la placa al dispositivo que queremos controlar y viceversa.

Para que funcione correctamente crearemos tantas placas de recepción como dispositivos tengamos intención de controlar.

Page 5: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 5 -

Materiales que utilizaremos:

Placa de desarrollo ARDUINO MEGA 2560 (Micro ATMEL 2560)

La placa de desarrollo Arduino Mega 2560 está basada en un microcontrolador marca Atmel modelo ATmega 2560. El mismo cuenta con 54 puertos de entrada/salida digitales, de los cuales 15 pueden ser utilizados como salidas PWM, 16 entradas analógicas, 4 UARTs (puertos serie por hardware), un cristal oscilador de 16 MHz, una conexión USB, un conector de alimentación, un conector ICSP y un botón de reset.

Resumen de características:

Microcontroller ATmega2560

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 54 (of which 15 provide PWM output)

Analog Input Pins 16

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 256 KB of which 8 KB used by bootloader

SRAM 8 KB

EEPROM 4 KB

Clock Speed 16 MHz

Page 6: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 6 -

Módulo ARDUINO ETHERNET SHIELD

El módulo Arduino Ethernet Shield permite conectar a internet a una placa Arduino. Está basado en un chip marca WIZnet modelo iEthernet W5100. Esta provee la configuración IP para los protocolos TCP y UDP. Soporta hasta cuatro conexiones simultáneas.

Para programar el módulo es necesario utilizar las librerías Ethernet de Arduino.

El módulo cuenta con un conector estándar RJ-45, con la posibilidad de utilizar la función de Power Over Ethernet, para alimentar dispositivos mediante la red LAN.

Posee una ranura MicroSD en la que podemos incluir una memoria de este tipo para almacenar datos de servicio sobre la red interna.

Módulos de comunicación inalámbrica

Operan dentro de un espectro en frecuencia de 2 a 20KHz transmitiendo señales digitales.

Page 7: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 7 -

Sensores

Dispositivos

Cableados

Dispositivo

Inalámbrico

Placa TX

Placa RX (1)

Dispositivo

Inalámbrico

Placa RX (2)

Esquema de Interconexión:

Page 8: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 8 -

Cronograma del Proyecto:

Junio 7, programación de micro Atmel para controlar 4 salidas desde un entorno web.

Junio 14, diseño de circuito para los módulos de salidas RF

Junio 21, interconexión del micro con periféricos electrónicos.

Junio 28, presentación del proyecto.

Desarrollo del Proyecto:

Como buena práctica de desarrollo fraccionamos el proyecto en etapas claramente definidas que trabajaremos de manera independiente y en forma secuencial. Por lo dicho trabajaremos en la primer etapa hasta obtener un correcto funcionamiento, luego comenzaremos con la segunda asegurando la integración con la primera y así sucesivamente.

Etapas principales:

1. Definición y programación de las entradas/salidas en la placa ARDUINO MEGA.

2. Creación del servidor de datos en el módulo ARDUINO Ethernet Shield.

3. Programación del control de entradas/salidas vía Web.

4. Diseño y prueba de los módulos inalámbricos de comunicación.

5. Interconexión del módulo de TX con la placa ARDUINO MEGA.

6. Interconexión del módulo de RX con Los dispositivos a controlar.

7. Prueba del sistema.

Más allá de tener definidas las principales etapas del proyecto que seguimos en el caso que todo funcione de la manera esperada, debimos prever que pasos seguir en el caso que se nos presentara algún inconveniente en el trascurso del mismo.

Por tal motivo desarrollamos un diagrama de flujo que contempla todas las situaciones que senos pudieran presentar, detallando el proceso de manera end to end.

Page 9: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 9 -

Diagrama de flujo del Proyecto:

Page 10: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 10 -

Definición y programación de las entradas/salidas:

Comenzamos programando el encendido y apagado de dos LED´s, simulando los dispositivos que queremos controlar, mediante la placa ARDUINO MEGA.

Programa ON/OFF 2 LED´s:

const int LED_Rojo=13; const int LED_Verde=12; int Byte_entrada=0; void setup()

Serial.begin(9600);//Inicia el puerto serie pinMode(LED_Rojo,OUTPUT); pinMode(LED_Verde, OUTPUT); digitalWrite(LED_Rojo,LOW); digitalWrite(LED_Verde,LOW);

void loop()

if(Serial.available()>0)//Puerto Serie listo?

Byte_entrada=Serial.read();//Leemos el puerto

switch (Byte_entrada)

case 0:digitalWrite(LED_Rojo,LOW); break; case 1:digitalWrite(LED_Rojo,HIGH); break; case 2:digitalWrite(LED_Verde,LOW); break; case 3:digitalWrite(LED_Verde,HIGH); break;

Page 11: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 11 -

Una vez que comprobamos el correcto funcionamiento de las entradas/salidas pasamos montar el servidor y programar el manejo de entradas/salidas vía Web. No debemos olvidar incluir las librerías SPI y Ethernet.

Manejo de entradas/salidas vía Web

Programa control de entradas/salidas vía Web:

#include <SPI.h> #include <Ethernet.h> //Declaración de la direcciones MAC e IP. También del puerto 80 byte mac[] = 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; byte ip[] = 192, 168, 1, 177 ; EthernetServer server(80); int PIN_LED_A1=6, PIN_LED_A2=7,PIN_LED1_2=8, PIN_LED3=11, PIN_LED4=12; String readString=String(30); String state1=String(3); String state2=String(3); String state3=String(3); String state4=String(3); void setup() Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas server.begin(); pinMode(PIN_LED_A1,OUTPUT); pinMode(PIN_LED_A2,OUTPUT); pinMode(PIN_LED1_2,OUTPUT); //pinMode(PIN_LED2_2,OUTPUT); pinMode(PIN_LED3,OUTPUT); pinMode(PIN_LED4,OUTPUT); //digitalWrite(PIN_LED,HIGH); state1=state2=state3=state4="OFF"; void loop() EthernetClient cliente= server.available(); if(cliente) boolean lineaenblanco=true; while(cliente.connected())//Cliente conectado if(cliente.available()) char c=cliente.read(); if(readString.length()<30)//Leemos petición HTTP caracter a caracter

Page 12: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 12 -

readString.concat(c); //Almacenar los caracteres en la variable readString if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado int LED = readString.indexOf("LED="); if(readString.substring(LED,LED+6)=="LED=1T") digitalWrite(PIN_LED_A1,LOW); //DIREECIONO EL LED 1 delay (200); digitalWrite(PIN_LED1_2,HIGH); //ENVIO EL DATO PARA ENCENDER EL LED SEGUN LA DIREECION delay (200); state1="ON"; digitalWrite(PIN_LED_A1,HIGH);//saco la direccion del led 1 digitalWrite(PIN_LED1_2,LOW); //saco el dato if (readString.substring(LED,LED+6)=="LED=1F") digitalWrite(PIN_LED_A1,LOW);//ENVIO EL DATO PARA ENCENDER EL LED SEGUN LA DIREECION 1 delay (200); digitalWrite(PIN_LED1_2,LOW);//ENVIO EL DATO PARA APAGAR EL LED SEGUN LA DIREECION delay (200); state1="OFF"; digitalWrite(PIN_LED_A1,HIGH);//saco la direccion del led 1 if (readString.substring(LED,LED+6)=="LED=2F") digitalWrite(PIN_LED_A2,LOW);//ENVIO EL DATO PARA ENCENDER EL LED SEGUN LA DIREECION 2 delay (200); digitalWrite(PIN_LED1_2,LOW);//ENVIO EL DATO PARA APAGAR EL LED SEGUN LA DIREECION state2="OFF"; delay (200); digitalWrite(PIN_LED_A2,HIGH);//saco la direccion del led 2 if (readString.substring(LED,LED+6)=="LED=2T") digitalWrite(PIN_LED_A2,LOW); delay (200); digitalWrite(PIN_LED1_2,HIGH); delay (200); state2="ON"; digitalWrite(PIN_LED_A2,HIGH); digitalWrite(PIN_LED1_2,LOW); if(readString.substring(LED,LED+6)=="LED=3T") digitalWrite(PIN_LED3,HIGH); state3="ON"; if (readString.substring(LED,LED+6)=="LED=3F")

Page 13: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 13 -

digitalWrite(PIN_LED3,LOW); state3="OFF"; if(readString.substring(LED,LED+6)=="LED=4T") digitalWrite(PIN_LED4,HIGH); state4="ON"; if (readString.substring(LED,LED+6)=="LED=4F") digitalWrite(PIN_LED4,LOW); state4="OFF"; //Cabecera HTTP estándar cliente.println("HTTP/1.1 200 OK"); cliente.println("Content-Type: text/html"); cliente.println(); //Página Web en HTML cliente.println("<html>"); cliente.println("<head>"); cliente.print("<br>"); cliente.println("<title>ULTRA HOUSE 3000</title>"); cliente.println("<title>Digitales II -2014</title>"); cliente.println("</head>"); cliente.println("<body width=100% height=100%>"); cliente.println("<center>"); cliente.println("<h1>ULTRA HOUSE 3000</h1>"); cliente.println("<h2>Digitales II -2014</h2>"); cliente.print("<br><hr>"); cliente.println("<input type=submit value=ACTIVAR style=width:200px;height:65px onClick=location.href='./?LED=1T\'>"); cliente.println("<input type=submit value=DESACTIVAR style=width:200px;height:65px onClick=location.href='./?LED=1F\'>"); cliente.print(" ESTADO : "); cliente.print(state1); cliente.print("<br><hr>"); cliente.println("<input type=submit value=ACTIVAR style=width:200px;height:65px onClick=location.href='./?LED=2T\'>"); cliente.println("<input type=submit value=DESACTIVAR style=width:200px;height:65px onClick=location.href='./?LED=2F\'>"); cliente.print(" ESTADO: "); cliente.print(state2); cliente.print("<br><hr>"); cliente.println("<input type=submit value=ACTIVAR style=width:200px;height:70px onClick=location.href='./?LED=3T\'>"); cliente.println("<input type=submit value=DESACTIVAR style=width:200px;height:70px onClick=location.href='./?LED=3F\'>"); cliente.print(" ESTADO: "); cliente.print(state3);

Page 14: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 14 -

cliente.print("<br><hr>"); cliente.println("<input type=submit value=ACTIVAR style=width:200px;height:70px onClick=location.href='./?LED=4T\'>"); cliente.println("<input type=submit value=DESACTIVAR style=width:200px;height:70px onClick=location.href='./?LED=4F\'>"); cliente.print(" ESTADO : "); cliente.print(state4); cliente.print("<br><hr><br>"); cliente.println("</center>"); cliente.println("</body>"); cliente.println("</html>"); cliente.stop();//Cierro conexión con el cliente readString="";

Foto de la pantalla del programa control de entradas/salidas vía Web:

Page 15: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 15 -

Diseño de los circuitos de TX y RX:

Para la realización de los circuitos de TX y RX además de los módulos de TX y RX propiamente dichos utilizamos un codificador y tantos decodificadores como dispositivos tengamos intención de controlar de manera inalámbrica. El diseño se basa en los integrados HT12E (codificador) y HT12D (decodificador), que permiten enviar hasta 4 bits de datos y 8 de dirección (por lo que sería posible transmitir a hasta 256 dispositivos en la misma frecuencia)

Transmisor (codificador): Receptor (decodificador):

Configuración codificador: Patas 1 a 8: configuran la dirección (igual en el TX y RX para lograr comunicación). Patas 10 a 13: ingreso de datos que se desean enviar. Pata 14: control de envío (en estado bajo transmite) Patas 15 y 16: conectar a una R de 1 MΩ para generar la señal de clock interna. Pata 17: salida de datos. Debe ser conectada al módulo de TX. Configuración decodificador: Patas 1 a 8: configuran la dirección (igual en el TX y RX para lograr comunicación). Patas 10 a 13: salida de datos recibidos. (a LEDs o cargas con I < 5mA). Pata 14: conectada a la salida del módulo de recepción de RF. Patas 15 y 16: conectar a una R de 47 KΩ para generar la señal de clock interna. Pata 17: Indica si la recepción fue correcta. Como la salida del decodificador sólo puede manejar cargas que consuman menos de 5mA y nosotros queremos controlar equipos de mayor consumo agregaremos un circuito a las salidas que estará compuesto por un par Opto Triac-Triac, de ésta manera además de permitir manejar equipos de mayor consumo lograremos aislar el circuito de control del circuito de potencia.

Page 16: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 16 -

Circuito básico de salida Opto Triac - Triac:

Diseño de las placa de TX:

Diseño de las placa de RX con salida Opto Triac – Triac:

Page 17: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 17 -

Fotos:

Placa de TX:

Placa de RX con salida Opto Triac – Triac:

Placa de Salidas Cableadas:

Page 18: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 18 -

Sistema integrado:

Objetivos alcanzados:

Tener control sobre artefactos eléctricos y electrónicos que se encuentran dentro de nuestra casa de forma remota, tanto desde un navegador web de un computadora personal, como desde una Tablet o Smartphone.

Que el sistema opere de forma autónoma evaluando el estado de sensores externos y activando una salida en consecuencia.

Como consecuencia aprendimos a programar en una de las plataformas de hardware libre más populares del momento como es Arduino. Sin dejar de lado que dicho plataforma es sólo una integración estandarizada de un microcontrolador con entradas y salidas fácilmente accesibles, por lo que es fácilmente trasladable a cualquier microcontrolador de similares características.

Por otro lado obtuvimos conocimientos acerca de la programación HTML para lograr el diseño de la página web desde donde controlamos nuestros dispositivos.

Además aprendimos a desarrollar hardware propio a partir de los conocimientos que fuimos adquiriendo a lo largo de la carrera. Un ejemplo de esto es el uso de un codificador en la etapa transmisora con el fin de evitar la utilización de múltiples transmisores y abaratar costos. También se puede apreciar en el uso de los decodificadores de los receptores y por último en la etapa de salida, que decidimos usar un Opto Triac para aislar el circuito de control del de potencia y un Triac para lograr manejar equipos con mayores consumos.

Page 19: Tecnicas digitales ii proyecto ultrahouse 3000 v1

- 19 -

Objetivos no alcanzados:

No logramos realizar el monitoreo remoto vía cámara web.

El primer inconveniente que nos encontramos fue conseguir el puente H sobre el que montaríamos la webcam y nos permitiría ejecutar la rotación mecánica y el tilt de la misma. Esa demora que no pudimos subsanar no nos permitió avanzar en el control de la misma y la integración a la página web.

Conclusiones:

A partir de este tipo de proyectos logramos aplicar todos los conocimientos adquiridos durante el transcurso de nuestra carrera y comenzar a comprender el potencial de desarrollo que tenemos.

Los inconvenientes que se presentaron a medida que íbamos avanzando no hicieron otra cosa que forzarnos a investigar y realizar pruebas que finalmente nos terminaron enriqueciendo, sea que hayamos logrado el objetivo o no, en cuyo caso logramos entender que fue lo que nos lo impidió y de esta manera tenerlo en cuenta para el futuro.

Particularmente con respecto al proyecto implementado, comprendimos la gran versatilidad de los microcontoladores para realizar diversas aplicaciones, logrando la mayor parte de los objetivos planteados y dejando abiertas muchas posibilidades de ampliación sobre nuestro sistema que seguiremos desarrollando de manera particular para explotar todas las posibilidades, sumando etapas a medida que nos surjan ideas, necesidades o incluso como desafío para integrar los conocimientos que aún nos quedan por adquirir.