exploring_lora
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
exploring_lora [2018/09/29 12:31] – [3.1. Modifying the Radio Parameters] samer | exploring_lora [2018/10/06 14:06] – samer | ||
---|---|---|---|
Line 2: | Line 2: | ||
As defined by Semtech, [[http:// | As defined by Semtech, [[http:// | ||
- | In this lab, you will implement a prototype of LoRa communication between two wireless | + | In this lab, you will implement a prototype of LoRa communication between two wireless |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
Line 15: | Line 15: | ||
In order to design and implement experiments with LoRa, you will use the following devices: | In order to design and implement experiments with LoRa, you will use the following devices: | ||
- | * Arduino Mega (x2). | + | * Arduino Mega or Arduino Duemilanove |
* LoRa shields from [[http:// | * LoRa shields from [[http:// | ||
Line 22: | Line 22: | ||
* Give the main characteristics of the LoRa shield from Dragino (www.dragino.com). | * Give the main characteristics of the LoRa shield from Dragino (www.dragino.com). | ||
* What type of Antenna are you using? Explain the corresponding characteristics. | * What type of Antenna are you using? Explain the corresponding characteristics. | ||
- | * Give an estimated cost of your platform. | + | * Give an estimated cost of your devices. |
</ | </ | ||
- | |||
==== -. Software Tools ==== | ==== -. Software Tools ==== | ||
Line 32: | Line 31: | ||
Unzip the RadioHead library and copy it to your sketchbook library folder as detailed in [[https:// | Unzip the RadioHead library and copy it to your sketchbook library folder as detailed in [[https:// | ||
- | |||
- | <WRAP center round tip 75%> | ||
- | Note well the location of the library folder on your computer. In the following, you will be required to modify source files located in this folder. | ||
- | </ | ||
==== -. Installation ==== | ==== -. Installation ==== | ||
Line 44: | Line 39: | ||
Connect the two Arduino devices to USB ports on your computer. If this is the first time you use Arduino IDE, make sure to install the necessary USB drivers by selecting '' | Connect the two Arduino devices to USB ports on your computer. If this is the first time you use Arduino IDE, make sure to install the necessary USB drivers by selecting '' | ||
- | Now, you have to choose the '' | + | Now, you have to choose the '' |
<WRAP center round tip 75%> | <WRAP center round tip 75%> | ||
For Arduino Mega 2560, additional drivers for Microsoft Windows can be installed from [[http:// | For Arduino Mega 2560, additional drivers for Microsoft Windows can be installed from [[http:// | ||
</ | </ | ||
- | |||
===== -. Theoretical Study ===== | ===== -. Theoretical Study ===== | ||
Line 57: | Line 51: | ||
* What is the relation between processing gain and spreading factor in LoRa modulation? Explain. | * What is the relation between processing gain and spreading factor in LoRa modulation? Explain. | ||
* How does the spreading factor impact the coverage of a LoRa transmitter? | * How does the spreading factor impact the coverage of a LoRa transmitter? | ||
- | * For each of the three possible | + | * What is the transmission bit rate for each of the following |
+ | * Configuration 1: channel bandwidth = 125 kHz, spreading factor = 7, coding rate = 4/5 | ||
+ | * Configuration 2: channel bandwidth = 500 kHz, spreading factor = 7, coding rate = 4/5 | ||
+ | * Configuration 3: channel bandwidth = 125 kHz, spreading factor = 12, coding rate = 1/2 | ||
* Compute the receiver sensitivity, | * Compute the receiver sensitivity, | ||
* Compare the computed sensitivity to that provided by the {{ : | * Compare the computed sensitivity to that provided by the {{ : | ||
Line 67: | Line 64: | ||
==== -. Modifying the Radio Parameters ==== | ==== -. Modifying the Radio Parameters ==== | ||
- | Download the {{ : | + | Download the {{ : |
- | The typical configuration for LoRa modules consists of 125 kHz sub-channels, | + | Take a look at the source code in '' |
+ | |||
+ | * Central frequency | ||
+ | * Spreading Factor | ||
+ | * Bandwidth | ||
+ | * Coding Rate | ||
+ | * Transmit power | ||
- | ^ Data Rate | + | <code c++> |
- | | DR0 | + | rf95.setFrequency(frequency); |
- | | DR1 | + | // Setup Power,dBm |
- | | DR2 | + | rf95.setTxPower(13); |
- | | DR3 | + | |
- | | DR4 | + | // Setup Spreading Factor |
- | | DR5 | + | rf95.setSpreadingFactor(7); |
- | | DR6 | + | |
+ | // Setup BandWidth, option: 7800, | ||
+ | //Lower BandWidth for longer distance. | ||
+ | rf95.setSignalBandwidth(125000); | ||
+ | |||
+ | // Setup Coding Rate: | ||
+ | rf95.setCodingRate4(5); | ||
+ | </ | ||
- | In order to reduce collisions, configure the central frequency of your LoRa modules | + | In order to reduce collisions |
^ Group Number | ^ Group Number | ||
Line 95: | Line 105: | ||
| | | | ||
| | | | ||
- | |||
==== -. Running Basic Sketches ==== | ==== -. Running Basic Sketches ==== | ||
- | Now you can compile and upload the client and server sketches on the two arduino | + | Now you can compile and upload the client and server sketches on the two arduino |
[{{ : | [{{ : | ||
Line 105: | Line 114: | ||
In the following, you will design and implement a set of scenarios that enable to evaluate the performance of the LoRa modulation. As you will deal with scientific assessment, you are required to use scientific tools to show the results. You have the choice between [[http:// | In the following, you will design and implement a set of scenarios that enable to evaluate the performance of the LoRa modulation. As you will deal with scientific assessment, you are required to use scientific tools to show the results. You have the choice between [[http:// | ||
+ | As we are in presence of variable radio conditions, some experiments should be repeated multiple times and results can be shown as probability distributions. Take a look at this excellent repository of data visualisation tools [[https:// | ||
==== -. Time on Air ==== | ==== -. Time on Air ==== | ||
- | In this section, you will measure the Time on Air (ToA) under the three different radio configurations and for different message sizes. The ToA is the time necessary to send a message | + | In this section, you will measure the Time on Air (ToA) that is given by the time necessary to transmit |
- | For this, you can start by implementing a function on the client that measures the time necessary for sending a message. For example, you can use the [[https:// | + | Start by implementing a function on the client that measures the time necessary for sending a packet. You can have recourse to the [[https:// |
+ | |||
+ | For example, the scenario for assessing the impact of the spreading factor on the ToA consists of sending 100 packets for three different spreading factors //e.g.,// 7, 9, and 10, and drawing the average ToA or the distribution in a boxplot for comparing the results. | ||
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Join commented extracts of your code and explain your approach for computing the ToA. | + | |
- | * Draw a box plot of the ToA under the three different radio configurations and for three different | + | |
- | * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the practical | + | * Visualise the experimental results by plotting the ToA as a function of each one of the different |
+ | * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the experimental | ||
</ | </ | ||
- | ==== -. Packet Delivery Ratio ==== | + | ==== -. Coverage |
- | In this section, you will measure the Packet Error Rate (PER) under the three different radio configurations | + | In this section, you will measure the coverage of LoRa under different radio configurations. |
- | Only for this test, all groups are required | + | Start by identifying a set of five geographical locations or Test Points (TP). These TPs should be astutely chosen |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw the PER as a function | + | * Draw the test points on a map and motivate your choices. |
- | * What type of mathematical models enables to theoretically compute | + | * Describe the radio configurations you selected and their impact on the reliability |
+ | * Visualise | ||
+ | * Analyze | ||
</ | </ | ||
+ | ==== -. [Classroom activity] Collisions and Packet Delivery Ratio ==== | ||
- | ==== -. Coverage ==== | + | In this section, you will measure the impact of the packet arrival rate on the collision rate and consequently the PDR. |
- | + | The setting for this experiment is unique: | |
- | In this section, you will measure | + | * Only one server is required in the classroom. This server should compute |
- | + | * All groups are required | |
- | <code c++> | + | * On each client, the same average arrival rate for all groups. |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | </ | + | |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw the test points on a map. | + | * Draw the PDR as a function of the average arrival rate. Analyze your results. |
- | * Give a statistical measure | + | * What type of mathematical model enables to theoretically compute |
</ | </ | ||
- | ==== -. Path Loss ==== | + | ===== -. Coverage Challenge ===== |
- | In this section, you will study the properties | + | In this section, you are required to establish a record |
+ | |||
+ | * Direct transmission between | ||
+ | * 3D distance is computed between devices. | ||
+ | * PDR must be higher than 10% as computed | ||
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Provide | + | * Compute |
- | * Draw the RSSI values as a function | + | * Provide |
- | * What is the path loss exponent? | + | * Compare the received power obtained |
- | * Using regressions, | + | * Write an article (blog, wiki, ...) to describe your experiment. |
- | * Compare the obtained | + | |
</ | </ | ||
- | |||
- | In order to compute distances in your experiment, you can get the GPS coordinates as recorded by your smartphone using an application such as [[https:// | ||
- | ===== -. Coverage Challenge ===== | ||
- | |||
- | |||
===== -. Grading ===== | ===== -. Grading ===== | ||
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer