Recuperando valor RSSI de XBee

2

¿Cómo haces que XBee envíe su valor RSSI a otro XBee? Estoy trabajando en un proyecto que implica enviar el valor RSSI de un XBee a otro XBee que envía esos datos a un Arduino. Arduino procesa los valores RSSI recibidos de tres módulos XBee para rastrear su posición.

No sé cómo hacer que XBee envíe el valor RSSI a otro XBee.

Además, ¿hay alguna forma de enviar datos desde XBee sin utilizar Arduino u otros microcontroladores de bajo costo?

Gracias.

    
pregunta mathworker

3 respuestas

1

Envíe al XBee de interés un comando DB usando la función API del comando remoto. Hacerlo probablemente hará que devuelva el valor RSSI del paquete que contenía el comando. Tal enfoque puede no ser 100% confiable, pero probablemente sea mejor que cualquier otra cosa. Dado que el valor RSSI informado se actualizará cada vez que el módulo escuche un paquete de alguien, la única forma de saber cuál fue el valor RSSI para un paquete en particular es consultar el valor entre la recepción del paquete en cuestión y la recepción del paquete. siguiente (de cualquier fuente).

    
respondido por el supercat
3

Necesitará un microcontrolador de algún tipo para realizar esta tarea. (Mi microcontrolador favorito al interactuar con Arduino con XBee es el Arduino FIO o OSEPP Fio )

Puedes realizar esta tarea de dos maneras:

Método 1, lee el pin XBee RSSI usando Arduino pulseIn ()

En los módulos XBee y XBee-PRO, el pin 6 es PWM0 / RSSI Output PWM Output 0 / RX Signal Strength Indicator . Cuando AT Command, P0 en el módulo XBee se establece en 1 (predeterminado), el pin 6 genera el valor RSSI como pulsos eléctricos temporizados (PWM, modulación de ancho de pulso).

Puede leer esos pulsos utilizando el pulseIn de un Arduino función . Esos pulsos equivaldrán a un número en hexadecimal. Ese número hexadecimal se puede traducir a decibelios (dB), que es la unidad de medida para nuestro valor RSSI.

Método 2, lea el valor RSSI en el modo de API XBee

XBee se puede poner en modo API, que es el modo de interfaz de programación de aplicaciones. En este modo, el Arduino puede acceder a un rango más amplio de datos XBee que en el modo AT. (Hay una biblioteca de Arduino disponible para ayudar con el modo API).

En el modo API, hay un tipo de paquete específico que XBee puede enviar al Arduino que contiene el valor RSSI. El Arduino enviaría un paquete de api al XBee solicitando ese tipo de paquete, y el XBee recopilaría los datos y respondería al Arduino con el paquete de datos. El Arduino luego analizaría el paquete y le daría el ID de cuadro que contiene el valor RSSI. Luego, puede hacer el procesamiento que desee con el valor RSSI.

Puede obtener más información sobre el uso del modo API en XBee manual , y más acerca de los marcos API específicos utilizando utilidad de marco de API de Digi .

    
respondido por el Grimtech
0

El pin RSSI está diseñado de forma cableada. Según el manual de xbee, es el número de ondas de salida de pin RSSI en 200 microsegundos que es proporcional a la intensidad de la señal. La frecuencia portadora es de 12MHz. Entonces, la solución es alimentar el pin RSSI como entrada de reloj para el temporizador 1, luego usar el temporizador 2 para configurar un período de activación como 200microsegundos, luego leer los conteos del temporizador 1.

@Grimtech: ¿Podrías explicar un poco tu función? Estaba buscando una forma de leer RSSI el otro día, su función salió en la parte superior de la lista. Pero me costó entender cómo funciona. Gracias.

    
respondido por el Zhiyong Li

Lea otras preguntas en las etiquetas