Sistema domótico que predice la llegada del usuario
Interfaz de usuario movil
Hoy hablaremos sobre la aplicación para móvil de android. Este es el “Splash” de la aplicación. El dibujo es el también el lanzador de la aplicación
La función de esta imagen es preparar la aplicación al inicio de la misma ya que necesita una conexión con el servidor para cargar los objetos, cargar la lista de electrodomésticos disponibles, saber cual es su configuración y el estado en el que se encuentra en ese momento. Por ejemplo, imaginaros que alguien en casa enciende el aire acondicionado, la aplicación cuando se conecte deberá saber que ese electrodoméstico esta encendido y mostrárselo al usuario.
Ahora pasemos a ver la aplicación principal que consta de una lista expandible de electrodomésticos y una sublista con la configuración para cada elemento.
En cuanto a la listas se pueden observar varios elementos:
- Texto del electrodoméstico: Indica el nombre del electrodoméstico (por ejemplo “Cafetera” o “Aire Acondicionado”)
- Texto del modo: Indica en el modo en el que se encuentra. Existen dos modos: modo predictivo y modo tiempo fijo(los explicaremos más adelante).
- Botón Interruptor: (,) Actúa como un habilitador de la vista, activa la configuración seleccionada y habilita el resto de los botones. Si está en gris se encuentra desactivado y en azul activado.
- Botón Modo: (, ,,) Habilita el modo que se desee.Este icono significa que está en modo “tiempo fijo”, significa que el electrodoméstico se encenderá en una hora en concreto y si se desea un hora también para apagarlo. Este otro significa que está en modo “predictivo”, significa que el aparato se encenderá cuando, según el tiempo establecido para que el aparato cumpla su objetivo, el usuario se esté aproximando a la casa. Pongamos un ejemplo para aclarar esto, en el caso de que el aire acondicionado necesita unos 20 minutos para calentar la casa (y esa es su función), si la persona activa la ventana con el modo predictivo y con una configuración de 20 minutos, cuando el servidor compruebe que el usuario tardará menos del tiempo estipulado, el electrodoméstico se encenderá. Así que cuando llegues tendrás la casa calentita para ti sin tener que esperar.
- Botón Encendido: (, , ) Este botón ofrece la información para saber si un electrodoméstico está encendido (Verde) o apagado(azul) y también ofrece la acción de encenderlo y apagarlo sin hacer caso de la configuración predefinida. Si está en gris es porque la vista se encuentra desactivada por el “botón interruptor”.
Esto es todo lo que hay en la parte de lista de objetos, ahora pasemos a explicar la parte de la sublista, ésta actúa como configurador de los dos modos que tenemos. veamos que contiene:
Esta parte pertenece a la configuración de modo ”Tiempo Fijo”, se puede modificar la hora de inicio para encender la aplicación y si activamos el “Check Button” podemos configurar una hora de apagado. Para cambiar las horas, llamo a un “Time Picker Dialog” que se lanza al pulsar en el texto de la hora.
Esta otra parte pertenece a la configuración de modo “Predictivo”, es un “Edit Text” donde se ponen los minutos de preparación del electrodoméstico. Como habíamos explicado anteriormente con un ejemplo, si el aire acondicionado necesita 20 minutos para cumplir su función, se ubica en este apartado. Tambien, por ejemplo, si la cafetera necesita 5 minutos para hacer una jarra de cafe, en la configuración pondríamos 5 minutos. Y el resto lo hacemos nosotros.
También en el menú (Esos tres puntos verticales que se ven en la esquina superior derecha) hay un apartado ayuda que explica brevemente como funciona la aplicación.
El circuito electrónico (2). El sensor ACS712.
En este post vamos a continuar la explicación del circuito electrónico empezada en el post anterior y tratar de explicar como funciona el sensor de corriente ACS712 que hemos usado en nuestro proyecto.
Este sensor de efecto Hall devuelve una tensión proporcional a la corriente que circula a través de sus terminales. En el datasheet nos muestran la conexión:
Siguiendo este esquema al final podremos leer la corriente que circula entre los terminales IP+ e IP- a través del pin 7, el cual estará a una tensión entre 0.5V y 4.5V. Para nuestro proyecto hemos cogido el sensor ACS712 capaz de medir entre +20A y -20A, el cual tiene una sensibilidad de 100mV/A. Esto quiere decir lo siguiente, para una corriente de -20A el pin7 estará a 0.5V e irá subiendo 100mV por cada amperio que suba la corriente circulante hasta alcanzar los 4.5A, que corresponderán una corriente de +20A. Esto se ve más claro en la siguiente gráfica: Entonces, conectando el pin7 de este sensor a una entra analógica de nuestro arduino podremos saber que corriente está consumiendo el electrodoméstico y , por estar conectado a una tensión de valor efectivo constante, la potencia.
El circuito electrónico (1)
Es hora de hablar del circuito electrónico que gobernará los electrodomésticos.
Se trata de un circuito muy simple en el que usaremos relés para activar y desactivar los electrodomésticos y el sensor ACS712 para realizar el control con el que sabremos si el electrodoméstico está conectado y además cuanta potencia está consumiendo.
Vamos a ver el circuito con más detalle.
Empezaremos por el relé , este dispositivo funciona como un interruptor que se cierra o se abre dependiendo si pasa o no corriente por su bobina.
Como vemos en el esquema, la red debe ir conectada al común del relé y el electrodoméstico a la conexión NO (Normalmente abierta). Preferiblemente esto lo haremos con el neutro.
Por otra parte tenemos que conectar la bobina que será la encargada de cerrar el interruptor. Nuestro relé funciona a 5VDC para que pueda ser compatible con Arduino. Además no conectaremos directamente el relé al Arduino para evitar freírlo, sino que lo haremos a través de un transistor BC547. Conectamos el colector del transistor a la fuente de 5V y el emisor a la entrada de la bobina del relé, el encargado de activarlo será el Arduino con un pin de salida conectado a través de una resistencia de 10k a la base del transistor para limitar la corriente. La otra conexión de la bobina va conectada a GND. Por último mencionar que el diodo conectado al relé sirve para disipar las intensidades parásitas almacenadas en la bobina.
Hasta aquí la breve explicación de como funciona el relé en nuestro circuito, en la próxima entrada trataremos de explicar el sensor ACS712.