You will need a micro controller of some sort to accomplish this task. (My favorite microcontroller when interfacing Arduino with XBee is the Arduino FIO or OSEPP Fio)
You can accomplish this task one of two ways:
Method 1, Read the XBee RSSI pin using Arduino pulseIn()
On XBee and XBee-PRO modules, pin 6 is PWM0 / RSSI Output PWM Output 0 / RX Signal Strength Indicator
. When AT Command, P0
on the XBee module is set to 1 (default), pin 6 outputs the RSSI value as timed electrical pulses (PWM, pulse width modulation.)
You can read those pulses using an Arduino's pulseIn function. Those pulses will equate to a number in hex. That hex number can then be translated to decibels (dB) which is the unit of measure for our RSSI value.
Method 2, Read the RSSI value in XBee API mode
XBee can be put into API mode, that is Application Programming Interface mode. In this mode, the Arduino can access to a wider range of XBee data than in AT mode. (There is an Arduino library available to assist with API mode.)
In API mode, there is a specific packet type that the XBee can send to the Arduino which contains the RSSI value. The Arduino would send an api packet to the XBee requesting that packet type, and the XBee would gather the data and respond to the Arduino with the data packet. The Arduino would then parse the packet, and give you the frame ID containing the RSSI value. You could then do whatever processing you want to do with the RSSI value.
You can learn more about using the API mode in the XBee manual, and more about the specific API frames using Digi's api frame utility.