Beruflich Dokumente
Kultur Dokumente
CURSO :
Sistemas Digitales II.
DOCENTE :
Chiclayo Padilla Hugo.
TEMA :
Proyecto: “Casa Domótica”
INTEGRANTES :
Chamaya Carhuatanta Roger Antonio.
Espinoza Lápiz Jhon Peter.
Santa Cruz López Dany Alberto.
II. MOTIVACIÓN
Nuestro proyecto es sobre la realización de una casa domotizada. ¿Por qué elegimos realizar este
proyecto? Pues simplemente porque es un tema muy interesante, sabemos muy bien que todas
las cosas han ido evolucionando día a día, y las casas tampoco se escapan a ello. Todo esto debido
a la electricidad y la electrónica, puntos muy importantes que nos han permitido elevar el nivel de
confort en cada una de nuestras casas y a la vez dando paso a los electrodomésticos, los cuales
son capaces de realizar diversas tareas cotidianas de casi de forma autónoma. Una casa domótica
es capaz de “sentir”, por dar algunos ejemplos, es capaz de detectar la presencia de personas,
detectar el nivel de temperatura y la luz, y a la vez, reaccionar por sí sola a estos estímulos, como
regular la iluminación o conectar una alarma en caso de emergencias, y si queremos llevarlo a otro
nivel, incluso podemos comunicarnos e interactuar con ella por diversos medios como PC y celular.
MÓDULO RELÉ
Un relé es un interruptor que podemos activar mediante una señal eléctrica. En su versión más
simple es un pequeño electro-imán que cuando lo excitamos mueve la posición de un contacto
eléctrico de conectado a desconectado o viceversa.
El símbolo del relé muestra la bobina y en este caso, un accionador que conmuta entre dos
contactos, pero también existen relés de múltiples contactos. Mediante una señal de control de
poca intensidad que excite la bobina podemos conmutar grandes tensiones o intensidades.
Beneficios:
- En primer lugar, los relés llevan entre nosotros desde finales del siglo 19 (y nadie ha sido
todavía capaz de convertirlos en obsoletos), es una tecnología muy probada y bien
establecida en la industria y además sirve para cosas que son problemáticas para los
transistores.
- Hay límites en la corriente que un transistor puede aceptar, pero un relé se puede diseñar
para que aguante cualquier carga, porque basta con los extremos metálicos de los
contactos lo soporten.
- Aísla completamente el circuito de control del de potencia, lo que tiene su importancia
especialmente en líneas de media y alta tensión.
En la práctica, con Arduino es más sencillo utilizar un relé para encender una luz fluorescente o la
calefacción, que buscar un transistor de características adecuadas. Aunque hay relés que
necesitan muy poca potencia para excitar la bobina, por regla general Arduino se quedará corto y
vamos a tener que usar un transistor que nos resuelva la papeleta.
El ejemplo que veremos a continuación incluye un circuito de transistor / relé completo que nos
permitirá atacar cualquier proyecto casero que nos propongamos.
Conectar un módulo de 4 relés a un Arduino es muy fácil y nos permite encender y apagar
dispositivos DC o AC.
Como se puede ver en la tarjeta de relés, se tiene un pin llamado COM, este pin debe ser
conectado a una fuente externa de 5V, NO se debe conectar al pin de 5V de Arduino.
También se tienen los pines de comunicación IN1, IN2, IN3 e IN4, los cuales deben conectarse a 4
pines digitales de Arduino por donde se enviaran las señales de control.
Se debe tener en cuenta que un relé se activa en baja y se desactiva en alta, es decir que debemos
enviarle 0V para que se active y para desactivarlo lo colocamos a 5V.
Si vamos a conectar algo a algún relé, debemos conectarlo en el pin NO (normalmente abierto) y al
pin COM, como se muestra en la figura.
MICRO SERVOMOTOR
El servo SG90 tiene un conector universal tipo “S” que encaja perfectamente en la mayoría de los
receptores de radio control incluyendo los Futaba, JR, GWS, Cirrus, Hitec y otros. Los cables en el
conector están distribuidos de la siguiente forma: Rojo =Alimentación (+), Café = Alimentación (–)
o tierra, Naranja= Señal PWM.
Este tipo de servo es ideal para las primeras experiencias de aprendizaje y prácticas con servos, ya
que sus requerimientos de energía son bastante bajos y se permite alimentarlo con la misma
fuente de alimentación que el circuito de control. Por ejemplo, si se conecta a una tarjeta arduino,
se puede alimentar durante las pruebas desde el puerto USB del PC sin mayor problema.
Características:
Programación en arduino.
/*
*/
#include <Wire.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
float temp1;
float temp2;
float temp3;
float temp4;
float tempro;
float temp_min=10.0;
int opcion = 1;
int der = 5;
int value = 0;
int enter = 6;
int izq = 7;
SoftwareSerial mySerial(0,1);
void setup()
lcd.begin(16, 2);
pinMode(der, INPUT);
pinMode(enter, INPUT);
pinMode(izq, INPUT);
pinMode(foco1, OUTPUT);
pinMode(foco2, OUTPUT);
lcd.setCursor(1, 0);
lcd.print("Proyecto dejado");
lcd.setCursor(3, 1);
lcd.print("por Brian");
delay(4000);
/*lcd.clear();
lcd.setCursor(1, 0);
lcd.print("CASA DOMOTICA");
lcd.setCursor(5, 1);
lcd.print("UNPRG");
delay(4000);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("INTEGRANTES");
lcd.setCursor(2, 1);
lcd.print("Roger Antonio");
delay(4000);
lcd.clear();
lcd.setCursor(2, 1);
lcd.print("Dany Alberto");
delay(4000);
lcd.clear();
lcd.setCursor(2, 1);
lcd.print("Jhon Peter");
delay(4000);
*/
lcd.clear();
void loop()
digitalWrite(vent,HIGH);
digitalWrite(calor,LOW);
digitalWrite(vent,LOW);
digitalWrite(calor,LOW);
if(tempro<temp_min)
digitalWrite(calor,HIGH);
digitalWrite(vent,LOW);
digitalWrite(agua, LOW);
digitalWrite(agua, HIGH);
if (digitalRead(der) == HIGH)
delay(200);
opcion++;
if (opcion == 5)
opcion = 1;
if (digitalRead(izq) == HIGH)
delay(200);
opcion--;
if (opcion == 0)
opcion = 4;
if (digitalRead(enter) == HIGH)
delay(200);
if ( opcion == enter )
lcd.clear();
lcd.setCursor(1, 0);
}
}
switch (opcion)
case 1: //temperatura
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("TEMPRO = ");
lcd.print(tempro, 1);
lcd.print(".C");
// lcd.setCursor(0,1);
//lcd.print("max=");
// lcd.print(temp_max,0);
//lcd.setCursor(9,1);
//lcd.print("min=");
//lcd.print(temp_min,0);
/*
if(digitalRead(enter)==HIGH)
delay(200);
while (digitalRead(enter)==LOW)
digitalWrite(vent,LOW);
digitalWrite(calor,LOW);
digitalWrite(agua,LOW);
if(digitalRead(der)==HIGH)
delay(200);
op++;
if(op==3)
op=1;
if(digitalRead(izq)==HIGH)
delay(200);
op--;
if(op==0)
op=2;
switch (op)
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,1);
break;
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print(temp_min,0);
break;
delay(200);
delay(200);
*/
break;
case 2: //humedad
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("HUM = ");
lcd.print(hum, 0);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("limite= ");
lcd.print(hum_lim, 0);
lcd.print("%");
/*
if(digitalRead(enter)==HIGH)
delay(200);
while (digitalRead(enter)==LOW)
digitalWrite(vent,LOW);
digitalWrite(calor,LOW);
digitalWrite(agua,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print(hum_lim,0);
delay(200);
delay(200);
*/
break;
case 3: //visualisar luces
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("configuracion");
lcd.setCursor(5, 1);
lcd.print("luces");
if(Serial.available())
value= Serial.read();
if(value=='A')
digitalWrite(foco1, HIGH);
if(value=='B')
digitalWrite(foco1, LOW);
if(value=='C')
digitalWrite(foco2, HIGH);
if(value=='D')
digitalWrite(foco2, LOW);
}
if(value=='E')
digitalWrite(foco3, HIGH);
if(value=='F')
digitalWrite(foco3, LOW);
if(value=='G')
digitalWrite(foco4, HIGH);
if(value=='H')
digitalWrite(foco4, LOW);
if(value=='I')
digitalWrite(foco5, HIGH);
if(value=='J')
digitalWrite(foco5, LOW);
if(value=='K')
{
digitalWrite(foco6, HIGH);
if(value=='L')
digitalWrite(foco6, LOW);
if(value=='M')
digitalWrite(foco7, HIGH);
if(value=='N')
digitalWrite(foco7, LOW);
/*
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print(".l. ");
delay(200);
}
*/
delay(200);
break;
lcd.clear();
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("configuracion");
lcd.setCursor(5, 1);
lcd.print("jardin");
/*
if (digitalRead(agua)==HIGH)
lcd.setCursor(0,0);
lcd.setCursor(0,1);
else
lcd.setCursor(0,0);
*/
break;
#include <Password.h>
LiquidCrystal lcd(10, 11, A0, A1, A2, A3); //Imposta i pin di Arduino a quali sono collegati in pin del
display (Rs,E,DB4,DB5,DB6,DB7)
};
Servo myservo;
Servo servo2;
long inst_time;
char risp[16];
byte close_val = 0;
//////
int i=0;
void setup()
pinMode(lum_pin, OUTPUT);
analogWrite(lum_pin, 0);
lcd.begin(16, 2);
Serial.begin(9600);
myservo.attach(A4);
myservo.write(close_val);
servo2.attach(A5);
servo2.write(close_val);
void loop()
lcd.clear();
lcd.print("Presione '*'");
lcd.print("Presione '#'");
if(key != '*')
key = keyp.getKey();
analogWrite(lum_pin, 255);
if (ans == 1)
lcd.print("Abriendo Puerta");
myservo.write(open_val);
delay(5000);
lcd.clear();
lcd.print("Cerrando Puerta");
myservo.write(close_val);
else
if (ans == 2)
lcd.print("CLAVE ERRADA");
delay(2000);
for
(i=fMin;i<=fMax; i++)
tone(13, i, duracion);
tone(13, i, duracion);
//////////////////////////////
key = keyp.getKey();
if (an == 1)
lcd.print("Abriendo Garaje");
servo2.write(open_val);
delay(5000);
lcd.clear();
lcd.print("Cerrando Garaje");
servo2.write(close_val);
else if (an == 2)
lcd.print("CLAVE ERRADA");
delay(2000);
analogWrite(lum_pin, 0);
byte j = 0;
lcd.clear();
lcd.print(question);
lcd.setCursor(j, 1);
lcd.blink();
inst_time = millis();
do
lcd.setCursor(j, 1);
key = keyp.getKey();
jump_key:
if (key)inst_time = millis();
else
lcd.write(" ");
else
else
do key = keyp.getKey();
lcd.setCursor(j - 1, 1);
lcd.write('*');
if (key)goto jump_key; }
param[j] = '\0';
lcd.clear(); i
f (key == '*')
Serial.println(param);
if (!strcmp(param, answer))return 1;
else
return 2;
else return 0;
}
VI. IMÁGENES DEL ARMADO Y FUNCIONAMIENTO DE LA CASA DOMÓTICA
VII. CONCLUSIONES
- Toda la programación se desarrolló en arduino, la cual nos ayudó a aprender más acerca
de los beneficios de este, además de aprender que se puede hacer diferentes cosas con
este lenguaje de programación.