Introducción La domótica es un concepto que se refiere a la integración de las distintas tecnologías en el hogar mediante el uso simultáneo de la electricidad, la electrónica, la informática y las telecomunicaciones. Su fin es mejorar la seguridad, el confort, la flexibilidad, las comunicaciones, el ahorro energético, facilitar el control integral de los sistemas para los usuarios y ofrecer nuevos servicios. Algunos de las áreas principales de la domótica son:
· Automatización y Control - incluye el control (abrir / cerrar, on / off y regulación) de la iluminación, climatización, persianas y toldos, puertas y ventanas, cerraduras, riego, electrodomésticos, suministro de agua y gas etc. · Seguridad - incluye alarmas de intrusión, alarmas personales y alarmas técnicas (incendio, humo, agua, gas, fallo de suministro eléctrico). · Telecomunicaciones - incluye transmisión de voz y datos con redes locales (LAN) para compartir acceso de alta velocidad a Internet, recursos y el intercambio entre todos los equipos. Además permite disfrutar de nuevos servicios como Telefonía sobre IP y Televisión digital. · Audio y video - incluye la distribución de imágenes de video capturadas con cámaras dentro y fuera de la casa a toda la casa y a través de Internet. Otra parte de audio / video trata del entretenimiento como el multi-room y el "Cine En Casa". Con la integración de las específicas funcionalidades de estos sistemas se puede crear servicios de "valor añadido", como por ejemplo: · Automatización de eventos (apagar y encender iluminación exterior, riego, regular temperaturas etc.) · Escenarios tipo "Me voy de Casa" que con pulsar un botón podemos bajar todas las persianas, apagar toda la iluminación, armar la casa, bajar la temperatura; "Cine en Casa" que con un simple presión de un botón bajar las persianas del salón, bajar la luz a 25%, armar la planta baja, y encender el amplificador, el proyector y bajar la pantalla motorizada. "Cena" que regula la iluminación del salón y comedor, pone la música al fondo y enciende la iluminación de la terraza. · Avisos por teléfono, sms o email de la llegada o salida de terceros a la vivienda (hijos, asistenta, etc.) o por el contrario, la ausencia de actividad si se queda
alguien en la vivienda (niños, ancianos, etc) en un determinado intervalo de tiempo. Problemática
Muchas de las veces en el hogar hay que realizar diversas actividades que en ocasiones resultan ser tediosas o repetitivas como lo son; abrir cortinas cada que amanece, subir agua aun tinaco en la planta alta cuando se encuentra vacío, abrir o cerrar una cochera, encender o apagar el aire acondicionado. Todo esto se acabaría con un sistema que automatizara estas acciones.
Objetivo
Construir un sistema mediante hardware y software de ARDUINO que represente la implementación de domótica en una casa, así el proyecto pretende que al usuario de la misma cuente con las mayores facilidades al estar en una casa de este tipo. Justificación
En la actualidad la tendencia apunta a que cada vez y con el paso del tiempo abra más y más casas que tengan implementado este sistema, tanto así que ya ni siquiera parecerá una tecnología emergente. Es por eso que decidimos tomar papel en esta revolución, pues los conocimientos adquiridos en la materia nos alentaron a construir un prototipo con las diversas herramientas a nuestro alcance Una de ellas ARDUINO que nos dio un mundo de posibilidades debido a la gran cantidad de cosas que se pueden programar en él.
Antecedentes
Actualmente existen diversos sistemas
de domótica para el hogar que utilizan desde alarma
contra incendios hasta la implementación de sensores de humedad, todos estos sistemas altamente eficientes. Lo que nosotros queremos hacer no es hacer algo diferente, si no que con las diversas componentes electrónicos a nuestro alcance, utilizarlos de manera creativa para ser de una casa lo mas cómoda posible, claro en cuanto a las actividades manuales que el dueño del hogar tendría que hacer.
Marco Teórico
CONCEPTOS A CONSIDERAR PARA EL PROYECTO SENSOR DE TEMPERATURA. El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC. Su rango de medición abarca desde -55°C hasta 150°C. La salida es lineal y cada grado centígrado equivale a 10mV, por lo tanto: 150ºC = 1500mV -55ºC = -550mV
1
Características Sus características más relevantes son:
Está calibrado directamente en grados Celsius.
La tensión de salida es proporcional a la temperatura.
Tiene una precisión garantizada de 0.5°C a 25°C.
Opera entre 4 y 30 voltios de alimentación.
Baja impedancia de salida.
Baja corriente de alimentación (60uA).
Bajo costo.
Destacables El LM35 no requiere de circuitos adicionales para
calibrarlo
externamente.
La
baja
impedancia de salida, su salida lineal y su precisa calibración hace posible que este integrado sea instalado fácilmente en un circuito de control. Debido a su baja corriente de alimentación se produce un efecto de auto calentamiento muy reducido. Se encuentra en diferentes tipos de encapsulado, el más común es el TO-92, utilizada por transistores de baja potencia.
ARDUINO
Arduino es una plataforma
de hardware libre,
basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso
de
la
electrónica
en
proyectos
multidisciplinares. El hardware consiste
en
microcontrolador Atmel
una
placa
AVR y
con
un
puertos
de entrada/salida. Los micro controladores más usados
son
elAtmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque (boot loader ) que corre en la placa.
SERVOMOTOR Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y 1
mantenerse estable en dicha posición.
Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición. Los servos se utilizan frecuentemente en sistemas de radio control y en robótica, pero su uso no está limitado a éstos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos.
FOTORESISTENCIA Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor, fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuya siglas, LDR, se originan de su nombre en
inglés light-dependent resistor . Su cuerpo está formado por una célula o celda y dos patillas. En la siguiente imagen se muestra su símbolo eléctrico.
El valor de resistencia eléctrica de un LDR es bajo cuando hay luz incidiendo en él (puede descender hasta 50 ohms) y muy alto cuando está a oscuras (varios megaohmios).
FOTORESISTENCIA Diodo
emisor
de
luz
infrarroja
(LED
IR).
Este LED emite un tipo de radiación electromagnética llamada infrarroja , que es invisible para el ojo humano porque su longitud de onda es mayor a la del espectro visible.
Ya que no podremos ver a simple vista si nuestro emisor esta funcionando (al polarizarlo), tendremos que comprobarlo utilizando alguna cámara de fotografía o video digital, como la de nuestro celular.
Fototransistor.
Este dispositivo se diferencia de un transistor común por que su base ha sido sustituida por un cristal fotosensible que regula el flujo de corriente colector – emisor de acuerdo a la luz incidente sobre él (en nuestro caso luz infrarroja). El fototransistor , aunque con la apariencia de un LED común, debe conectarse con la patilla larga a masa y la corta a voltaje. Bueno, con los términos básicos aclarados, veamos el esquema del emisor y el receptor:
Proyecto Sistema para abrir cochera
Este sistema utiliza un interruptor que programado desde arduino es capaz de abrir y cerrar una cochera, esto se logra al accionar un servomotor de 180° conectado a la placa. Materiales
* Cable * Servomotor 180° 5v * interrupter on/off
Sistema para alumbrado externo
Para este se utiliza varios leds emisores de luz implantados alrededor de la casa, su funcionamiento se basa en que; cuando la fotorresistencia recibe la mayor cantidad de luz los focos se apagan simulado que es la luz solar, debido a esto los focos no pueden estar prendidos, y por el contrario cuando la foto resistencia no recibe luz los focos se encienden que simularía la noche. Materiales
Leds emisores de luz
Fotorresistencia
Resistencia de 1 khm y 10 khom
Sistema para alerta ante intruso.
Consiste en que si alguien saltase a la terraza de la casa este será detectado, esto se lograra cuando la persona interrumpa la señal entre un emisor y receptor de infrarrojos activando una alarma que permita darnos cuenta que el intruso ha entrado. Materiales
Buzzer
Cable
Led emisor de infrarrojos
Led receptor de infrarrojos
Led emisor de luz
Potenciómetro de 220 ohm
Sistema para el encendido de luz de un cuarto
Este se activara cuando la persona entre al cuarto de lavado, la luz permanecerá encendida por un tiempo y luego se apagara, dependiendo si vuelve a interrumpir la señal entre los infrarrojos. Materiales
Cable
Led emisor de infrarrojos
Led receptor de infrarrojos
Led emisor de luz
Potenciómetro de 220 ohm
Sistema para encendido del ventilador
Hace el uso de un sensor de temperatura para ser precisos el lm35 el cual conectado al arduino registrara el cambio de temperatura, cuando esa temperatura supere los 24° centígrados el ventilador se enciende. Materiales
Sensor lm35
Cable
Ventilador
Encendedor
Código
En
Arduino
///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera #include // Garage int push=9;//para el pulsador int tiempo=3000;
Servo puerta; int contadorg=0; void monitoriza_seguridad(){ Serial.print("El valor del IRDA2 = =D "); Serial.println(push); delay(500); }
///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////ALARMA // Pequeño programa para detectar si hay un obstáculo entre el transmisor y receptor infrarrojo. // set pin numbers: const int buttonPin = 12;
// Pin de entrada
const int ledPin = 13; const int manual = 7; const int apagar = 8; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the pushbutton status int botonledpin = 0; int estado=0; int alarma = 0; int apagaralarma =0;
///////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////ALARMA ///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION
DE
CUARTO // Pequeño programa para detectar si hay un obstáculo entre el transmisor y receptor infrarrojo. // set pin numbers: const int buttonPin2 = 10;
// Pin de entrada 12
const int ledPin2= 5; // 13 // the number of the LED pin // variables will change: int buttonState2 = 0; // variable for reading the pushbutton status ///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION
DE
CUARTO ///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA int lightPin = 0; //define el pin de la foto-resistencia int ledPin3=11; int valor;
//define el pin para el LED
//define una variable en la que haremos los cálculos
int valor1; int min = 0;
//valor mínimo que da la foto-resistencia
int max = 1023;
//valor máximo que da la foto-resistencia
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA void setup() {
///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera
//Garage pinMode(9,INPUT); Serial.begin(19200); puerta.attach(3);
///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////ALARMA // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT);
pinMode(manual, OUTPUT); pinMode(apagar, INPUT);
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// ALARMA
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION
DE
CUARTO // initialize the LED pin as an output: pinMode(ledPin2, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin2, INPUT);
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION
DE
CUARTo ///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA Serial.begin(9600); //Inicializa la comunicación serie pinMode( ledPin3, OUTPUT ); ///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA } ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera void garage(){ if(digitalRead(push)==HIGH & contadorg==0) { puerta.write(180);
delay(1000); puerta.write(0); contadorg=1; } if(digitalRead(push)==LOW) { puerta.write(0); contadorg=0; } }
///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocoche void loop(){ ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera garage(); ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////servocochera ///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////ALARMA // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); botonledpin = digitalRead(ledPin); estado = digitalRead(manual); apagaralarma = digitalRead(apagar);
// check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) {
alarma= alarma+1; // led se prende cuando hay un obstaculo entre el transmisor y receptor
} if(alarma == 1){ digitalWrite(ledPin, HIGH);
}
if(botonledpin == HIGH){ digitalWrite(manual, HIGH); delay(500); digitalWrite(manual, LOW); delay(500); } if(apagaralarma == LOW){ digitalWrite(ledPin, LOW); digitalWrite(manual, LOW);
} ///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////ALARM A
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION CUARTO
// read the state of the pushbutton value: buttonState2 = digitalRead(buttonPin2);
// check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState2 == HIGH) { // led se prende cuando hay un obstaculo entre el transmisor y receptor digitalWrite(ledPin2, HIGH); delay(100);
}
else { // led se apaga cuando no se obstruye el paso entre el transmisor y el receptor digitalWrite(ledPin2, LOW); }
DE
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////ILUMINACION
DE
CUARTO
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA valor = analogRead(lightPin); Serial.println(valor); valor1 = map(valor, min, max, 0, 255);
if(valor1>=200){ analogWrite(ledPin3,0); } if(valor1<200 && valor >=150){ analogWrite(ledPin3,64);
} if(valor1<150 && valor >=100){ analogWrite(ledPin3,128);
}
if(valor1<100 && valor >=50){ analogWrite(ledPin3,192);
} if(valor1<50 && valor >=0){ analogWrite(ledPin3,255);
}
///////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////FOTORESISTENCIA LUZ EXTERNA Temperatura const int sensor =1; long miliVolts; long temperatura;
void setup(){
Serial.begin(9600);
pinMode(3,OUTPUT);
}
void loop(){
miliVolts=(analogRead(sensor)*5000L) / 1023;
temperatura=miliVolts/10;
Serial.print("temperatura="); Serial.println(temperatura); delay(1000);
if(temperatura>=24)
{ digitalWrite(2, HIGH); } }
Conclusión Existen un sinfín de proyectos que aluden a la creación de casas inteligentes, pero cada uno diferente debido a que cada uno tiene diversas formas de ver las cosas. Este proyecto nos ayudó a reafirmar los conocimientos adquiridos durante el semestre en la materia, pero no solo eso ejército nuestra creatividad, la capacidad para dar soluciones a problemas comunes y nos dio mayor conocimiento pues tuvimos que hacer investigaciones adicionales. esto brindo un panorama más general de lo que podemos lograr y a la vez darnos cuenta que el mundo de arduino y los circuitos integrados es muy amplio y que si en realidad queremos hacer proyectos importantes debemos meternos de lleno a este mundo.