ESP32-LoRa Heltec: Difference between revisions
Jump to navigation
Jump to search
| Line 30: | Line 30: | ||
Open and load the schetch : Examples > LoRaLibrary > OLED_LoRa_Receiver |
Open and load the schetch : Examples > LoRaLibrary > OLED_LoRa_Receiver |
||
==Add LoRaWAN configuration== |
|||
Add the following statements into the 2 schetches. |
|||
<pre> |
|||
... |
|||
// LoRa API https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/blob/master/esp32/libraries/LoRa/API.md |
|||
// LoRaWAN Parameters |
|||
#define BAND 868100000 //you can set band here directly,e.g. 868E6,915E6 |
|||
#define PABOOST false |
|||
#define TXPOWER 14 |
|||
#define SPREADING_FACTOR 12 |
|||
#define BANDWIDTH 125000 |
|||
#define CODING_RATE 5 |
|||
#define PREAMBLE_LENGTH 8 |
|||
#define SYNC_WORD 0x34 |
|||
void configForLoRaWAN() |
|||
{ |
|||
LoRa.setTxPower(TXPOWER); |
|||
LoRa.setSpreadingFactor(SPREADING_FACTOR); |
|||
LoRa.setSignalBandwidth(BANDWIDTH); |
|||
LoRa.setCodingRate4(CODING_RATE); |
|||
LoRa.setPreambleLength(PREAMBLE_LENGTH); |
|||
LoRa.setSyncWord(SYNC_WORD); |
|||
LoRa.crc(); |
|||
} |
|||
String loraCfg = "Cfg:"; |
|||
void displayLoRaConfig(int x, int y){ |
|||
loraCfg = |
|||
"fr " + String(BAND/1000000, DEC) |
|||
+ " sf" + String(SPREADING_FACTOR, DEC) |
|||
+ " bw" + String(BANDWIDTH/1000, DEC) |
|||
+ " cr" + String(CODING_RATE, DEC) + "/4"; |
|||
display.drawString(x, y, loraCfg); |
|||
loraCfg = |
|||
+ " pr" + String(PREAMBLE_LENGTH, DEC) |
|||
+ " pw" + String(TXPOWER, DEC) |
|||
+ " sw" + String(SYNC_WORD, HEX) |
|||
; |
|||
display.drawString(x, y+10, loraCfg); |
|||
} |
|||
... |
|||
// should be done before LoRa.begin |
|||
configForLoRaWAN(); |
|||
if (!LoRa.begin(BAND,PABOOST)) { |
|||
display.drawString(0, 0, "Starting LoRa failed!"); |
|||
display.display(); |
|||
while (1); |
|||
} |
|||
displayLoRaConfig(0,20); |
|||
display.drawString(0, 0, "LoRa Initial success!"); |
|||
... |
|||
display.display(); |
|||
... |
|||
</pre> |
|||
==LoRaWAN Sender (in ABP mode)== |
==LoRaWAN Sender (in ABP mode)== |
||
Revision as of 10:16, 26 November 2017
Installation
mkdir -p ~/Documents/Arduino/hardware cd ~/Documents/Arduino/hardware git clone https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series.git heltec cd heltec/esp32 git submodule update --init --recursive cd tools python get.py
Configuration
Programs
Board 1 (Sender)
Open and load the schetch : Examples > LoRaLibrary > OLED_LoRa_Sender
Board 2 (Receiver)
Open and load the schetch : Examples > LoRaLibrary > OLED_LoRa_Receiver
Add LoRaWAN configuration
Add the following statements into the 2 schetches.
...
// LoRa API https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/blob/master/esp32/libraries/LoRa/API.md
// LoRaWAN Parameters
#define BAND 868100000 //you can set band here directly,e.g. 868E6,915E6
#define PABOOST false
#define TXPOWER 14
#define SPREADING_FACTOR 12
#define BANDWIDTH 125000
#define CODING_RATE 5
#define PREAMBLE_LENGTH 8
#define SYNC_WORD 0x34
void configForLoRaWAN()
{
LoRa.setTxPower(TXPOWER);
LoRa.setSpreadingFactor(SPREADING_FACTOR);
LoRa.setSignalBandwidth(BANDWIDTH);
LoRa.setCodingRate4(CODING_RATE);
LoRa.setPreambleLength(PREAMBLE_LENGTH);
LoRa.setSyncWord(SYNC_WORD);
LoRa.crc();
}
String loraCfg = "Cfg:";
void displayLoRaConfig(int x, int y){
loraCfg =
"fr " + String(BAND/1000000, DEC)
+ " sf" + String(SPREADING_FACTOR, DEC)
+ " bw" + String(BANDWIDTH/1000, DEC)
+ " cr" + String(CODING_RATE, DEC) + "/4";
display.drawString(x, y, loraCfg);
loraCfg =
+ " pr" + String(PREAMBLE_LENGTH, DEC)
+ " pw" + String(TXPOWER, DEC)
+ " sw" + String(SYNC_WORD, HEX)
;
display.drawString(x, y+10, loraCfg);
}
...
// should be done before LoRa.begin
configForLoRaWAN();
if (!LoRa.begin(BAND,PABOOST)) {
display.drawString(0, 0, "Starting LoRa failed!");
display.display();
while (1);
}
displayLoRaConfig(0,20);
display.drawString(0, 0, "LoRa Initial success!");
...
display.display();
...
LoRaWAN Sender (in ABP mode)
Under construction