wikiroute

networking recipes

User Tools

Site Tools


lora_radio_coverage

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lora_radio_coverage [2016/10/15 17:13] – [3. Experiment Settings and Data Analysis] samerlora_radio_coverage [2021/08/28 09:49] (current) samer
Line 4: Line 4:
  
  
-===== -Hardware Platform =====+===== - Hardware Platform =====
  
 The hardware platform consists of the following devices: The hardware platform consists of the following devices:
Line 18: Line 18:
  
 [{{ ::iot-wiki-coverage-1.png?direct&600 |Figure 2. Platform for coverage test}}] [{{ ::iot-wiki-coverage-1.png?direct&600 |Figure 2. Platform for coverage test}}]
-===== -Software Platform =====+===== - Software Platform =====
  
-For basic hands-on with the prototype devices, you can refer to the article [[simple_lora_prototype|Simple Prototype of LoRa Communications]]. Start by downloading the {{ :rf95_client_server.zip |sketches}} that implement a reliable LoRa communication between the two modules: the client corresponds to the mobile device, the server to the base station. Open the sketches with Arduino IDE, compile and upload on the two arduino modules, respectively. The client will periodically send a hello message to the server and wait for an acknowledgement. Communication uses a spreading factor of 7 and a transmit power of 13 dBm. These parameters can be tuned as mentioned in the previous [[simple_lora_prototype|tutorial]].+For basic hands-on with the prototype devices, you can refer to the article [[simple_lora_prototype|Simple Prototype of LoRa Communications]]. Start by downloading the {{ :rf95_client_server.zip |sketches}} that implement a reliable LoRa communication between the two modules: the client corresponds to the mobile device, the server to the base station. Open the sketches with Arduino IDE, compile and upload to the two arduino modules, respectively. The client will periodically send a hello message to the server and wait for an acknowledgement. Communication uses a spreading factor of 7 and a transmit power of 13 dBm. These parameters can be tuned as mentioned in the previous [[simple_lora_prototype|tutorial]].
  
-==== -Base station ====+==== - Base station ====
  
-The software package on the base station is forked from [[https://github.com/p-v-o-s/rssi-map]]. On the computer of the base station, you should install python with scientific libraries (an easy way to do this is to download [[https://www.continuum.io/downloads|Anaconda]]) and the [[https://github.com/python-visualization/folium|folium]] library for map visualization.+The software package on the base station is forked from [[https://github.com/p-v-o-s/rssi-map]]. On the computer of the base station, you should install python with scientific libraries for data analysis (an easy way to do this is to download [[https://www.continuum.io/downloads|Anaconda]]) and the [[https://github.com/python-visualization/folium|folium]] library for map visualization.
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Line 30: Line 30:
 </WRAP> </WRAP>
  
-Now, you can run the {{ :log.py.zip |log.py}} script on the base station computer. This script reads data from the USB interface connected to the Arduino and outputs the received power in a CSV text file. +Now, you can run the {{ :log.py.zip |log.py}} script on the base station computer. This script reads data from the USB interface connected to the Arduino and outputs the received power in a CSV text file for each successful LoRa transmission
-For the script to work, you should make sure to specify the adequate interface on your computer in the python source file. The following is an example with an Arduino Uno connected to Mac OS:+For the script to work, you should make sure to specify the adequate interface on your computer in the python source file. The following extract is valid for an Arduino Uno connected to Mac OS:
  
 <file py log.py> <file py log.py>
Line 49: Line 49:
 1475055915.287805,-88 1475055915.287805,-88
 </file> </file>
-==== -Mobile Device ====+==== - Mobile Device ====
  
-On the mobile device side, you should install and run [[https://play.google.com/store/apps/details?id=com.mictale.gpsessentials&hl=en | GPS Essentials]]. This software is available for any android mobile platform and enables to track the mobile device by saving GPS coordinates in XML file. Once installed, go to settings and fix the update interval to 10 seconds: this interval should be equal to the transmit interval of the LoRa devices. Now, you can launch a track as in the following screenshots and start your coverage testing walk.+On the mobile device side, you should install and run [[https://play.google.com/store/apps/details?id=com.mictale.gpsessentials&hl=en | GPS Essentials]]. This software is available for any android mobile platform and enables to track the mobile device by saving GPS coordinates in an XML file. Once installed, go to settings and fix the update interval to 10 seconds: this interval should be equal to the transmit interval of the LoRa devices. Now, you can launch a track as in the following screenshots and start your coverage test walk.
  
-{{:screenshot_20161012-172456.png?direct&300 |}} +{{:screenshot_20161012-172456.png?direct&150 |}} 
-{{:screenshot_20161012-172451.png?direct&300 |}} +{{:screenshot_20161012-172451.png?direct&150 |}} 
-{{:screenshot_20161012-172407.png?direct&300 |}} +{{:screenshot_20161012-172407.png?direct&150 |}} 
-{{:screenshot_20161012-172342.png?direct&300 |}}+{{:screenshot_20161012-172342.png?direct&150 |}}
  
  
  
-===== -Experiment Settings and Data Analysis =====+===== - Experiment Settings and Data Analysis =====
  
-During the coverage test on the USJ CST campus, we placed the base station in a third floor classroom in one of the highest building of the campus. As mentioned before, the connected computer logs periodically timestamps and information on the received signal power. We carried the mobile device around the campus walking slowly so that the LoRa transmission and the GPS update can take place. +During the coverage test on the USJ [[http://bit.ly/2dWmram|Campus des sciences et technologies]], we placed the base station in a third floor classroom in one of the highest building of the campus. As mentioned before, the connected computer logs periodically timestamps and information on the received signal power. We carried the mobile device around the campus walking slowly so that the LoRa transmission and the GPS update can take place. 
-After the end of the walk, GPS data can be exported form the GPS essentials application (as in the following screenshot).+After the end of the walk, GPS data was exported form the GPS essentials application as in the following screenshot.
  
-{{ :screenshot_20161015-112330.png?direct&300 |}}+{{ :screenshot_20161015-112330.png?direct&150 |}}
  
-Let us rename the obtained GPS file ''Track-160928-124332.gpx'', and the log file on the base station ''Log-160928-124332.csv''. Now, you can download the following {{ :archive.zip |scripts}} that enable to merge the data, analyse the communication, and output a coverage map. +Let us rename the exported GPS file ''Track-160928-124332.gpx'', and the log file on the base station ''Log-160928-124332.csv''. Now, you can download the following {{ :archive.zip |scripts}} that enable to merge the data, analyse the communication, and output a coverage map. 
  
-Sort by transforming the GPX (XML GPS format) to CSV with the following command:+Start by transforming the GPX (XML GPS format) to CSV with the following command:
 <code bash> <code bash>
 python gpx_to_csv.py ./data/Track-160928-124332.gpx  python gpx_to_csv.py ./data/Track-160928-124332.gpx 
 </code> </code>
  
-Then, merge the GPS data with the log file by perform time matching: +Then, merge the GPS data with the log file by performing time matching: 
 <code bash> <code bash>
 python timing_match.py ./data/Track-160928-124332.csv ./data/Log-160928-124332.csv python timing_match.py ./data/Track-160928-124332.csv ./data/Log-160928-124332.csv
Line 83: Line 83:
 python folium_plot_csv.py ./data/Track-160928-124332_GPS-RSSI.csv   python folium_plot_csv.py ./data/Track-160928-124332_GPS-RSSI.csv  
 </code> </code>
-===== -Coverage Results ===== +===== - Coverage Results ===== 
-{{:rssi-map-esib.jpg?direct&650 |}}+ 
 +Figure 3 depicts a typical output of the coverage test campaign. The base station is represented on the map. Green line correspond to good signal reception, while red line identify the communication drops between the mobile device and the base station. 
 +  
 +[{{ :rssi-map-esib.jpg?direct&750 |Figure 3. Coverage map of the USJ CST campus}}
 + 
 +===== - Lessons and Future Works ===== 
 +This basic coverage test shows the exciting performance of the LoRa technology: 
 +  * We successfully covered large parts of the campus with a very small transmission device placed indoors. Can you imagine the same with WiFi/Bluetooth/Zigbee? 
 +  * The mobile device is powered by a smartphone. We expect small LoRa end-devices to work on a battery for years. Can you imagine the same with GPRS, 3G, or 4G devices? 
 +  * The test is performed with a spreading factor of 7, we expect more robust communication (thus, larger coverage) when using higher spreading factors. 
 +  * The indoor base station has an omnidirectional antenna with 3dBi gain, we expect larger coverage with directional rooftop antennas.  
 + 
 +The first academic LoRa network deployed by USJ will be an excellent trial field to get more insights on the performance of this very promising technology. The future tests will enable to study the properties of the radio channel in the 868 MHz bandwidth, with a special focus on the vineyard agricultural environment.   
lora_radio_coverage.1476544415.txt.gz · Last modified: 2016/10/15 17:13 by samer