www.domuino.es
MANUAL DOMUINO (En 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……………………………………… dispositivo…………………………………………………………….…… …………………….………. …. !pp android……………………………………………………………………………………………. " #le$entos …………………..……………………………………………….… …………………..……………………………………………….……………………..…. …………………..…. " Controles.. salidas entradas…………………………………………………………………………….………….… % sensores…………………………………………………………………………………….…… & 'orarios consigna contador escena progra$a …………………………………………………………………………………….…. 1( noti)icación re$oto co$ando acción % *ebug……………………………………………………………………………………………….…. 11 & +us ,C-C…………………………………………………………………………………………..….. 12 • • • • • • • • • • • • •
1
www.domuino.es 1 A!D"A!E NECE#A!IO o pri$ero /ue necesita$os en un dispositivo de control co$o !rduino o un #-0 1.1 !rduino o M#G! con #t'ernet -'ield para las co$unicaciones.
1.2 Cual/uier placa /ue integre el c'ip esp%2 es valido las cuales integran co$unicación 6,7,.
-i se tiene /ue ad/uirir reco$endado el !rduino M#G!25 con una #t'ernet -'ield w51((. #l resto de dispositivos de la ga$a de !rduino co$o ! M,, 08… los podre$os integrar en nuestra instalación a trav9s de un bus ,C-C 4%5 /ue $as adelante co$entare$os.
2 CODI$O %INA!IO -e 'a de progra$ar la $e$oria )las' del dispositivo una :nica ve; con el código *M, el resto de con)iguraciones se reali;an desde la !00 !*8,*. *escarga$os el código /ue 'a< /ue grabar en el dispositivo desde la ;ona de desc&r'& de Arcivos en el 78 sub apartado Códi'o Arduino. #l arc'ivo .;ip contiene las di)erentes versiones disponibles en )unción del tipo de dispositivo < su conectividad.
#l pri$er n:$ero indica la versión del código en el $o$ento de redacción de este $anual es v(.%3). ! continuación indica el tipo de dispositivo al /ue corresponde el código =#-0%2 M#G! !…> -eguido 'ace re)erencia al tipo de conexiones disponibles =#t'ernet cableado 6,7, o ,C-C>. 0uede aparecer *#+G /ue indica /ue se puede $onitori;ar por el puerto -erial o -,77#8 el cual per$ite capturar todos los pa/uetes de una red < $onitori;arlos para an?lisis.
2
www.domuino.es MODULO# DI#*ONI%LE# -e ad@unta un #xcel con los di)erentes )uncionalidades de cada versión dado /ue en los di)erentes dispositivos 'a< una capacidad li$itada < algunos $odulo no son i$ple$entados. E#*+2,, on-"i/i
E#*+2,, "i/iIC#C
ME$AEternet
UNO Eternet
UNO IC#C
NANOIC#C
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,2CB,A#8 -CD8AC A0 C8#0-C!8 *HA *-1%+2( - #!8C H *- 1%+ 2( 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,2CB,A#8 -CD8AC A0 C8#0-C!8 *HA *-1%+21 -#! 8C H * -1%+21 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,2CB,A#8 -CD8AC A0 C8#0-C!8 *HA *-1%+22 - #! 8C H *- 1%+ 22 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,A#8 -CD8AC A0 C8#0-C!8 *HA *-1%+23 -#!8 CH *- 1%+2( 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,A#8 -CD8AC ,C-C C8#0-C!8 *HA *-1%+24 -#!8C H * -1%+ 2( 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*#+G M*# 08,A ##08M -#8,! C-# 8AC ,A#8 -CD8AC ,C-C C8#0-C!8 *HA *-1%+25 -# !8 CH *-1%+ 2( 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
*!OMINIIC#C *#+G M*# 08,A ##08M -#8,! C-# 8AC ,A#8 -CD8AC ,C-C C8#0-C!8 *HA *-1%+2 -#! 8CH * -1%+2( 87433 AEB8E A8!-,C ,8 #AH#8#A *HC0 ,C-C 6,7, r)24 C,C- 8,#G MA8#CA!*8###M. +!-,C8#M. ##M#AA,7,C!C,#G8!7,C!,0 *,!M,C!
DE%U$ MODE per$ite ver a trav9s del ,*# !rduino o Hiperter$inal el estado < los eventos del siste$a en tie$po real. *!IN3 EE*!OM i$pri$e en el $odo debug copia de los datos grabado en la ##08M para depuración o crear copia de seguridad. #E!IAL CON#OLE introducción de co$andos por puerto seria para control < con)iguración del siste$a. !3C IN3E!NO control de la 'ora < )ec'a actual de )or$a autóno$a o a trav9s de relo@ externo ,2C del tipo *-3231 o *-13(". #4NC!3C sincroni;ación < puesta en 'ora con servidor A0 externo o dispositivo Master *M, por ,C-C. C!E*U#CULA! calculo de 'ora de orto < ocaso en dispositivos ,C-C esclavos se obstine de la sincroni;ación 'orario con el Master D3 co$patibilidad con sensores de te$peratura < 'u$edad *HA11 21 < 22. D#1+%20 sensor digital de te$peratura de *allas -e$iconductors. #EA!C D#1+%20 b:s/ueda < auto asignación de dirección con sensores *-1%+2(. !56 Control < lectura de co$andos a 433M'; co$o enc'u)es re$otos o $andos a distancia. UL3!A#ONIC -ensores de distancia utili;ando el sensor de ultrasonidos 'cFsr(4. ,8 envió < recepción de co$andos in)rarro@os para control ele$entos externos. E3E!NE3 co$unicaciones et'ernet con placas co$patible 651((. IC#C co$unicaciones $ediante bus 2 'ilos 8-4%5 < protocolo ,C-C $odi)icado. "I5I co$unicaciones en red $ediante red 6,7,. Nr/26 co$unicaciones utili;an c'ip inal?$brico nr)24l(1 de ordic -e$iconductor. CICLO# !IE$O control secuencial de salidas de riego te$pori;adas. MO3O!E# control siste$as $otori;ados por tie$po con pulsadores de entrada. CON3ADO!E# contadores de tie$po activación < acu$ulador de valores de ele$entos do$uino. ELEM7 %A#ICO# salidas < entradas analógicoBdigitales ter$ostatos etapas di$$er escenas consignas sensor pulsos sensor periodos < tie$po adaptadores 'orarios < progra$aciones. !EM ELEMEN3# uso de ele$entos re$otos de dispositivos *M, en red disponible. NO3I5ICACIONE# per$ite envo de aviso a aplicaciones $óviles progra$adas. $!A5ICA# !l$acena$iento de datos de sensores < creación de gra)icas. I* DINAMICA !uto detección de ,0 publica para co$unicaciones externas.
3
www.domuino.es 6 $!A%A! CODI$O %INA!IO EN DI#*O#I3I8O *escarga$os la 'erra$ienta /ue per$ite grabar el código en el dispositivo desde el apartado err&mient&s del 78 dentro desc&r'& de Arcivos . 4.1 G8!+!* 0!C!- !8*, *escarga$os la aplicación 9-o&der para la ga$a !rduinoBGenuino
Conecta$os el *ispositivo al ordenador nor$al$ente con un cable -+.
-elecciona$os en la aplicación el código binario correspondiente a la placa arduino /ue dispone$os < pone$os en el desplegable Device dic'o $odelo de placa. 0ara conocer el puerto COM /ue utili;a nuestro dispositivo pode$os ir al !d$inistrador de dispositivos de 6indows al apartado de puertos CM < 0A. a velocidad Baud Rate no se re/uiere tocar puesto /ue se a@usta auto$?tica$ente el seleccionar el Device adecuado.
4
www.domuino.es 4.2 G8!+!* 0!C!- #-0%2 *escarga$os la 'erra$ienta E#* 5LA# DO"NLOAD 3OOL para #-0%2
#n el caso de dispositivos sin puerto usb =#-0 (1> re/ueri$os de un adaptador -+ a -erial=7A*,> < reali;ar las conexiones pertinentes
*esde la 'erra$ienta correspondiente selecciona$os el código correspondiente a nuestro dispositivo el puerto CM =con el ad$inistrador de dispositivos de 6indows pode$os saber el puerto utili;ado> < lo graba$os pulsando -A!8A. #n la pantalla de co$andos aparece in)or$ación sobre el estado del proceso. #n dispositivos #-0%2 'a< /ue poner en $odo grabación el $ódulo antes de volcar el código .'ex nor$al$ente se reali;a $anteniendo pulsado el pin de )las' $ientras pulsa$os el reset o actuando sobre el pin de )las' con la placa apagada para posterior$ente ali$entarla sin soltarlo. #n placas odeMC se dispone de a$bos pulsadores para tal )in en caso de placas 6+#M- *1 'a< /ue unir el pin *3 con G* en el resto de placas 'a< /ue locali;ar el puerto G0,( < unirlo a G* < reali;ar el reset. na ve; reali;ado el grabado suele ser necesario reali;ar un reset para volver a $odo nor$al.
5
www.domuino.es : CONE9I;N CON NUE8O DI#*O#I3I8O Conecta$os el dispositivo a nuestra red ! en caso de #t'ernet o al bus ,C-C =8-4%5> a trav9s de tar@eta adaptadora en caso de dispositivo esclavo por +-. #n caso de dispositivos #-0%2 al inicio co$o no tiene datos de conexión de nuestra red wi)i crea una propia con el no$bre *M,D!0 xxxxxx =Mode !0> a la cual conectare$os nuestro s$artp'one co$o 'ace$os con cual/uier red wi)i. na ve; establecida la conexión con la red procedere$os del $is$o $odo /ue con los dispositivos !rduino.
, A** AND!OID *escarga$os la !00 *M, desde la sección correspondiente del )oro < la instala$os en un -$artp'one con !ndroid. -uele ser necesario activar la opción de 0er$itir aplicaciones de origen desconocido en las opciones de !ndroid. !rranca$os la !00 e inserta$os las claves de -#8 < !*M, deseadas. #l per)il de !d$inistrador per$ite con)igurar el siste$a as co$o crearBborrar entradasBsalidas 'orarios progra$as < de$?s ele$entos. #l -#8 puede ver el estado del siste$a e@ecutar acciones sobre los ele$entos. !l arrancar la !00 por pri$era ve; inicia auto$?tica$ente el proceso de b:s/ueda de dispositivos en nuestra red !.
www.domuino.es -i el proceso de auto detectado no tuviera 9xito pode$os )or;arlo de nuevo en la pestaa de dispositivos pulsando el botón de buscar =0!>. !uto detecta dispositivo < asigna un ,* libre =1F 254> a de$?s de )i@ar la clave de !*M,. -, el proceso )alla < aparece con el ,d ( 'a< /ue $odi)icarlo $anual$ente. 0or de)ecto se auto asigna la dirección ,0 1&2.1%.1.%( 'a< /ue $odi)icarla para de@arla libre para nuevos dispositivos. #s necesario reali;ar este proceso de uno en uno $anteniendo el resto de dispositivos no con)igurados sin encender dado /ue todos se inician con el ,d ( < la ,0 1&2.1%.%( < producira colisiones < errores inesperados.
#n el caso de los dispositivos esp%2 una ve; con)igure$os una red 6,7, accesible el dispositivo se conectara auto$?tica$ente en dic'a red en el caso de no poder reali;ar esta conexión el dispositivo inicia el M* !0 creando de nuevo una red propia durante 2 $inutos donde conectarnos < pode$os reali;ar las $odi)icaciones pertinentes. -olo entra en este $odo tras cada reset 'ardware si no consigue conectar a una red 6,7, con)igurada. -i se borran los datos de conexión 6,7, per$anece en este estado inde)inida$ente.
ELEMEN3O# CON3!OLE# ele$ento co$ple@os /ue per$iten el control de otros ele$entos. #ALIDA# control de dispositivos externos a trav9s de pines ,B. EN3!ADA# pines de entrada /ue se escanea constante$ente desencadenan los eventos de • • •
• •
• • • • • • • •
estado =)lanco subida )lanco ba@ada pulso corto pulso largo < )in pulso largo> #EN#O!E# de te$peratura 'u$edad pulsadores interruptores analógicos distancia lu;... O!A!IO# control di)erido de los distintos ele$entos $ediante 'orarios se$anales o de una )ec'a deter$inada. CON#I$NA par?$etros introducido por el usuario para valores co$prendidos entre IBF32"%. CON3ADO! para al$acenar valores 'asta 42&4&"2& E#CENA agrupaciones de ele$entos con estados de)inidos *!O$!AMA crea progra$as condicionales anidados. NO3I5ICACION $ensa@e a aplicaciones re$otas =!00>. !EMO3O per$ite usar un ele$ento de otro dispositivo COMANDO enva co$andos 8)433 o ,8. ACCION progra$a condicional sobre un ele$ento
CON3!OLE# INC!EMEN3AL #ECUENCIAL CALE5ACCION !E5!I$E!ACION DI$I3AL DIME! MO3O!I
#ALIDA# ANALO$ICA DI$I3AL DI$I3AL IN8E!3IDA #ALIDA !56
"
www.domuino.es
EN3!ADA# ANALO$ICA btiene valores de entrada =( J 1((((> cada 5(( $ilisegundos. AU3O $odo auto$?tico para uso con sensores. DI$I3AL detecta sobre un pin de entrada ca$bios de estado 77 pulso corto pulso
largo < )in pulso largo =1 lógico se obtiene cuando est? el9ctrica$ente conectado a G*> DI$I3AL IN8E!3IDA an?logo a entrada *,G,A! pero de )or$a inversa es decir estado lógico 1 se obtiene cuando el pin esta el9ctrica$ente conectado a IKCC. DI$I3AL *ULLU*7 an?logo a entrada *,G,A! pero activada resistencia interna /ue conecta el pin a IKcc por de)ecto. DI$I3AL *ULLU* IN8E!3IDA an?logo a entrada *,G,A! ,K#8A,*! pero activada resistencia interna /ue conecta el pin a IKcc por de)ecto.
%
www.domuino.es #EN#O!E# ADA*3ADO! =(>7 para un rango de valores de entrada enteros de un ele$ento obtiene valores
de salida enteros en otro rango de)inido por el usuario ade$?s de aadir unidades de $edida. #@e$plos 0in analógico de entrada =( J 1((((> )i@a$os salida =( F 5((($K> -ensor de pulsos =( J 42> )i@a$os salida =( F 5(((6B'> -ensor de distancia =( J 34((> )i@a$os capacidad =( F 1((L> ADA*3ADO! DECIMAL =(>7 para un rango de valores de entrada enteros de un ele$ento obtiene valores de salida deci$ales en otro rango de)inido por el usuario a de$?s de aadir unidades de $edida. #@e$plos 0in analógico de entrada =( F 1((((> )i@a$os salida =( J 5((K> -ensor de pulsos =( J 42> )i@a$os salida =( J 5((w'> -ensor de distancia =( J 34((> )i@a$os capacidad =( F 1((((L> C!E*U#CULA! =3(>7 guarda coordinas geogr?)icas ;ona local 'oraria del siste$a < o))sets del orto < ocaso diario devuelve los siguientes valores seg:n el estado CH# ( *,! 1 8A 2 C!- 3 O!3O =3(> devuelve la 'ora de orto del da. OCA#O =3(> devuelve la 'ora de ocaso del da. DI#3ANCIA =3(> -ensores de distancia utili;ando el sensor de ultrasonidos HCF-8(4. 3EM*E!A3U!A D#1+%20 =3(> -ensor de te$peratura de valores entre F5(.( < 125.( NC. 3EM*E!A3U!A D3 =3(> -ensor de te$peratura de valores entre *HA11= F( < 5(NC> *HA22 = F4(.( < %(.(NC>. UMEDAD D3 =3(> sensor de 'u$edad de valores entre *HA11= 2(F5(L> *HA22 = ( F1((L>. *UL#O# =3(> cuenta nu$ero de pulsos =)lancos de subida> en 3( segundos los pulsos 'an de ser de periodo superior a 5($s. *E!IODO# =(> calcula )recuencia para seales con periodo (.(1 a 5&&.&& segundos 3IEM*O =(> $ide tie$po activo de pulsos de ( a 5&&.&& segundos !56 =(> *etecta recepción de código en 87 433M'; previa$ente de)inido o si se de@a a cero =(((((((> asignara el pri$er código detectado. • • •
• • •
• • • •
=(> !ctuali;ación instant?nea de valor < banderas de estado =3(> !ctuali;ación cada 3( segundos.
&
www.domuino.es *!O$!AMA# os di)erentes ele$entos del siste$a pueden interactuar a trav9s de sencillos co$andos de progra$ación. -e trata de una estructura anidada donde pri$ero se eval:an una serie de condiciones < si se cu$plen se reali;a una acción.
CONDICIONE# = Ma Menor /ue. ?? igual /ue =? Ma? Menor o igual /ue @? *istinto /ue
E#3ADO#
O55 ele$ento en estado de reposo o apagado. =1> ON ele$ento en estado activo o encendido. =1> 5LANCO ON ele$ento pasa de estado 77 a .=2> 5LANCO O55 ele$ento pasa de estado a 77.=2> CAM%IO DE E#3ADO . ele$ento 'a ca$biado de estado cual/uiera /ue sea. *UL#O CO!3O 0in de entrada 'a tenido estado alto un de 3($s a 4(($s. *UL#O LA!$O 0in de entrada 'a estado en estado alta $as de 4(($s. 5IN *UL#O LA!$O 0in de entrada a )inali;ado un pulso largo.
=1> A9ngase presenta /ue el estado activo de un pin de salida pude ser ( voltios o G* < Kcc o 5K para el estado inactivo si esta con)igurado co$o inverso. =2> Co$o e@e$plo para el uso de )lancos en el caso un progra$a /ue enciende una lu; cuando una puerta esta abierta el estado correspondera $ientras per$anece abierta < el 7!C al instante en /ue pasa de estar cerrada a abierta. a di)erencia esta en /ue los )lancos solo se e@ecutan una :nica ve; < el estado esta constante$ente produci9ndose con el consiguiente consu$o de recursos co$o C0.
ACCIONE# ? A#I$NACION !signa a un ele$ento un valor dado o el valor de otro ele$ento. @? CON3A!IO !signa a un ele$ento el contrario de un valor de otro ele$ento. -, es ( ser?
1 < si es distinto de ( ser? (. -e utili;a par con$utar de estado un ele$ento #le$ento1O P#le$ento1. #UMA! 0er$ite su$ar un valor o restarlo a un ele$ento =IF12"> *UL#O 0er$ite poner en estado alto un ele$ento durante un deter$inado tie$po. -i antes de ter$inar dic'o tie$po aplica$os otro pulso se reinicia el tie$po. -i la salida
1(
www.domuino.es !EMO3O# #l siste$a de re$otos per$ite el uso de ele$entos situado en otros dispositivos co$o si se tratara de un ele$ento local. os dispositivos 'an de tener la $is$a Buert& de en-&ce en la con)iguración < ade$?s co$partir las $is$as claves de ad$in para /ue puedan co$unicarse $utua$ente. #s decir 'an de estar en la $is$a red i con la $is$a puerta de enlace por e@e$plo 1&2.1%.1.x =2(15>. 0ara 'acer uso de un ele$ento re$oto se puede reali;ar seleccion?ndolo desde la lista de ele$entos disponibles al editar o crear una progra$a control escena contador... na ve; creado aparecer? en el apartado de ele$entos re$otos el estado local < el re$oto recibido en caso de no coincidir se $ostrara en color ro@o < cual/uier uso asociado no tendr? e)ecto. 0uede tardar algo $enos de un $inuto desde /ue inicia$os el siste$a o crea$os un re$oto 'asta /ue es sincroni;ado adecuada$ente por el resto de dispositivos.
DE%U$ o dispositivos grabados con un código binario /ue tengan el titulo la palabra *ebug esencial$ente todos $enos los /ue solo tiene co$unicación por ,C-C dado /ue se co$parten los pines de co$unicaciones. #st?n dotados de una salida para depuración con $ensa@es de estado del siste$a a trav9s del puerto serie correspondiente < a una velocidad de 1152((. -e puede utili;ar el ,*# de arduino o aplicación '
11
www.domuino.es
%U# IC#C *escripción de i$ple$entación bus ,C-C
12
www.domuino.es
13
www.domuino.es
14
www.domuino.es
ENLACE DE#DE E93E!IO! Cuando se intenta acceder desde )uera de casa a varios dispositivos 'a< /ue con)igurar un puerto por cada uno de ellos en la wan < abrir un puerto para cada uno en el router. #s decir si tene$os un dispositivo1 con la ip xxx.xxx.xxx.xxx puerto lan 2(15 pone$os puerto wan 5((1 = por e@e$plo> -i /uere$os con)igurar el acceso al segundo pone$os la ip correspondiente puerto lan 2(15 < puerto wan 5((2. asi sucesiva$ente. os /ue tengan un router detras del proporcionado por el su$inistrador de servicios de ,nternet co$o puede ser un tpFlinQ o si$ilar ten9is /ue crear un servidor virtual en la con)iguración del router por cada uno de los #-0 sat9lites /ue teng?is sie$pre asign?ndoles la $is$a ip < puerto wan /ue ten9is con)igurado en el do$uino.
15