Mostrando entradas con la etiqueta Domotics. Mostrar todas las entradas
Mostrando entradas con la etiqueta Domotics. Mostrar todas las entradas

ProjectJANE - App Android v1.0 terminada!

Hola señor@s!

Después de un buen día de trabajo me decidí por terminar la App para controlar la domotica del cuarto, al menos una primera versión funcional. Esta es una screen:

Debajo de esta apariencia tan simple hay bastante trabajo, al menos lo fue para mi ya que cuando empecé no tenia apenas conocimiento sobre conexiones bluetooth, servicios (entre esto servicios foreground), notificaciones, ni broadcastreceiver).... Os preguntareis entonces que sabia antes de esto? hahaha... Bueno poco a poco se aprende más, no?

La aplicación tiene un servicio que permite mantener la conexión con LittleBoss aunque esta se cierre, también podemos cerrar la conexión a mano (aniquilando también el servicio) con el botón de desconectar o recuperar la conexión con el botón de reintentar conexión.

Por otro lado el botón de Speak lanza el evento de reconocimiento de voz y con este podemos encende y/o apagar las luces, el ventilador y el ordenador gracias a la conexión que mostraba en la entrada anterior de LittleBoss.

Por si alguno le quiere echar un vistazo al cógido aqui os dejo un enlace de dropbox!
https://www.dropbox.com/sh/m1z4mu5wjv9v87r/CvLSkzGkfL

Un saludo a todos!

Project JANE - Prototipo funcional de "LittleBoss"

Buenas a todos!

Por fin después de unas tardes de trabajo (y de bastante tiempo por medio haha) ya hay algunos resultados vistosos! Cambiando un poco de tema respecto a la entrada anterior, por desgracia no implementé nada de inteligencia artificial... Terminé el primer programa que lleva cargado el Arduino Mega (Si... arduino en vez de MSP430, ya que para usar dos comunicaciones "Serial" a la vez necesitaba un microcontrolador que manejara más de una, pero a efectos prácticos todo es igual) y cree una pequeña placa que llevará los relés para activar y desactivar la luz y el ventilador.

Vamos por partes!

Lo primero de todo fue hacer el circuito (LittleBoss). El proceso pues el que lleva cualquier PCB. Aquí os dejo algunas fotos. Y el diagrama (https://www.dropbox.com/s/72lk6havcf1ziln/littleboss.pdf).




Este consiste en 4 relés, dos pequeños que harán de intermediario entre el Arduino y los relés "grandes" y así aislarlo de la alta-tensión. Para esto necesitamos también una fuente de 24V que active la bobina de los relés que harán de interruptor para la luz y el ventilador.

Por otro lado necesitamos un programa para el Arduino, el problema que se planteaba inicialmente era que ante todo, los interruptores deberían de funcionar y cambiar el estado independientemente de la posición. Me explico... Si encendía la luz por el interruptor, pero luego la apagaba con la orden de Bluetooth, el interruptor no había cambiado de estado, por lo tanto si se pulsa de nuevo a lo que inicialmente sería apagar, debería encenderse de nuevo. Aquí esta el código completo del Arduino, que soluciona este problema. A parte de realizar todas las operaciones necesarias tanto para el bluetooth como para el switcheo de los interruptores y sus correspondientes acciones.

No se me puede olvidar la aplicación de android cuyo proyecto está aquí. Ahora es excesivamente simple, el siguiente paso que quiero dar es actualizarla. Una interfaz más bonita y con más información estaría bien.

Después de todo esto queda la ardua tarea de la instalación. Los interruptores van ahora al arduino, los cables de los interruptores a LittleBoss para los relés, y el arduino también a LittleBoss para controlar los Relés. Y todo esto partiendo del PC hasta su correspondiente posición (Dentro del armario ya que al lado de este estaban los interruptores y me aseguraba un lugar seguro y accesible para el dispositivo). Aquí os dejo algunas fotos:



 Y bueno ya solo me queda subir un vídeo de demostración, pero como no tengo cámara, más que la del móvil y la aplicación corre en el mismo, a ver si espero a que alguien me deje su smartphone para hacer ambas cosas a la vez (Pero desde luego ya será mañana! a las 5:41 no creo que haya muchos voluntarios hahah)

Buenas noches a todos! Para cualquier duda o curiosidad no os lo penséis dos veces y preguntad! Siempre dispuesto a compartir lo que aprendí.









Project JANE - Comunicación Serie RXTX & Comunicación interna

Buenas noches!

Hoy por fin terminé una parte más del proyecto, la inicial y de las más importantes ya que sin esta no tendría sentido todo lo demás. A ver si consigo explicarlo de una forma ordenada.

Comunicación Interna:
Primero de todo, a comunicación interna me refiero a como las clases/Threads del programa que se ejecuta en el ordenador se mandan información entre ellas. Para esto lo primero que cree fue una clase que hiciera de queue (o cola) con prioridades para almacenar las señales. Estas colas estarán instanciadas en la clase principal (BigBoss) y este se encargara una vez recibidas de reenviarlas a los módulos correspondientes del programa. Estas colas almacenan objetos llamados SignalBox que contienen información sobre la señal (Fecha, prioridad, modulo correspondiente y datos en formato cadena).

Comunicación Serie RXTX:
Esta parte se refiere a la comunicación entre el microcontrolador MSP430 y el programa a través de un thread especifico que controla el puerto serie. Para ello usamos unas librerías que facilitan las clases y funciones necesarias para la apertura/cierre del puerto y el recibo/envío de información.
En este punto se implementan dos clases

  1. SerialCommunication: Esta clase es la que se encarga de la implementación de la conexión con el puerto (COM6 en mi caso) e implementa la función de escritura al puerto y el "listener" para la recepción de datos (Para recibir datos se realiza una espera sincrona desde el ModuleSerialComm para reducir el consumo de cpu, ya que antes tenia implementado un bucle while(1) que buscaba de manera continua en la queue).
  2. ModuleSerialComm: Esta clase implementa el thread que administra la clase anterior y se encarga de actualizar la queue correspondiente que se encuentra alojada en BigBoss, para ello hace la espera sincroná de que se recibió la señal del puerto serie).

Bueno, espero que se me haya entendido más o menos. Puse unos enlaces a las clases por si alguien tenía algo de curiosidad. Para cualquier pregunta, duda, cuestión, o mejora... Soy todo oidos!

Un saludo!

Project JANE

Buenas!
En esta entrada voy a agrupar un poco todo lo que vaya escribiendo sobre el projecto. Para cualquier duda o curiosidad no dudéis en preguntar!


Project JANE - El inicio

Buenas tardes!
Después de más de cuatro años esta semana empecé con uno de mis proyectos más esperados: "PROYECT JANE". Supongo que os preguntareis a que viene todo esto, la verdad es una historia un poco larga, pero se resume en crear un sistema de domótica (inicialmente para mi habitación).

El proyecto es bastante ambicioso y complejo, ya que abarca desde hardware hasta software. El objetivo es crear un subSO (Si existe un nombre para esto lo desconozco) en java que controle diferentes puertos serie para comunicarse con diversos microcontroladores que servirán para el control de los sensores y actuadores que harán la "magia".

Por ahora (Mientras acaban los exámenes) me estoy encargando de los sistemas de señales, están programadas las colas de mensajes, los paquetes de señales, adaptables según el modulo que la vaya a tratar (¡Dios bendiga el polimorfismo!) y el módulo de comunicación serie RXTX (Con este nos comunicaremos con los microcontroladores: MSP430 en mi caso).

Por otro lado también está implementado a nivel de hardware un sistema para que el encendido y apagado del ordenador se realice a través del MSP430. Ala derecha se encuentra el MSP430 que está conectado al PC con un USB se encuentra alimentado en todo momento y permite la comunicación serie y por otro lado a la izquierda tenemos un adaptador de tensión ya que el PC trabaja a 5V y el MSP430 a 3.3V, por lo tanto la señal de activación del PC podría quemar el MSP430. Simplemente es un relé con un transistor que abre o cierra como le mande el microcontrolador:



Por ahora eso es todo,  espero dentro de poco terminar la parte de comunicación del software para pasar ya a la IA y al proceso de las señales.
A bueno se me olvidaba! estoy a la espera de un pedido que incluye la cámara, el sensor de movimiento, sensor de luz y una pantalla LCD táctil para sustituir los interruptores del cuarto por algo un poco más futurista.

Hasta pronto!