wikiroute

networking recipes

User Tools

Site Tools


exploring_lora

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
Next revisionBoth sides next revision
exploring_lora [2018/09/27 11:56] – [3.1. Modifying the Radio Parameters] samerexploring_lora [2018/09/29 12:51] – [3.1. Modifying the Radio Parameters] samer
Line 28: Line 28:
  
 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/arduino/RadioHead/]] or from this [[http://www.airspayce.com/mikem/arduino/RadioHead/RadioHead-1.86.zip|direct link]]. +  * RadioHead: The Packet Radio library for embedded microprocessors can be downloaded from [[https://github.com/samerlahoud/RadioHead]]. 
   * Arduino IDE: Specific OS versions can be downloaded from [[https://www.arduino.cc/en/Main/Software]].   * Arduino IDE: Specific OS versions can be downloaded from [[https://www.arduino.cc/en/Main/Software]].
  
Line 36: 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. 
 </WRAP> </WRAP>
- 
 ==== -. Installation ==== ==== -. Installation ====
  
Line 63: Line 62:
 </WRAP> </WRAP>
  
 +In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity.
 ===== -. Configuring and Running the Lab ===== ===== -. Configuring and Running the Lab =====
  
 ==== -. Modifying the Radio Parameters ==== ==== -. Modifying the Radio Parameters ====
  
-Start by setting the central frequency of the LoRa modules. For this, open the ''RH_RF95.cpp'' file locate in the ''RadioHead'' folder and change the frequency according to the following table:+Download the {{ :sketch-1819.zip | basic sketches}} that implement a simple LoRa communication between the two modules: a client module and a server moduleOpen the sketches with Arduino IDE. Make sure to choose the correct ''Board'' and ''Port'' in the ''Tools'' menu. In order to reduce collisions, configure the central frequency of your LoRa modules as below:
  
 ^  Group Number  ^   Frequency     ^ ^  Group Number  ^   Frequency     ^
Line 83: Line 83:
 |       12            868.9      | |       12            868.9      |
  
-<file cpp RH_RF95.cpp> +Note that the radio parameters of your LoRa devices: Spreading Factor (SF), Bandwidth (Bw), and Coding Rate (CR) are configured in the ''setup'' function of the sketches. when needed, you can modify these configurations.
-setFrequency(868.X)+
-</file> +
- +
-The typical configuration for LoRa modules consists of 125 kHz sub-channelsa coding rate of 4/5, and a spreading factor equal to 7. You can modify the radio parameters by selecting one of the three available configurations: +
- +
-  * Bw125Cr45Sf128 +
-  * Bw125Cr48Sf4096 +
-  * Bw31_25Cr48Sf512 +
- +
-Radio configuration is applied in ''RH_RF95.cpp'' as in the following example: +
-<file cpp RH_RF95.cpp> +
-setModemConfig(Bw125Cr45Sf128); +
-</file>+
 ==== -. Running Basic Sketches ==== ==== -. Running Basic Sketches ====
  
-Download the {{ :example-lora-sketch.zip | basic sketches}} that implement a reliable LoRa communication between the two modules. Open the sketches with Arduino IDE, compile and upload on the two arduino modules, respectively. On the serial interfaces, you should obtain similar results as in Fig. 2 and Fig. 3. The client sends a short message and waits for an acknowledgement message from the server. Both modules output the RSSI (received power in dBm) for each received message.+Now you can compile and upload the client and server sketches on the two arduino modules, 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.
  
 [{{ :client-iotlab1.png?direct&600 ||Figure 2. Client serial monitor}}] [{{ :client-iotlab1.png?direct&600 ||Figure 2. Client serial monitor}}]
 [{{ :server-iotlab1.png?direct&600 ||Figure 3. Server serial monitor}}] [{{ :server-iotlab1.png?direct&600 ||Figure 3. Server serial monitor}}]
- 
-In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. 
- 
 ===== -. 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://www.gnuplot.info | gnuplot]], [[https://matplotlib.org/index.html#|matplotlib]] with Python, and MATLAB. Take some time to become familiar with one of these software as you will be required to use them in different occasions of your academic programme. 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://www.gnuplot.info | gnuplot]], [[https://matplotlib.org/index.html#|matplotlib]] with Python, and MATLAB. Take some time to become familiar with one of these software as you will be required to use them in different occasions of your academic programme.
Line 111: Line 95:
 ==== -. 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. 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://www.arduino.cc/en/Reference/Micros| micros()]] function available in the arduino libraries.+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 on the radio interface. 
 + 
 +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://www.arduino.cc/en/Reference/Micros| micros()]] function available in the arduino libraries.
  
 <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 message sizes.    * Draw a box plot of the ToA under the three different radio configurations and for three different message sizes. 
-  * Analyze the obtained results and compare with the theoretical computations.+  * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the practical ones on the same graph.
 </WRAP> </WRAP>
- +==== -. Packet Delivery Ratio ====
- +
-==== -. Packet Error Rate ====+
  
 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. 
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer