viernes, 5 de diciembre de 2014

Controlador, ahora con módulo remoto WIFI.

Hola a todos,

hace unas semanas salió al mercado un módulo WIFI que puede comprarse por unos 4$ en varios sitios de ventas por internet. Se trata del ESP8266 de Espressif Systems 

Inmediatamente me puse a trabajar con este módulo y a sustituir los módulos remotos de radio por módulos remotos WiFi. Después de una dura pelea con el modulito (la información técnica es todavía incompleta) y mis módulos de prueba son de la primera versión disponible, con algunos defectillos) ya tengo funcionando una versión razonablemente estable del controlador con módulos remotos WiFi.

Este módulo puede funciona como STA, AP o como ambas a la vez.

El módulo se comunica con el microcontrolador por un puerto serie mediante comandos AT. Los comandos AT de que dispone la versión que he probado son limitados pero suficientes para que la comunicación y, a medida que se vayan ampliando, iré ampliando las funciones disponibles.

El sistema está formado, como hasta ahora, por el controlador principal, dotado de una tarjeta Ethernet y, ahora además, con un módulo ESP8266 configurado como AP, con servidor DHCP, al que se conectan los módulos remotos formando una red exclusiva e independiente para el sistema de control. De esta forma no es necesario tocar el router de la casa y, como antes, sólo es necesario configurar el NAT para acceder al controlador desde internet. Este equipo principal, uno por instalación, lo denominamos CONUCO GATEWAY y el acceso a los módulos remotos se hará siempre a través de éste.




El módulo remoto está formado por un Arduino Mini o Nano más un módulo WiFi Esp8266, algo como esto de la izquierda. A cada uno de estos módulos remotos se pueden conectar sondas de temperatura, entradas analógicas y digitales y salidas digitales con o sin relé.

Cada módulo remoto deberá tener una identificación única (ID) dentro de la instalación, un número entre 1 y 255. El sistema se encarga de forma automática de mantener actualizada la correspondencia ID-IP del módulo remoto. La dirección IP del remoto se asigna por DHCP, por lo que puede variar, pero ése problema ya está resuelto. Lo único que hay que conocer es la ID asignada a cada módulo, que, además, puede variarse desde un servicio web en caso necesario. En las próximas versiones del firmware del módulo WiFi, el fabricante ha prometido que la IP podrá ser fija.

Y el esquema tipo de una instalación sería este:


Están disponibles varias funciones para interrogar o configurar los módulos remotos desde internet a través del Gateway, por ejemplo:

http://IPgateway:88/jsonr?nnn    devuelve los valores de las E/S del remoto nnn en formato json
http://IPgateway:88/onrh?nnn$x    pone a 1 el pin x del remoto nnn
http://IPgateway:88/offrh?nnn$x    pone a 0 el pin x del remoto nnn

(...)






jueves, 14 de agosto de 2014

Módulos radio 433.92 MHz con respuesta

Hola,

Hay módulos de radio en la frecuencia de 433.92 MHz muy económicos y muy sencillos de utilizar; puede adquirirse un conjunto emisor-receptor en BANGGOOD  por 1,43€.



Esta frecuencia es usada por muchos de los dispositivos domésticos del mercado: mandos a distancia, termómetros, detectores de presencia, etc. Habitualmente, estos equipos son unidireccionales, es decir, la orden se envía desde el mando a distancia pero no se recibe confirmación de que la orden ha llegado y se ha ejecutado en el receptor.

El controlador  CONUCO ya permite gestionar bastantes de estos dispositivos comerciales, pero además, he estado probando un módulo remoto equipado con estas radios y lo he dotado de un sencillo protocolo que permite obtener la confirmación de la orden desde el receptor.

A partir del protocolo KAKU, he utilizado el mismo formato de datos: 26 bits de datos que en KAKU se usan para la dirección del dispositivo, yo lo utilizo aquí de otra forma:

  • 8 bits de dirección, así que se pueden gestionar hasta 255 dispositivos en el sistema.
  • 8 bits de código de confirmación. Un byte aleatorio (pseudoaleatorio).
  • 8 bits como repetición de la dirección para tratar de evitar errores.
  • 2 bits con un código de operación. 00: enviar comando ON/OFF, 01: enviar estado.
Además de estos 26 bits el protocolo envía 4 bits con la salida que se activa, máximo 16, que corresponde al pin del Arduino Nano del equipo remoto y la acción a realizar ON/OFF.

La respuesta del equipo remoto, después de comprobar que la orden es para él y que es correcta:
  • 8 bits de su dirección.
  • 8 bits del código aleatorio recibido.
  • 8 bits reservados para otros datos.
  • 2 bits con el código de operación.
Este sencillo protocolo permite actualizar en tiempo real el estado de las salidas de estos remotos en la pantalla principal, de forma similar a como se hace con los módulos de 2.4 GHz.


Las pruebas, hasta ahora, son satisfactorias y parece funcionar correctamente y tal como deseaba y podría obtener más alcance en entornos domésticos.

Me falta decidir si esta variante sería un módulo diferente al de 2.4 GHz o podría ser el mismo módulo que se equiparía con un tipo de radio u otro.

Saludos,

viernes, 18 de julio de 2014

Nueva versión 2.7 controlador

Buenos días,

dejo para su descarga la versión 2.7 en DESCARGAS.

Nuevas funciones:

  • Integración para señales analógicas de las unidades remotas. Útil, por ejemplo, para la medida de consumos eléctricos. El período de integración es de 15 s. y los valores integrados se almacenan en la propia unidad remota, lo que significa que, en el caso de que la unidad remota no pueda comunicarse con el módulo principal, el valor se sigue calculando y almacenando y cuando se recupere la comunicación el valor transmitido será correcto.
  • Reset módulo principal desde web. Es posible hacer reset desde la propia web aquí:

Deberá marcarse la casilla correspondiente y tener en cuenta que si se marca "Factory reset" se borrará la EEPROM y se escribirán los valores por defecto. Dirección IP: 192.168.1.177, puerto 82 y se borrarán todas las configuraciones y programaciones.

  • Reset remoto de unidades remotas. Puede enviarse orden de reset desde aquí:

Como en el caso anterior, puede hacerse solamente reset o reset fábrica, dejando las configuración por defecto: Nodo=2.

Para la próxima versión está en preparación:
  • Gestión de DDNS.
  • Búsqueda de IP pública.
  • Gestión de identificador de Google Analytics para control de visitas.
Saludos y buen verano.

Ramón





jueves, 12 de junio de 2014

Conexión de sonda de Temperatura y Humedad al controlador Conuco

Aprovechando la nueva versión 2.6 del controlador, disponible en la página de descargasestán disponibles nuevas funciones y mejoras:

  • Se ha mejorado el rendimiento de varios puntos.
  • Se ha ampliado la función de detectar códigos de mandos vía radio, facilitando la conexión e integración de estos aparatos en el sistema, incluso sugiriendo el tipo de dispositivo:


Con los códigos detectados, es fácil configurar el dispositivo en la página correspondiente:



  • Sondas de temperatura y humedad de tipo DHT11, DHT21 y DHT22

Estas sondas miden ambas variables y envían los datos en formato digital. Se conectan a una de las entradas digitales del controlador



 y los datos se presentan por pares temperatura-humedad en el Panel:






jueves, 29 de mayo de 2014

Reparación de una prenda rota por un enganchón

El bolso abierto de este abrigo se enganchó con la manilla de una puerta y se produjo un destrozo bastante grande que arrancó casi completamente uno de los bolsillo y dejó la prenda inutilizable.


Aplicando las técnicas elementales de cosido y zurcido y con un poco de paciencia María lo ha reparado. En estos tiempos en que parece que nada pueda repararse es bueno comprobar que no se han perdido las habilidades y la paciencia necesarias.


Y aquí está el resultado. No es que haya quedado como si lo hubieran zurcido las monjas, pero para un pueblo, de noche, a oscuras y con los ojos cerrados puede valer...






martes, 29 de abril de 2014

Sobre las unidades remotas y otros

Hola a todos,

REMOTAS

hasta ahora, el método para enviar los datos desde las unidades remotas a la unidad principal consiste en que se fija un tiempo en cada remota (entre 15 y 60 segundos) y cada una envía sus datos con este período.

Ésto tiene algunos inconvenientes. Cuando el número de unidades remotas aumenta, también aumenta la posibilidad de colisiones y de retraso en el envío de datos

Estoy modificando el mecanismo, de tal manera que sea la unidad principal la que pida los datos a cada una de las unidades remotas con períodos prefijados para cada una de ellas. Así, las remotas solamente transmitirán cuando los solicite la principal. La excepción es el cambio de estado de las entradas digitales, que sí generan el envío de su nuevo estado.

La idea es que ésto sea configurable desde la web. Ahora mismo, ya es posible inhibir el envío de los datos de una unidad remota, para ello hay que poner a "0" el valor del período de actualización:


Con esta configuración se inhibiría el envío de datos desde el nodo 1.


OTROS


El valor 926 indica el número de bytes libres en memoria y sólo es importante para el programador.
El valor 41 es más importante si se quiere controlar algo y es el número de veces que se ejecuta el programa en 1 segundo.

Este valor es variable, ya que depende del número de programaciones, de las veces que se refresque la página web, etc.

Masterserver v 2.5

La versión 2.5 de Masterserver está disponible para descarga.

Soluciona errores:

  • Fallos en la programación de eventos, cuando la salida era una señal local.

Nuevas funciones:
  • Posibilidad de ver los ficheros existentes en la tarjeta SD, visualizarlos, descargarlos o borrarlos.
  • Hacer y recuperar una copia de seguridad de la EEPROM sobre un fichero en la tarjeta SD. Tanto la copia como la recuperación tardan unos 180 segundos, sea paciente...El fichero tiene un nombre fijo: backup.bin.

  • Se ha mejorado la función de búsqueda de unidades remotas de radio ("Busca nodos"). Ahora hay 2 modos posibles, en el modo "Explorar", se hace un barrido por todos los nodos de primero y segundo nivel para detectar su presencia. En el modo "Probar nodo", se hace un "ping" sobre un solo nodo tantas veces como reintentos se indique.
Ésto es el resultado de "Explorar"

y ésto el resultado de "Probar nodo"


Falta todavía mejorar esta utilidad, pero de momento ya es útil para la gestión de los nodos remotos.

Ramón




viernes, 11 de abril de 2014

Mango en una Raspberry

Estamos probando como funciona Mango en una placa Raspberry. Se trata de un microordenador del tamaño de una cajetilla de tabaco y de bajo coste que funciona con Linux, podeís ver el sitio web AQUÍ.


Las primeras pruebas son, más o menos, satisfactorias si se utiliza por un sólo usuario, como complemento al Conuco Server para obtener datos estadísticos, gráficas, etc...aunque tenemos algún problemilla y no se pueden ver todavía las vistas gráficas, pero sí el resto. Espero poder arreglarlo pronto.


Ramón

Novedades Conuco Server

Hola a todos,

Ya está disponible la versión actual del servidor en el sitio de descarga habitual AQUÍ.

Las principales  novedades son:

  • Se requiere el módulo de memoria EEPROM 24LC512, no funcionará sin él. Ha sido necesario añadirlo para disponer de memoria suficiente para todas las funciones que el estamos incorporando. Es una pequeña plaquita con un circuito integrado que se "pincha" en el módulo RTC, ya que ambos comparten el bus. Es un apaño hasta que podamos tener otra versión de placa con el zócalo incorporado.
  • Disponible español e inglés. Debe modificarse la línea 9 del programa:
    • #define EN        // para inglés
    • #define ES        // para español

  • Probada y funcional la función de protección usuario/contraseña.


  • Ya es posible cambiar el puerto del servidor desde el servidor web, sin necesidad de modificar el programa. 
  • Se ha incorporado la posibilidad de definir hasta 5 enlaces por el propio usuario, para tener acceso a los sitios más habituales. Se definen aquí 


 y se ven aquí


Que lo disfrutéis,

Ramón








martes, 25 de marzo de 2014

Tarjeta SD y ficheros log en Controlador Conuco

Hola amigos,

a falta de algunos retoques, ya está terminada la versión del controlador que soporta la tarjeta micro SD y, por tanto, tiene capacidad de almacenar datos.

Como dice mi amigo T+, soy un poco bestia dimensionando, así que ¿por qué conformarse con un fichero histórico pudiendo tener 5?


He previsto 5  ficheros diferentes:

  1. Histórico de sistema: aquí se guardan los reset del sistema y alguna otra cosa (en funcionamiento) 
  2. Histórico de acciones: en éste se guardan las acciones que ejecutan el usuario directamente, encendidos y apagados (en funcionamiento)
  3. Histórico de temperaturas: una línea con las 80 temperaturas cada 10 segundos ahora, próximamente con un período configurable (en funcionamiento)
  4. Histórico de valores analógicos (próximamente).
  5. Histórico de eventos (próximamente)
Puede llegarse a los históricos en la opción Configuración->Avanzado->Ver históricos.

Saludos,

viernes, 21 de marzo de 2014

Nueva versión Controlador Conuco

Ya está publicada la versión 2.4 del controlador Conuco.

Añade:

  • Idioma inglés.
    • Se ha añadido al proyecto el fichero "idiomas.h"
    • Es necesario definir la línea al principio del programa. Si no se define el idioma será el español.

#define EN        // idioma EN:english
o
#define ES        // idioma,  ES: español


  • Uso de una memoria EEPROM 24LC512 de 64 Kb. ¡ES NECESARIO TENER INSTALADO ESTE MÓDULO PARA INSTALAR ESTA VERSIÓN Y LAS POSTERIORES!  Ponerse en contacto con el autor para los detalles. Esta ampliación de memoria amplía las posibilidades del sistema.
  • Se ha añadido la gestión de escenas, hay disponibles 5 escenas, a cada una de las cuales se le puede asociar una acción para cada una de las señales. De esta forma se pueden ejecutar órdenes múltiples de una manera muy sencilla.


  • Se han añadido 5 grupos de programas que se pueden por separado. A cada programa se le pueden asociar diferentes acciones o eventos. Útil, por ejemplo, si se quiere activar un programa para cuando hay alguien en casa, con unas temperaturas y un comportamiento, y otro para cuando se está fuera con otro comportamiento diferente, solamente activando un programa u otro.



  • 5 modos de funcionamiento:
    • Avanzado, con todas las opciones disponibles
    • Básico, oculta las opciones avanzadas.
    • Local, oculta y desactiva todas las funciones de módulos remotos.
    • Domótica (pendiente)
    • Riego( pendiente)
  • Mejoras en el aspecto de las pantallas, simplificación de opciones, mejora menús.
A disfrutarlo,




jueves, 6 de marzo de 2014

Nuevas posibilidades del controlador

Poco a poco, le voy añadiendo y completando features al controlador. La última, la gestión de escenas: pueden definirse hasta 5 escenas diferentes que ejecutan con un solo click todas las órdenes que se definan.


Por ejemplo, podríamos definir estas 5 escenas de arriba, que nos permitirían apagar luces, etc, al salir de la casa.

Previamente hay que definir que acciones se ejecutan con cada escena:


¡FÁCIL Y PRÁCTICO!

Nueva versión placa Módulo Remoto Básico

Hola,

ya tenemos algunas placas de módulo remoto, versión 2.0. Se ha reducido el tamaño a 5x5 cm. Han quedado muy monas...

Disponen de:

  • 2 Entradas digitales
  • 4 Salidas digitales
  • 2 Entradas analógicas
  • 1 puerto 1-wire para sondas DS18B20
  • Radio NRF24L01 
  • Botón Reset
  • Botón Reset Fábrica
  • Zócalo adicional para señales diversas.




lunes, 24 de febrero de 2014

Mango y computadora K.O.

La computadora que prestaba el servicio de Mango ha fallecido y no soy capaz de arrancarla. El CD no funciona, el disco duro tampoco y no dispone de arranque por USB.

Para volver a poner Mango en funcionamiento vamos a probar a ejecutarlo en una placa Raspberry B. Mientras tanto se estará ejecutando en mi PC, aunque el servicio no estará disponible siempre, ya que mi PC está muy trabajado...

Actualización software y manual CONUCO Controller


Se han actualizado el software de la placa y el manual.

Los principales cambios son:

  • Se han redistribuido los menúes y opciones para conseguir más claridad y más rapidez en la descarga.
  • En las Entradas Analógicas, tanto locales como remotas, se ha añadido un campo factor, para que estas señales puedan utilizarse con cualquier sensor. Si el valor del factor es 1, los valores de estas señales oscilarán entre o y 1023, correspondientes a 0v y 5v respectivamente.
  • Se ha eliminado la vista "Lista".
  • Aunque hay 32 programas de cada tipo (Semanal, Eventois y Fechas), solamente se muestra los que están definidos más uno. Con ésto se consigue más rapidez en la carga de las páginas.
  • Se ha modificado el fichero EEPROMAnything.h para incorporar las funciones de lectura y escritura en la EEPROM secundaria.
  • Las descripciones de todas las señales remotas se almacenan ahora en la EEPROM secundaria de la placa RTC y pasan de 10 caracteres a 20. Ésto disminuye el tráfico de radio y aumenta la agilidad del sistema, además de simplificar la configuración.
Enlace: http://www.controlomicasa.com/descargas.html

lunes, 17 de febrero de 2014

Consumo eléctrico en tiempo real

Hola,

ya está en servicio la real la primera unidad remota vía radio 2,4 GHz. Se trata de una unidad remota con un sensor de corriente conectada en mi casa de Madrid.

Esta unidad envía los datos cada 15 segundos a la unidad principal que los muestra en la página web. Los datos se convierten a intensidad en Amperios y potencia en Watios.

Ahora falta la integración para tener el dato de energía consumida.

Podéis ver los datos aquí: PROTOTIPO MADRID


Saludos

miércoles, 29 de enero de 2014

Software Controlador

Ya se puede descargar el código fuente para el controlador aquí: Descarga Software.

Se necesita:

Sitio de compras aún más barato

He encontrado otro sitio de compras en China, sin gastos de envío y a mejores precios todavía: Banggood
Funciona rápido, últimos envíos 15 días.

martes, 28 de enero de 2014

Supercontrolador

Bueno, finalmente ya tenemos el supercontrolador funcionando con la placa de circuito impreso nueva.

La mala noticia es que hay 2 errores de diseño. La buena es que los 2 se pueden solucionar con cierta facilidad.

Veamos el aspecto del aparato.

Ésta es la placa por arriba y por abajo. Medidas 140x100 mm


Éstos son los componentes necesarios:


Éste es el aspecto después de soldar los zócalos, los terminales y los botones de reset:


Y éste es el aspecto ya completado:





LOS ERRORES

Falta una conexión de +5v que alimenta el reloj de tiempo real y las sondas DS18B20. 

Solución 1, sin soldaduras: Hacer un puente entre los terminales de tornillo marcados con el hilo rojo en la foto siguiente:

Solución 2: soldar un hilo entre los mismos puntos en la cara inferior de la placa. (Así irán las placas que os entregue). 


El otro error es un poco más delicado, pero fácil si se hace con cuidado.

El zócalo que debe conectar el ICSP, 6 terminales en el centro de la placa del Arduino MEGA, está desplazado de suposición y no coincide con los terminales del Arduino:

La solución más apañada que se me ha ocurrido consiste en:
  • En la placa Arduino Mega 2560, quitar con cuidado la base de plástico de los 6 terminales. Se trata de dejar más longitud del terminal libre para la siguiente operación.





  • Con más cuidado aún, doblar en forma de "S" los 6 terminales para hacerlos coincidir con los orificios adyacentes, separados 0,1".

Hecho ésto se pueden acoplar los 4 módulos, Arduino, Ethernet, RTC y Radio en sus zócalos ¡et voilá!