h1

Ingeniería Técnica Informática de Gestión

29 Marzo 2009

Esta vez toca escribir una entrada un poco distinta al resto. Estoy estudiando Ingeniería Técnica Informática en Gestión y muchos de los comentarios que se escucha mientras estudias es que las asignaturas no sirven para nada. Bueno pues voy a hacer una relación con las asignaturas que me han ayudado a obtener los conocimientos necesarios para enfrentarme a este ambicioso proyecto.

Elementos de programación, Metodología de la programación y laboratorio de programación: en estas asignaturas se dan las base de la programación y se tocan los elementos básicos del lenguaje C, muy parecida a la programación que seguiría para programar Arduino y su librería de interconexión. Además también aprendemos a realizar una modularización efectiva de los componentes de un programa, haciendolo lo más independientes posible.

Fundamentos de los Sistemas Operativos, Sistemas Operativos: se explican los conocimientos necesarios para empezar a manejarte con Linux además de ser capaz de correr una instalación como la de Mister House sin ningún problema

Teoría de Autómatas y Lenguajes Formales: Dado que estoy simulando X10 necesito hacer un automata que reconozca si una cadena pertenece a un código X10 válido o no, estas son las bases de los automatas explicada en esta asignatura.

Tipos abstractos de datos: Enseñan a trabajar con un TAD independientemente de la implementación que este tenga. Es justamente lo que hago con Arduino. Utilizar funciones sin saber como están realmente definidas.

Dispositivos electrónicos y Sistemas Electrónicos Digitales: Dado que estoy en un proyecto de domótica, necesito saber unos conocimientos elementales en electrónica, estos los he adquirido en estas asignaturas. Prueba de ella es el control de encendido de los leds o la programación de la EEPROM de Arduino.

Análisis y diseño de algoritmos: La complejidad de un programa influye y más cuando estamos en un dispositivos de recursos limitados como es Arduino. Con esta asignatura se aprenden las técnicas más eficientes y las que debemos implementar.

Laboratorio de Tecnología de Objetos: En esta asignatura obtenemos los conocimientos iniciales de la programación orientada a objetos también utilizada para programar Arduino.

Ingeniería del Software de Gestión: Todo proyecto necesita una buena planificación y unos estudios de viabilidad antes de empezar a programar una sola linea. “Mientras más tardemos en empezar a programar mejor”. Posiblemente sino hubiera tenido que enfrentarme a esta asignatura no habría sido tan constante en el proyecto, cumpliendo siempre la planificación el proyecto va a buen puerto. Aquí está su demostración.

h1

Librería de interconexión V1.0

27 Marzo 2009

Ya está aquí, tanto la librería de Arduino como la de Mister House, además de una configuración inicial de una casa utilizando integramente Arduino.

La dirección de la descarga es:

http://forja.rediris.es/frs/download.php/1210/Libreria-V1.0.zip

Y podéis encontrar las siguientes carpetas:

  • Arduino: donde se encuentra la librería con la que se debe programar a Arduino.
  • MisterHouse: donde se encuentran los directorios:
    • bin:  se encuentra mh.private.ini como se comentaba en el manual de Mister House este archivo es de configuración.  Además de otros parámetros se define el puerto al que estará conectado Arduino.
    • code: se encuentra una esquema de una casa controlado con un sólo Arduino.
    • lib: se encuentra la libería necesaria para la conexión entre Mister House y Arduino.
  • Programación de Arduino:  se encuentra un ejecutable llamado instalador, que se encarga de programar el Arduino indicando la configuración necesaria previamente realizada con Mister House.

Me gustaría hacer un manual detallado de instalación un poco más ilustrado.

Espero las impresiones :)

h1

Mister House (II) Manual de usuario

23 Marzo 2009

He preferido darme un poco más de prisa para redactar un manual de usuario de Mister House en español ya que si dejo listas las librerías pero no se sabe utilizar Mister House, no se puede probar. Me ha resultado un poco complicado reunir todos los detallitos fundamentales en un manual de 25 páginas ya que para describir completamente Mister House harían falta más de 200. De cualquier manera, aquí os dejo material para que os vayáis familiarizando con la aplicación que utilizaremos para nuestro sistema domótico.

http://forja.rediris.es/frs/download.php/1185/mh.pdf

Si encontráis fallos en el manual,  que seguro que los habrá, por favor reportármelos para que pueda corregirlos.

Mi siguiente objetivo es terminar de pulir los detalles de la libería de interconexión además de hacer un pequeño tutorial de cómo instalarla.

h1

Comunicación de Perl con Arduino por puerto serie

22 Marzo 2009

Después de haberme leído algunos tutoriales de Perl y el libro de O’Reilly me considero satisfecho con el nivel adquerido. Ahora es momento de demostrar los conocimientos. Como habíamos creado un pequeño programa para Arduino que esperaba que llegara por puerto serie un ‘H’ para encender un led, ahora vamos a hacer el programa en Perl que envíe esa ‘H’.

#!/usr/bin/perl -w
use strict; #Esta linea es para hacer obligatorio la declaracion de variablesuse
use Device::SerialPort; # Declaramos el Modulo para manejo de puertos
my $serial = Device::SerialPort->new(“/dev/ttyUSB0″) || die “No se pudo abrir el puerto”; # configuracion del Puerto serial USB
$serial->baudrate(9600); # Velocidad del Puerto o Razon de Bits(9600)
$serial->write_settings; #
# Envio de Datos por el Puerto Serial
$serial->write(chr(’H’)); # Envio de un A al puerto serial.
delay(0.5);
sub delay{ # Funcion para dar una pausa
my $time=shift; # Variable que indica el tiempo(segundos), Con shift se recoje un parametro a
select(undef, undef, undef, $time); # Funcion Real que hace la pausa
}

El ejemplo está comentado pero para cualquier aclaración podéis utilizar los foros de OpenDomotica.

Para la descarga del archivo: puertoSerie.pl

h1

¡Primeros resultados!

15 Marzo 2009

Después de meses de duro trabajo, el primer led que me guiña y prometo que el led más bonito que haya brillado nunca :D   Aquí tenéis un video de lo que seremos capaces de hacer de aquí a unas semanas que estén totalmente listas las librerías, me gustaría publicar una versión alpha en breve.

Este primer vídeo muestra un led conectado a arduino, y arduino por puerto serie al ordenador, donde está Mister House esperando para enviarle señales.

En este segundo vídeo utilizo una internet tablet N770 para enfatizar en uno de los motivos que nos llevaron a decantarnos por Mister House, su interfaz gráfica. Como vemos se puede controlar perfectamente desde este tipo de elementos, dando una comodidad efectiva.

Decir también que estoy trabajando en un manual introductorio de Mister House, llevo trabajando en él desde hace ya algún tiempo, espero tenerlo listo para esta semana.

h1

Por qué Mister House

11 Marzo 2009

Mister House posee una interfaz gráfica que además es web, frente a la ausencia de Heyu. Esto hace de Heyu un programa bueno para desarrolladores o empresas que vayan a instalar un sistema domótico, pero a mi modo de ver las cosas no es un sistema apto para “todos los públicos”.Además con la interfaz de Mister House podríamos utilizar el teléfono móvil para controlar los distintos sensores que estén repartidos por la casa. Por otro con Heyu quedaríamos limitados a utilizar una consola para mandar las actuaciones sobre los elementos domóticos.

Después de toda la documentación que ha sido requerida para empezar con el proyecto también se ha comprobado que Mister House está bastante mas extendido que Heyu y entrando en materia domótica, MH tiene catidad de extensiones y de elementos que con poca configuración están listos para utilizar.

Por estos motivos se decide utilizar Mister House y no Heyu.

Aprovecho la ocasaión para decir que estoy muy cerca de tener algo visible.  Los resultados están por llegar.

h1

Respuesta a un comentario

8 Marzo 2009

Hoy ha llegado un comentario al blog preguntando lo siguiente:

Buenas, estoy muy interesado en aprender sobre domotiica, pero no se por donde empezar se que linux tiene muchas aplicaciones de domotica y conozco de oidas alduino. Ahora bien ¿no seria mejor Arduclema o ardabasto para una instalacion electrica?
¿de ser un si donde lo consigo? ¿Es mas caro o igual? Otra cosa puesto que reprogramas “alduino” el pc solo serviria como interface con el usuario ¿cierto? Otra si con la placa programada o con pc , controlo diodos = “reles” tambien controlo una bombilla o el micro-ondas, entonces ¿para que el protocolo X10? ¿como planteais cconectar la placa a la red electrica? Algun ejemplo o prueba de concepto, please…

Así que voy a responderle en una entrada porque esta pregunta también se me ha hecho un par de veces por correo, a lo mejor así queda mas claro:

La idea del proyecto no es conectar Arduino a la red eléctrica, es más bien quitarlo de ahí debido a sus problemas de transmisión.

Sobre donde puedes conseguir Arduclema o Ardabasto la verdad que lo desconozco. Elegí Duemilanove porque es el más fácil de adquirir. Como inciso los 2 Arduinos que ofreces están basados en este, por lo que este proyecto también sería compatible con ellos.

El PC se encargaría de la interfaz entre el usuario y el sistema domótico, correcto. Con Mister House podríamos tener el control total de nuestra casa,  ¿cómo se instala y se trabaja con Mister House? estoy trabajando en ello, espero que pronto pueda tener un manual de usuario en Español que nos sirva de referencia.

El estudio de X10 se ha hecho porque es un estándar que esta adoptado en el mundo entero en la domótica, además de que las aplicaciones para el control domótico en el PC utilizaban este mismo protocolo. Entonces, si hacemos una librería para el ordenador a la que le llegue código X10 y se comunique con Arduino (por puerto serie) de manera que este lo entienda, este Arduino podrá controlar un rele por ejemplo para controlar una bombilla.

Me encantaría enseñar una demo ahora mismo de lo que quiero hacer, pero todavía no tengo nada visible, espero que para esta semana pueda tener algo sólido para enseñarlo.

Un saludo

h1

Heyu (I) Introducción

8 Marzo 2009

Heyu es un programa completamente libre y escrito en C, utiliza el convertidor serie que permite hacer una interfaz entre la aplicación y los módulos X10, de tal forma que es posible enviar señales de apagado y encendido de aparatos electrónicos, aumento de brillo en caso de lámparas, todo esto enviando señalizaciones a traves de la red eléctrica.

Heyu utiliza la interfaz CM11A para enviar y recibir las señales de control sobre la linea eléctrica, para poder encender, apagar, dar brillo,… a las lámparas y módulos asociados. Puede guardar una lista de eventos en la memoria del CM11A para su ejecución cuando el pc esté apagado o desconectado.

heyu

Características

  • Utiliza un entorno en consola.
  • Entorno multiplataforma.
  • Sólo puede controlar unos pocos elementos X10, entre ellos: CM10, CM11A, CM12A.
h1

Mister House (I) Introducción, características y ejemplos posibles

1 Marzo 2009

Introducción:

Mister House es un sistema domótico open source, es libre y gratuito. Está escrito en Perl y utiliza tecnologias web con sockets controladas por voz y puerto serie. Actualmente funciona bajo plataformas, Windows 95/98/NT/2k/XP y la mayoría de los sistemas basados en Unix, incluidos Linux y Mac OSX.

MisterHouse controla desde su interfaz todos los dispositivos que componen un sistema domótico. Se trata de un centro de control, a través del cual podrás acceder, programar y manipular todos los terminales del sistema que hayas instalado.El programa está diseñado para gestionar el uso de las luces, llamadas de teléfono, radio, televisión, calendario, relojes, avisos, cámaras de seguridad y mensajes hablados.

Interfaz web de Mister House

Interfaz web de Mister House

Características:

  • Contiene una interfaz web que permite la comunicación a través de una intranet o Internet.
  • Existen programas adicionales como MS VR (Windows) o Festival (Linux) que permiten a MH comunicarse de forma oral con el usuario.
  • Lee y escribe información a cualquier elemento conectado por puerto serie.
  • Lee y escribe emails, además de consultar páginas webs.
  • Usa las páginas webs de televisión para programar el DVD grabador o lanzar recordatorios.
  • Envia y recibe mensajes desde mensajería instantanea.
  • Entorno multiplataforma.

Ejemplos posibles con Mister House

  • Apagar la calefacción después de 20 minutos a 24 grados.
  • Aviso, el sol brilla al 32 por ciento, la temperatura fuera son 24 grados, por eso estoy abriendo las cortinas a las 8:07 AM.
  • La furgoneta va dirección norte a 58 km/h 0.8 km al Oeste de Málaga.
  • El coche esta aparcado en la Universidad.
  • Hay un nuevo email en la bandeja de entrada.
  • Puede controlar multitud de módulos X10.
h1

El proyecto empieza a crecer.

22 Febrero 2009

Llega un momento importante en el proyecto, se está empezando a cumplir el primer objetivo del proyecto que era crear una comunidad activa desarrollando un sistema domótico. Gracias al blog he contactado con Carlos Castillo, informático de Velezuela interesado en la idea de este proyecto. Desde ahora vamos a abrir una nueva etapa en Opendomotica, vamos a estudiar cuales de los frentes va a desarrollar él y crearemos una nueva rama en el proyecto. Esto tiene buena pinta.

Decir que las ayudas son bienvenidas y que cualquiera que quiera colaborar con el proyecto puede hacerlo, entre todos podemos hacer esto grande.

También me gustaría agradecer el apoyo a Daniel Bernat. Aquí dejo su web:  http://dabergi.webs.upv.es/wordpress/

Acaban de terminar los exámenes y ahora estoy más fuerte que nunca con el proyecto. Actualmente estoy aprendiendo Perl para poder desarrollar la librería, espero que dentro de poco pueda enseñar algo.

Un saludo.