Solventado--> parámetros para red Xbee (tres xbee y dos arduino)

Hola a todo el mundo.
Pues me trae por la calle de la amargura el proyecto en el que estoy embarcado. Os cuento. Voy a crear una red de sensores (por ahora dos), consistente en un Arduino UNO conectado a un sensor SHT-15 y BMP-085, con su codigo funcionando sin problema; y un Arduino FIO conectado a un anemometro Inspeed y alimentado por solar y bateria, en un sitio remoto. Estos van a transmitir mediante modulos xbee serie 2(un ZB-24 SMA en cada arduino y un ZB24 UFL en la estacion base) la informacion al otro xbee conectado a un ordenador que está encendido 24 horas en funcionamiento en una estación meteorológica. La comunicacion punto a punto está solucionada, pero el problema viene al configurar para que los dos arduinos manden a la misma estación base, y proceder a ver los datos por puerto serie.
Mi pregunta, es facil ¿que narices tengo que poner en los parametros del X-CTU para que esto funcioneeeeeee!!? Entiendo que tengo que configurar uno de los xbee (el UFL, estación base) como COORDINATOR AT; y los otros dos (SMA, montado en arduino), como ROUTER AT, ¿verdad? Ahora bien, ¿que parametros tengo que modificar? entiendo que deben tener el mismo PAN ID (en este caso, 0000 por ejemplo), el mismo Canal, y me pierdo en el tema de las DL y las DH, porque en mil sitios veo que hay funcionamiento Unicast y Broadcast (creo que me interesa este segundo no?) y veo que se configuran con parametros 0x000FFF y similares.... pero me pierdo, tanta informacion pero muy dispersa no ayuda. A ver si me podeis arrojar un rayo de luz.
Os dejo los parametros de cada XBee, por si es necesario:

  • ESTACIÓN BASE: UFL. SH: 0013A200 SL: 405D7C22 (NOMBRE : XBEE_1)
  • XBEE REMOTO: SMA SH: 0013A200 SL: 40698647 (NOMBRE : XBEE_2)
  • XBEE REMOTO: SMA SH: 0013A200 SL: 407A247F (NOMBRE : XBEE_3)

PD: la comunicacion va a ser unidireccional, los arudinos remotos enviando informacion a la estacion base, y por el momento, nada de ahorro de energia o sleep de ningun tipo

Gracias de antemano, saludos!

Bueno, me respondo a mi mismo, solucionado.

Para crear una red multipunto, he configurado los parametros de la siguiente manera: PAN ID: el mismo en cada xbee, en mi caso, por defecto, 3332. En el xbee que va a hacer de coordinador, seleccionamos modo COORDINATOR AT y en la DH ponemos 0 y en la DL ponemos FFFF.

Para los routers, modo ROUTER AT, PAN ID de la red (3332), y en este caso, DH: 0 y DL: 0 Con esto obligamos a conectarse a esa red, y mandar los datos a la direccion FFFF.
En el caso de que queramos poner algún END DEVICE AT, son los mismos parámetros que los ROUTER AP, exceptos que estos no enrutan datos de su alrededor (no hacen de repetidor). Me falta probar este ultimo caso, con el modo ROUTER AT entran datos por el puerto de serie de dos placas arduino con dos codigos distinto sin problema.

Como siguiente, configurar el tema de ahorro de energia puesto que una de las placas ira alimentada mediante placa solar y bateria de litio.

Saludos, y esperon que a alguien le sea de utilidad.

Hola Chinchu.

Si ves mas abajo un post mio veras que estoy embarcado tambien en un proyecto con xbee donde mando señales analogicas y digitales poco a poco me va funcionando pero me gustaria ver tus codigos para comparar y coger lo bueno que tengas tanto en el envio de datos como en la recepcion.

gracias y saludos

Te comento que en los codigos de arduino no hay nada que hable o tenga que ver con los XBEE.... lo unico que están configurados son los tres xbee para formar una red punto a multipunto, donde he introducido los parámetros que puedes ver un poco mas arriba... uno de los arduino lleva conectado un anemometro Inspeed, una shield XBEE para comunicacion con la estacion base y una shield para tarjeta SD (esto si ha sido cosecha propia, el refundir el sketch Datalogger que viene con el IDE de Arduino para introducirlo en el código del anemometro), y por otro lado, un arduino FIO conectado a un sensor SHT-15 para humedad y temperatura y a un BMP-085 para presión. Los xbee de estas dos placas tienen exactamente los mismos parametros de configuracion.
De todas formas, si quieres cuelgo por aqui los codigos, y le echas un vistazo, que para eso yo los he sacado y he modificado, y por supuesto, los publico de nuevo sin ningun tipo de problema.

buenas,

primero decir que soy bastante nuevo en arduino y totalmente nuevo con el xbee

ahora mismo tengo un arduino tomando datos de unos sensores y enviandolo al pc mediante el usb, pero quiero hacer, a modo de ejercicio, un principio de malla como la que me ha parecido entender que planteabas en tu primer post, o sea, un xbee s2 conectado directamente al puerto usb del pc (tú le llamas ESTACIÓN BASE: ¿UFL? ...) y los dos módulos remotos formados cada uno de ellos, por un arduino captando datos de una serie de sensores con un módulo xbee s2 (tú les llamas XBEE REMOTO: ¿SMA? ...)

ahora mismo creo que, gracias a tu 2º post, puedo hacer que puedan comunicarse los 3 xbee's, pero no sé como decirle a los arduinos que envíen datos de uno a otro, y después como hacer que el xbee ESTACIÓN BASE pase ésos datos recopilados de todos los módulos arduino/xbee remotos al usb del pc cada minuto (por ejemplo)

para centrar el tema diré que el arduino/xbee remoto num1 controla los sensores llamados s1, s2 y s3 y el arduino/xbee remoto num2 controla los sensores s4 y s5

el final que quiero es que el ordenador reciba cada minuto (por ejemplo), los valores de los 5 sensores ordenados tal que así:
(una línea de éstas cada minuto)
/12.34 14.37 65.4 34.2 1.3
/11.33 24.7 65.35 30.43 2.3
/....

pero tampoco pasa nada si los valores de los sensores llegan desordenados ya que los puedo etiquetar para que el código de programar los reconozca, solo pongo ésto para centrar el tema

gracias de antemano

PD.: poner 2 ó poner 20 arduino/xbee remotos sería tán fácil como parece ¿no?

Bueno, te voy contando por aqui, a ver si no me dejo nada en el tintero. EL tema del UFL y el SMA y demás, es simplemente para tener un control de a que dispositivo me refiero. Le he puesto una pegatinita con un nunemero para no tener lios y demás.
Vamos por partes, la forma en la que yo lo he montado, que es la mas facil para configurar y leer datos de sensores, es en modo "punto-multipunto", uno de los XBEE hace como estación base, conectado a un usb explorer directamente al ordenador (este usb explorer es detectado como puerto COM, lo selecicionas en el IDE arduino o cualquier programa para ver el puerto serie, y listo, a recibir datos). Los otros dos, pues mandan sus datos directamente a esta estación base. Lo que no te puedo decir, es si desde la estacíion base se puede enviar datos a cada uno de los dispositivos individualmene, diría que no, puesto que los dos tienen identicos parámetros de configuración, y no sabemos a cual nos referimos. Para eso, estan las redes API, que ahora mismo, no se como se configuran.
Respecto a los xbee remoto, pues muy facil, ellos transmiten lo que le llega por el puerto serie. Así lo probe yo: a la placa Arduino UNO, le puse que hiciera un Serial.print de "Hola, soy Arduino UNO" cada 10 segundos. A la placa arduino FIO; con el otro XBEE, le puse lo mismo pero "Hola soy Arduino FIO" cada cinco segundos. Pues bien, abres el puerto serie en el programa Arduino, y vas a ver las tramas alternando cada una con otra, asi distingues que arduino estas mandando.
En tu caso, si quieres transmitir diez valores de temperatura de diez arduinos con diez XBEE (no se cuantos se pueden tener, pero creo que muuuuchos), pues le pones Temp-1: 24,5 ºC ; Temp-2: 13,2 C.... y cuando abras, pues ira recibiendo por orden de llegada.
Este es el limite en el que estoy ahora, no se como configurar el modo API, que va por comandos. En este multipunto, si quieres encender un led en un arduino, pues los vas a encender en todos a la vez, creo que me explico

Los parametros de configuracion son faciles. Mismo PAN ID en toda la red.
A la estación base, le pones DH=0 y DL=FFFF (modo coordinator AT)
A cualquier arduino que sea router: DH=0 y DL=0 (modo router AT)
Todos se van a conectar a la red que tengan en el PAN ID, y buscaran al coordinador para mandarle informacino.
Respecto al modo End DEVICE, no se commo funciona, supongo que ese será terminal, y que los router enrutan información de los xbee que le rodean para mandarla al coordinador.

asias, chinchu, ésto es lo que quería saber y lo voy a probar a lo largo del día

ahora mismo estaba en twitter a ver por donde podría meter la cuña de "a ver si me puedes echar una mano en aquel hilo de arduino sobre la configuración de los xbee" jejeje

te contaré por aquí y así que quede escrito para el siguiente "torpón" :stuck_out_tongue_winking_eye:

funciona todo perfectamente y sin hacer nada especial como decías jejeje

muchas gracias!!!