You are on page 1of 21

Universidad Privada Domingo Savio

Carrera: Ing. En Redes y Telecomunicaciones


Materia: Sistemas Digitales II

Domótica Casa Inteligente

Integrantes: Ignacio Mier Gustavo Mauricio

Villarroel Vargas Melany Brenda

Docente: Ing. Monica Liz Ustariz Vasquez


Índice
Pág.

1. INTRODUCCIÓN……………………………………………………………………………………………………….….3
2. Antecedentes………………………………………………………………………………………………………………3
3. Justificación……………………………………………………..………………………………………………………….3
4. Objetivo General …………………………………………………….……………………………………...………….4
5. Implementación Del Software……………………………………………………………………………………..4
6. Implementación Del Hardware……………………….……………………………………………………………5
6.1. Componentes………………………………………………………………………………………………………..5
6.2. Maqueta………………………………………………………………………………………………………………11
7. Circuito………………………………………………………………………………………………………..……........ 11
8. Procesos…………………………………………………………………….……………………………………..…..... 12
9. Dificultades Encontradas ……………………………………………………………………………….……......14
10. Soluciones Adoptadas….……………………………………………………………..……………………….…...14
11. Código Fuente…………………………………………………………..…………………………………...............15
11.1. Casa inteligente……………………………………………………………………………………………..15
1. Introducción
Con el presente trabajo daremos a conocer la forma de desarrollar una casa
inteligente esto a base de los conocimientos adquiridos en la materia como por
indagación propia así es como se puso en marcha su creación, donde es
programado por medio de códigos que son mandados al arduino para que
realice las tareas ya determinadas en la estructura de la maqueta y del
cableado combinada con el código buscamos obtener un ambiente agradable y
seguro para con el usuario, por el cual podrá acceder al encendido y apagado
de las luces en las diferentes habitaciones, para abrir y cerrar la puerta principal
y el garaje, por otra parte también se implementó una alarma ubicada en un
espacio de la vivienda el cual actual al recibir una cierta luminosidad de luz.
El usuario puede acceder a todo este control de la Casa Inteligente por medio
de una aplicación en Android.

2. Antecedentes
La implementación de las Casas Inteligentes comienza en Japón, para una
mayor facilidad de manejo atreves de puertos conectados a Internet o
mediante un módulo Bluetooth.

Para tener una conexión estable es necesario una placa Arduino como
controlador principal. Ya que con esta placa de Arduino se realizan
proyectos de implementación en diversos campos de la Tecnología.
Este sistema busca eliminar barreras y mejorar el día a día de los Usuarios.

3. Justificación
Al obtener este proyecto, el usuario podrá relacionarse con mayor facilidad
para controlar los ambientes de su vivienda, podrá abrir y cerrar la puerta
principal, accederá al encendido y apagado de las luces y podrá regular la
intensidad de luz que se emite en las habitaciones, así también para abrir y
cerrar la puerta del garaje en la aplicación le avisara en tiempo real si está
abierta o no así también les brinda un sistema de seguridad y de control de la
Luminosidad del ambiente muestra un mensaje para cada componente
mencionado anteriormente.

En el mercado actual esto va dirigido a todo tipo de personas en general, en


especial a las personas que sufren de alguna capacidad o que no tengan
suficiente tiempo para hacer esas actividades.

3
4. Objetivo general
Implementar una casa inteligente. Haciendo uso de componentes electrónicos
del área de sistemas digitales haciendo uso de los conocimientos adquiridos,
para el control del funcionamiento de luces, puertas, y sistema de alarma
automatizados.
5. Implementación del software

Las versiones utilizadas son:


Arduino 2.1.0.5

Se hace uso de la librería Servo para controlar la acción que realizara los
diferentes servomotores, los cuales permiten abrir y cerrar las puertas.

4
Android
Versión 0.155 - Techbittar

Esta interfaz nos permite el control absoluto para realizar diferentes tareas
en una casa inteligente.
6. Implementación de hardware
6.1. Componentes:
 Arduino Uno

5
 Protoboard

 Servomotores

Servomotor SG90

6
ServomotorS3003

 Sensor de Luz

 Diodo Led

7
 Resistencias

220 Ohm

1k

10k

8
 Cables

 Batería 9V

9
 USB PS2

 Buzzer

 Panel solar

10
 Switches

6.2. Maqueta:

7. Circuito

Las conexiones se emularon en Proteus y en Fritzing

Conexiones BUZZER y LDR

Conexión LDR Y LED

11
Conexión servomotor

8. Procesos
Para la Implementación de la alarma hicimos el armado con un sensor de luz
LDR el cual le dimos un rango de luminosidad de 400. Este mismo iba al puerto
análogo A0 con una resistencia de 10k.

El buzzer se conectó el negativo al GND de arduino por medio de una


Protoboard y el positivo fue al Pin digital 12 del arduino.

12
El Led rojo se conectó a una resistencia 220 Ohm la cual fue al Pin 11 del
arduino. Se hizo el mismo procedimiento para los Leds que iban conectados a la
habitación pero en el Pin 5 y la sala al Pin 4.

La conexión de los postes de luz se hizo 3 filas en serie y al final en paralelo para la
conexión el cual iba a un panel solar de 9V y también iba al pin 7 del arduino.

Se hizo uso de dos switches esto para controlar de forma manual.

Se instalaron Leds blancos en cada uno de los edificios el cual estaban


conectados al arduino.

Los Postes de luz

13
Conexión Final
9. Dificultades encontradas

-En la conexión de los servomotores la salida GND tenía que ir conectado a la batería
9v pero la conexión era débil.
-Se quemó el diodo led en la primera prueba por la resistencia.
-La soldadora

10. Soluciones adoptadas


- En la conexión de los servomotores la salida GND tenía que ir conectado a la batería
9v pero la conexión era débil la solución fue conectar GND del servo al GND del
arduino y al GND de la batería 9V

- -Se quemó el diodo led en la primera prueba por la resistencia que era de 100 Ohm la
solución fue sustituir una resistencia de 220 Ohm.

14
- La soldadora, al tener la ausencia de la misma optamos por cinta aislante.

11. Código fuente


11.1. Casa inteligente
#define CARACTER_INICIO_CMD '*'

#define CARACTER_FINAL_CMD '#'

#define CARACTER_DIV_CMD '|'

#define ESCRITURA_DIGITAL_CMD 10

#define ESCRITURA_ANALOGA_CMD 11

#define TEXTO_CMD 12

#define LECTURA_ARDUDROID_CMD 13

#define MAX_COMMAND 20

#define MIN_COMMAND 10

#define LONGITUD_ENTRADA_STRING 40

#define ESCRITURA_ANALOGICA_MAX 255

#define PIN_ALTO 3

#define PIN_BAJO 2

#include <Servo.h>

Servo servo1;

Servo servo2;

int ledPin=11;

int buzzer=12;

int ldrPin=A0;

int ang=90;

String inText;

15
void setup() {

servo1.attach(9,100,2300);

servo2.attach(3,100,2100);

pinMode(ledPin,OUTPUT);

pinMode(buzzer,OUTPUT);

pinMode(ldrPin,INPUT);

Serial.begin(9600);

Serial.println("Casa Inteligente UPDS");

Serial.flush();

void loop()

//alarma

int ldrStatus=analogRead(ldrPin);

if (ldrStatus >= 400)

tone(buzzer,100);

digitalWrite(ledPin,HIGH);

delay(150);

noTone(buzzer);

digitalWrite(ledPin,LOW);

delay(150);

16
Serial.println("-------ALARMA ENCENDIDA-----");

else

noTone(buzzer);

digitalWrite(ledPin,LOW);

Serial.flush();

int ard_command = 0;

int pin_num = 0;

int pin_value = 0;

char get_char = ' '; //lee serial

// esperar a que los datos entren

if (Serial.available() < 1) return; // si no hay datos en el serial retornar al Loop().

// analizar entrada de indicador de inicio de comando

get_char = Serial.read();

if (get_char != CARACTER_INICIO_CMD) return; // si no hay indicación de inicio del sistema,


volver loop ().

// parse incoming command type

ard_command = Serial.parseInt(); // read the command

// Analizar el tipo de comando entrante

pin_num = Serial.parseInt(); // leer el pin

pin_value = Serial.parseInt(); // leer el valor

// 1) OBTENER COMANDO DE TEXTO

if (ard_command == TEXTO_CMD){

17
inText =""; // borra variable para nueva entrada

while (Serial.available()) {

char c = Serial.read(); // recibe un byte de la memoria intermedia serie

delay(5);

if (c == CARACTER_FINAL_CMD) { // si la cadena completa ha sido leida

break;

else {

if (c != CARACTER_DIV_CMD) {

inText += c;

delay(5);

// 2) OBTENER DATOS DE digitalWrite

if (ard_command == ESCRITURA_DIGITAL_CMD){

if (pin_value == PIN_BAJO) pin_value = LOW;

else if (pin_value == PIN_ALTO) pin_value = HIGH;

else return; // error en el valor de PIN. regresar.

set_digitalwrite( pin_num, pin_value);

return; // regrese al inicio de loop()

// 3) GET analogWrite DATA FROM

if (ard_command == ESCRITURA_ANALOGA_CMD) {

analogWrite( pin_num, pin_value );

return; // Done. return to loop();

18
}

// 4) Enviar datos a ARDUDROID

if (ard_command == LECTURA_ARDUDROID_CMD) {

Serial.print(" Analogo 0 = ");

Serial.println(analogRead(A0));

return; // Listoe. regrese al loop();

// 2a) seleccionar el pin # solicitado para la acción digitalWrite

void set_digitalwrite(int pin_num, int pin_value)

switch (pin_num) {

case 13:

pinMode(13, OUTPUT);

digitalWrite(13, pin_value);

break;

case 12:

pinMode(12, OUTPUT);

digitalWrite(12, pin_value);

break;

case 11:

pinMode(11, OUTPUT);

digitalWrite(11, pin_value);

break;

19
case 10:

pinMode(10, OUTPUT);

digitalWrite(10, pin_value);

break;

case 9:

pinMode(9, OUTPUT);

digitalWrite(9, pin_value);

//s3003 servo

servo1.write(1200);

break;

case 8:

pinMode(9, OUTPUT);

digitalWrite(9, pin_value);

//s3003 servo

servo1.write(2150);

break;

case 7:

pinMode(7, OUTPUT);

digitalWrite(7, pin_value);

Serial.println("Luces de los postes Encendidas");

break;

case 6:

pinMode(6, OUTPUT);

digitalWrite(6, pin_value);

Serial.println("Luz Garaje Encendida");

break;

20
case 5:

pinMode(5, OUTPUT);

digitalWrite(5, pin_value);

Serial.println("Luz Dormitorio Encendida");

break;

case 4:

pinMode(4, OUTPUT);

digitalWrite(4, pin_value);

Serial.println("Luz sala Encendida");

break;

case 3:

pinMode(3, OUTPUT);

//servo s90

digitalWrite(3, pin_value);

servo2.write(100);

break;

case 2:

pinMode(3, OUTPUT);

digitalWrite(3, pin_value);

//sg90 servo

servo2.write(250);

break;

// por defecto

// si nada más fue seleccionado, hacer el defecto (default)

// default es opcional

21

You might also like