Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Program Arduino
Program Arduino
1
Arduino + XBee
Implementacin de Sistemas de Trasmisin de Datos y Sensores en
Redes Inalmbricas con XBee integrado en la Plataforma Open
Hardware Arduino
+
Jos Manuel Ruiz Gutirrez
Ver. 1.0
1
Serie: Arduino Comunicacin
Arduino + XBee Jos Manuel Ruiz Gutirrez
2
ndice
1. Objetivo de este trabajo.
2. Una introduccin a XBee
3. Ejemplos de Montajes con los mdulos XBee conectados
autnomamente sin necesidad de Arduino.
3.2 Comunicacin entre dos Ordenadores mediante dos mdulos
XBee 802.15.4 (serie 1)
3.3 Comunicacin entre dos Ordenadores mediante dos mdulos
XBee 802.15.4 (serie 1)
3.4 Configuracin de un botn como Entrada Digital
3.5 Salida Digital con un diodo LED
4. Trabajo de los mdulos XBee con Arduino
4.1. Programacin de los Mdulos XBee
4.2 Test de una comunicacin PC ->XBee
4.3 Timbre inalmbrico - XBee Serie 1
5. Documentacin Software y Bibliografa
Este trabajo est bajo licencia Creative Commons Attribution 3.0 Unported License
14 Noviembre de 2012 Versin de Documento: Versin. 1
Blog de referencia: http://josemanuelruizgutierrez.blogspot.com
j.m.r.gutierrez@gmail.com
Arduino + XBee Jos Manuel Ruiz Gutirrez
3
1. Objetivo de este trabajo.
Con este trabajo se pretende facilitar un primer contacto de la tecnologa XBee para
la comunicacin va radio integrada en la Plataforma Open Hardware Arduino.
No es necesario explicar las grandes ventajas que ofrece el protocolo XBee y su
tecnologa en el mbito de las redes de sensores y el procesamiento de datos.
La comunidad de usuarios e investigadores de Arduino ha recogido esta tecnologa y
ha diseado Shields que permiten unir varios Arduinos en una red inalmbrica.
Pretendo con este trabajo facilitar una gua de iniciacin a quienes deseen
experimentar con esta tecnologa.
El manual que sigue aborda una explicacin bsica del sistema, lo mtodos y
herramientas para la programacin de las unidades y unos cuantos ejemplos de aplicaciones,
tanto con mdulos aislados XBee como con mdulos integrados en el Shield para Arduino.
Como con el resto de mis trabajos deseo que este documento sea de ayuda a quienes lo
utilicen. Agradezco a las personas e instituciones que me precedieron en la elaboracin de
documentacin sus aportaciones y animo a quien realice algn trabajo en este campo a que lo
comparta con todos los que formamos esta enorme comunidad de usuarios de Arduino.
Arduino + XBee Jos Manuel Ruiz Gutirrez
4
2. Una introduccin a XBee
Los mdulos XBee son dispositivos que integran un transmisor - receptor de ZigBee y
un procesador en un mismo mdulo, lo que le permite a los usuarios desarrollar aplicaciones
de manera rpida y sencilla.
Zigbee es un protocolo de comunicaciones inalmbrico basado en el estandar de
comunicaciones para redes inalmbricas IEEE_802.15.4. Creado por Zigbee Alliance, una
organizacin, tericamente sin nimo de lucro, de ms de 200 grandes empresas (destacan
Mitsubishi, Honeywell, Philips, Motorola, Invensys, ) , muchas de ellas fabricantes de
semiconductores.
Zigbee permite que dispositivos electrnicos de bajo consumo puedan realizar sus
comunicaciones inalmbricas. Es especialmente til para redes de sensores en entornos
industriales, mdicos y, sobre todo, domticos.
Las comunicaciones Zigbee se realizan en la banda libre de 2.4GHz. A diferencia de
bluetooth no utiliza FHSS (Frequency hooping), sino que realiza las comunicaciones a travs
de una nica frecuencia, es decir, de un canal. Normalmente puede escogerse un canal de
entre 16 posibles. El alcance depende de la potencia de emisin del dispositivo as como el
tipo de antenas utilizadas (cermicas, dipolos, ) El alcance normal con antena dipolo en
visin directa suele ser aproximadamente (tomando como ejemplo el caso de MaxStream, en
la versin de 1mW de potencia) de 100m y en interiores de unos 30m. La velocidad de
transmisin de datos de una red Zigbee es de hasta 256kbps. Por ltimo decir que una red
Zigbee la pueden formar, tericamente, hasta 65535 equipos, es decir, el protocolo est
preparado para poder controlar en la misma red esta cantidad enorme de dispositivos. La
realidad es menor, siendo, de todas formas, de miles de equipos.
Los mdulos Xbee son econmicos, potentes y fciles de utilizar. Algunas de sus
principales caractersticas son:
Buen Alcance: hasta 100 metros en lnea vista para los mdulos Xbee y hasta 1 milla
(1.6 Km) para los mdulos Xbee Pro.
9 pines entradas/salidas con entradas analgicas y digitales.
Arduino + XBee Jos Manuel Ruiz Gutirrez
5
Bajo consumo <50mA cuando estn en funcionamiento y <10uA cuando estn en
modo sleep.
Interfaz serial.
65,000 direcciones para cada uno de los 16 canales disponibles. Se pueden tener
muchos de estos dispositivos en una misma red.
Fciles de integrar.
Existen 2 series de estos mdulos. La serie 1 y la serie 2 o tambin conocida como 2.5.
Los mdulos de la Serie 1 y la Serie 2 tienen el mismo pin-out, sin embargo, NO son
compatibles entre s ya que utilizan distintos chipset y trabajan con protocolos diferentes.
La serie 1 est basada en el chipset Freescale y est pensado para ser utilizado en redes
punto a punto y punto a multipunto. Los mdulos de la serie 2 estn basados en el chipset de
Ember y estn diseados para ser utilizados en aplicaciones que requieren repetidores o una
red mesh. Ambos mdulos pueden ser utilizados en los modos AT y API.
Caractersticas tcnicas:
ISM 2.4 GHz operating frequency
1 mW (0 dBm) power output (up to 100m range)
RPSMA Connector, U.FL. Connector, Chip or Whip antenna options
Industrial temperature rating (-40 C to 85 C)
Approved for use in the United States, Canada, Australia and Europe
Advanced networking & low-power modes supported
Para ms informacin visiten la pagina http://www.xbee.cl/ donde encontraran ms
informacin.
Arquitectura Bsica de una Red XBee.
Una red Zigbee la forman bsicamente 3 tipos de elementos. Un nico dispositivo
Coordinador, dispositivos Routers y dispositivos finales (end points).
Los mdulos XBee son verstiles a la hora de establecer diversas topologas de red,
dependiendo la serie de XBee que escojamos pueden crearse redes:
Arduino + XBee Jos Manuel Ruiz Gutirrez
6
Punto a punto
Estrella
Malla
rbol
Mixtas
Una vez decidida la que red con la que trabajar se deben escoger los mdulos XBee.
Tendremos dos posibilidades: usar todo en Serie 1 o todo en Serie 2. Recordemos que estos
mdulos tambin los encuentras en la versin PRO que te dan una mayor distancia:
El Coordinador: Es el nodo de la red que tiene la nica funcin de formar una red. Es el
responsable de establecer el canal de comunicaciones (como hablbamos antes) y del
PAN ID (identificador de red) para toda la red. Una vez establecidos estos parmetros, el
Coordinador puede formar una red, permitiendo unirse a l a dispositivos Routers y End
Points. Una vez formada la red, el Coordinador hace las funciones de Router, esto es,
participar en el enrutado de paquetes y ser origen y/o destinatario de informacin.
Los Routers: Es un nodo que crea y mantiene informacin sobre la red para determinar la
mejor ruta para enrutar un paquete de informacin. Lgicamente un router debe unirse a
una red Zigbee antes de poder actuar como Router retransmitiendo paquetes de otros
routers o de End points.
End Device: Los dispositivos finales no tienen capacidad de enrutar paquetes. Deben
interactuar siempre a travs de su nodo padre, ya sea este un Coordinador o un Router, es
decir, no puede enviar informacin directamente a otro end device. Normalmente estos
equipos van alimentados a bateras. El consumo es menor al no tener que realizar
funciones de enrutamiento.
Modos de Operacin de un Elemento XBee
Los mdulos pueden ser configurados para trabajar en distintos modos, tantos como 4.
Arduino + XBee Jos Manuel Ruiz Gutirrez
7
Modos RECIBIR/TRANSMITIR.
Se encuentra en estos modos cuando al mdulo le llega algn paquete RF a travs de
la antena(modo Receive) o cuando se manda informacin serial al buffer del pin 3 (UART
Data in) que luego ser transmitida (modo Transmit).
La informacin transmitida puede ser Directa o Indirecta. En el modo directo la
informacin se enva inmediatamente a la direccin de destino. En el modo Indirecto la
informacin es retenida durante un perodo de tiempo y es enviada slo cuando la direccin
de destino la solicita.
Adems es posible enviar informacin por dos modos. Unicast y Broadcast.
Por el primero, la comunicacin es desde un punto a otro, y es el nico modo que permite
respuesta de quien recibe el paquete RF, es decir, quien recibe debe enviar un ACK
(paquete llamado as, y que indica que recibi el paquete, el usuario no puede verlo, es
interno de los mdulos) a la direccin de origen. Quien envi el paquete, espera recibir un
ACK, en caso de que no le llegue, reenviar el paquete hasta 3 veces o hasta que
reciba el ACK. En el modo Broadcast la comunicacin es entre un nodo y a todos los
nodos de la red. En este modo, no hay confirmacin por ACK.
Modo de Bajo Consumo (Sleep Mode).
El modo de sueo hace posible que el mdulo RF entre en un modo de bajo
consumo de energa cuando no se encuentra en uso.
La programacin en este modo se puede mirar en el manual tcnico y la dejamos por
escaparase al objetivo de este manual.
Modo de Comando.
Este modo permite ingresar comandos AT al mdulo Xbee, para configurar, ajustar o
modificar parmetros. Permite ajustar parmetros como la direccin propia o la de destino,
as como su modo de operacin entre otras cosas. Para poder ingresar los comandos AT es
Arduino + XBee Jos Manuel Ruiz Gutirrez
8
necesario utilizar el Hyperterminal de Windows, el programa X-CTU
3
o algn
microcontrolador que maneje UART y tenga los comandos guardados en memoria o los
adquiera de alguna otra forma.
Idle
Cuando el mdulo no se est en ninguno de los otros modos, se encuentra en ste. Es
decir, si no est ni transmitiendo ni recibiendo, ni ahorrando energa ni en el modo de
comandos, entonces se dice que se encuentra en un estado al que se le llama IDLE.
Arduino + XBee Jos Manuel Ruiz Gutirrez
9
3. Ejemplos de Montajes con los mdulos XBee conectados
autnomamente sin necesidad de Arduino.
Presentamos a continuacin una serie de aplicaciones prcticas orientadas a la
utilizacin de mdulos XBee que se comunican sin necesidad de utilizar Arduino ni ninguna
otra tarjeta.
Los mdulos poseen una serie de entradas y salidas analgicas y digitales que pueden
ser utilizadas directamente para hacer control. Esta es una posibilidad muy interesante,
aplicable a pequeos automatismos gobernados por va radio.
Los ejemplos han sido sacados en su totalidad de la pagina Web
http://examples.digi.com/ Digi XBee
Examples & Guides)
Con esta aplicacin se trata de programar un mdulo XBee con una de sus entradas
como entrada digital a la que conectaremos un bton. Este montaje permite enviar una seal
de activacion/desactivacin a una red de elementos XBee.
Introduccin.
Como entrada digital, lo ms sencillo que su botn bsico
En el mdulo XBee se pueden configurar para hasta 8 terminales de entrada digital
que pueden controlar directamente los pines de salida en un segundo XBee que actuara como
receptor. En este tutorial, vamos a hacer un sencillo proyecto de electrnica digital
inalmbrica.
Materiales necesarios
XBee 802.15.4 Radio
Pulsador insertable en pcboard
Resistencia de 10K.
Arduino + XBee Jos Manuel Ruiz Gutirrez
21
Breadboard
Cables de conexin
XBee Breakout Board para insertar en la board.
XBee Explorer USB para programar el elemento XBee.
Una batera de DC 2.8 3.3V Pueden usarse dos pilas tipo C .
Mdulo XBee Breakout Board Mdulo XBee Serie 1 Mdulo XBee Explorer USB
Configuracin del mdulo XBee
Arduino + XBee Jos Manuel Ruiz Gutirrez
22
Aqu vemos el patillaje de l modulo XBee que tenemos que tener en cuenta para
realizar el cableado.
En el apartado anterior de este manual hemos descrito como realizar la programacin
del modulo de radio XBee.
En la siguiente tabla tenemos los valores de programacin.
Funcin Comando Parmetro
Reset ATRE N/A (resets the radio to its factory settings)
PAN ID ATID 3001 (cualquier direccin desde 0 hastaFFE )
Mi direccin (MY Address) ATMY 1
Direccin de destino (Parte alta) ATDH 0 (indica una direccin de 16-bit)
Direccin de destino (Parte baja) ATDL 2 (la direccin del receptor)
Configuracin de Pin 0 I/O ATD0 3 (entrada digital)
Velocidad del transmisin ATIR
14 (20 ms, 14 in hexadecimal = 20 in
decimal)
Pull-up resistors ATPR
0 (desactiva todas las resistencias internas en
todos los pins)
Graba la configuracin en XBee ATWR
N/A (graba configuracin en la memoria
flash)
Esto es lo que escribiremos en la ventana Terminal del software de comunicacin
del puerto USB:
+++
OK
ATRE
Arduino + XBee Jos Manuel Ruiz Gutirrez
23
OK
ATID 3001
OK
ATMY 1
OK
ATDH 0
OK
ATDL 2
OK
ATD0 3
OK
ATIR 14
OK
ATPR 0
OK
ATID
3001
ATMY
1
ATDH
0
ATDL
2
ATD0
3
ATIR
14
ATPR
0
ATWR
OK
Nota: Recuerde que hay que finalizar con el comando ATWR.
Arduino + XBee Jos Manuel Ruiz Gutirrez
24
Probando el montaje
Para probar el montaje bastara conectar el modulo receptor que se explica en el apartado
correspondiente
Este sera el montaje de pruebas.
Arduino + XBee Jos Manuel Ruiz Gutirrez
25
3.4 Salida Digital con un diodo LED
(Basado en el trabajo de Matt Richardson publicado en en http://examples.digi.com/ Digi
XBee