You are on page 1of 28

APLICACIÓN DE CONTROL DEL PROYECTO CASA DOMÓTICA

La aplicación para el control de la casa domótica se desarrolló en la plataforma de
internet App Inventor.

Se seleccionó este tipo de plataforma online debido a que es muy sencilla de utilizar
y de programar, por ello solo se necesita un poco de sentido común y ver algunos
tutoriales en internet para empezar a desarrollar aplicaciones para los teléfonos.

Ahora bien la aplicación de la “Casa Domótica” está constituida de varias pantallas
o bien como lo maneja la plataforma App Inventor “Screens”.

Además nos ofrece la opción de envió de datos mediante bluetooth.

A continuación se mostraran las diferentes pantallas con las que cuenta la
aplicación, su respectivo funcionamiento y su programación.

Pantalla MENU PRINCIPAL.

La pantalla principal de la aplicación esta designada por el Screen1 o bien como se
indica en la parte superior izquierda de la pantalla, esta es la interfaz del menú
principal.

El menú principal está constituido por los siguientes elementos:

Label1: este elemento únicamente sirve para que en la pantalla aparezca la
leyenda de CONTROL INTELIGENTE, como se puede apreciar En la
pantalla de la aplicación.

Button1: este elemento no es más que un botón que en la aplicación aparece
con el nombre de CONTROL DE LUCES INTERIORES DE LA CASA y que
al ser presionado nos manda a otra ventana llamada CONTROL_INTERIOR
(Imagen1), que más adelante se explicara su funcionamiento y configuración.

Imagen1.

Button2: este elemento o botón aparece en el interfaz del menú con el
nombre de CONTROL DE LUCES EXTERIORES y que al presionarlo nos
enlaza o lleva a otra pantalla llamada CONTROL_EXTERIOR (imagen2), la
cual más adelante se explicara.

más adelante se explicara el funcionamiento de esta pantalla. Notifier1: este elemento se encarga de abrir una pantalla de notificación cada que nosotros queramos salir de la aplicación (imagen4).2. y está diseñada para salir de la aplicación.3): es un elemento que únicamente nos ayuda a establecer cierto espacio entre cada elemento. Imagen2 Button3: este elemento también es un botón que aparece en el interfaz del menú con el nombre de CONTROL DEL PORTON DE LA ENTRADA y que al presionarlo nos envía una pantalla llamada CONTROL_PORTON (Imagen3). pero también tiene la opción de cancelar la . Imagen3 HorizontAgarrement(1.

Imagen4 A continuación se muestra la programación o configuración (imegen5) de cada elemento contenido dentro de la pantalla MENU PRINCIPAL: Bloque 1 Bloque 2 Bloque3 Bloque 4 Bloque 5 Imagen5 . posibilidad de salir de la aplicación. a continuación se muestra una captura de pantalla de dicha ventana.

En el Bloque 2. 2. se establece la configuración o programación de cada elemento.Como se puede apreciar en la imagen anterior. es decir. sin embargo como se puede apreciar solo se configuro Button1Text con la leyenda SI por ello solo aparecerá este botón de los dos disponibles. Además también se configuró en este bloque la opción de cancelar. 3. entonces si se selecciona la opción Si entonces se cerrara la aplicación (close aplication). se establece que cuando Button3 se presione. se abrirá la pantalla o Screen de nombre CONTROL_INTERIOR. se abrirá la pantalla o Screen de nombre CONTROL_EXTERIOR. por ello en la ventana de notificación aparece el botón con la leyenda Cancelar 5. de manera que: 1. también desplegara el mensaje ¿Desea salir de la aplicación?. se establece que cuando Button2 se presione. En el Bloque 4. se establece que cuando se requiera salir de la aplicación entonces se mostrara una ventana auxiliar que lleva por nombre CERRA APLICACIÓN. En el Bloque 3. cuando Notifer1 se mande a llamar. En el Bloque 1. se establece que cuando Button1 se presione. Este bloque es un complemento del Bloque 4. ya que se habilito con la opción lógica true. se abrirá la pantalla o Screen de nombre CONTROL_PORTON. Ahora bien la configuración este bloque es solo para complementar la opción de salir de la aplicación. posteriormente en esta configuración aparece la opción Button1Text y Button2Text. . 4.

Pantalla CONTROL_INTERIOR. Ahora bien para la programación de los botones se utilizó prácticamente la misma configuración para cada elemento. CONTROL_INTERIOR (Imagen 1) es una pantalla albergada en la aplicación CASA DOMÓTICA y contiene un menú diseñado para seleccionar el cuarto que se desea contralar el encendido y apagado de las luces pero también nos otorga la opción de controlar el nivel de iluminación para ciertos cuartos. como se puede apreciar en la imagen anterior. como se muestra a continuación (imagen 6): . el interfaz de la ventana en cuestión es la siguiente: Imagen 1 Esta ventana contiene nueve botones.

procesarlos y determinar el tipo de salida que tendría. la cual está establecida en los cuadros de texto (los recuadros de color rosa) Luego entonces la única diferencia se marca en los cuadros de texto. es decir. cuando se presiona por ejemplo Button1. CUART_1 Esta ventana o Screen fue la primera en desarrollarse como parte del proceso de emisión de datos. Imagen 6 Como se puede apreciar en la imagen anterior prácticamente la configuración es muy similar. Este Screen cuenta con cinco botones como lo muestra la siguiente imagen: . según nuestro diseño. para posteriormente recibirlos. entonces nos manda a la ventana CUART_1 o como bien lo establece la configuración al seleccionar cualquier botón entonces no abrirá una nueva ventana.

En contraparte tenemos el botón negro que aparece con la leyenda de APAGAR. y de color azul. este tiene la función de apagar la luminaria del cuarto uno. más adelante se explicara su programación y/o configuración. Este botón permite establecer una comunicación entre nuestro dispositivo móvil y nuestro módulo de bluetooth. el cual de acuerdo a nuestro diseño se determinó que encendería el primer cuarto de nuestra CASA DOMÓTICA.El primer botón es un ListPicker. más adelante se mostrara su configuración con la cual se lograría en conjunto con el módulo de bluetooth y el módulo de control llevar a cabo la acción de prender la luminaria de este cuarto. Posteriormente aparece un botón de color rojo y que aparece con la leyenda PRENDER. aparece con el nombre de SINCRONIZAR. y solo funciona si dentro de nuestra área de trabajo si hay insertado un BluetoothClient (el cual es un componente no visible en nuestra ventana). .

A continuación se muestra la configuración y/o programación de cada uno de los botones: Bloque 1 Bloque 2 Bloque 3 Bloque 4 Bloque 5 Bloque 6 Como se puede observar en la imagen anterior. es decir cuando presionamos el botón SINCRONIZAR. nos aparece una lista de dispositivos disponibles para sincronizar con nuestro teléfono.Enseguida aparece un botón de color azul que aparece con la leyenda de REGRESAR AL MENU ANTERIOR y que está configurado para regresar al menú anterior. Finalmente aparece el botón de color naranja y que aparece con la leyenda REGRESAR AL MENU PRINCIPAL. luego entonces la dirección de nuestro módulo de bluetooth aparecerá si y solo si nuestro módulo de bluetooth previamente ya había sido vinculado con nuestro teléfono y además este módulo está siendo alimentado por una fuente de energía de 5 VCD . Este botón como su nombre lo indica nos regresa al menú principal. La configuración del Bloque 1 nos permite ver la dirección de nuestro módulo de bluetooth antes de que nos conectemos a este. menú que se encarga del control interior de la iluminación de la CASA DOMOTICA. hay seis bloques de programación.

la única diferencia es que se envía la letra “B”. Más adelante se mostrara el código de programación de nuestro Arduino en el cual se muestran las líneas de programación designadas a la letra “A” El Bloque 4 tiene la misma configuración que el Bloque 3. al presionar el botón con la leyenda REGRESAR AL MENU ANTERIOR. y está configurado para que una vez que se haya seleccionado el botón SINCRONIZAR y posteriormente se haya seleccionado la dirección de nuestro módulo de bluetooth. un led indicador (contenido en nuestro módulo de bluetooth) se enciende fijamente. entonces el led indicador de nuestro módulo de bluetooth está prendiéndose y apagándose intermitentemente. En Bloque 3 se llevó a cabo la primera emisión de datos. ya que cuando se ha establecido comunicación fija o correcta. El Bloque 6 está configurado para que al ser presionado nos retorne al MENU PRINCIPAL o Screen1. ya que en su configuración. . entonces nuestro teléfono y el módulo de bluetooth ya estarán sincronizados para intercambiar datos. Caso contrario se da cuando no se establece comunicación entre el teléfono y el módulo de bluetooth.La configuración del Bloque 2 nos permite establecer comunicación entre nuestro dispositivo móvil y el módulo de bluetooth. al seleccionar este botón se envía la letra “A” a nuestro módulo de bluetooth. Ahora bien en la programación de nuestro módulo de control Arduino Uno se designaron líneas de programación específicas al momento de que el puerto de recepción de nuestro Arduino leyera la letra “A”. Nosotros como usuarios del proyecto nos podremos dar cuenta cuando el teléfono y el módulo de bluetooth ya están sincronizados. El Bloque 5 únicamente está configurado para retornarnos a CONTROL_INTERIOR.

solo que el tipo de dato enviado es diferente. sin embargo la pantalla CUARTO_8 está configurado de la misma manera. y se intercambió la posición de los botones ya que en este caso primero se colocó el botón APAGAR y después el botón PRENDER y el tipo de dato enviado en el primer botón fue la letra “C” y la letra “D” respectivamente. A continuación se muestra la imagen del Screen CUARTO_8.La anterior programación fue de la pantalla o Screen CUART_1. así como su respectiva programación: .

Bloque 1 Bloque 2 Bloque 3 Bloque 4 Bloque 5 Bloque 6 Bloque 7 Bloque 8 Bloque 9 . básicamente es la misma configuración. CUARTO_3. únicamente los datos de envió vio cambian. CUARTO_5. A continuación se muestra la interfaz del Screen CUARTO_2 y su respectiva configuración.En CUARTO_2. CUARTO_6 y CUARTO_7. CUARTO_4.

Del Bloque 3 al Bloque 7 prácticamente es la misma configuración excepto por el texto enviado en cada uno de los bloques. de modo que el Arduino a través de líneas de programación se encargaría de ejecutar ciertas instrucciones y puertos de salida. Y en los bloques 8 y 9 únicamente nos retornan a menús anteriores. hacia el módulo de bluetooth. A continuación en la siguiente imagen se muestra el interfaz de la pantalla CONTROL_EXTERIOR. PANTALLA O SCREEN “CONTROL_EXTERIOR” Esta pantalla se diseñó para enviar letras a través del bluetooth del teléfono.Como se había explicado en anteriores párrafos los dos primeros bloques (Bloque 1 y Bloque 2) sirven para mostrar la dirección de nuestro módulo de bluetooth. así como la respectiva configuración de sus diversos elementos que lo componen: . pero también para sincronizar el teléfono con el módulo de bluetooth. una vez que nosotros lo seleccionemos.

PANTALLA “CONTROL_PORTON”.Si observamos la configuración de los botones es similar a la programación anteriores Screens ya que los primeros dos bloques están configurados para mostrar la dirección del módulo de bluetooth y para sincronizar el dispositivo móvil con el módulo de bluetooth. Esta pantalla esta designada para controlar el portón de la entrada de nuestro proyecto CASA DOMOTICA. que en este caso es el menú principal. . El último bloque como en anteriores explicaciones solo sirve para regresar al menú anterior. Por otra parte los demás bloques envían diferentes datos al módulo de bluetooth. A continuación se muestra la imagen del Screen CONTROL_PORTON y su respectiva programación. eso depende el tipo de botón que seleccionemos.

claro está para tener la posibilidad de retornar al menú anterior o Screen1 que es nuestro menú principal.Como se aprecia en la imagen anterior la configuración de los botones se hizo para entablar comunicación entre el dispositivo móvil y el módulo de bluetooth para el intercambio de datos. .

LAYOUT DEL CABLEADO DE LA CASA IMAGEN DE LA DISTRIBUCION REAL DE LA CASA .

tres y cuatro de nuestra planta baja se controlará el nivel de iluminación. También hay que resaltar que en el cuarto dos. así como los cables de alimentación de la . Cabe mencionar que el arnés de cables de los sensores de presencia también los que activan la lámpara de la escalera.En la imagen anterior. En la imagen de la distribución del cableado eléctrico de la planta baja de nuestra casa. se aprecia el layout del cableado de la parte baja de nuestra casa. y de ahí hasta nuestro centro de control. la cual consta de cuatro cuartos. cabe mencionar que en el cuarto uno que es la cochera hay dos focos que están conectados al mismo pin de salida del módulo de control Arduino Uno por ello al momento de prender una lámpara por consiguiente se prende la otra. ya que todo el cableado pasa por un ducto hasta la azotea. si nos percatamos todos los cables van hacia una dirección.

de la planta baja. . Esta fue la plantilla utilizada para la colocación de los leds de iluminación para cada cuarto. luego hacia el ducto de cables y de ahí hacia el módulo de control Arduino Uno y Modulo relé Los sensores de la escalera están alimentados con los 5 volts de salida que nos provee nuestro Arduino Uno y la lámpara de la escalera está alimentada por un eliminador de 12 Volts a 1 Ampere de salida.lámpara también llegan hasta la parte superior de la planta alta.

PLANTA ALTA.LAYOUT DE LA DISTRIBUCIÓN DEL CABLEADO DE LA PLANTA ALTA DE LA CASA DOMÓTICA LAYOUT REAL DE LA DISTRIBUCION REAL DE LA CASA. PLANTA BAJA LAMPARA DE ESCALERA LAMPARA 3 CUARTO 3 Up H SENSOR PLANTA H LAMPARA 4 Up PLANTA BAJA ALTA SENSOR CUARTO 2 LAMPARA 2 LAMPARA 1 LAMPARA 5 DUCTO ELCTRICO CUARTO 4 CUARTO 1 .

La imagen anterior no es más que la plantilla ya ensamblada y cableada de la planta alta de nuestra CASA DOMÓTICA y que al igual que en nuestra planta baja el cableado pasa por un ducto. no sin olvidarnos de la aplicación: a continuación se muestra una imagen de la ubicación de las luces exteriores: Las luces exteriores están alimentadas por un eliminador de 12 Volts a 1 ampere de salida. LAMPARA 1 . para después llegar a nuestro módulo de control Arduino Uno y módulo de relés LUCES EXTERIORES: Son solo dos focos de 12 VCD que son controlados por un módulo de relés. eL Arduino Uno y el módulo de bluetooth.

PORTON ELECTRICO: El portón eléctrico fue elaborado con con materiales reciclados ya que se utilizó un motoreductor de un juguete. un riel fabricado con piezas de actuadores eléctricos de carro y además se utilizó un engrane para el deslizamiento del riel: a continuación se muestra en la siguiente imagen el ensamble del portón: .

//PIN ASIGNADO PARA LA SALIDA DEL SENSOR POSICION ABAJO pinMode(11.//PIN ASIGNADO PARA LUZ EXTERIOR pinMode(14.//PIN ASIGNADO PARA EL PORTON pinMode(17. int s2 = 8.OUTPUT).// PIN ASIGNADO PARA EL PORTON pinMode(16.//PIN ASIGNADO PARA LA SALIDA POSICION ABAJO DE LA ESCALERA pinMode(15.El portón eléctrico es alimentado por un eliminador de 5 volts a 500 mili amperes de salida LINEAS DE PROGRAMACIÓN PARA LA CONFIGURACIÓN DE MÓDULO DE CONTROL ARDUINO UNO Y LA INTERPRETACIÓN DE LOS DATOS RECIBIDOS POR EL MÓDULO DE BLUETOOTH.// SENSOR PARTE BAJA pinMode(6.OUTPUT). int retardo=100.OUTPUT).OUTPUT).OUTPUT).OUTPUT).//DIMMER CUARTO7 pinMode(10.//DIMMER CUARTO5 pinMode(8. int s1 = 7.OUTPUT). //INICIO DEL PROGRAMA int estado=0. void setup(){ pinMode(19.//PIN ASIGNADO PARA LUZ EXTERIOR pinMode(13.// SENSOR PARTE ALTA pinMode(7.OUTPUT).OUTPUT).OUTPUT).//DIMMER CUARTO3 .//DIMMER CUARTO6 pinMode(9. //PIN ASIGNADO PARA LA SALIDA DEL SENSOR POSICION SUPERIOR DE LA ESCALERA pinMode(18.OUTPUT). int analogo=0.OUTPUT).INPUT).OUTPUT).//PIN ASIGNADO PARA CORTACORRIENTE DEL BLUETOOTH pinMode(12.//DIMMER CUARTO4 pinMode(5.INPUT).

//APAGAR Y PRENDER CUARTO8 pinMode(3.//APAGAR Y PRENDER CUARTO 1 Serial. // Lee lo que llega por el puerto Serie } //A PARTIR DE AQUI EMPEZAMOS A CONTROLAR LA ILUMINACION DEL INTERIOR if(estado=='A'){ // Cuarto1 aqui solo prendemos o apagamos las lamparas digitalWrite(2.LOW). pinMode(4.available()>0){ // Si el puerto serie esta habilitado estado = Serial. //MANTIENE DESENERGIZADO EL MOTOR DEL PORTON digitalWrite(13. } if(estado=='H'){ . } if(estado=='F'){ //Aqui controlamos la iluminacion del cuarto 2 analogWrite(3.HIGH). } if(estado=='B'){ digitalWrite(2.HIGH).OUTPUT).//ENERGIZA O DESENERGIZA EL RELAY DE LA LUZ EXTERIOR if(Serial.HIGH). } if(estado=='G'){ analogWrite(3.//MANTIENE DESENERGIZADO EL MOTOR DEL PORTON digitalWrite(18.HIGH).0).//DIMMER CUARTO2 pinMode(2. delay(1000).8).//ENERGIZA O DESENERGIZA EL RELAY DE LA LUZ EXTERIOR digitalWrite(15.//MANTIENE ENERGIZADO EL MODULO DE BLUETOOTH digitalWrite(14.HIGH).read().begin(9600). } void loop(){ digitalWrite(17.OUTPUT).HIGH).OUTPUT).

} if(estado=='N'){ analogWrite(5. } if(estado=='P'){ //Aqui controlamos la iluminacion del cuarto 4 analogWrite(6. } if(estado=='I'){ analogWrite(3.255). analogWrite(3.255). } if(estado=='M'){ analogWrite(5.0).110). } if(estado=='O'){ analogWrite(5.60).0).110). } if(estado=='J'){ analogWrite(3. } if(estado=='L'){ analogWrite(5. . } if(estado=='Q'){ analogWrite(6.8).8). } if(estado=='K'){ //Aqui controlamos la iluminacion del cuarto 3 analogWrite(5.60).

} if(estado=='T'){ analogWrite(6. } if(estado=='b'){ . } if(estado=='R'){ analogWrite(6. } if(estado=='X'){ analogWrite(9.110). } if(estado=='a'){ //Aqui controlamos la iluminacion del cuarto 6 analogWrite(10.60).60). } if(estado=='Y'){ analogWrite(9.110). } if(estado=='Z'){ analogWrite(9.255). } if(estado=='V'){ analogWrite(9.255).8).0).0). } if(estado=='U'){ //Aqui controlamos la iluminacion del cuarto 5 analogWrite(9. } if(estado=='S'){ analogWrite(6.

} if(estado=='f'){ //Aqui controlamos la iluminacion del cuarto 7 analogWrite(11.0).8).60).255). } if(estado=='e'){ analogWrite(10.60).255).110). } if(estado=='j'){ analogWrite(11. } if(estado=='c'){ analogWrite(10.255). } if(estado=='d'){ analogWrite(10. . } if(estado=='i'){ analogWrite(11. } if(estado=='h'){ analogWrite(11.110). } if(estado=='g'){ analogWrite(11. } if(estado=='D'){ //Aqui solo prendemos o apagamos las lamparas del pasillo y del baño de la planta de arriba ya que estas estan conectadas en serie analogWrite(4.8). analogWrite(10.

//aqui estamos mandabdo una señal negativa para accionar un relay del modulo de relays delay(2000). //aqui estamos mandando una señal negativa para accionar un relay del modulo de relays delay(2000). } //ESTA PARTE ES LA DE LA DE LA ESCALERA if(digitalRead(s1)==0) .LOW).} if(estado=='t'){ digitalWrite(15.} if(estado=='u'){ digitalWrite(15. HIGH). digitalWrite(13.LOW). digitalWrite(13.0).} if(estado=='s'){ digitalWrite(14.LOW).LOW).LOW).LOW).} //ESTA PARTE ES DEL PORTON if(estado=='o'){ digitalWrite(17.HIGH). } if(estado=='p'){ digitalWrite(18.} //ESTA PARTE ES LA DE LA ILUMINACION EXTERIOR if(estado=='r'){ digitalWrite(14. } if(estado=='C'){ analogWrite(4.

HIGH). Serial. } else{ digitalWrite(19. estado=0. } if(estado=='q'){ // envia el valor leido del puerto analogo A0 analogo=analogRead(A0). } . } if(digitalRead(s2)==0) { digitalWrite(19. delay (retardo). } else{ digitalWrite(16. } delay(retardo). delay(5000).println("°C"). Serial.print(analogo). LOW).LOW). HIGH).{ digitalWrite(16. delay(5000).