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 [2017/04/30 11:59] – samer | deploying_lorawan [2017/04/30 12:59] – [1.2. Arduino with Dragino Shield] samer | ||
---|---|---|---|
Line 16: | Line 16: | ||
- Add the following library {{ : | - Add the following library {{ : | ||
- | Now you are ready to write a sketch for the device. Here is one example sketch {{ : | + | 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++> | <code c++> | ||
// USE YOUR OWN KEYS! | // USE YOUR OWN KEYS! | ||
Line 30: | Line 31: | ||
{ }; | { }; | ||
</ | </ | ||
+ | |||
+ | 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; | ||
- | a light sensor on pin A0, A2 (moisture sensor), and D0 (temperature sensor). | + | int temperature_pin = 0; |
- | * OTA join method | + | int temperature_vcc_pin = 1; |
- | * Frequency channels | + | int moisture_vcc_pin = 8; |
- | * Message sending | + | 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 ==== | ==== -. Arduino with Dragino Shield ==== | ||
+ | Devices in the LoRaWAN platform can also be used on Arduino boards with Dragino shields as presented in [[simple_lora_prototype|Simple Prototype of LoRa Communications]]. In the latter reference, you can also find the basic steps for working with the IDE. Similarly to the Autonomo device, you can download the following sketch {{ : | ||
+ | |||
+ | <code c++> | ||
+ | const lmic_pinmap lmic_pins = { | ||
+ | .nss = 10, | ||
+ | .rxtx = LMIC_UNUSED_PIN, | ||
+ | .rst = 9, | ||
+ | .dio = {2, 6, 7}, | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code c++> | ||
+ | case EV_TXCOMPLETE: | ||
+ | Serial.println(F(" | ||
+ | if(LMIC.dataLen) { | ||
+ | // data received in rx slot after tx | ||
+ | Serial.print(F(" | ||
+ | Serial.write(LMIC.frame+LMIC.dataBeg, | ||
+ | Serial.println(); | ||
+ | } | ||
+ | // Schedule next transmission | ||
+ | os_setTimedCallback(& | ||
+ | break; | ||
+ | </ | ||
+ | |||
+ | <code c++> | ||
+ | LMIC_setTxData2(1, | ||
+ | </ | ||
+ | |||
+ | <code c++> | ||
+ | LMIC_setDrTxpow(DR_SF7, | ||
+ | </ | ||
+ | |||
+ | <code c++> | ||
+ | do_send(& | ||
+ | </ | ||
===== -. Gateways ===== | ===== -. Gateways ===== | ||
==== -. Single Channel Gateway ==== | ==== -. Single Channel Gateway ==== |
deploying_lorawan.txt · Last modified: 2021/08/28 09:50 by samer