<< Chapter < Page Chapter >> Page >
You will draw the RSSI received as a function of distance between sender and receiver. Because of the random nature of propagation, especially in a closed room, you will see that this relationship is not straightforword to predict. It should be clear that repeating these measurements under different conditions yields very different results.
For this section, you will need to have installed all the software. If not, please follow the Installation Instructions .

You will modify the code for the mote taken from 5.2. Creating a Spectrum Analyzer to Measure Noise in order to read 200 times the RSSI value from the same channel . A python script will then average those read values. To this end:

  • Use the code from 5.2. Creating a Spectrum Analyzer to Measure Noise , but comment out line mrfiSpiWriteReg(CHANNR,channel); . The mote will now read the RSSI 200 times on channel 0.
  • Reprogram the receiver board and visualize the values outputted on the COMx port using PuTTY (see 1.3. Read directly from COM Port ). We are interested in calculating the average value of each 200 point line.
  • Copy-paste the code presented below to a new file called txrx_rssi_dist.py Alternatively, this file is already present in the downloadable source code , in the directory source_code/c_files/ . ;
  • in Cygwin, run the python script cat /dev/comx | ./txrx_rssi_dist.py In Cygwin, you should first go to the folder containing txrx_rssi_dist.py , see 5.2. Creating a Spectrum Analyzer to Measure Noise . . This script outputs the average value of the RSSI 200 readings.
  • Reprogram a second board using the code described in 4.3. Continuous Tx/Rx , so that it continuously sends data, on channel 0 and with a transmission power of 0dBm.
  • Start the continuous sending and see how the RSSI decreases as the transmitter is moved away from the receiver.

#!/usr/bin/env python import sysif __name__ == '__main__': char = ''line = '' while 1:char = sys.stdin.read(1) if char == '\n':sline = line.split() sumsum = 0counter = 0 for i in range(len(sline)):try: sline[i]= int(sline[i])sumsum += sline[i] counter += 1except: sline[i]= 0 result = sumsum/counterprint result line = ''else: line = line + char

The figure below plots the evolution of RSSI as transmitter and receiver boards are parted away in three different directions. Because these measurements are not done in aninfinite open space, shadowing and fading effects introduce randomness into the relationship between RSSI and distance.

rssi_vs_dist
Evolution of RSSI with distance.

RSSI can not be predicted knowing the distance. This means that you can not know for sure two nodes are able to communicate by just the distance to one another. Similarly, distance can not be predicted knowing the RSSI.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Ezwsn: experimenting with wireless sensor networks using the ez430-rf2500. OpenStax CNX. Apr 26, 2009 Download for free at http://cnx.org/content/col10684/1.10
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ezwsn: experimenting with wireless sensor networks using the ez430-rf2500' conversation and receive update notifications?

Ask