sistema digital de automatización y control de luminarias led, aplicado a ambientes domésticos
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)
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.
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