Está en la página 1de 15

www.domuino.

es

MANUAL DOMUINO (En construcción v0.2)


INDICE
1 Hardware necesario……………………………………………………….……………………….… 2
2 Código binario……………………………………………………….…………………………..….… 2
3 Módulos disponibles……………………………………………………….……………………….… 3
4 Grabar código binario en dispositivo……………………………………………………………..… 4
5 Conexión con nuevo dispositivo…………………………………………………………….………. 6
6 App android……………………………………………………………………………………………. 6
7 Elementos …………………..……………………………………………….……………………..…. 7
• Controles..
• salidas
• entradas…………………………………………………………………………….………….… 8
• sensores…………………………………………………………………………………….…… 9
• horarios
• consigna
• contador
• escena
• programa …………………………………………………………………………………….…. 10
• notificación
• remoto
• comando
• acción
8 Debug……………………………………………………………………………………………….…. 11
9 Bus ICSC…………………………………………………………………………………………..….. 12

1
www.domuino.es
1 HARDWARE NECESARIO
Lo primero que necesitamos en un dispositivo de control como Arduino o un ESP:
1.1 Arduino UNO o MEGA con Ethernet Shield para las comunicaciones.

1.2 Cualquier placa que integre el chip esp8266 es valido, las cuales integran comunicación WIFI.

Si se tiene que adquirir recomendado el Arduino MEGA256 con una Ethernet Shield w5100. El resto de
dispositivos de la gama de Arduino como NANO, MINI, PRO… los podremos integrar en nuestra
instalación a través de un bus ICSC 485 que mas adelante comentaremos.

2 CODIGO BINARIO
Se ha de programar la memoria flash del dispositivo una única vez con el código DOMUINO, el resto
de configuraciones se realizan desde la APP ANDROID.
Descargamos el código que hay que grabar en el dispositivo desde la zona de descarga de Archivos
en el FORO sub apartado Código Arduino.
El archivo .zip contiene las diferentes versiones disponibles en función del tipo de dispositivo y su
conectividad.

El primer número indica la versión del código, en el momento de redacción de este manual es v0.83f.
A continuación indica el tipo de dispositivo al que corresponde el código (ESP8266, MEGA, NANO…)
Seguido hace referencia al tipo de conexiones disponibles (Ethernet cableado, WIFI o ICSC).
Puede aparecer DEBUG que indica que se puede monitorizar por el puerto Serial, o SNIFFER el cual
permite capturar todos los paquetes de una red y monitorizarlos para análisis.

2
www.domuino.es

3 MODULOS DISPONIBLES
Se adjunta un Excel con los diferentes funcionalidades de cada versión dado que en los diferentes
dispositivos hay una capacidad limitada y algunos modulo no son implementados.

ESP8266 ESP8266
onlyWifi Wifi/ICSC MEGA-Ethernet UNO Ethernet UNO ICSC NANO_ICSC PRO_MINI_ICSC
DEBUG MODE DEBUG MODE DEBUG MODE DEBUG MODE DEBUG MODE DEBUG MODE DEBUG MODE
PRINT EEPROM PRINT EEPROM PRINT EEPROM PRINT EEPROM PRINT EEPROM PRINT EEPROM PRINT EEPROM
SERIAL CONSOLE SERIAL CONSOLE SERIAL CONSOLE SERIAL CONSOLE SERIAL CONSOLE SERIAL CONSOLE SERIAL CONSOLE
RTC I2C/INTERNO RTC I2C/INTERNO RTC I2C/INTERNO RTC INTERNO RTC INTERNO RTC INTERNO RTC INTERNO
SYNC_RTC NTP SYNC_RTC NTP SYNC_RTC NTP SYNC_RTC NTP SYNC_RTC ICSC SYNC_RTC ICSC SYNC_RTC ICSC
CREPUSCULAR CREPUSCULAR CREPUSCULAR CREPUSCULAR CREPUSCULAR CREPUSCULAR CREPUSCULAR
DHT DHT DHT DHT DHT DHT DHT
DS18B20 DS18B21 DS18B22 DS18B23 DS18B24 DS18B25 DS18B26
SEARCH DS18B20 SEARCH DS18B21 SEARCH DS18B22 SEARCH DS18B20 SEARCH DS18B20 SEARCH DS18B20 SEARCH DS18B20
RF433 TX/RX RF433 TX/RX RF433 TX/RX RF433 TX/RX RF433 TX/RX RF433 TX/RX RF433 TX/RX
ULTRASONIC ULTRASONIC ULTRASONIC ULTRASONIC ULTRASONIC ULTRASONIC ULTRASONIC
IR IR IR IR IR IR IR
ETHERNET ETHERNET ETHERNET ETHERNET ETHERNET ETHERNET ETHERNET
DHCP DHCP DHCP DHCP DHCP DHCP DHCP
ICSC ICSC ICSC ICSC ICSC ICSC ICSC
WIFI WIFI WIFI WIFI WIFI WIFI WIFI
Nrf24 Nrf24 Nrf24 Nrf24 Nrf24 Nrf24 Nrf24
CICLOS RIEGO CICLOS RIEGO CICLOS RIEGO CICLOS RIEGO CICLOS RIEGO CICLOS RIEGO CICLOS RIEGO
MOTORES MOTORES MOTORES MOTORES MOTORES MOTORES MOTORES
CONTADORES CONTADORES CONTADORES CONTADORES CONTADORES CONTADORES CONTADORES
ELEM. BASICOS ELEM. BASICOS ELEM. BASICOS ELEM. BASICOS ELEM. BASICOS ELEM. BASICOS ELEM. BASICOS
REM. ELEMENTS REM. ELEMENTS REM. ELEMENTS REM. ELEMENTS REM. ELEMENTS REM. ELEMENTS REM. ELEMENTS
NOTIFICACIONES NOTIFICACIONES NOTIFICACIONES NOTIFICACIONES NOTIFICACIONES NOTIFICACIONES NOTIFICACIONES
GRAFICAS GRAFICAS GRAFICAS GRAFICAS GRAFICAS GRAFICAS GRAFICAS
IP DINAMICA IP DINAMICA IP DINAMICA IP DINAMICA IP DINAMICA IP DINAMICA IP DINAMICA

DEBUG MODE: permite ver a través del IDE Arduino o Hiperterminal el estado y los eventos del
sistema en tiempo real.
PRINT EEPROM: imprime en el modo debug copia de los datos grabado en la EEPROM para
depuración o crear copia de seguridad.
SERIAL CONSOLE: introducción de comandos por puerto seria para control y configuración del
sistema.
RTC INTERNO: control de la hora y fecha actual de forma autónoma, o a través de reloj externo I2C
del tipo DS3231 o DS1307.
SYNC_RTC: sincronización y puesta en hora con servidor NTP externo o dispositivo Master
DOMUINO por ICSC.
CREPUSCULAR: calculo de hora de orto y ocaso, en dispositivos ICSC esclavos se obstine de la
sincronización horario con el Master,
DHT: compatibilidad con sensores de temperatura y humedad DHT11, 21 y 22.
DS18B20: sensor digital de temperatura de Dallas Semiconductors.
SEARCH DS18B20: búsqueda y auto asignación de dirección con sensores DS18B20.
RF433: Control y lectura de comandos a 433Mhz como enchufes remotos o mandos a distancia.
ULTRASONIC: Sensores de distancia utilizando el sensor de ultrasonidos hc-sr04.
IR: envió y recepción de comandos infrarrojos para control elementos externos.
ETHERNET: comunicaciones ethernet con placas compatible W5100.
ICSC: comunicaciones mediante bus 2 hilos RS485 y protocolo ICSC modificado.
WIFI: comunicaciones en red mediante red WIFI.
Nrf24: comunicaciones utilizan chip inalámbrico nrf24l01 de Nordic Semiconductor.
CICLOS RIEGO: control secuencial de salidas de riego temporizadas.
MOTORES: control sistemas motorizados por tiempo con pulsadores de entrada.
CONTADORES: contadores de tiempo activación y acumulador de valores de elementos domuino.
ELEM: BASICOS: salidas y entradas analógico/digitales, termostatos, etapas, dimmer, escenas,
consignas, sensor pulsos, sensor periodos y tiempo, adaptadores, horarios y programaciones.
REM ELEMENTS: uso de elementos remotos de dispositivos DOMUINO en red disponible.
NOTIFICACIONES: permite envío de aviso a aplicaciones móviles programadas.
GRAFICAS: Almacenamiento de datos de sensores y creación de graficas.
IP DINAMICA: Auto detección de IP publica para comunicaciones externas.

3
www.domuino.es

4 GRABAR CODIGO BINARIO EN DISPOSITIVO


Descargamos la herramienta que permite grabar el código en el dispositivo desde el apartado
Herramientas del FORO dentro descarga de Archivos .

4.1 GRABADO PLACAS ARDUINO


Descargamos la aplicación Xloader para la gama Arduino/Genuino,

Conectamos el Dispositivo al ordenador, normalmente con un cable USB.

Seleccionamos en la aplicación el código binario correspondiente a la placa arduino que disponemos y


ponemos en el desplegable Device dicho modelo de placa.
Para conocer el puerto COM que utiliza nuestro dispositivo, podemos ir al Administrador de
dispositivos de Windows al apartado de puertos COM y LPT. La velocidad Baud Rate no se requiere
tocar, puesto que se ajusta automáticamente el seleccionar el Device adecuado.

4
www.domuino.es

4.2 GRABADO PLACAS ESP8266


Descargamos la herramienta ESP FLASH DOWNLOAD TOOL para ESP8266:

En el caso de dispositivos sin puerto usb (ESP 01), requerimos de un adaptador USB a Serial(FTDI) y
realizar las conexiones pertinentes,

Desde la herramienta correspondiente seleccionamos el código correspondiente a nuestro dispositivo,


el puerto COM (con el administrador de dispositivos de Windows podemos saber el puerto utilizado) y
lo grabamos pulsando START. En la pantalla de comandos aparece información sobre el estado del
proceso.

En dispositivos ESP8266 hay que poner en modo grabación el módulo antes de volcar el código .hex,
normalmente se realiza manteniendo pulsado el pin de flash mientras pulsamos el reset o actuando
sobre el pin de flash con la placa apagada para posteriormente alimentarla sin soltarlo.
En placas NodeMCU se dispone de ambos pulsadores para tal fin, en caso de placas WBEMOS D1
hay que unir el pin D3 con GND, en el resto de placas hay que localizar el puerto GPIO0 y unirlo a
GND y realizar el reset.
Una vez realizado el grabado suele ser necesario realizar un reset para volver a modo normal.

5
www.domuino.es
5 CONEXIÓN CON NUEVO DISPOSITIVO
Conectamos el dispositivo a nuestra red LAN en caso de Ethernet o al bus ICSC (RS485) a través de
tarjeta adaptadora en caso de dispositivo esclavo por BUS.

En caso de dispositivos ESP8266 al inicio como no tiene datos de conexión de nuestra red wifi, crea
una propia con el nombre DOMUINO_AP xxxxxx (Mode AP), a la cual conectaremos nuestro
smartphone como hacemos con cualquier red wifi. Una vez establecida la conexión con la red
procederemos del mismo modo que con los dispositivos Arduino.

6 APP ANDROID
Descargamos la APP DOMUINO desde la sección correspondiente del foro y la instalamos en un
Smartphone con Android.
Suele ser necesario activar la opción de Permitir aplicaciones de origen desconocido en las opciones
de Android.

Arrancamos la APP e insertamos las claves de USER y ADMIN deseadas. El perfil de Administrador
permite configurar el sistema así como crear/borrar entradas/salidas, horarios, programas y demás
elementos. El USER puede ver el estado del sistema ejecutar acciones sobre los elementos.

Al arrancar la APP por primera vez inicia automáticamente el proceso de búsqueda de dispositivos en
nuestra red LAN.

6
www.domuino.es
Si el proceso de auto detectado no tuviera éxito podemos forzarlo de nuevo en la pestaña de
dispositivos pulsando el botón de buscar (LUPA).
Auto detecta dispositivo y asigna un ID libre (1- 254) a demás de fijar la clave de ADMIN.
SI el proceso falla y aparece con el Id 0 hay que modificarlo manualmente.
Por defecto se auto asigna la dirección IP 192.168.1.80, hay que modificarla para dejarla libre para
nuevos dispositivos.
Es necesario realizar este proceso de uno en uno, manteniendo el resto de dispositivos no
configurados sin encender, dado que todos se inician con el Id 0 y la IP 192.168.80 y produciría
colisiones y errores inesperados.

En el caso de los dispositivos esp8266 una vez configuremos una red WIFI accesible, el dispositivo se
conectara automáticamente en dicha red, en el caso de no poder realizar esta conexión el dispositivo
inicia el MODO AP creando de nuevo una red propia durante 2 minutos donde conectarnos y podemos
realizar las modificaciones pertinentes. Solo entra en este modo tras cada reset hardware si no
consigue conectar a una red WIFI configurada. Si se borran los datos de conexión WIFI permanece en
este estado indefinidamente.

ELEMENTOS:
• CONTROLES: elemento complejos que permiten el control de otros elementos.
• SALIDAS: control de dispositivos externos a través de pines I/O.
• ENTRADAS: pines de entrada que se escanea constantemente, desencadenan los eventos de
estado (flanco subida, flanco bajada, pulso corto, pulso largo y fin pulso largo)
• SENSORES: de temperatura, humedad, pulsadores, interruptores, analógicos, distancia, luz...
• HORARIOS: control diferido de los distintos elementos mediante horarios semanales o de una
fecha determinada.
• CONSIGNA: parámetros introducido por el usuario para valores comprendidos entre +/-32768.
• CONTADOR: para almacenar valores hasta 4294967296
• ESCENA: agrupaciones de elementos con estados definidos
• PROGRAMA: crea programas condicionales anidados.
• NOTIFICACION: mensaje a aplicaciones remotas (APP).
• REMOTO: permite usar un elemento de otro dispositivo
• COMANDO: envía comandos Rf433 o IR.
• ACCION: programa condicional sobre un elemento

CONTROLES
 INCREMENTAL
 SECUENCIAL
 CALEFACCION
 REFRIGERACION
 DIGITAL
 DIMER
 MOTORIZADO
 CICLO RIEGO

SALIDAS
 ANALOGICA
 DIGITAL
 DIGITAL INVERTIDA
 SALIDA RF433

7
www.domuino.es

ENTRADAS
 ANALOGICA: Obtiene valores de entrada (0 – 100,00) cada 500 milisegundos.
 AUTO: modo automático para uso con sensores.
 DIGITAL: detecta sobre un pin de entrada cambios de estado, ON , OFF, pulso corto, pulso
largo y fin pulso largo (1 lógico se obtiene cuando está eléctricamente conectado a
GND)
 DIGITAL INVERTIDA: análogo a entrada DIGITAL pero de forma inversa, es decir, estado
lógico 1 se obtiene cuando el pin esta eléctricamente conectado a +VCC.
 DIGITAL PULLUP: análogo a entrada DIGITAL pero activada resistencia interna que conecta el
pin a +Vcc por defecto.
 DIGITAL PULLUP INVERTIDA análogo a entrada DIGITAL INVERTIDA pero activada
resistencia interna que conecta el pin a +Vcc por defecto.

8
www.domuino.es

SENSORES
 ADAPTADOR (0): para un rango de valores de entrada enteros de un elemento obtiene valores
de salida enteros en otro rango definido por el usuario, además de añadir unidades de
medida. Ejemplos:
• Pin analógico de entrada (0 – 100,00) fijamos salida (0 - 5000mV)
• Sensor de pulsos (0 – 42) fijamos salida (0 - 5000W/h)
• Sensor de distancia (0 – 3400) fijamos capacidad (0 - 100%)
 ADAPTADOR DECIMAL (0): para un rango de valores de entrada enteros de un elemento
obtiene valores de salida decimales en otro rango definido por el usuario, a demás de
añadir unidades de medida. Ejemplos:
• Pin analógico de entrada (0 - 100,00) fijamos salida (0 – 5,00V)
• Sensor de pulsos (0 – 42) fijamos salida (0 – 5,00Kwh)
• Sensor de distancia (0 – 3400) fijamos capacidad (0 - 100,00%)
 CREPUSCULAR (30): guarda coordinas geográficas, zona local horaria del sistema, y offsets
del orto y ocaso diario, devuelve los siguientes valores según el estado:
• NOCHE 0
• DIA 1
• ORTO 2
• OCASO 3
 ORTO (30): devuelve la hora de orto del día.
 OCASO (30): devuelve la hora de ocaso del día.
 DISTANCIA (30): Sensores de distancia utilizando el sensor de ultrasonidos HC-SR04.
 TEMPERATURA DS18B20 (30): Sensor de temperatura de valores entre -50.0 y 125.0 ºC.
 TEMPERATURA DTH (30): Sensor de temperatura de valores entre DHT11( -0 y 50ºC),
DHT22 ( -40.0 y 80.0ºC).
 HUMEDAD DTH (30): sensor de humedad de valores entre DHT11( 20-50%), DHT22 ( 0
-100%).
 PULSOS (30): cuenta numero de pulsos (flancos de subida) en 30 segundos , los pulsos han
de ser de periodo superior a 50ms.
 PERIODOS (0): calcula frecuencia para señales con periodo 0.01 a 599.99 segundos
 TIEMPO (0): mide tiempo activo de pulsos de 0 a 599.99 segundos
 RF433 (0): Detecta recepción de código en RF 433Mhz previamente definido o si se deja a cero
(0000000) asignara el primer código detectado.

(0) Actualización instantánea de valor y banderas de estado


(30) Actualización cada 30 segundos.

9
www.domuino.es

PROGRAMAS
Los diferentes elementos del sistema pueden
interactuar a través de sencillos comandos de
programación.
Se trata de una estructura anidada donde primero
se evalúan una serie de condiciones y si se
cumplen, se realiza una acción.

CONDICIONES
 >: Mayor que.
 <: Menor que.
 ==: igual que
 >=: Mayor o igual que
 <=: Menor o igual que
 !=: Distinto que

ESTADOS
 OFF: elemento en estado de reposo o apagado. (1)
 ON: elemento en estado activo o encendido. (1)
 FLANCO ON: elemento pasa de estado OFF a ON.(2)
 FLANCO OFF: elemento pasa de estado ON a OFF.(2)
 CAMBIO DE ESTADO. elemento ha cambiado de estado cualquiera que sea.
 PULSO CORTO: Pin de entrada ha tenido estado alto un de 30ms a 400ms.
 PULSO LARGO: Pin de entrada ha estado en estado alta mas de 400ms.
 FIN PULSO LARGO: Pin de entrada a finalizado un pulso largo.

(1) Téngase presenta que el estado activo de un pin de salida pude ser 0 voltios o GND y Vcc o 5V
para el estado inactivo, si esta configurado como inverso.
(2) Como ejemplo para el uso de flancos en el caso un programa que enciende una luz cuando
una puerta esta abierta, el estado ON correspondería mientras permanece abierta, y el
FLANCO ON al instante en que pasa de estar cerrada a abierta. La diferencia esta en que los
flancos solo se ejecutan una única vez y el estado ON esta constantemente produciéndose,
con el consiguiente consumo de recursos como CPU.

ACCIONES
 = ASIGNACION: Asigna a un elemento un valor dado o el valor de otro elemento.
 != CONTARIO: Asigna a un elemento el contrario de un valor de otro elemento. SI es 0 será
1 y si es distinto de 0 será 0. Se utiliza par conmutar de estado un elemento Elemento1!
=Elemento1.
 ++ SUMAR: Permite sumar un valor o restarlo a un elemento, (+-127)
 PULSO: Permite poner en estado alto un elemento durante un determinado tiempo. Si antes
de terminar dicho tiempo aplicamos otro pulso se reinicia el tiempo. Si la salida ya estaba en
estado alto sin temporización el pulso no tendrá efecto. Si una salida tiene un tiempo
máximo definido de activación el pulso no podrá superarlo.

10
www.domuino.es
REMOTOS
El sistema de remotos permite el uso de elementos situado en otros dispositivos como si se tratara de
un elemento local.
Los dispositivos han de tener la misma puerta de enlace en la configuración y además compartir las
mismas claves de admin para que puedan comunicarse mutuamente. Es decir han de estar en la
misma red i con la misma puerta de enlace por ejemplo 192.168.1.x (2015).
Para hacer uso de un elemento remoto se puede realizar seleccionándolo desde la lista de elementos
disponibles al editar o crear una programa, control, escena, contador...
Una vez creado aparecerá en el apartado de elementos remotos el estado local y el remoto recibido,
en caso de no coincidir se mostrara en color rojo y cualquier uso asociado no tendrá efecto.
Puede tardar algo menos de un minuto desde que iniciamos el sistema o creamos un remoto hasta
que es sincronizado adecuadamente por el resto de dispositivos.

DEBUG
Lo dispositivos grabados con un código binario que tengan el titulo la palabra Debug,
esencialmente todos menos los que solo tiene comunicación por ICSC, dado que se comparten los
pines de comunicaciones. Están dotados de una salida para depuración con mensajes de estado del
sistema, a través del puerto serie correspondiente y a una velocidad de 115200. Se puede utilizar el
IDE de arduino o aplicación hyperterminal u otras similares.

11
www.domuino.es

BUS ICSC
Descripción de implementación bus ICSC

12
www.domuino.es

13
www.domuino.es

14
www.domuino.es

ENLACE DESDE EXTERIOR


Cuando se intenta acceder desde fuera de casa a varios dispositivos, hay que configurar un puerto por
cada uno de ellos en la wan, y abrir un puerto para cada uno en el router.
Es decir, si tenemos un dispositivo1, con la ip xxx.xxx.xxx.xxx , puerto lan 2015, ponemos puerto wan
5001 ( por ejemplo)
Si queremos configurar el acceso al segundo, ponemos la ip correspondiente, puerto lan 2015, y
puerto wan 5002. Y asi sucesivamente.
Los que tengan un router detras del proporcionado por el suministrador de servicios de Internet, como
puede ser un tp-link o similar, tenéis que crear un servidor virtual en la configuración del router por
cada uno de los ESP satélites que tengáis, siempre asignándoles la misma ip y puerto wan que tenéis
configurado en el domuino.

15