/
LoRa.cpp
129 lines (107 loc) · 3.87 KB
/
LoRa.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "Arduino.h"
#include "LoRa.h"
void LoRa::LoRaConfig()
{
Serial.print("Reset: "); //Device reset
Serial1.write("sys reset\r\n");
delay(1000);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
//Receive device model
Serial.print("Device: ");
Serial1.write("sys get ver\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("Battery: "); //Receive voltage feedback
Serial1.write("sys get vdd\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("EUI: "); //
Serial1.write("sys get hweui\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("addr: "); //Set device address for your device!!!!!!!!!!!
Serial1.write("mac set devaddr 5A480101\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("nwkskey: "); //Set NwkSkey key for your device!!!!!!!!!!!
Serial1.write("mac set nwkskey 2B7E151628AED2A6ABF7158809CF4F3C\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("appskey: ");
Serial1.write("mac set appskey 2B7E151628AED2A6ABF7158809CF4F3C\r\n"); //Set AppSkey for your device!!!!!!!!!!
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("adr: ");
Serial1.write("mac set adr off\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("data rate: ");
Serial1.write("mac get dr\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("ch: ");
Serial1.write("mac get ch\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("band: ");
Serial1.write("mac get band\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("rx delay1: ");
Serial1.write("mac get rxdelay1\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("rx delay2: ");
Serial1.write("mac get rxdelay2\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("Pwr: ");
Serial1.write("mac set pwridx 1\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("Join: ");
Serial1.write("mac join abp\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
Serial.print("status: ");
Serial1.write("mac get status\r\n");
delay(50);
while(Serial1.available()) Serial.write(Serial1.read());
LoRaBlink();
LoRaBlinkOff();
}
void LoRa::LoRaSendAndReceive(String message)
{
int messageLength = message.length();
Serial.print("Sending: ");
Serial.println(message);
Serial1.write("mac tx uncnf 1 ");
for (int i = 0; i < messageLength; i++)
{
Serial1.print(message.charAt(i), HEX);
LoRaBlink();
}
Serial1.write("\r\n");
LoRaBlinkOff();
delay(100);
Serial.println("RN2483 status:");
while(Serial1.available())
{
Serial.print((char)Serial1.read());
}
}