Arduino + XBee
Arduino + XBee
Arduino + XBee
Implementacin de Sistemas de Trasmisin de Datos y Sensores en
Redes Inalmbricas con XBee integrado en la Plataforma Open
Hardware Arduino
Ver. 1.0 +
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
ndice
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
[email protected]
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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.
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.
4
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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:
Los mdulos XBee son verstiles a la hora de establecer diversas topologas de red,
dependiendo la serie de XBee que escojamos pueden crearse redes:
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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.
Los mdulos pueden ser configurados para trabajar en distintos modos, tantos como 4.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Modos RECIBIR/TRANSMITIR.
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
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Idle
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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.
En esta aplicacin vamos a realizar la conexin va radio entre dos mdulos conectados a
dos PC. Se trata de enviar y recibir textos que se enviaran desde uno u otro PC a modo de un
chat (bidireccional). Para ello utilizaremos los siguientes dispositivos:
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Procederemos a programar cada uno de los mdulos XBee haciendo uso de la tarjeta
XBee Explorer USB (es sencillamente una tarjeta que permite comunicar al mdulo XBee con
el ordenador a travs del puerto serie.
Marcamos el primer modulo XBee con el que vamos a trabajar con la letra A.
Tngase en cuenta que deberms instalar los drivers necesarios para que el ordenador
reconozca el mdulo XBee Explores en nuestro caso los drivers FTDI Pulsar aqui para
descargarlos de Internet.
10
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
11
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Nota: Por defecto el modulo XBee se desconecta si deja de recibir comandos en 10 segundos.
PAN ID: PAN es el nmero de la Red de rea Personal. Se trata de un identificador nico
para la red. Solo los XBees asignados a un PAN ID pueden comunicarse entre s. Esto permite
configurar redes separadas en el mismo lugar.
MY Address: Esta es la direccin de origen de un XBee, es una direccin nica para cada
unidad en particular.
Direccin de destino (parte alta): Representa la primera mitad de la direccin que queremos
habilitar. En los mdulos XBee puede tener una direccin de 64 bits, por lo que esta es la
parte ms alta de 32-bit de ese nmero de direcciones. Puesto que no necesitamos tantas
direcciones, vamos a ponerlo a 0 y slo usar la parte alta.
Direccin de destino (parte baja): Esta es la direccin que usaremos para localizar el XBee
Asegrese de que coincida con el ajuste de la ATMY XBee con el que quiere habalr.
Los ajustes no se guardan hasta que no escriba el comando ATWR para guardar la
configuracin.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
1
ATDH
0
ATDL
2
ATWR
OK
Nota: Debemos obtener una respuesta OK despus de emitir cada comando para establecer
los parmetros, y otra respuesta OK al escribir los cambios en el firmware. Si usted no recibe
una respuesta OK, lo ms probable es que tom ms de diez segundos para el comando y el
mdulo dejo de estar en moco comando. El otro error comn es no escribir el comando
ATWR para guardar los cambios, si no lo hace su configuracin se pierde al desconectar el
mdulo.
Recordar que hay que escribir ATWR y presionar enter para salvar la configuracin.
A continuacin se muestran los cdigos tal como se deben escribir y aparece en el terminal:
+++
OK
ATID 3001
OK
ATMY 2
OK
ATDH 0
OK
ATDL 1
13
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
OK
ATID
3001
ATMY
2
ATDH
0
ATDL
1
ATWR
OK
Funcionamiento
Ms funciones
Si separamos los mdulos se perder la comunicacin.
14
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Ms informacin
Solucin de problemas.
Comience con las cosas simples. Asegrese de que sus radios estn correctamente
asentados en las tarjetas adaptadoras y que todos los cables USB estn conectados en
la forma en que debe ser. Compruebe que cada radio est respondiendo correctamente
en la ventana de terminal al tratar de usar + + + para ponerlo en el modo de comando.
Si usted no recibe una espalda bien, compruebe la seleccin de puerto, velocidad de
transmisin, y las otras opciones hasta que encuentre la razn de la radio no se
comunica correctamente.
Puede utilizar el comando ATVR para mostrar el firmware que est en uso. Si usted ve
la versin antigua, vuelva a X-CTU y cargar el firmware apropiado.
A veces las radios estarn perfectamente configurado y conectado, pero uno de sus
radios accidentalmente estar hablando con otra persona. Esto sucede a menudo en
situaciones de aula, donde muchas personas estn utilizando el mismo ID PAN en la
misma habitacin. Trate de usar diferentes identificadores del PAN para cada par.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
16
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Cuando se trabaja con XBee, puede que tenga que actualizar o cambiar el firmware de
vez en cuando. Por ejemplo, si desea cambiar un mdulo ZigBee de router a coordinador o
cambiar entre los modos de Programas y AT, tendrs que cargar el firmware apropiado para la
radio.
X-CTU es una aplicacin basada en Windows proporciona Digi. Este programa est
diseado para interactuar con los archivos de firmware que se encuentran en los productos de
Digi RF y proporcionar un fcil de usar interfaz grfica de usuario para ellos. X-CTU est
diseado para funcionar con todos los equipos basados en Windows que ejecutan Microsoft
Windows 98 SE o superior. Para los que no son usuarios de Windows, puede probar uno de
los productos Moltosensos para actualizar el firmware de su radio. Otra opcin es utilizar
Wine o una mquina virtual como VirtualBox para ejecutar X-CTU en ordenadores que no
tengan Windows.
Nota: Para que en su explorador XBee aparezca el modulo conectado como un puerto
COM, tendr que instalar los drivers FTDI para su sistema.
17
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Abrir X-CTU. Seleccione un puerto COM y haga clic en "Consulta de prueba /" para
ver si el X-CTU se puede comunicar con la radio.
Usted debe ver una ventana que dice que la comunicacin con el mdem estaba bien
y alguna informacin adicional acerca del mdulo XBee. Si no es as, pruebe con otro puerto
COM y solucionar la conexin serial con el mdulo. Puede probar si funciona con el
software CoolTerm.
18
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
19
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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.
Materiales necesarios
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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
21
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Aqu vemos el patillaje de l modulo XBee que tenemos que tener en cuenta para
realizar el cableado.
+++
OK
ATRE
22
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
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
23
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Probando el montaje
Para probar el montaje bastara conectar el modulo receptor que se explica en el apartado
correspondiente
24
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Introduccin:
Iluminar un LED es una de las primeras cosas que muchas personas hacen cuando
empiezan a utilizar un circuito electrnico. El mdulo XBee se puede configurar para un
mximo de 8 pines de salida digitales que pueden ser controladas directamente por los pines
de entrada desde un segundo mdulo.
Materiales necesarios
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
+++
OK
ATRE
OK
ATID 3001
OK
ATMY 2
OK
ATD0 5
OK
ATIA 1
OK
ATID
3001
ATMY
2
ATD0
5
ATIA
1
ATWR
OK
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Probando el montaje
27
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
El shield de Xbee que usaremos en estas prcticas posee dos jumpers para seleccionar
el modo de trabajo del mdulo etiquetados con XBee y USB.
Cuando vamos a programar el mdulo, previamente debemos colocar los dos jumpers
en el modo XBee y levantar de la tarjeta Arduino el microprocesador ya que en este caso lo
que hacemos es directamente conectar el modulo a un puerto del PC desde el que
realizaremos la conexin y la programacin del mdulo.
Con los jumpers en la posicin Xbee (e.g. en los dos pines ms cercanos al interior de
la placa), el pin DOUT de el mdulo Xbee est conectado al pin RX del microcontrolador; y
el pin DIN est conectado a TX. Notar que los pines RX y TX del microcontrolador estn
todava conectados a los pines TX y RX (respectivamente) del chip FTDI - los datos enviados
desde el microcontrolador sern transmitidos al ordenador va USB y a la vez enviados de
forma inalmbrica por el mdulo Xbee. El microcontrolador, sin embargo, solo ser capaz de
recibir datos desde el mdulo Xbee, no desde el USB del ordenador.
Con los jumpers en la posicin USB (e.g. en los dos pines ms cercanos al borde de la
placa), el pin DOUT del mdulo Xbee est conectado al pin RX del pin del chip FTDI, y el
28
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
DIN del mdulo Xbee est conectado al pin TX del el chip FTDI. Esto significa que el
mdulo Xbee puede comunicarse directamente con el ordenador - sin embargo, esto solo
funciona si el microcontrolador ha sido quitado de la placa Arduino. Si el microcontrolador
se deja en la placa Arduino, solo ser capaz de comunicarse con el ordenador va USB, pero
ni el ordenador ni el microcontrolador podrn comunicarse con el mdulo Xbee. Para cargar
un programa en Arduino deberemos tener quitado el shield
Hay mltiples parmetros que necesitan ser configurados correctamente para que dos
mdulos puedan comunicarse entre ellos (de todos modos con la configuracin por defecto,
todos los mdulos deberan ser capaces de hablar unos con otros). Necesitan estar en la misma
red, definida por el parmetro ID (ver "Configuracin" a continuacin para ms detalles sobre
los parmetros). Los mdulos necesitan estar en el mismo canal, definido por el parmetro
CH. Finalmente, la direccin de destino de un mdulo (parmetros DH y DL) determina que
mdulo en esa red y canal recibir los datos transmitidos. Esto puede suceder de las siguientes
formas:
Configuracin.
Volvemos de nuevo a explicar la configuracin del modulo XBee, pero esta vez lo
haremos con el software CX-CTU
Aqu hay algunos de los parmetros ms tiles para configurar tu mdulo Xbee. Para
unas instrucciones paso-a-paso sobre leerlas y escribirlas, ver la gua para la Xbee shield.
Asegrate de poner AT delante de cada nombre de parmetro cuando enves un comando a el
mdulo (e.g. para leer el parmetro ID, deberas enviar ATID). Describimos a continuacin los
comandos ms usuales.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Nota: a pesar de que los valores por defecto y vlidos de arriba estn escritos con el prefijo
"0x" (para indicar que son nmeros decimales), el mdulo no incluye el "0x" cuando reporta
el valor de un parmetro, y tu debes omitirlo cuando establezcas valores.
Aqu hay unos cuantos comandos tiles ms para configurar el mdulo Xbee
(necesitars anteponer AT a estos tambin).
Comando Descripcin
RE Restaura los valores por defecto (notar que
como el parmetro cambia, esto no es
permanente a no ser que est seguido por el
comando WR).
WR Escribe un nuevo valor para un parmetro
configurado a la memoria no voltil (larga-
duracin). De otro modo, solo duraran hasta
que el mdulo sea desconectado de la
corriente.
CN Sale del modo de comandos. (Si no mandas
ningn comando a l mdulo durante unos
pocos segundos, el modo de comandos saldr
tras un tiempo incluso sin el comando CN).
Modo de configuracin.
Necesitamos enviar tres signos '+': +++ y no enviar ningn otro carcter al mdulo
durante un segundo antes y un segundo despus. Esto incluye caracteres especiales como
retorno de carro o nueva lnea. Por lo tanto, si estas intentando configurar el modulo desde el
ordenador, asegrate de que tu terminal est configurado para enviar los caracteres tal como
30
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
los escribes, sin esperar a que pulses intro. Si no, enviar los tres signos '+' seguidos de nueva
lnea (de modo que no esperar un segundo despus de enviar +++). Si consigues entrar en el
modo de configuracin, el mdulo enviar de vuelta 'OK', seguido de retorno de carro.
A no ser que le digas al mdulo que escriba los cambios a la memoria no voltil, esos cambios
slo tendrn efecto hasta que el mdulo pierda la alimentacin. Para guardar los cambios de
forma permamente (hasta que los modifiques otra vez) usa el comando ATWR:
Ten en cuenta que al igual que los dems comandos, el reset no ser permanente a no
ser que despus enves el comando ATWR que lo que hace es grabar la configuracin actual
de modo permanente.
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
32
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
A pesar de que el modulo XBee tiene muchos pines es cierto que para realizar una
conexin de este con Arduino solo bastan dos terminales de comunicacin y los dos de
alimentacin. Por este motivo es sencillo realizar la conexin del mdulo prescindiendo del
shield.
Como o terminales del mdulo estn separados dos mm se puede conectar sin
problema a una protoboard y realiza r el cableado con Arduino. Solo debemos tener la
precaucin de alimentar con 3.3 v. la unidad. Esta tensin esta presente en la tarjeta Arduino
La siguiente tabla muestra las conexiones entre pines de Arduino y XBee y la imagen
de abajo les muestra en una placa XBee ruptura.
XBee Arduino
VCC V o 3,3 3V3
TX o DOUT O RX 0
RX o DIN TX o 1
GND GND
33
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Arduino conectado a una radio XBee, utilizando una placa sin soldadura y alambre de
conexin
34
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
La Serie 2 XBee hardware ofrece varias funciones flexibles para proyectos que
necesitan de entrada simple y salida. Hay 10 pines que pueden configurarse como entradas
digitales para sensores interruptores y otras cosas que funcionan como interruptores, o como
salidas digitales para el control de LEDs y motores pequeos directamente. Grandes cargas,
incluidos las que funcionan con corriente alterna, puede funcionar con estas salidas digitales a
travs de un rel. Los primeros cuatro pines pueden ser configurados como entradas
analgicas para la deteccin de una enorme variedad de fenmenos cuyos valores varen
dentro de un rango, tales como la luz, la temperatura, la fuerza, la aceleracin, la humedad,
los niveles de gas, etc.
Slo hay 10 pins totales por lo que si usted tiene las 10 entradas digitales configuradas,
se encuentra fuera de los pines y no se puede utilizar cualquier entrada o salida digital
analgica. Afortunadamente, los pines se pueden utilizar en una mezcla. Por ejemplo, tres
entradas analgicas, cuatro entradas digitales y tres salidas digitales estara bien. La nica
cosa a tener en cuenta es que muchos de los 10 pines configurables se utilizan para otras
funciones opcionales. Estos otros deberes son importantes en muchas aplicaciones, pero han
sido cuidadosamente seleccionados para que sean los que no suelen ser necesarios en los
proyectos de teledeteccin y actuacin.
Nombres de los pines de entrada / salida con los nmeros fsicos, comandos y otras
funciones
35
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Se trata de realizar una prueba de dialogo entre dos unidades XBee , una remota
conectada a una tarjeta Arduino Uno a la que llamaremos terminal Receptor y otra conectada
directamente al PC a travs de uno de sus puerto USB a la que llamaremos Emisor. Ambos
mdulos estarn unidos en una comunicacin dplex es decir bidireccional.
El mdulo Receptor se alimentara con una pila y la unidad XBee trabajara gobernada
por la tarjeta Arduino (switches del shield colocados en modo XBBE
Lo primero que haremos ser programar los mdulos Receptor y Emisor de acuerdo a
la siguiente tabla:
DH y DL Forman la Direccion de Destino (DH parte alta y DL parta baja) del Modulo
(01 para el Emisor y 00 para el receptor)
36
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
37
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Se procede de la misma manera que con el mdulo Emisor pero en este caso los datos
sern:
El cdigo a escribir.
Una vez programados los mdulos procederemos a escribir un programa que vamos a
colocar en el modulo Remoto y que bsicamente lo que har este programa es : Por un lado
generar un numero que se ira incrementando y lo enviar a travs del puerto al XBee que
hemos llamado Emisor que estar conectado en el PC trabajando en modo XBee sobre el
Shield pero con la tarjeta Arduino sin microcontrolador. Mediante el software C-CTU
trabajando en el modo Monitor podamos leer este valor que se ira incrementando.
38
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Por otro lado colocaremos un diodo LED en el PIN 13 del modulo Receptor y lo
activaremos y desactivaremos escribiendo en el PC (a travs del puerto conectado al termina
XBee Emisor) una a que al llegar al mdulo remoto Receptor activara y desactivara el LED
en modo conmutador.
A continuacin vemos el programa que debemos cargar en el Arduino Uno que se coloca con
el modulo distante Receptor.
/*
-----------------------------------------------
Escritura serial inalmbrica - XBee Serie 1
-----------------------------------------------
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
int contador = 0; //Variable del contador
//------------------------------------
//Funcin principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
40
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
//Fin programa
41
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Funcionamiento de la aplicacin:
Se procede de la misma manera que con el mdulo Emisor pero en este caso los datos
sern
42
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
La distancia entre la Estacin de Emisin (E) y la Estacin de Recepcin (R) debe ser
30m si se encuentra en interiores y si se encuentran en lnea abierta la mxima distancia es de
90m.
Programa
Vamos a desarrollar el cdigo tanto para la Estacin de Emisin (E) como para la
Estacin de Recepcin (R)
/*
-----------------------------------------------
Timbre inalmbrico - Estacin Emisin (E)
-----------------------------------------------
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int boton = 2; //Pin donde se encuentra el pulsador, entrada
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(boton,INPUT); //Configura el pulsador como una entrada
43
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Fin programa
/*
-----------------------------------------------
Timbre inalmbrico - Estacin Recepcin (R)
-----------------------------------------------
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int buzzer=5; //Pin donde se encuentra el buzzer, salida
int led=13; //Pin donde se encuentra el led, salida
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(buzzer,OUTPUT); //Configura el buzzer como una salida
pinMode(led,OUTPUT); //Configura el led como una salida
44
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Fin programa
45
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Receptor
Emisor
46
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
Pginas WEB
Guia de Usuario de XBee
http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf
Blog de Electrnica:
http://www.blogelectronica.com/author/admin/
Lugar oficial de la plataforma Arduino:
http://www.arduino.cc/es/Main/Software
XBEE CL Mdulos de Transmisin Inalmbrica:
http://www.xbee.cl/index.html
Digi XBee Examples & Guides.
http://examples.digi.com/
Tienda Sparkfun
https://www.sparkfun.com/
Arduino XBee Shield
http://arduino.cc/es/Guide/ArduinoXbeeShield
Manual de usuario de XBee en espaol
http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf
Cosas de mecatronica
http://www.cosasdemecatronica.com/tutoriales
Cooking Hacks (Distribucin componentes)
http://www.cooking-hacks.com/index.php/shop/arduino/wireless.html
Robotica Educativa
http://www.aprenderobotica.com/
XBee Tutorial
https://sites.google.com/site/xbeetutorial/home
Digi. Learning Center
http://www.digi.com/learningcenter/
Primeros pasos en XBee, usando arduino
http://www.internetdelascosas.cl/primeros-pasos-en-xbee-usando-arduino/
XBee Radios
http://www.ladyada.net/make/xbee/
Libros
Margolis, Michael. Arduino CookBook,2da edicin, OReilly. Link aqu
Faludi, Robert. Building Wireless Sensor Networks: A practical guide to the
ZigBee Mesh Networking Protocol. Ed, OReilly aqu
Software:
Software XCTU Download Site
Software Teraterm ttp://ttssh2.sourceforge.jp/
Drivers FTDI Pulsar aqui para descargarlos de Internet.
47
http://librosysolucionarios.net
Arduino + XBee Jos Manuel Ruiz Gutirrez
48
http://librosysolucionarios.net