microcontroladores II
U.T.S
.
PROYECTO CASA DOMOTICA BASADA EN APP INVENTOR Y ARDUINO
Jefferson Estiven Velasco Juan Ramón R. debido a necesidades como confort, seguridad, ahorro de energía comunicación y accesibilidad que tratadas desde el área de la tecnología permiten desarrollar soluciones efectivas con software, el blutto y arduino que presentan una flexibilidad en su programación a la hora de manejar variables en tiempo real.
RESUMEN:
El proyecto se realizó con ARDUINO Y APP INVENTOR, este consta de un sistema controlado por un dispositivo móvil (celular) a partir de una aplicación programada para manejar los sensores, módulos o los distintos tipos de instrumentos que se utilizan en la casa, estos dispositivos anteriormente mensionados se controlaran a distancia por medio de la comunicación comunicación blutto a arduino de tal manera que sean ad tivados o desactivaos a distancia
2 CASA DOMOTICA BASADA EN APPINVENTOR Y ARDUINO
ABSTRACT:
2.1 INVESTIGACION
The project was carried out with ARDUINO AND APP INVENTOR, this consists of a controlled by a mobile (cellular) from a programmed to handle the sensors, modules or different types of instruments used in the home application system, these devices dimensioned previously were controlled remotely through communication blutto arduino so they are activate or remote deactivate
Se desarrolló una búsqueda de información sobre los elementos a utilizar para la creación de la casa automatizada como lo son material de la estructura física, decoración, sensores, actuadores e indicadores.
PALABRAS CLAVE: "APPINVENTOR un orientado a arduino".
software
de
programación
KEYPHRASES:
1 INTRODUCCIÓN MATERIALES
Estructura:
Este proyecto presenta las ventajas que proporcionan los avances tecnológicos en el hogar como lo son las casas automatizadas, las cuales
Láminas de cielo raso PBC –Cartón paja –Foamy -Canaleta
1
microcontroladores II
U.T.S
.
2.4 INVESTIGACION DE PROGRAMACION EN APPINVENTOR
Sensores: Temperatura DS18B20- Gas MQ2 –Luz (LDR)Ultrasónico HC-SR04 –Presencia PIR
2.4.1 QUE ES APPINVENTOR Google App Inventor es una plataforma de Google Labs para crear aplicaciones de software para el sistema operativo Android. De forma visual y a partir de un conjunto de herramientas básicas, el usuario puede ir enlazando una serie de bloques para crear la aplicación. El sistema es gratuito y se puede descargar fácilmente de la web. Las aplicaciones fruto de App Inventor están limitadas por su simplicidad, aunque permiten cubrir un gran número de necesidades básicas en un dispositivo móvil.
Actuadores: 1 Ventilador -5 leds -4 Servomotores Indicadores:
Pantalla LCD para arduino
Microcontroladores: 2 Arduino uno
Fig.1. Investigando
2.2 DISEÑO DE LA CASA
Con Google App Inventor, se espera un incremento importante en el número de aplicaciones para Android debido a dos grandes factores: la simplicidad de uso, que facilitará la aparición de un gran número de nuevas aplicaciones; y Google Play, el centro de distribución de aplicaciones para Android donde cualquier usuario puede distribuir sus creaciones libremente.
En la planeación de las dimensiones a trabajar en la estructuras de la casa se establecieron las medidas de las áreas como habitaciones, baños, sala, comedor, cocina y garaje.
2.4.2 COMUNICACION ARDUINO
APPINVENTOR
Y
La comonicacion entre arduino y la aploicacionn se establece por miedio de las direcciones e ID del blutoo de nuestro dispositivo móvil y nuestro módulo blutoo de tal forma que estos dos se emparejan entre si enviando y recibiendo datos, interpretándolos de tal forma que generamos nuestros pulsos para activar los dispositivos conectados al arduino.
Fig 2. Planos de la casa
2.3 CREACION DE MAQUETA Para el montaje de la maqueta con los planos ya determinados se inicia de la siguiente manera: Corte de base y paredes utilizando láminas de cielo raso de PBC. Ajuste de paredes sobre la base usando súper bonder (pegante) con bicarbonato para mayor consistencia. Corte y ajuste de puertas con los servomotores en los espacios indicados. Elaboración de la decoración y muebles de la casa utilizando cartón paja y Foamy. Instalación de sensores.
2.4 PROGRAMACION EN APPINVENTOR
2
microcontroladores II
U.T.S
. Esta plataforma red en la cual programamos por medios de bloques y no de códigos desde esta plataforma podemos crear la aplicación, diseñar la interfaz y programarla por medio de bloques que es un lenguaje muy sencillo.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.4 Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, y 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 que es ejecutado en la placa.4 Se programa en el ordenador para q ue la placa controle los componentes electrónicos.
2.5.2 PROYECTO PARA ENCENDER MODULOS Y PROGRAMACION EN APPINVENTOR
2.6.2 SENSORES AUTOMATIZADA
UTILIZADOS
EN
LA
CASA
Esto sensores son los encargados de accionar los diferentes componentes utilizados en la casa enviado señales análogas o digitales según sus especificaciones y con estas señales podemos realizar dichas acciones.
En esta plataforma programaos en bloques nuestra aplicación de una forma muy sensilla la cual es asignar un numero o letra,esta la enviamos a nuestro modulo blutto el la recive e interpreta de tal forma quele da la orden al arduino que adtive dicha salida asignada o programada con este carácter leido anteriormente para asi adtivarlo.
2.6.3 módulo de temperatura Este módulo maneja señales analógicas y a partir de estas señales podemos calcular su temperatura
2.6 PROGRAMACION DE LOS SENSORES CON ARDUINO
2.6.4 Modulo LDR Este sensor se encarga de manejar el encendido de las luces dependiendo de la luminosidad que halla en el lugar manejando señales análogas- digítale
Módulo de programación el cual se utiliza para manejar los sensores de la maqueta como son, sensor de temperatura, sensor de luces y manejo del servomotor del garaje
2.6.5 MODULO ULTRASONIDO
2.6.1 QUE ES ARDUINO?
DE
Este sensor se encarga de manejar el desplazamiento del servomotor a partir de la distancia a la cual se
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.
3
microcontroladores II
U.T.S
. allá programado, este sensor maneja una señal digital la cual revota a un objeto y la recibe el otro sensor para así determinar la distancia y dar un valor especifico a la señal
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivel Processing que es similar a C++.
2.6.6 DISPLAY LCD
2.7.1 PROGRAMACION DE LOS SENSORES EN SOFWARE ARDUINO
Este módulo se encarga de mostrar en una pantalla lcd la temperatura de la casa así podemos controlar la temperatura del lugar atreves de un sistema de ventilación activado por un ventilador
#include Servo miservo; LIBRERIAS
//DEFINE
LOS
TIPOS
DE
#define echoPin 7 #define trigPin 8 // DEFINE LOS PINES A UTILIZAR EN EL PROYECTO #define LEDPin 13 int LED_pin=10; int LDR_pin=0; int LDR_val=0; int maximumRange = 20; int minimumRange = 0; long duration, distance;
2.6.7 servomotor
void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); //DEFINE LAS SALIDAS Y ENTRADAS DEL ULTRASONIDO pinMode(LEDPin, OUTPUT); miservo.attach(6); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin,HIGH);//DEFINELOS ESTADOS DEL SENSOR delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration/58.2; if (distance >= maximumRange || distance <= minimumRange){ // COMPARA LAS DISTANCIAS Serial.println("-1"); digitalWrite(LEDPin, LOW); } else { Serial.println(distance); digitalWrite(LEDPin, HIGH); if (LEDPin >= HIGH){ for(int angulo = 0; angulo < 90; angulo += 1) { // un ciclo para mover el servo entre los 0 y los 180 grados miservo.write(angulo); // manda al servo la posicion delay(15);// espera unos milisegundos para que el servo llegue a su posicion }
Estos motores se encargan por medio delos sensores en manejar las puertas de la casa como son la puerta principal y la puerta del garaje
2.7 PRIMERA PROGRAMACION EN ARDUINO UNO
for(int angulo = 90; angulo >= 1; angulo -= 1) { // un ciclo para mover el servo entre los 180 y los 0 grados miservo.write(angulo); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion
4
microcontroladores II
U.T.S
. } } delayMicroseconds(50); } LDR_val = analogRead(LDR_pin); if (LDR_val>=20) // Si hay luz, apago el led { digitalWrite(LED_pin, LOW); // Apagamos el LED } else if (LDR_val<20) // Si no hay luz, enciendo el led { digitalWrite(LED_pin, HIGH); // Encendemos el LED } }
Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" *C "); //Mostramos la información obtenida (temperatura y humedad) en el Monitor Serial //El \t es equivalente al tabulador (separa los datos) //El Serial.prinln nos cambia de linea en la siguiente lectura recibida lcd.begin(16, 2); //Indicamos el LCD que usamos: 16 caracteres y 2 lineas lcd.setCursor(0,0); //Situamos el cursor en la posicion 0 de la primera linea lcd.write("Temperatura: "); lcd.setCursor(12,0); lcd.print(t); lcd.setCursor(14,0); lcd.write((char)223); //Editamos el simbolo de los grados º lcd.setCursor(15,0); lcd.write("C"); lcd.setCursor(0,1); lcd.write("Humedad: "); lcd.setCursor(9,1); lcd.print(h); lcd.setCursor(14,1); lcd.write("%");
2.7.2 PROGRAMACION DEL LCD Y EL SENSOR DE TEMPERATURA #include //Llamamos a la libreria para controlar el LCD incluida en el IDE de Arduino LiquidCrystal lcd(7, 8, 9, 10, 11 , 12); //Definimos los pines asignados al LCD según el esquema de conexión #include "DHT.h" //Llamamos a la libreria de los sensores DHT instalada previamente #define DHTPIN 2 #define DHTTYPE DHT22 //Definimos el pin de Arduino al que conectamos el pin de datos del sensor e indicamos el tipo de sensor (DHT22)
}
2.7.3 PROGRAMACION DEL BLUTOO Y SENSORES ADTIVADOS POR APPINVENTOR
DHT dht(DHTPIN, DHTTYPE); void setup(){ Serial.begin(9600); Serial.println("Prueba DHT22"); //Iniciamos la comunicacion Monitor editamos un texto descriptivo
Serial
LOS
#include Servo servo1; Servo servo2;
y
int estado=0; int retardo=100; int analogo=0;
dht.begin(); //Iniciamos el sensor }
2.7.4 PROGRAMACION CONEXIÓN AL ARDUINO
void loop(){ delay(2000); //Establecemos un retraso porque el DHT22 solo realiza una lectura cada 2 segundos
void setup(){ servo1.attach(4); servo2.attach(5); pinMode(13,OUTPUT); pinMode(12,OUTPUT); pinMode(9,OUTPUT); pinMode(5,OUTPUT); pinMode(4,OUTPUT); Serial.begin(9600); delay(1000); }
float h = dht.readHumidity(); float t = dht.readTemperature(); //Establecemos dos variables, una para la temperatura en ºC y otra para la h umedad relativa en % if (isnan(h) || isnan(t)) { Serial.println("Error al Leer Sensor DHT¡"); return; //Con la funcion isnan controlamos que el valor recibido del sensor sea un número, sino dara error } Serial.print("Humedad: ");
5
DE
LOS
PINES
DE
microcontroladores II
U.T.S
.
2.7.5 PROGRAMACION DE LAS ENTRADAS DEL BLUTOO void loop(){ if(Serial.available()>0){ estado = Serial.read } if(estado== 'a'){ digitalWrite(13,HIGH); } if(estado== 'h' ){ digitalWrite(13,LOW); } if(estado== 'd' ){ digitalWrite(12,HIGH); } if(estado== 'k' ){ digitalWrite(12,LOW); } if(estado== 'e' ){ digitalWrite(9,HIGH); } if(estado== 'e' ){ digitalWrite(9,LOW); }
Diseño de la maqueta
Prueba de sensores
if(estado== 'b' ){ // Movimiento del SERVO 1 servo1.write(0); } if(estado== 'i' ){ servo1.write(90); } if(estado== 'c' ){ // Movimiento del SERVO 2 servo2.write(0); } if(estado== 'j' ){ servo2.write(90); }
Servomotor
}
3.0 RELIZANDO MONTAJE Y PRUEVAS DE LOS SENSORES
se realiza la respectiva programación y diseño en labview
6
Servomotor futaba
microcontroladores II
U.T.S
.
Prueba de sensor de temperatura
3.1 CONCLUCIONES se realizó un diseño de una casa automatizada a partir de sensores y programas como labview para controlar estos sensores de tal forma que la casa se automatice y se ejecute los sensores de la casa para realizar una función específica como lo es manejo automático de luces,puertas,ventilación y manejo de la cámara. Las investigaciones y utilización de los tipos de sensores a utilizar fueron de gran ayuda para llevar a término el proyecto realizado anteriormente. La programación y realización del programa para controlar la interfaz de arduino se basó en conocimientos previos en c++ e investigaciones en el funcionamiento de los sensores que usamos en el proyecto
Proyecto terminado y funcionando con sus respectivas mejoras visuales y accesorios de una casa familiar
7