deploying_lorawan
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
deploying_lorawan [2016/10/16 22:36] – samer | deploying_lorawan [2017/04/30 12:07] – [1.1. Autonomo with LoRaBee] samer | ||
---|---|---|---|
Line 3: | Line 3: | ||
Starting from September 2016, Saint-Joseph University of Beirut (USJ) will be deploying the first academic [[http:// | Starting from September 2016, Saint-Joseph University of Beirut (USJ) will be deploying the first academic [[http:// | ||
- | [{{ : | + | [{{ : |
+ | |||
+ | ===== -. Devices ===== | ||
+ | ==== -. Autonomo with LoRaBee ==== | ||
+ | |||
+ | For the devices in the LoRaWAN platform, we will use an Autonomo board with a LoRaBee holding the Microchip RN2483 module. According to [[http:// | ||
+ | |||
+ | In order to configure the Autonomo with LoRaBee device, you should follow these steps: | ||
+ | |||
+ | - Verify that you have the latest Arduino IDE from [[https:// | ||
+ | - Install the board files as noted in [[http:// | ||
+ | - Add the following library {{ : | ||
+ | |||
+ | Now you are ready to write a sketch for the device. Here is one example sketch {{ : | ||
+ | |||
+ | In this part, you should put the keys for Over-The-Air Activation (OTAA) as explained in the LoRaWAN specification: | ||
+ | <code c++> | ||
+ | // USE YOUR OWN KEYS! | ||
+ | const uint8_t devEUI[8] = | ||
+ | { }; | ||
+ | |||
+ | // USE YOUR OWN KEYS! | ||
+ | const uint8_t appEUI[8] = | ||
+ | { }; | ||
+ | |||
+ | const uint8_t appKey[16] = | ||
+ | { }; | ||
+ | </ | ||
+ | |||
+ | The pins for connecting the sensors are specified in these declarations (A0 for light sensor, A2 for moisture sensor, and D0 temperature sensor): | ||
+ | <code c++> | ||
+ | int light_pin = A0; | ||
+ | int moisture_pin = A2; | ||
+ | |||
+ | int temperature_pin = 0; | ||
+ | int temperature_vcc_pin = 1; | ||
+ | int moisture_vcc_pin = 8; | ||
+ | int moisture_gnd_pin = 7; | ||
+ | </ | ||
+ | |||
+ | The OTAA method is used for joining the network and adaptive data rate is activated: | ||
+ | <code c++> | ||
+ | LoRaBee.initOTA(loraSerial, | ||
+ | </ | ||
+ | |||
+ | Eight different sub channels are activated with data rate ranges from 0 to 5: | ||
+ | <code c++> | ||
+ | LoRaBee.configChFreq(0, | ||
+ | LoRaBee.configChFreq(1, | ||
+ | LoRaBee.configChFreq(2, | ||
+ | LoRaBee.configChFreq(3, | ||
+ | LoRaBee.configChFreq(4, | ||
+ | LoRaBee.configChFreq(5, | ||
+ | LoRaBee.configChFreq(6, | ||
+ | LoRaBee.configChFreq(7, | ||
+ | </ | ||
+ | |||
+ | Finally, the message is sent in an unconfirmed uplink message: | ||
+ | <code c++> | ||
+ | LoRaBee.send(1, | ||
+ | </ | ||
+ | ==== -. Arduino with Dragino Shield ==== | ||
+ | |||
+ | ===== -. Gateways ===== | ||
+ | ==== -. Single Channel Gateway ==== | ||
+ | |||
+ | The single channel gateway includes a LoRa transmission module (Dragino Shield) connected to a Raspberry Pi (2 or 3) as shown in Figure 1. Communication between the two modules is done over an SPI interface. | ||
+ | |||
+ | [{{ : | ||
+ | |||
+ | In order to assemble the gateway, start by making the wire connections: | ||
+ | [{{ : | ||
+ | [{{ : | ||
+ | |||
+ | Connect the Raspberry Pi to the Internet and install the packet forwarding software. The source code of the single channel packet forwarder is available on: [[https:// | ||
+ | * Enable SPI on the Raspberry Pi using raspi-config | ||
+ | * Download and unzip the source code: | ||
+ | |||
+ | <code bash> | ||
+ | wget https:// | ||
+ | unzip master.zip | ||
+ | </ | ||
+ | |||
+ | * Install the wiring library: | ||
+ | |||
+ | <code bash> | ||
+ | apt-get update | ||
+ | apt-get install wiring | ||
+ | </ | ||
+ | |||
+ | Compile the packet forwarder: | ||
+ | <code bash> | ||
+ | make all | ||
+ | </ | ||
+ | |||
+ | For gcc version 4.6.3, a compilation error results in the following warning '' | ||
+ | < | ||
+ | CFLAGS = -std=c++0x -c -Wall -I include/ | ||
+ | </ | ||
+ | |||
+ | Now, you need to configure the single channel packet forwarder. This is done in the '' | ||
+ | |||
+ | <file | global_config.json> | ||
+ | { | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | " | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Finally, you can run the packet forwarder as root! | ||
+ | |||
+ | <code bash> | ||
+ | nohup ./ | ||
+ | </ | ||
+ | ==== -. Kerlink IoT Station ==== | ||
+ | |||
+ | < | ||
+ | # activates eth0 at startup | ||
+ | ETHERNET=yes | ||
+ | # claims dhcp request on eth0 | ||
+ | ETHDHCP=yes | ||
+ | |||
+ | # Selector operator APN | ||
+ | GPRSAPN=gprs.touch.com.lb | ||
+ | # Enter pin code if activated | ||
+ | GPRSPIN=0000 | ||
+ | # Update / | ||
+ | GPRSDNS=yes | ||
+ | # PAP authentication | ||
+ | GPRSUSER= | ||
+ | GPRSPASSWORD= | ||
+ | |||
+ | # Bearers priority order | ||
+ | # | ||
+ | BEARERS_PRIORITY=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 3270 root 2548 S /bin/sh ./ | ||
+ | 3288 root 34908 S ./ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | [root@Wirgrid_0b03008c demo_gps_loramote]# | ||
+ | pppd (pid 5273) is running... | ||
+ | Session: Rx=58, Tx=163 | ||
+ | Globals: Rx=1130457, Tx=1195592 | ||
+ | Sum: | ||
+ | [root@Wirgrid_0b03008c demo_gps_loramote]# | ||
+ | </ | ||
+ | |||
+ | ===== -. Backend ===== | ||
+ | ==== -. Loraserver ==== | ||
+ | ==== -. The Things Network ==== | ||
+ | |||
+ | ===== -. Applications ===== | ||
+ | ==== -. MQTT spy ==== | ||
+ | ==== -. Emoncms ==== |
deploying_lorawan.txt · Last modified: 2021/08/28 09:50 by samer