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/27 08:53] – [2. Software Tools] samer | exploring_lora [2018/09/29 13:14] – [4.1. Time on Air] 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 8: | Line 8: | ||
* How LoRa is compatible with LPWAN requirements and constraints? | * How LoRa is compatible with LPWAN requirements and constraints? | ||
</ | </ | ||
- | ===== -. Hardware Platform | + | |
+ | ===== -. Setting the Lab ===== | ||
+ | |||
+ | ==== -. Hardware Platform ==== | ||
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: | ||
Line 21: | Line 24: | ||
* Give an estimated cost of your platform. | * Give an estimated cost of your platform. | ||
</ | </ | ||
- | ===== -. Software Tools ===== | + | |
+ | ==== -. Software Tools ==== | ||
Download the following software on your PC: | Download the following software on your PC: | ||
- | * RadioHead: The Packet Radio library for embedded microprocessors can be downloaded from [[http://www.airspayce.com/mikem/ | + | * RadioHead: The Packet Radio library for embedded microprocessors can be downloaded from [[https://github.com/samerlahoud/ |
* Arduino IDE: Specific OS versions can be downloaded from [[https:// | * Arduino IDE: Specific OS versions can be downloaded from [[https:// | ||
Line 32: | Line 36: | ||
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. | 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 ==== |
Start by plugging the Dragino shields on the Arduino devices and mounting the antennas as shown in Fig. 1. | Start by plugging the Dragino shields on the Arduino devices and mounting the antennas as shown in Fig. 1. | ||
Line 45: | Line 49: | ||
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:// | ||
</ | </ | ||
- | ===== -. Running Basic Sketches ===== | ||
- | Start by setting the central frequency of the LoRa modules. For this, open the '' | ||
- | <file cpp RH_RF95.cpp> | + | ===== -. Theoretical Study ===== |
- | setFrequency(868.X); | + | |
- | </ | + | |
- | Download the {{ : | + | In this section, you will perform |
- | + | ||
- | [{{ : | + | |
- | [{{ : | + | |
- | ===== -. Modifying the Radio Parameters ===== | + | |
- | + | ||
- | The typical configuration for LoRa modules consists of 125 kHz sub-channels, | + | |
- | + | ||
- | * Bw125Cr45Sf128 | + | |
- | * Bw125Cr48Sf4096 | + | |
- | * Bw31_25Cr48Sf512 | + | |
- | + | ||
- | Radio configuration is applied in '' | + | |
- | <file cpp RH_RF95.cpp> | + | |
- | setModemConfig(Bw125Cr45Sf128); | + | |
- | </ | + | |
<WRAP left round help 100%> | <WRAP left round help 100%> | ||
* 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 configurations of your LoRa module, what is the transmission bit rate? Explain your computation. | + | * For each of the three possible configurations of your LoRa device, what is the transmission bit rate? Explain your computation. |
* 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 78: | Line 63: | ||
In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. | In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. | ||
+ | ===== -. Configuring and Running the Lab ===== | ||
+ | |||
+ | ==== -. Modifying the Radio Parameters ==== | ||
+ | |||
+ | Download the {{ : | ||
+ | |||
+ | Take a look at the source code in '' | ||
+ | |||
+ | * Central frequency (freq) | ||
+ | * Spreading Factor (SF) | ||
+ | * Bandwidth (Bw) | ||
+ | * Coding Rate (CR) | ||
+ | * Transmit power (Pow) | ||
+ | |||
+ | <code c++> | ||
+ | rf95.setFrequency(frequency); | ||
+ | // Setup Power,dBm | ||
+ | rf95.setTxPower(13); | ||
+ | |||
+ | // Setup Spreading Factor (6 ~ 12) | ||
+ | rf95.setSpreadingFactor(7); | ||
+ | | ||
+ | // 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 devices as indicated below: | ||
+ | |||
+ | ^ Group Number | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | ==== -. Running Basic Sketches ==== | ||
+ | |||
+ | Now you can compile and upload the client and server sketches on the two arduino devices, respectively. On the serial interfaces, you should obtain similar results as in Fig. 2 and Fig. 3. The client sends periodically a short message towards the server. The server outputs the RSSI (received power in dBm) for each received message. | ||
+ | |||
+ | [{{ : | ||
+ | [{{ : | ||
===== -. Performance Evaluation ===== | ===== -. Performance Evaluation ===== | ||
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:// | ||
+ | |||
==== -. Time on Air ==== | ==== -. Time on Air ==== | ||
- | In this section, you will measure the Time on Air (ToA) under the three different | + | In this section, you will measure the Time on Air (ToA) as given by the time necessary to transmit a message on the radio interface. You will assess the impact of the spreading factor, the bandwidth, the coding rate, and the message |
+ | |||
+ | 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:// | ||
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw a box plot of the ToA under the three different radio configurations and for three different message sizes. | + | * Describe the scenarios you used for assessing the impact of radio parameters on the ToA. You can join commented extracts of your code. |
- | * Analyze the obtained results and compare with the theoretical computations. | + | * Visualise the experimental results using for example [[http:// |
+ | * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the practical ones on the same graph. | ||
</ | </ | ||
- | + | ==== -. Packet | |
- | + | ||
- | ==== -. Packet | + | |
In this section, you will measure the Packet Error Rate (PER) under the three different radio configurations and for different transmission periods. For this, you can start by implementing a function on the client that measures the ratio of successfully delivered packets. | In this section, you will measure the Packet Error Rate (PER) under the three different radio configurations and for different transmission periods. For this, you can start by implementing a function on the client that measures the ratio of successfully delivered packets. | ||
Line 100: | Line 139: | ||
* What type of mathematical models enables to theoretically compute the PER? | * What type of mathematical models enables to theoretically compute the PER? | ||
</ | </ | ||
+ | |||
==== -. Coverage ==== | ==== -. Coverage ==== | ||
- | In this section, you will measure the coverage of LoRa modules | + | In this section, you will measure the coverage of LoRa devices |
<code c++> | <code c++> |
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer