Home
4. Manual
Contents
1. Escola T cnica Superior d Enginyeries Industrial i Aeron utica de Terrassa UNIVERSITAT POLIT CNICA DE CATALUNYA Titulaci Enginyeria Industrial pla 2003 Alumne nom i cognoms Marcelo Germ n L pez P rez T tol PFC Proyecto de dise o de una red inal mbrica de sensores de bajo coste Director del PFC David Gonz lez Diez Convocat ria de lliurament del PFC 2014 15 Q1 Contingut d aquest volum MANUAL DE USUARIO ndice de contenido E ELN SNS na 4 A HardWate inini aea eE a r a aa ENa 4 A O 5 1 3 Programaci n del Mod iii iii 6 2 Configuraci n de las radios sn dordn oddoas 8 3 Software de procesado de datoS cccccccconcoccnoconiconconcnonancnanconanonaninancnnos 12 3il NWwebde ted tata iaa to 12 A A A 13 3 3 Nivel de dispositivo area 15 A E 17 4 Referencia de inter S oooonooocccccnnncccnnnonornnnnonnnnnnnnnnnn ono nnnnnnncranananr non nrnnnnnnn 19 ANEXOS ici ne dosudi ndari aasia aaa 1 Formato de dats ii A AA 1 Comandos de acta teatral bird 6 ndice de figuras Figura 1 XBee Explorer Regulated Fuente SparkFUN ooccccooccnconccnconcnnnonnnnnnnns 4 Figura 2 M dulos utilizados para construcci n de un nodo Sensor s s 6 Figura 3 Aspecto del nodo sensor montado ccccoccccnnccnccnncnnnnnnnnnnnnnnnnannnnnnnnnnnns 6 Figura 4 Ventana de X CTU en el modo de configuraci n cccoccccocccnnnnnncnnnnnanos 8 Figura 5 Mensaje solicitando resetear el m dulo XB ccc
2. LEDstate break case 0x03 break default break Como puede verse dentro de la funci n rx_packet se descifra el mensaje recibido Cuando el mensaje es de tipo actuaci n y va dirigido al led RGB payload 0 0x02 payload 1 0x05 se leen los valores para los par metros saltando al siguiente par metro si se recibe el byte OxFF en primer lugar Una vez establecidos los valores de los par metros se ejecuta la funci n light que aplica los cambios al led Luego se ejecuta la funci n LEDstate que devuelve el valor al que se encuentran todos los par metros del dispositivo tras la acutaci n Esta funci n es muy importante ya que de lo contrario el no tendr a confirmaci n ni registro fiable de la actuaci n
3. deber proceder puenteando el pin 5 del Xbee RESET a GND No se recomienda estraer el Xbee de su z calo para resetearlo ya que esto puede provocar problemas no s lo en el m dulo sino en su ordenador Si el mensaje persiste revise las conexiones puede tratarse de un problema de montaje s Action required x ACTION REQUIRED Reset your radio module If the dialog is not closed within 10 seconds click cancel Figura 5 Mensaje solicitando resetear el m dulo XBee Una vez cargado el firmware se proceder a configurar los par metros de la radio Lo primero que se debe definir el la PAN ID o direcci n de la red en el apartado Networking Luego se debe definir la direcci n de destino de la radio en el apartado Adressing indicando la parte alta y baja de la direcci n de 64 bits de la radio a la que se conectar el nodo Este par metro es particularmente importante para los end device ya que requieren de un nodo padre para poder conectarse a la red el cual debe ser un router o el coordinador En el apartado de Serial Interfacing deber configurar el par metro AP a valor 1 para que la radio funcione correctamente con la programaci n desarrollada para las comunicaciones en modo API en el nodo sensor y en el programa de procesado de datos Finalmente en el apartado Sleep Mode se configuran si procede los par metros del ciclo de SLEEP que realizar el nodo En este sistema se utilizar siempre el modo Sleep c
4. 300 1 Device csv es el archivo en el que se guardan todos los dispositivos conectados al nodo y sus caracter sticas Se encuentra dentro de la carpeta con la ID del nodo correspondiente dentro de la carpeta nodes Ejemplo TID name X Y role 40BABC69 NOD_1 400 300 1 01 DHT11 211 298 3 Parameters es el archivo en el que se guardan todos los par metros del dispositivo y sus carfacteristicas Se encuentra dentro de la carpeta con la ID del nodo correspondiente dentro de la carpeta nodes y el archivo se identifica por la ID del dispositivo ejemplo 01 csv para el dispositivo con ID 01 Ejemplo ID name type unit min max default last 01 TEMP 2 9C 50 60 0 02 HUMIDITY 2 0 100 0 Data es el archivo en el que se guardan todas las mediciones recibidas desde los nodos sensores para un dispositivo Este archivo se genera autom ticamente para cada dispositivo cada vez que se inicia la aplicaci n Se encuentra dentro de la carpeta con la ID del nodo correspondiente dentro de una carpeta con la fecha del d a y el archivo se identifica por la ID del dispositivo ejemplo 01 csv para el dispositivo con ID 01 Ejemplo time 01 02 del 0 0 08 29 04 23 0 52 08 33 42 22 0 54 08 38 20 22 00 08 42 58 22 0 56 Oooo 17 Dado que cada vez que inicia el programa se crean los archivos de datos la lista de par metros del dispositivo debe estar correctamente
5. actualizada ya que los datos se procesan y guardan en el archivo en funci n de su posici n en el mensaje tal como se especifica en el formato de datos Eliminar alg n par metro de la lista implica reasignar las ID de los que est n por debajo de este en el archivo de par metros Cambiar la posici n de los par metros en la lista tambi n puede traer problemas al procesar los datos Si se reciben m s mediciones que par metros se ha configurado el programa lo considera como un error al no poder guardarlos correctamente en el archivo de datos Puede incluso llegar a cerrar el puerto del coordinador y cortar las comunicaciones dejando de recibir cualquier dato o directamente colgarse y dejar de funcionar Por esta raz n antes de comenzar a enviar datos desde un nodo sensor se debe obligatoriamente configurar el nodo el dispositivo y los par metros Otra caracter stica de la aplicaci n es que est dise ada para funcionar de forma ininterrumpida Si por cualquier motivo la aplicaci n debe cerrarse al iniciarse de nuevo durante el transcurso del mismo d a el programa vuelve a generar los archivos de datos sobrescribiendo con archivos vacios los existentes Por ello se recomienda pasar a un lugar seguro todos los datos recogidos antes de volver a ejecutar la aplicaci n de procesado de datos 18 4 Referencia de inter s 1 R Faludi Building Wireless Sensor Networks O Reilly Media 2010 2 Digi International Inc
6. antena disponibles pues son intercambiables En cuanto al adaptador se recomienda utilizar el que mejor se adapte a las necesidades del usuario Existen diferentes modelos como la Wireless Shield desarrollada por el Team Arduino o el XBee explorer desarrolado por SpakFun Figura 1 XBee Explorer Regulated Fuente SparkFun El usuario debe recordar que el adaptador es un componente necesario no s lo porque la separaci n de los pines del m dulo XBee es menor a la utilizada normalmente en otros componentes como Arduino o protoboards sino porque operan con niveles l gicos diferentes El Arduino uno opera con l gica de 5V mientras los m dulos XBee operan con l gica de 3 3 V Esto dificulta la conexi n directa de estos dispositivos y su buen funcionamiento a menos que se utilice un adaptador l gico de niveles para solucionar el problema Por esta raz n la gran mayor a de adaptadores comerciales para XBee incorporan adaptadores l gicos en sus circuitos 1 2 Construcci n La construcci n del nodo es bastante sencilla Simplemente hay que conectar los m dulos para asegurar la comunicaci n entre los UART del Arduino y el XBee Esto se consigue conectando el pin 2 DOUT del m dulo XBee al pin O de Arduino RX y el pin 3 DIN del m dulo XBee al pin 1 de Arduino TX Si el usuario trabaja con una Shield del Team Arduino deber colocar los Jumpers en la posici n XBee o si utiliza las nuevas versiones deber colocar el co
7. clico SM 4 El tiempo que el nodo permanecer apagado se calcula con la siguiente f rmula SP SN 10 tiempo apagado por n mero de ciclos seguidos por 10 cuando SO 4 dando como resultado el tiempo en milisegundos Por defecto SO 0 el m dulo s lo est apagado el tempo indicado por SP mientras que en el modo avanzado el tiempo se multiplica por SN Por su parte el tiempo que el nodo permanecer encendido se define por el par metro ST en milisegundos Este tiempo ser bastante corto en la mayor a de aplicaciones con modo SLEEP habilitado para ahorrar energ a A modo de ejemplo si un nodo end device est conectado a la red cuya ID es 0x2014 a trav s de un router con direcci n 0x0013A200 0x40BABC80 y utiliza ciclos SLEEP permaneciendo 280 segundos apagado y 5 segundos encendido esta ser a la configuraci n de los par metros Tabla 1 Ejemplo de configuraci n de los par metros de un m dulo Xbee Par metro Valor ID 2014 DH 0013A200 DL 40BABC80 AP 2 SM 4 SN 0A SO 04 SP AFO ST 1388 10 Adicionalmente se debe configurar el apartado Sleep Mode del coordinador de la red con los valores de los par metros SN y SP mayores utilizados en los nodos Esto debe hacerse porque si el coordinador no recibe respuesta de un nodo tras el tiempo establecido por sus par metros SN y SP seg n la f rmula del Sleep mode eliminar el nodo de la lista de dispositivos de la red Cuando eso o
8. nodo sensor deber identificarse con un byte nico para transmitir datos cuando se programe cada aplicaci n Este byte servir tambi n para identificar los datos en el nodo central y almacenarlos correctamente Finalmente aparecen los propios datos a transmitir Como se coment en apartados anteriores los datos s lo incluir n los valores num ricos mientras que otras caracter sticas como unidades se asociar n a la hora de almacenar los datos en el nodo central a partir del identificador del dispositivo En Arduino los n meros enteros o int ocupan 16 bits las variables de tipo long 32 bits y los floats tambi n 32 bits Esto supone una limitaci n para el tama o de los n meros con el que se puede trabajar y es un aspecto muy importante a la hora de transmitir los datos a trav s de la red Teniendo en cuenta que las radios XBee en modo API requieren comunicarse a trav s de bytes se plantearon el llamado sistema de los 54 bytes para descomponer las variables En esta forma se plantea dividir los n meros a transmitir en bytes mediante operaciones Bitwise De esta forma cualquier n mero entero se podr a transmitir utilizando s lo dos bytes dividi ndolo en su parte alta y baja Las variables de tipo 1ong se podr an tratar de forma similar pero dividi ndola en 4 bytes Ejemplo o 1024 gt 0xFC 0x00 1111 1100 0000 0000 o 40 gt 0x00 0x28 0000 0000 0010 1000 El problema de esta forma es que aunque Arduino traba
9. un led RGB ccccccccncons 7 Tabla 9Funciones utilizadas para comandar el led RGB coccccccccccncccnnncnnnannns 7 El presente manual se ha desarrollado con el fin de facilitar la tarea del usuario a la hora de programar y operar el sistema desarrollado Aqu se describen todos los pasos necesarios para instalar un nodo sensor la configuraci n de la red de comunicaciones multi hop y del programa de procesado de datos Tambi n se dan algunos consejos para facilitar el uso y ayudar a entender el funcionamiento del sistema 1 El nodo sensor El nodo sensor es el encargado de realizar las mediciones desde los sensores procesar la informaci n enviar los datos al nodo central de la red y realizar alguna acci n correctora si procede 1 1 Hardware El nodo sensor utilizado en este sistema tiene una construcci n bastante sencilla y modular Consiste en una placa Arduino encargado de las funciones de micro controlador y un m dulo XBee ZB conectados mediante el necesario adaptador La placa Arduino utilizada para desarrollar este proyecto fue el modelo UNO aunque cualquier otro modelo que utilice un MCU de la misma familia que el AT Mega 328 P podr a funcionar igualmente Las radios utilizadas en los nodos sensores deber n ser XBee de la serie 2 bajo protocolo ZigBee Para funcionar correctamente las radios deber n estar configuradas con el firmware en modo API Puede utilizarse cualquiera de las diferentes versiones de
10. 03 BLUE 2 BIT 0 255 o 19 55 06 gt 0 0 Send command Q Back Figura 13 Ventana de la aplicaci n para un actuador En este nivel tambi n se pueden agregar y editar las propiedades de los par metros En este caso la ID del par metro se asigna autom ticamente En el apartado de tipo se reconocen dos clases e 1 par metro binario Son par metros de naturaleza booleana Estos par metros s lo pueden adoptar dos valores o y 1 que se asignar n a cada posici n en la programaci n del nodo e 2 par metro variable Son aquellos par metros que pueden variar en el rango establecido por el m ximo y el m nimo Las variables pueden ser de naturales integer o float El usuario deber asignar tambi n una unidad de medida al par metro y se puede asignar una posici n por defecto del par metro que se puede tener en cuenta a la hora de realizar actuaciones A diferencia de los otros niveles de la aplicaci n en este nivel no se puede eliminar un par metro directamente desde el cuadro de edici n Como medida de seguridad la eliminaci n de los par metros se debe realizar manualmento modificando el archivo del dispositivo 16 3 4 Archivos Esta aplicaci n funciona con cuatro tipos de archivos Network csv es el archivo principal en el que se guardan todos los nodos de la red y sus caracter sticas Ejemplo TID name X Y role 40BABC78 CENTRAL 400 300 0 40BABC69 NOD1 568 300 1 40BABC33 NOD2 234
11. OI Operating 16 bit PAN ID A800 CH Operating Channel E NC Number of Remaining Children A Addressing Change addressing settings SH Serial Number High 134200 90 1 SL Serial Number Low 40BABC78 Figura 4 Ventana de X CTU en el modo de configuraci n El primer paso para configurar un m dulo XBee para la red es cargar el firmware en el dispositivo Para ello seleccione en la pesta a de configuraci n A continuaci n se abrir la ventana de actualizaci n del firmware donde deber seleccionar la familia a la que pertenece su XBee puede encontrarla en la parte inferior del m dulo al funci n del nodo en la red y la versi n del firmware seleccione siempre versiones por encima de 2170 En cuanto a la funci n deber seleccionarla en funci n del rol que seguir la radio en la red ZigBee coordinador router o end device y dependiendo de las caracter sticas de su nodo sensor Destacar que en una red ZigBee s lo hay un coordinador los router tienen la capacidad de ejecutar ciclos de SLEEP y de pasar mensajes ente radios en una red multi hop y los end device siempre funcionan con el modo SLEEP habilitado y no pueden pasar mensajes como los routers Si durante la carga del firmware o en cualquier otro momento aparece un mensaje como el de la siguiente imagen deber proceder a resetear el m dulo Xbee Si utiliza un adaptador espec fico puede que disponga de un switch para ello En otros casos como en las shields
12. XBee ZB User Manual 2012 En l nea Available http ftp1 digi com support documentation 90000976_T pdf ltimo acceso junio 2014 3 Processing References 2014 En l nea Available http www processing org reference ltimo acceso junio 2014 4 Arduino Languaje References 2014 En l nea Available http arduino cc en Reference HomePage ltimo acceso junio 2014 19 Anexos Formato de datos Dentro del marco API de transmisi n de mensajes los datos de las mediciones que forman la RF data se configuran siguiendo la siguiente estructura Tabla 2 Estructura utilizada para la transmisi n de mensajes Data type Device A S data Byte 1 Byte 2 Byte 4 Byte n Single Byte Single byte Data bytes En esta estructura el primer byte se refiere al tipo de datos que se recibir n como mediciones provenientes de sensores posici n o estado de actuadores o valores de par metros Por ello se propone la siguiente codificaci n aunque en evoluciones posteriores del sistema se podr n agregar opciones adicionales Tabla 3 Codificaci n propuesta de los data type Data type Descripci n 0x01 Datos de medidas de sensores 0x02 Estado y o posici n de los actuadores 0x03 Valor actual de un par metro El siguiente Byte identifica el dispositivo sensor actuador u otro del que provienen los datos De esta manera cada dispositivo conectado al
13. ando la aplicaci n de Arduino en el nodo sensor lea este byte entiende que no debe modificar el par metro del actuador y que debe saltar al siguiente par metro Adicionalmente esta estructura permite que los par metros no modificados o comandados ocupen s lo un byte OxFF en el mensaje mientras que el par metro a comandar ocupar los cinco bytes con el primero se alando el signo correspondiente Esta es la estructura que se program en Processing y con la que se recibir n los mensajes en Arduino Las funciones espec ficas para comandar los actuadores que se conecten al nodo sensor deber n programarse teniendo en cuenta esta estructura y adapt ndose a cada caso A modo de ejemplo se plantea el siguiente caso Ejemplo e LEDRGB El actuador a en cuesti n es un diodo led RGB con tres par metros comandables uno por cada color Suponiendo que sea el segundo de los tres par metros el que se comanda la estructura del mensaje a enviar al nodo sensor es la siguiente Tabla 8 Estructura del mensaje de actuaci n para un led RGB Data type 0x02 Device 0x05 10 param ignorar OAN 0x00 0x00 A S data comando 2 param 0x1B de actuaci n actuar 0x00 0x00 30 param ignorar an Cuando Arduino recibe este mensaje identificando un comando de actuaci n Data type recompone el comando y ejecuta la funci n correspondiente para el dispositivo se alado 0x05 Para ello se d
14. cconooooocncnnnnncconnnanos 9 Figura 6 Ventana principal de la aplicaci n de procesado de datos cccmmm 12 Figura 7 Ventana de edici n para el men de red ococcccccccccnnnnanannnnnnnnnnnnnnnnnnns 13 Figura 8 Ejemplo de etiquetas de los tres tipos de nodo de la red 13 Figura 9 Ventana de la aplicaci n en el men del nodo ccccccccccoannncnnnnnnnnnnnnn 14 Figura 10 Ventana de edici n para el men del nodo ccccccncccnonnncnnnnnnnnnannnos 14 Figura 11 Ejemplo de etiquetas para los dispositivos de UN nodo cccccooo 14 Figura 12 Ventana de la aplicaci n en el men del dispositivo 15 Figura 13 Ventana de la aplicaci n para un actuador occcoccccccconononnnnnnnnnnnnnnnno 16 ndice de tablas Tabla 1 Ejemplo de configuraci n de los par metros de un m dulo Xbee 10 Tabla 2 Estructura utilizada para la transmisi n de mensajes cccccnnnnconnnnnoss 1 Tabla 3 Codificaci n propuesta de los data type cccccccccnccnnnnnnnnnnnnnnnnnnnnnonos 1 Tabla 4 Estructura del formato para la transmisi n de datos 3 Tabla 5 C digo de la funci n ftoheX ccccccccccncncncnnnnnnnnnnnnnnnnnonnnnononnnnnnnnnnnnnos 3 Tabla 6 Funci n de control del potenci metro cccccccccccnnncncnnnnnnnonononnnnnnnnns 4 Tabla 7 Funci n de control del sensor DHT 111 ccccconnnnnccnnnnnncnononnnanononnnnnnnos 5 Tabla 8 Estructura del mensaje de actuaci n para
15. curre el nodo debe volver a realizar todo el proceso de asociaci n a la red antes de poder enviar sus mensajes lo que retrasa las comunicaciones Una vez configurada la red el nodo coordinador formado por el Xbee configurado como coordinador y conectado a una placa Arduino sin MCU ir conectado al ordenador donde se ejecutar la aplicaci n de procesado de dato mientras que el resto de nodos se situar n donde as lo requiera la aplicaci n NOTA Si al conectar el nodo sensor ste no transmite los mensajes de los sensores es posible que se deba a que Arduino no ha procesado correctamente el mensaje de modem status que se recibe al arrancar el XBee y conectarse a la red En ese caso puede enviar un comando AT remoto con X CTU para resetear el XBee y que vuelva a enviar un mensaje de modem status a Arduino o puede optar por resetear manualmente el m dulo puenteando el pin 5 del Xbee a GND 11 3 Software de procesado de datos La aplicaci n de procesado de datos se ha desarrollado con el fin de facilitar su uso al usuario Cuando el usuario inicia la aplicaci n por primera vez ver la siguiente imagen FT sketch_140825b sloj xi O rew XBee Network Q 9 Edit selected 40BABC78 CENTRAL Q e Figura 6 Ventana principal de la aplicaci n de procesado de datos 3 1 Nivel de red En la pantalla principal o men de red aparecer n todos los nodos de los que se compone la red de sensores Inicialmente
16. esarroll un c digo que descifrara el mensaje cuando este va dirigido al dispositivo se alado Tabla 9Funciones utilizadas para comandar el led RGB uint8_t bright 3 0 0 0 void light uint8_t R uint8_t G uint8_t B R R 0xFF G G 0xFF B B O0xFF analogWrite RED R analogWrite GREEN G analogWrite BLUE B void LEDstate uint8_t led 171 led 0 0x01 led 1 actuatorLED uint8_t pos 2 ftohex float bright 0 value for uint8_t i 0 i lt sizeof value i led pos i valuelil pos 5 ftohex float bright 1 value for uint8_t i 0 i lt sizeof value i led pos i valuelil pos 5 ftohex float bright 2 value for uint8_t i 0 i lt sizeof value i led pos i valuelil tx_request led sizeof led void rx_packet int packet_size uint8_t payload packet_size 12 uint8_t check 0x90 for uint8_t 1 0 i lt 11 1 check Serial read for uint8_t i 0 i lt sizeof payload i payload i Serial read check payload i check Serial read sumar checksum if check 0xFF switch payload 0 case 0x01 break case 0x02 if payload 1 0x05 uint8_t pos 2 for uint8_t 3 0 J lt 3 J if payload pos 0xFF pos elsel bright 3 1 payload pos 2 pos 5 light brig t 0 bright 1 bright 2
17. idity float t dht readTemperature uvint8_t THM 12 medida THM 0 0x01 dispositivo THM 1 0x015 ftohex t value for uint8_t i 0 ftohex h value for uint8_t i 0 i lt sizeof va ue i lt sizeof va ue tx_request THM sizeof THM 1 THM i i THM 1 2 value il 7 valuel il Comandos de actuaci n Un inconveniente del programa desarrollado es que s lo se pueden ejecutar comandos de actuaci n un par metro a la vez Por otro lado y como se explic los mensajes de datos de un dispositivo se env an todos juntos desde Arduino diferenci ndose unos de otros por su posici n en el mensaje El resultado es que las aplicaciones desarrolladas tanto en Processing como en Arduino no tratan los par metros de forma individualizada sino como componentes de un dispositivo En consecuencia fue necesario desarrollar una estructura que permitiera determinar qu par metro de un actuador se desea modificar de acuerdo al comando enviado mientras que el resto deber ser ignorado La soluci n fue utilizar el primer byte de un dato como se alador De acuerdo al formato de datos planteado de cinco bytes el primero corresponde al signo del n mero siendo este 0x00 cuando el n mero es positivo y 0x01 cuando es negativo Ahora se plantea que este byte tome el valor OxFF cuando el par metro deba ser ignorado al transmitir un comando de actuaci n De esta forma cu
18. ior por ser m s c moda de trabajar Para configurar una radio XBee utilizando la placa Arduno como Adaptador hay que realizar las conexiones de datos de tal manera que el UART del XBee est conectado con el puerto USB de la placa Para ello las conexiones con la placa deben intercambiarse conectando DOUT a TX y DIN a RX Si se trabaja con una Shield simplemente coloque los jumpers o el conmutador en la posici n USB Para evitar interferencias es necesario extraer el micro controlador de la placa Una vez conectada la placa al puerto USB de su ordenador siga las instrucciones de X CTU para agregar el nuevo m dulo En la pesta a de configuraci n podr ver y editar los par metros de la radio Recuerde que muchos de los par metros se escriben en formato hexadecimal e XCTU JO Radio modules F Radio Configuration 0013A20040BABC78 SA i Name Function ZigBee Coordinator API Port COMS 9600 8 N 1 N API MAC 0013A200408A8C78 e de 8 Qf a a a 45 60 Firmware information Written and default 2 Written and not default Product family XBP24627 Function set ZigBee Coordinator API Firmware version 2147 Networking Change networking settings o O ID panio 2014 606060 GOAO 0000 SC Scan Channels F te SD Scan Duration 3 exponent ZS ZigBee Stack Profile o W Node Join Time FF se OP Operating PAN 1D 2014 O
19. ja con enteros de 16 bits los ordenadores para el almacenamiento de datos son sistemas de 32 bits Esto hace dif cil reconocer y reconstruir n meros negativos enviando s lo dos bytes de informaci n Por esta raz n se incluye un byte adicional de signo De esta forma cuando este byte tenga valor 0x01 ser indicativo de un n mero negativo mientras el n mero en s se enviar en valor absoluto o 1024 gt 0x01 OxFC 0x00 0000 0001 0000 0100 0000 0000 o 40 gt 0x00 0x28 0000 0000 0000 0000 0010 1000 Las variables de tipo long requerir n entonces cinco bytes para ser transmitidas Por su parte las variables de tipo float son un poco m s complejas de manipular Dado que no se puede tener acceso para partir los 32 bits de este tipo de variables en 4 bytes se opt por una soluci n alternativa Esta soluci n consiste en separar este tipo de variables en dos enteros uno para su parte entera y otro para la decimal y transmitirlos como tales Como resultado todo float se puede trasmitir utilizando 5 bytes uno para el signo dos para la parte entera y otros dos para la parte decimal Ejemplo o 27 36 gt 0x01 0x00 Ox1b 0x00 0x24 Aunque debido a caracter sticas propias de Arduino la forma en que transmitir el n mero es o 27 36 gt 0x01 0x00 Ox1b 0x8C OxA0 La parte decimal se transforma en un entero de 16 bits lo m s grande posible En este caso el equivalente entero de la parte decimal del n mero es o 0x8C 0xA0 g
20. l de nodo Al seleccionar un nodo presionando sobre el bot n circular de su etiqueta se pasa al men del nodo donde pueden verse todos los dispositivos conectados al nodo 13 PP sketch_140825b ioj xi O vr Active node NOD1 0 O Eitseecea 01 40BABC69 DHT11 NOD_1 Figura 9 Ventana de la aplicaci n en el men del nodo En este modo tambi n se pueden agregar y editar los dispositivos de forma similar al men de red La diferencia en este caso es que los roles admitidos para los dispositivos son sensor y actuador Edition chart ID Name A O Sensor e Actuator e lt Pace label D OK D Cancel Figura 10 Ventana de edici n para el men del nodo Para agregar un nuevo dispositivo en este caso la ID del dispositivo deber coincidir con la ID asignada por el usuario al dispositivo durante la programaci n del nodo De esta manera los datos se podr n procesar y recopilar correctamente 40BABC69 02 NOD_1 LED RGB Figura 11 Ejemplo de etiquetas para los dispositivos de un nodo 14 Los par metros de los dispositivos se pueden editar de la misma forma que en el men de red 3 3 Nivel de dispositivo Al seleccionar un dispositivo presionando tambi n sobre el bot n circular de su etiqueta se pasa al men de dispositivo donde pueden verse todos los par metros configurados de los que se recibir n datos P sketch_1408250 A ziaz a Active device DHT11 a pd Ac
21. nmutador en la posici n MICRO Tambi n se debe suministrar energ a a la radio conectando el pin 1 del m dulo XBee VCC al pin 3 3 V de la placa Arduino y el pin 10 GND al respectivo pin del micro Una ltima conexi n que se debe realizar para emplear el modo SLEEP o de ahorro de energ a es entre el pin 13 del m dulo XBee ON OFF y el pin digital 2 de la placa Arduino Esta conexi n se debe realizar utilizando una puerta inversora como la sn74ls04 de Texas Instruments Este tema se explicar en detalle en el apartado SLEEP A modo de ejemplo se puede ver en la siguiente imagen los componentes de un nodo sensor y su aspecto una vez montado Figura 3 Aspecto del nodo sensor montado 1 3 Programaci n del nodo Junto a la documentaci n del proyecto se suministra el archivo de Arduino con el c digo base a partir del cual el usuario puede desarrollar su aplicaci n El usuario deber desarrollar las funciones para realizar las mediciones de los dispositivos de su aplicaci n siguiendo el formato de datos de 5 bytes explicado en el anexo donde tambi n se muestran ejemplos Por otro lado el usuario tambi n puede programar funciones para realizar acciones comandadas a partir de mensajes recibidos siguiendo el formato de datos para la actuaci n explicado en el anexo donde tambi n se muestran ejemplos Todo dispositivo conectado al nodo ya sea sensor o actuador deber de tener asignado un n mero de identificaci n
22. o ID nico para el nodo ste ser un n mero positivo de 8 bits un byte que se utilizar para identificar los mensajes que se env en o las instrucciones que se reciban de acuerdo al formato de datos establecido Uno de los principales par metro que el usuario deber definir en la programaci n del nodo sensor es la direcci n del nodo coordinador de la red Este par metro se define escribiendo la direcci n de 64 bits de la radio Xbee coordinador que puede verse en el reverso del m dulo m s la direcci n de 16 bits de este nodo 0x00 0x00 Otra de las caracter sticas que el usuario deber definir durante la programaci n del nodo es si ste realizar ciclos de SLEEP o no Si el usuario opta por mantener el nodo encendido en todo momento deber definir la frecuencia de muestreo del nodo en la variable frecuencia Esta variable define la frecuencia de muestreo en milisegundos pudiendo adoptar valores entre O y 65535 Por el contrario si el usuario opta por configurar el modo SLEEP deber asegurarse de realizar las conexiones indicadas en el apartado de construcci n y proceder a la configuraci n de la radio En cualquier caso el usuario deber seleccionar en la funci n loop la condici n del if dependiendo del modo escogido comentando la otra 2 Configuraci n de las radios Las radios se configurar n con la aplicaci n desarrollada por DIGI para tal fin X CTU Se recomienda utilizar la versi n 6 1 1 o super
23. owByte aux extraer la parte decimal number number aux A ser inferior al n mero m ximo para 16 bit s 2 16 65536 tambien el decimal debe ser mayor a 0 sino se quedaria en el bucle tener en cuenta los bits while number lt 6553 6 amp amp number gt 0 number number 10 aux number result 3 highByte aux result 4 lowByte aux Ejemplos e Potenci metro Para operar un potenci metro como sensor se cre una funci n que ejecutaba la lectura del pin al que estaba conectado el componente creaba el marco de cinco bytes y llamaba a la funci n para enviar el mensaje Tabla 6 Funci n de control del potenci metro uint8_t sensor 7 void pot_messurement int pot analogRead 0 1D del dispositivo sensor 0 0x01 tipo de mensaje sensor 1 0x01 signo sensor 2 0 parte entera sensor 3 highByte pot sensor 4 lowByte pot parte decimal sensor 5 0x00 sensor 6 0x00 y tx_request sensor sizeof sensor e DHT 11 Se trata de un sensor que mide temperatura y humedad y devuelve dos variables de tipo float La funci n programada para el dispositivo solicita las mediciones al sensor llama a la funci n ftohex para cada par metro compone el mensaje y llama a la funci n para enviarlo Tabla 7 Funci n de control del sensor DHT 111 uint8_t valuel 5 1 void DHT_messurement float h dht readHum
24. s lo aparece el coordinador de la red pues es el nico imprescindible En esta ventana pueden verse otros cuatro botones el bot n de Exit que finaliza la aplicaci n el bot n Help que inicial este manual y dos botones de edici n Add new y Edit selected Cualquiera de ellos ejecuta inicia el modo de edici n que permite agregar nuevos nodos o editar existentes Para agregar un nodo se indicar como ID la parte baja de la direcci n de 64 del m dulo XBee del nodo El nombre que se le asigne al nodo es elecci n del usuario El rol del se corresponder con el rol del Xbee del nodo Finalmente se colocar la etiqueta del nodo en la posici n que se desee en la pantalla mediante Place label Presione este bot n y aparecer una etiqueta que seguir la posici n 12 del rat n por la ventana Ara fijar la posici n simplemente clique en la posici n que desee Puede recolocar una etiqueta de la misma forma En modo edici n se pueden editar los par metros de uno de los nodos su n mero de ID nombre role y posici n de la etiqueta en la ventana Tambi n se puede eliminar un nodo siempre que no sea el coordinador borrando su ID y aceptando los cambios Edition chart ID Name 8 Router O End dev lt Mace label D OK Cancel Figura 7 Ventana de edici n para el men de red 40BABC78 40BABC69 CENTRAL NOD1 Figura 8 Ejemplo de etiquetas de los tres tipos de nodo de la red 40BABC33 NOD2 3 2 Nive
25. t 36000 Teniendo en cuenta las posibles variables con las que se podr trabajar se plante un marco nico de cinco bytes para transmitir cualquier n mero independientemente del tipo de variable del que se trate Tabla 4 Estructura del formato para la transmisi n de datos Signo 0x00 0x00 Bytes superiores o parte entera 0x00 n 0x00 Bytes inferiores o parte decimal 0x00 Un n mero entero se transmitir utilizando los dos bytes superiores mientras que los bytes inferiores se utilizar n al transmitir variables float O long De esta mera cada n mero siempre ocupar lo mismo y es m s f cil delimitarlo y procesarlo para recuperarlo en destino mediante operaciones nversas a las aplicadas para partirlo El usuario deber programar las funciones de sus dispositivos para que funcionen de acuerdo a esta estructura ya que es la misma que se descodifica en el programa de procesado de datos Para simplificar la tarea se puede utilizar la funci n auxiliar que se incluye en el programa base ftohex Dada una variable de tipo float esta funci n devuelve un array de cinco bytes con los datos formateados Tabla 5 C digo de la funci n ftohex void ftohex float number uint8_t result 5 uint16_t aux if number lt 0 result 0 0x01 number abs number eliminar el signo else result 0 0x00 aux number extraemos parte entera result 1 highByte aux result 2 l1
26. tive parameter HUMIDITY Y Q Edit parameter showing 50 points O soa 50 O 44 0 20 16 52 23 59 59 ID Name Type Unit MIN MAX Default Last O 01 TEMP 2 50 60 o0 02 HUMIDITY 2 o 100 0 Q Back Figura 12 Ventana de la aplicaci n en el men del dispositivo En este men tambi n pueden verse todas les mediciones recibidas del dispositivo en el gr fico de datos El gr fico muestra las mediciones del par metro actualmente seleccionado que se pude cambiar seleccionando otro de los par metros de la lista Para el control del gr fico se disponen aqu de tres botones Show all alterna entre mostrar todas las mediciones recibidas o s lo un n mero limitado el cual se puede aumentar en 50 puntos hasta un m ximo de 500 con el bot n 50 o disminuir en 50 puntos hasta un m nimo de 50 con el bot n 50 En el caso de que el dispositivo sea un actuador el men del dispositivo incluye el comando de actuaci n Esta funci n permite seleccionar el nivel al que se desea colocar uno de los par metros del dispositivo y enviar una instrucci n al nodo sensor para ejecutar la acci n 15 ixi a Active device RGB LED os Do Active parameter RED BIT 9 gt Edit parameter showing all points 1 Show all 50 O gt 0 0 19 55 06 19 55 06 RED 65 BIT ID Name Type Unit MIN MAX Default Last a 01 RED 2 BIT 0 255 0 19 55 06 gt 65 0 O02 GREEN 2 BIT 0 255 0 19 55 06 gt 0 0 O
Download Pdf Manuals
Related Search
Related Contents
Cabletron Systems 9033073 Satellite Radio User Manual Sharkoon Tactix APPROCHES DU TINTORET EN / ACSM1 Speed and Torque Control Program Firmware Manual Manual de Instalación e Instrucciones de Uso HP MSM410 802.11n AP Installation Guide 6043230_076 (Manuale_UV380 Makita).p65 ŠKODA Fabia Manual de instrucciones Generac Power Systems 004988-1 Portable Generator User Manual Copyright © All rights reserved.
Failed to retrieve file