sistema digital de automatización y control de luminarias led, aplicado a ambientes domésticos

27
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja Sistemas Embebidos “Sistema digital de automatización y control de luminarias LED, aplicado a ambientes domésticos” INTEGRANTES Paola Cecibel Chamba Agila Bryan Antonio Gordillo Poma Leonardo Antonio Jaramillo Rodríguez Santiago René Sarmiento Sotomayor Jason Mauricio Tituaña Castillo José David Zúñiga Vivanco TUTOR Ing. Christian Loján Herrera

Upload: santiago-sarmiento

Post on 06-Dec-2015

219 views

Category:

Documents


1 download

DESCRIPTION

Control autónomo y manual de luminarias LED en busca de eficiencia energética en ambientes con demanda de luz.Sensores fotoeléctricos controlan la cantidad de luz de los LED's en el modo automático, en modo manual el control se realiza por un teclado y se ingresa un dato porcentual de 0 a 100.Ademas tiene un control por internet para encender y apagar las luces.

TRANSCRIPT

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

La Universidad Católica de Loja

Sistemas Embebidos

“Sistema digital de automatización y control de luminarias LED, aplicado a ambientes domésticos”

INTEGRANTES

Paola Cecibel Chamba AgilaBryan Antonio Gordillo PomaLeonardo Antonio Jaramillo RodríguezSantiago René Sarmiento SotomayorJason Mauricio Tituaña CastilloJosé David Zúñiga Vivanco

TUTOR

Ing. Christian Loján Herrera

Abril 2014 – Agosto 2014

Planteamiento del Problema

Encontrar métodos eficientes con los que se pueda aprovechar las condiciones ambientales, en este caso la luz solar, de tal manera que se controle automáticamente las luminarias del hogar, la intensidad de la iluminación tanto manual como automáticamente, teniendo como resultado ahorro de energía y aprovechamiento de las fuentes de energía renovables.

Delimitación del problema

El siguiente proyecto está enfocado a trabajar en una vivienda, en el cual se empleará un sistema de control automático de alumbrado. Para ello se necesitara de dispositivos que censen la luz solar y de acuerdo a esto poder controlar el alumbrado del hogar, es decir que cuando exista exceso de luz solar la vivienda será iluminada con energía solar, y cuando exista ausencia de luz solar el sistema hará que la vivienda sea iluminada con luminarias LED; esto sucederá siempre y cuando sea necesario, es decir, el sistema de automatización funcionara únicamente cuando exista movimiento en el interior de la vivienda, el cual a su vez estará controlado por sensores de presencia. De tal forma, que como se mencionó anteriormente existirá el ahorro de energía y a su vez el aprovechamiento de las condiciones ambientales.

Mediante un dimmer se pretende controlar la intensidad luminosa, según las necesidades del usuario, el mismo que podrá ser manipulado de manera automática, como también manual.

Justificación de la investigación

Actualmente las personas requieren de sistemas que proporcionen comodidad y eficiencia energética para sus hogares, oficinas, estudios de cualquier lugar en donde se encuentren. Gracias a la innovación de sistemas de domótica, es posible obtener tecnologías de control de dispositivos electrónicos sin la necesidad de la presencia de un usuario, o, con su consentimiento para establecer características del dispositivo a su agrado.Sin duda estos sistemas de control de luminaria ofrecen más comodidad, permitiendo regular la intensidad luminosa de todo su hogar según el sector en el que se encuentre, manual o automáticamente. Como consecuencia de una atenuación automática, el sistema hará eficiente el consumo energético del lugar donde sea instalado. Domótica es una de las áreas que facilita los procesos de automatización y operación de mecanismos electrónicos, logrando de esa manera una unión de las diferentes tecnologías que nos permiten mejorar de cierta forma nuestro estilo de vida, es por esta razón que se busca implementar un sistema domótico que contribuya con la eficiencia energética mediante la opción de atenuación automática, o el control manual mediante un dispositivo remoto como también un panel local. De este modo se ofrece más comodidad al usuario.

Objetivos de la investigación

Objetivo Principal

Desarrollar un dimmer con acceso remoto y local, usando el micro controlador ATmega328P; originando un sistema de automatización de luminarias.

Objetivos Específicos

Mostrar cómo se usa la domótica para ayudar en la disminución del consumo energético, incrementación del confort en las casas por medio de sistemas de iluminación.

Desarrollar un software con una interfaz amigable que permita el control de las luminarias a través de internet, y un panel dentro de la residencia para control.

Características Del Proyecto:

SENSORES HARDWARE

Sensor Pir Me003Atmega 328P

Teclado matricial 4x4

LCD 16x2

Sensor LDREthernet Shield

LED's 12V (tira)

Diagramas de flujo:

Esquematización de funcionamiento.

Código:

#include <LiquidCrystal_I2C.h>

#include <Wire.h>

#include <SPI.h>

#include <Ethernet.h>

LiquidCrystal_I2C lcd(0x27,16,2);

#include <LiquidCrystal_I2C.h>

#include <Wire.h>

#include <SPI.h>

#include <Ethernet.h>

LiquidCrystal_I2C lcd(0x27,16,2);

int pirState = LOW;

int pirState2 = LOW;

int val = 0; // aux para pir

int val2= 0; // aux para pir

//Variables LDR

const int sensorPin = A2;

const int sensorPin2 = A3;

const int ledPin = 5;

const int ledPin2 = 6;

int sensorValue = 0;

int sensorValue2 = 0;

//Aux

int atenuacion = 0;//Valor de PWM

int atenuacionsalida = 0;//Valor de PWM

//Variables Ethernet shield

int PIN_LED;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,1,6);

EthernetServer server(80);

String readString=String(30);//lee caracteres

String state=String(3);

String state1=String(3);

void setup() {

Serial.begin(9600);

Inicio();//Inicio general pines y lcd

Inicializacion();

inicio_internet();

}

void loop() {

internet();

numero = lectura_teclado();//Lectura teclado

if ((boton!=99)&&(numero>=0)){//Engloba todo el codigo

if(numero==51)

estado=0;

else if (numero==52)

estado=1;

Serial.print("numero ");

void loop() {

internet();

numero = lectura_teclado();//Lectura teclado

if ((boton!=99)&&(numero>=0)){//Engloba todo el codigo

if(numero==51)

estado=0;

else if (numero==52)

estado=1;

Serial.print("numero ");

Serial.print("Modo autoooooooooooo ");

}//Fin Modo Automatico

else if (estado==1){//Modo manual

if(aux==1){

digitalWrite(LED_estado1,LOW);

digitalWrite(LED_estado2,HIGH);

digitalWrite(5,LOW);

digitalWrite(6,LOW);

lcd.clear();

lcd.print("Modo Manual");

lcd.setCursor(0,1);

lcd.print("Espere");

delay(1000);

Serial.print("Modo autoooooooooooo ");

}//Fin Modo Automatico

else if (estado==1){//Modo manual

if(aux==1){

digitalWrite(LED_estado1,LOW);

digitalWrite(LED_estado2,HIGH);

digitalWrite(5,LOW);

digitalWrite(6,LOW);

lcd.clear();

lcd.print("Modo Manual");

lcd.setCursor(0,1);

lcd.print("Espere");

delay(1000);

else if(numero == 54 ){//Boton D transistorPin = 5; LCD_PlantaBaja(atenuacion_planta_baja);//llamando a funcion de LCD } else if(numero == 53){//Boton C transistorPin = 6; LCD_PlantaAlta(atenuacion_planta_alta);//Llamando a la funcion para escritura en LCD } // Fin cambio de sector else if(numero == 41 /* '*' */){//Conversor cadena a entero (*) se define como enter switch (cont) { case 1: atenuacion = valor[0];// sentencias break; case 2: atenuacion = (valor[0]*10) + valor[1];// sentencias break; case 3: atenuacion = (valor[0]*100)+(valor[1]*10)+valor[2];// sentencias break; } atenuacionsalida = (atenuacion * 255)/100; if(atenuacion >= 101){// Condicion para modulacion porcentual max 100% atenuacionsalida = 255; atenuacion = 100; } analogWrite(transistorPin, atenuacionsalida);//Salida de señal PWM a LED's if(transistorPin == 5){ atenuacion_planta_baja = atenuacion;

else if(numero == 54 ){//Boton D transistorPin = 5; LCD_PlantaBaja(atenuacion_planta_baja);//llamando a funcion de LCD } else if(numero == 53){//Boton C transistorPin = 6; LCD_PlantaAlta(atenuacion_planta_alta);//Llamando a la funcion para escritura en LCD } // Fin cambio de sector else if(numero == 41 /* '*' */){//Conversor cadena a entero (*) se define como enter switch (cont) { case 1: atenuacion = valor[0];// sentencias break; case 2: atenuacion = (valor[0]*10) + valor[1];// sentencias break; case 3: atenuacion = (valor[0]*100)+(valor[1]*10)+valor[2];// sentencias break; } atenuacionsalida = (atenuacion * 255)/100; if(atenuacion >= 101){// Condicion para modulacion porcentual max 100% atenuacionsalida = 255; atenuacion = 100; } analogWrite(transistorPin, atenuacionsalida);//Salida de señal PWM a LED's if(transistorPin == 5){ atenuacion_planta_baja = atenuacion;

cont = 0; }// Fin Conversor cadena a entero

}//Fin modo manual de prueba

}

boton=99;

}// Fin loop

//Inicia valores generales

void Inicio(){

pinMode(6, OUTPUT);//salida para LED's 12V

pinMode(5, OUTPUT);//salida para LED's 12V

digitalWrite(6, LOW);//inicializacion estado bajo

digitalWrite(5, LOW);//inicializacion estado bajo

pinMode(LED_estado1, OUTPUT);//estado de modo

pinMode(LED_estado2, OUTPUT);//estado de modo

pinMode(pirPin1, INPUT);//sensor pir entrada

pinMode(pirPin2, INPUT);//sensor pir entrada

digitalWrite(LED_estado2, LOW);//inicializacion estado bajo

digitalWrite(LED_estado1, LOW);//inicializacion estado bajo

lcd.init();// initialize the lcd

lcd.backlight();

}//Fin

//Seleccion de estado auto o manual

cont = 0; }// Fin Conversor cadena a entero

}//Fin modo manual de prueba

}

boton=99;

}// Fin loop

//Inicia valores generales

void Inicio(){

pinMode(6, OUTPUT);//salida para LED's 12V

pinMode(5, OUTPUT);//salida para LED's 12V

digitalWrite(6, LOW);//inicializacion estado bajo

digitalWrite(5, LOW);//inicializacion estado bajo

pinMode(LED_estado1, OUTPUT);//estado de modo

pinMode(LED_estado2, OUTPUT);//estado de modo

pinMode(pirPin1, INPUT);//sensor pir entrada

pinMode(pirPin2, INPUT);//sensor pir entrada

digitalWrite(LED_estado2, LOW);//inicializacion estado bajo

digitalWrite(LED_estado1, LOW);//inicializacion estado bajo

lcd.init();// initialize the lcd

lcd.backlight();

}//Fin

//Seleccion de estado auto o manual

while(1){//Condicion no sirve

numero=lectura_teclado();

if ((boton!=99)&&(numero>=0)){//Condicion evita entrar al codigo sin presionar un boton

if(numero==51){

lcd.clear();

lcd.print("Auto. ON");

estado=0;//modo auto

digitalWrite(LED_estado1, HIGH);//Indica estado auto

break;

}

else if(numero==52){

lcd.clear();

lcd.print("Manual ON");

estado=1;//modo manual

digitalWrite(LED_estado2, HIGH);//Indica estado manual

break;

}

}

}//Fin while 1

lcd.setCursor(0,1);

lcd.print("Selec. Enter(*)");

numero=lectura_teclado();

while(numero!=41)//Debe pulsar el boton (*) para seguir

numero = lectura_teclado();

}//Fin//Permite la seleccion del sector para inicializarvoid Selec_sector(){ lcd.clear(); lcd.print("Planta Alta (C)");

lcd.setCursor(0,1);

lcd.print("Planta Baja (D)");

while(1){//53 boton C........54 boton D

numero=lectura_teclado();

if ((boton!=99)&&(numero>=0)){//Condicion evita entrar al codigo sin presionar un boton

if(numero==53){

lcd.setCursor(0,1);

lcd.print("Planta Baja (D)");

while(1){//53 boton C........54 boton D

numero=lectura_teclado();

if ((boton!=99)&&(numero>=0)){//Condicion evita entrar al codigo sin presionar un boton

if(numero==53){

void Inicializacion(){

lcd.print("Instrucciones");

delay(1000);

Selec_modo();//Funcion para seleccionar modo auto o manual

if(estado==1)//Si es manual debe seleccionar sector

Selec_sector();//Funcion para seleccionar el sector

lcd.clear();

lcd.print("Continue");

lcd.setCursor(0,1);

lcd.print("Selec. Enter(*)");

while(numero!=41)//Debe pulsar el boton (*) para seguir

void Inicializacion(){

lcd.print("Instrucciones");

delay(1000);

Selec_modo();//Funcion para seleccionar modo auto o manual

if(estado==1)//Si es manual debe seleccionar sector

Selec_sector();//Funcion para seleccionar el sector

lcd.clear();

lcd.print("Continue");

lcd.setCursor(0,1);

lcd.print("Selec. Enter(*)");

while(numero!=41)//Debe pulsar el boton (*) para seguir

Serial.print(atenuacion_PA);

Serial.println(" %");

}

void LCD_PlantaBaja(int atenuacion_PB){

lcd.clear();

lcd.print("Planta Baja");

lcd.setCursor(0,1);

lcd.print("Atenuacion");

lcd.setCursor(11,1);

lcd.print(atenuacion_PB);

lcd.setCursor(14, 1);

lcd.print("%");

Serial.println("Funcion LCD");

Serial.println("Planta Baja");

Serial.println("Atenuacion");

Serial.print(atenuacion_PA);

Serial.println(" %");

}

void LCD_PlantaBaja(int atenuacion_PB){

lcd.clear();

lcd.print("Planta Baja");

lcd.setCursor(0,1);

lcd.print("Atenuacion");

lcd.setCursor(11,1);

lcd.print(atenuacion_PB);

lcd.setCursor(14, 1);

lcd.print("%");

Serial.println("Funcion LCD");

Serial.println("Planta Baja");

Serial.println("Atenuacion");

else if(val == LOW) {

digitalWrite(ledPin, LOW); // turn LED OFF

pirState = LOW;

Serial.println("Planta baja OFF");

}

if (val2 == HIGH) { // check if the input is HIGH LDR2(); //digitalWrite(ledPin2, HIGH); // turn LED ON pirState2 = HIGH; Serial.println("Planta alta ON"); }

else if(val2 == LOW) {

digitalWrite(ledPin2, LOW); // turn LED OFF

pirState2 = LOW;

Serial.println("Planta alta OFF");

}

}

//Funcion tecladoint lectura_teclado(){ if(analogRead(entrada_analogica_teclado)>10){ valor_analogico_teclado = analogRead(entrada_analogica_teclado); while(analogRead(entrada_analogica_teclado)>10) delay(1); int tolerancia = 10;

else if(val == LOW) {

digitalWrite(ledPin, LOW); // turn LED OFF

pirState = LOW;

Serial.println("Planta baja OFF");

}

if (val2 == HIGH) { // check if the input is HIGH LDR2(); //digitalWrite(ledPin2, HIGH); // turn LED ON pirState2 = HIGH; Serial.println("Planta alta ON"); }

else if(val2 == LOW) {

digitalWrite(ledPin2, LOW); // turn LED OFF

pirState2 = LOW;

Serial.println("Planta alta OFF");

}

}

//Funcion tecladoint lectura_teclado(){ if(analogRead(entrada_analogica_teclado)>10){ valor_analogico_teclado = analogRead(entrada_analogica_teclado); while(analogRead(entrada_analogica_teclado)>10) delay(1); int tolerancia = 10;

if (valor_analogico_teclado<=(643+tolerancia) && valor_analogico_teclado>=(643-tolerancia)) boton = 2;

if (valor_analogico_teclado<=(501+tolerancia) && valor_analogico_teclado>=(501-tolerancia)) boton = 3;

if (valor_analogico_teclado<=(799+tolerancia) && valor_analogico_teclado>=(799-tolerancia)) boton = 4;

if (valor_analogico_teclado<=(610+tolerancia) && valor_analogico_teclado>=(610-tolerancia)) boton = 5;

if (valor_analogico_teclado<=(480+tolerancia) && valor_analogico_teclado>=(480-tolerancia)) boton = 6;

if (valor_analogico_teclado<=(730+tolerancia) && valor_analogico_teclado>=(730-tolerancia)) boton = 7;

if (valor_analogico_teclado<=(569+tolerancia) && valor_analogico_teclado>=(569-tolerancia)) boton = 8;

if (valor_analogico_teclado<=(454+tolerancia) && valor_analogico_teclado>=(454-tolerancia)) boton = 9;

if (valor_analogico_teclado<=(691+tolerancia) && valor_analogico_teclado>=(691-tolerancia)) boton = 41; //*

if (valor_analogico_teclado<=(439+tolerancia) && valor_analogico_teclado>=(439-tolerancia)) boton = 42; //#

if (valor_analogico_teclado<=(336+tolerancia2) && valor_analogico_teclado>=(336-tolerancia2)) boton = 51; //(A) estado automatico

if (valor_analogico_teclado<=(326+tolerancia2) && valor_analogico_teclado>=(326-tolerancia2)) boton = 52; //(B) estado manual

if (valor_analogico_teclado<=(315+tolerancia2) && valor_analogico_teclado>=(315-tolerancia2)) boton = 53; //C planta alta

if (valor_analogico_teclado<=(306+tolerancia2) && valor_analogico_teclado>=(306-tolerancia2)) boton = 54; //D planta baja

return boton; }}//Funcion LDRvoid LDR() {

if (valor_analogico_teclado<=(643+tolerancia) && valor_analogico_teclado>=(643-tolerancia)) boton = 2;

if (valor_analogico_teclado<=(501+tolerancia) && valor_analogico_teclado>=(501-tolerancia)) boton = 3;

if (valor_analogico_teclado<=(799+tolerancia) && valor_analogico_teclado>=(799-tolerancia)) boton = 4;

if (valor_analogico_teclado<=(610+tolerancia) && valor_analogico_teclado>=(610-tolerancia)) boton = 5;

if (valor_analogico_teclado<=(480+tolerancia) && valor_analogico_teclado>=(480-tolerancia)) boton = 6;

if (valor_analogico_teclado<=(730+tolerancia) && valor_analogico_teclado>=(730-tolerancia)) boton = 7;

if (valor_analogico_teclado<=(569+tolerancia) && valor_analogico_teclado>=(569-tolerancia)) boton = 8;

if (valor_analogico_teclado<=(454+tolerancia) && valor_analogico_teclado>=(454-tolerancia)) boton = 9;

if (valor_analogico_teclado<=(691+tolerancia) && valor_analogico_teclado>=(691-tolerancia)) boton = 41; //*

if (valor_analogico_teclado<=(439+tolerancia) && valor_analogico_teclado>=(439-tolerancia)) boton = 42; //#

if (valor_analogico_teclado<=(336+tolerancia2) && valor_analogico_teclado>=(336-tolerancia2)) boton = 51; //(A) estado automatico

if (valor_analogico_teclado<=(326+tolerancia2) && valor_analogico_teclado>=(326-tolerancia2)) boton = 52; //(B) estado manual

if (valor_analogico_teclado<=(315+tolerancia2) && valor_analogico_teclado>=(315-tolerancia2)) boton = 53; //C planta alta

if (valor_analogico_teclado<=(306+tolerancia2) && valor_analogico_teclado>=(306-tolerancia2)) boton = 54; //D planta baja

return boton; }}//Funcion LDRvoid LDR() {

sensorValue = analogRead(sensorPin);

Serial.println(sensorValue);

sensorValue = map(sensorValue, 1023, 300 , 0, 255);

if(sensorValue <=41)

sensorValue=0;

if(sensorValue >=255)

sensorValue=255;

analogWrite(ledPin, sensorValue);

}

//Funcion LDR2

void LDR2() {

sensorValue2 = analogRead(sensorPin2);

sensorValue2 = map(sensorValue2, 1023, 300 , 0, 255);

if(sensorValue2 <=41)

sensorValue2=0;

if(sensorValue2 >=255)

sensorValue2=255;

analogWrite(ledPin2, sensorValue2);

}//Inicializacion internet

void inicio_internet(){ //Serial.begin(9600); Ethernet.begin(mac, ip);

server.begin(); state="OFF"; state1="OFF";}

//Programa internet

void internet(){

// listen for incoming clients

EthernetClient client = server.available();

if (client) {

boolean currentLineIsBlank = true;

while (client.connected()) {

if (client.available()) {

char c = client.read();

if(readString.length()<30)

//Programa internet

void internet(){

// listen for incoming clients

EthernetClient client = server.available();

if (client) {

boolean currentLineIsBlank = true;

while (client.connected()) {

if (client.available()) {

char c = client.read();

if(readString.length()<30)

else if(readString.substring(LED,LED+5)=="LED=F"){

digitalWrite(PIN_LED,LOW);

if (PIN_LED==5)

state="OFF";

else if (PIN_LED==6) state1="OFF"; } // Programa para pagina web

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println();

client.println("<html>");

client.println("Integrantes: Santiago Sarmiento, ");

client.println(" David Zuniga, ");

client.println(" Paola Chamba, ");

client.println(" Leonardo Jaramillo, ");

else if(readString.substring(LED,LED+5)=="LED=F"){

digitalWrite(PIN_LED,LOW);

if (PIN_LED==5)

state="OFF";

else if (PIN_LED==6) state1="OFF"; } // Programa para pagina web

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println();

client.println("<html>");

client.println("Integrantes: Santiago Sarmiento, ");

client.println(" David Zuniga, ");

client.println(" Paola Chamba, ");

client.println(" Leonardo Jaramillo, ");

client.println("<br><br>");

client.println("<input type=submit value=Planta_Baja style=width:175px;height:65px onClick=location.href='./?PIN=5\'>");

client.println("<input type=submit value=Planta_Alta style=width:175px;height:65px onClick=location.href='./?PIN=6\'>");

client.println("<br><br><br>");

client.println("Estado de la lampara: ");

if(PIN_LED==5)

client.println(state);

else if (PIN_LED==6) //Borrar la condicion, es innecesaria

client.println(state1);

client.println("<br><br>");

client.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");

client.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");

client.println("</center>");

client.println("</body>");

client.println("</html>");

client.stop();

readString="";

Código realizado en Arduino 1.0.5 [Autores]

Proceso de fabricación

Primeramente se procedido a la simulación de todo el sistema de iluminación con los respectivos sensores, con el atmega 328p en Proteus 8

Obtenido resultados positivos en las simulaciones se procedió a armar el circuido en ProtoBoard, para verificación de su correcto funcionamiento

Una vez comprobado el resultado en ProtoBoard, se procedió al diseño e implementación en una placa.

client.println("<br><br>");

client.println("<input type=submit value=Planta_Baja style=width:175px;height:65px onClick=location.href='./?PIN=5\'>");

client.println("<input type=submit value=Planta_Alta style=width:175px;height:65px onClick=location.href='./?PIN=6\'>");

client.println("<br><br><br>");

client.println("Estado de la lampara: ");

if(PIN_LED==5)

client.println(state);

else if (PIN_LED==6) //Borrar la condicion, es innecesaria

client.println(state1);

client.println("<br><br>");

client.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");

client.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");

client.println("</center>");

client.println("</body>");

client.println("</html>");

client.stop();

readString="";

Posteriormente se organizó los sensores en la placa. La interfaz web realizada nos permitirá controlar el estado de los LED’s a través de la Web.

Consecutivamente se buscó la manera de acoplar los sensores y dispositivos.

Finalmente se realizó el acondicionamiento de todo el sistema en una maqueta.

Proyecto finalizado.

Presupuesto

A continuación se describe cada uno de los materiales, costos y cantidad que se ha usado para el desarrollo del proyecto:

Conclusiones

La implementación de este tipo de sistema ayudan al ahorro de energía, utilizando este recurso de la mejor manera.

La comodidad y confort que brinda este sistema, lo hace llamativo y comercial. La comunicación del ATmega328 P a través de la Web tiene muchas ventajas, una de ellas se

hace referencia en el proyecto, desarrollando un sistema que posibilite el acceso, mediante una conexión a internet, a controlar el estado de las luminarias LED.

Se debe tener en consideración el número de pines del microcontrolador ATmega328 P para la mayor optimización posible, ya que nos limitamos a 20 pines para su uso.

Bibliografía consultada

[1] Adrian Javier León; Honolulu; Hawai; 2007; “LIGHTING” [En línea] Disponible en: http://www.aiu.edu/applications/DocumentLibraryManager/upload/Lighting%20Adrian%20Leon.pdf [Consulta mayo 2014]

[2] Álvarez, Holguín, Serrano; Guayaquil; Ecuador; 2007; “Diseño de una Instalación Domótica en un Condominio para el Control de Seguridad e Iluminación mediante la Tecnología LonWorks” [En línea] Disponible en:

Cantidad DescripciónPrecio

unitario Total1 Maqueta 20,00 20,002 Sensor Pir Me003 9,00 18,001 Teclado matricial 4x4 6,50 6,501 Atmega 328P 6,50 6,501 Materiales arduino standalone 2,00 2,00

12 Resistores 0,05 0,601 LED's 12V (tira) 3,00 3,002 Zócalos 0,90 1,801 LCD 16x2 7,00 7,001 Cable gemelo 0,30 0,301 Transformador 110V-12V (1A) 8,00 8,001 Regulador 7812 2,00 2,001 Regulador 7805 2,00 2,001 Capacitor 2200 uF 0,60 0,601 Ethernet Shield 28,00 28,00

TOTAL $ 106,30

http://www.cib.espol.edu.ec/digipath/d_tesis_pdf/d-35940.pdf [Consulta mayo 2014][3] DomoDesk; DomoDesk S.L; Valencia; España; 2002; “¿ Qué es Domótica?” [En línea] Disponible

en:http://www.domodesk.com/que-es-domotica [Consulta mayo 2014]