es
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
www.domuino.es
En el caso de dispositivos sin puerto usb (ESP 01), requerimos de un adaptador USB a Serial(FTDI) y
realizar las conexiones pertinentes,
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.
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
15