Saltar la navegación

Descripción y Esquemas Casa Inteligente

Tabla de elementos y funcionalidades:

tabla-funciones

Puede que en el taller encuentres estos sensores, o no, al igual que elementos como bombas u otros objetos. No te preocupes si no encuentras todos los componentes necesarios, simplemente simúlalos con lo que tengas. La motobomba puede ser un pequeño motor de CC o incluso un LED, el PIR puede ser un pulsador al igual que el detector de humedad, tu imaginación y los elementos de los que dispongas serán suficientes para crear tu casa inteligente.

Dedícale unos minutos a pensar por qué vas a sustituir cada uno de los elementos y plásmalos en una tabla. Incluye también en qué pines de la placa estarán conectados y la lógica a seguir. Como ves en la tabla siguiente hay un ejemplo, el cual debes ajustar a los elementos que puedas conseguir y añadir aquellos que se te ocurran.

tabla-sustitutos

Ocultar

casa

Haz la maqueta de una casa de cartón, con sus habitaciones y sobre ella incluye todos los elementos. Recuerda dejar suficiente cable para conectarlos luego en la placa Arduino sin problemas. Una buena opción es llevarlos todos hacia el mismo lado de la casa y etiquetarlos para evitar errores. Aquí tienes un ejemplo de programación basado en la tabla anterior, aunque seguro que te gustará modificar cosas y sobre todo mejorarla. El programa es largo porque no está optimizado para que sea sencilla su interpretación.

El programa a realizar será el siguiente:

---------------------------------------------------------------------------

/* PROGRAMA de CONTROL. VIVIENDA DOMÓTICA
Este programa te puede servir de guía para desarrollar este proyecto.
Defino algunas variables por comodidad y mejor entendimiento del programa
mirando la tabla se ve a qué elemento corresponde cada variable
*/
int LDR, MB, SH, PIR, LE, A, C, MP, T; //guarda el estado de la persiana boolean persiana_subida=true; void setup() {   // inicializamos las variables   LDR = 1;   MB = 1;   SH = 2;   PIR = 4;   LE = 5;   A = 6;   C = 7; MP = 8;  T = 3;   //activamos el puerto serial para la depuracion   Serial.begin(9600); pinMode(MB, OUTPUT); pinMode(LE, OUTPUT); pinMode(A, OUTPUT); pinMode(C, OUTPUT); pinMode(MP, OUTPUT); pinMode(SH, INPUT); pinMode(PIR, INPUT); pinMode(T, INPUT); } void loop() {   //programamos logica LDR   if (analogRead(1)> 900) { //indica que es de noche     if (persiana_subida){//La persiana está subida y por tanto la bajamos      digitalWrite(MP,HIGH); //Baja persianas delay(5000); //suponemos que las persianas tardan en bajar 5 segundos digitalWrite(MP,LOW);//para motor persianas persiana_subida=false; //para saber que la persiana esta abajo     }     digitalWrite(LE, HIGH); //enciende luces exteriores   }   else {    if(! persiana_subida){//La periana esta bajada y por tanto la subimos      digitalWrite(MP,HIGH); //Sube persianas      delay(5000); //suponemos que las persianas tardan en bajar 5 segundos
  digitalWrite(MP,LOW);//para motor persianas     persiana_subida=true;//para saber que la persiana esta arriba    }     digitalWrite(LE,LOW);//apagamos luces   }   //programamos logica detector humedad   if (digitalRead(SH)==1) {//Hay humedad    digitalWrite(MB, HIGH);//arranca la motobomba   }   else {     digitalWrite(MB, LOW);//para la motobomba   } //programamos logica detector presencia   if (digitalRead(PIR==1) && analogRead(LDR) >900){//Se detecta presencia y es de noche     digitalWrite(A, HIGH);//Activa alarma   }   else {   digitalWrite(A,LOW);  }  //programamos logica sensor temperatura  if (digitalRead(T)==1){   digitalWrite(C,HIGH); //enciende la caldera  }  else {  digitalWrite(C,LOW); //apaga la caldera  }  //mostramos lo que ocurre por monitor serial para poder depurar problemas  Serial.print("LDR=");   Serial.println(analogRead(1));   Serial.print("Detector Humedad=");   Serial.println(digitalRead(SH));   Serial.print("Detector Presencia=");   Serial.println(digitalRead(PIR));   Serial.print("Termostato=");   Serial.println(digitalRead(T));   delay (2000); //esperamos 2 segundos } ---------------------------------------------------------------------------