Skip to content

Commit f02bc2a

Browse files
committed
Initial commit
0 parents  commit f02bc2a

File tree

17 files changed

+608
-0
lines changed

17 files changed

+608
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

ENVBlinkDemo/ENVBlinkDemo.ino

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <Arduino_MKRENV.h>
2+
3+
void setup() {
4+
Serial.begin(9600);
5+
while (!Serial);
6+
7+
if (!ENV.begin()) {
8+
Serial.println("Failed to initialize MKR ENV shield!");
9+
while (1);
10+
}
11+
12+
pinMode(LED_BUILTIN, OUTPUT);
13+
}
14+
15+
void loop() {
16+
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
17+
delay(200); // wait for a second
18+
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
19+
delay(200); // wait for a second
20+
}

LoRa-Dev-EUI/LoRa-Dev-EUI.ino

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include <MKRWAN.h>
2+
3+
LoRaModem modem;
4+
5+
void setup() {
6+
Serial.begin(115200);
7+
while (!Serial);
8+
9+
// change this to your regional band (eg. US915, AS923, ...)
10+
if (!modem.begin(EU868)) {
11+
Serial.println("Failed to start module");
12+
while (1) {}
13+
};
14+
15+
Serial.print("Your module version is: ");
16+
Serial.println(modem.version());
17+
Serial.print("Your device EUI is: ");
18+
Serial.println(modem.deviceEUI());
19+
}
20+
21+
void loop() {}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include <MKRWAN.h>
2+
#include "arduino_secrets.h"
3+
4+
LoRaModem modem;
5+
6+
// Enter your sensitive data in the secret tab or arduino_secrets.h
7+
String appEui = APP_EUI;
8+
String appKey = APP_KEY;
9+
10+
void setup() {
11+
// Initialize serial port at 9600 bauds
12+
Serial.begin(9600);
13+
while (!Serial);
14+
15+
// Initialize LoRa module with the US915-928 region parameters
16+
if (!modem.begin(US915)) {
17+
Serial.println("Failed to start module");
18+
while (1) {}
19+
};
20+
21+
// Device module version and EUI
22+
delay(5000);
23+
Serial.print("Your module version is: ");
24+
Serial.println(modem.version());
25+
Serial.print("Your device EUI is: ");
26+
Serial.println(modem.deviceEUI());
27+
28+
// Enable US915-928 channels
29+
// LoRaWAN® Regional Parameters and TTN specification: channels 8 to 15 plus 65
30+
modem.sendMask("ff000001f000ffff00020000");
31+
Serial.println(modem.getChannelMask());
32+
modem.setADR(true);
33+
join();
34+
}
35+
36+
void join() {
37+
// Try to connect
38+
int connected = modem.joinOTAA(appEui, appKey);
39+
if (!connected) {
40+
Serial.println("Something went wrong, retrying...");
41+
join();
42+
}
43+
}
44+
45+
void loop(){}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define APP_EUI "0000000000000000"
2+
#define APP_KEY "00000000000000000000000000000000"

LoRaWAN-Downlink/LoRaWAN-Downlink.ino

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#include <MKRWAN.h>
2+
#include <Arduino_MKRENV.h>
3+
#include "arduino_secrets.h"
4+
5+
LoRaModem modem;
6+
7+
void setup() {
8+
Serial.begin(115200);
9+
while (!Serial);
10+
11+
ENV.begin();
12+
pinMode(LED_BUILTIN, OUTPUT);
13+
14+
// change this to your regional band (eg. US915, AS923, ...)
15+
if (!modem.begin(EU868)) {
16+
Serial.println("Failed to start module");
17+
while (1) {}
18+
};
19+
20+
Serial.print("Your module version is: ");
21+
Serial.println(modem.version());
22+
23+
if (modem.version() != ARDUINO_FW_VERSION) {
24+
Serial.println("Please make sure that the latest modem firmware is installed.");
25+
Serial.println("To update the firmware upload the 'MKRWANFWUpdate_standalone.ino' sketch.");
26+
}
27+
28+
Serial.print("Your device EUI is: ");
29+
Serial.println(modem.deviceEUI());
30+
31+
Serial.println("Connecting...");
32+
int connected = modem.joinOTAA(APP_EUI, APP_KEY);
33+
34+
if (!connected) {
35+
Serial.println("Something went wrong; are you indoor? Move near a window and retry");
36+
while (1) {}
37+
}
38+
39+
modem.minPollInterval(60); // Default is 300s
40+
Serial.println("Waiting for messages...");
41+
}
42+
43+
void loop() {
44+
delay(60 * 1000); // Wait 60 secs before polling again
45+
46+
modem.poll();
47+
delay(5000);
48+
49+
if (!modem.available()) {
50+
Serial.println("No downlink message received at this time.");
51+
return;
52+
}
53+
54+
char dataBuffer[64];
55+
int i = 0;
56+
while (modem.available()) {
57+
dataBuffer[i++] = (char)modem.read();
58+
}
59+
60+
Serial.print("Received: ");
61+
for (unsigned int j = 0; j < i; j++) {
62+
Serial.print(dataBuffer[j] >> 4, HEX);
63+
Serial.print(dataBuffer[j] & 0xF, HEX);
64+
Serial.print(" ");
65+
}
66+
Serial.println();
67+
68+
if(dataBuffer[0] == 1){
69+
digitalWrite(LED_BUILTIN, HIGH);
70+
} else if(dataBuffer[0] == 0) {
71+
digitalWrite(LED_BUILTIN, LOW);
72+
}
73+
74+
}

LoRaWAN-Downlink/arduino_secrets.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define APP_EUI "0000000000000000"
2+
#define APP_KEY "00000000000000000000000000000000"

LoRaWAN-Message/LoRaWAN-Message.ino

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <MKRWAN.h>
2+
#include "arduino_secrets.h"
3+
4+
LoRaModem modem;
5+
6+
void setup() {
7+
Serial.begin(115200);
8+
while (!Serial);
9+
10+
// change this to your regional band (eg. US915, AS923, ...)
11+
if (!modem.begin(EU868)) {
12+
Serial.println("Failed to start module");
13+
while (1) {}
14+
};
15+
16+
Serial.print("Your module version is: ");
17+
Serial.println(modem.version());
18+
19+
if (modem.version() != ARDUINO_FW_VERSION) {
20+
Serial.println("Please make sure that the latest modem firmware is installed.");
21+
Serial.println("To update the firmware upload the 'MKRWANFWUpdate_standalone.ino' sketch.");
22+
}
23+
24+
Serial.print("Your device EUI is: ");
25+
Serial.println(modem.deviceEUI());
26+
27+
Serial.println("Connecting...");
28+
int connected = modem.joinOTAA(APP_EUI, APP_KEY);
29+
30+
if (!connected) {
31+
Serial.println("Something went wrong; are you indoor? Move near a window and retry");
32+
while (1) {}
33+
}
34+
35+
delay(5000);
36+
37+
Serial.println("Sending message...");
38+
modem.setPort(3);
39+
modem.beginPacket();
40+
modem.print("HeLoRA world!");
41+
42+
int error = modem.endPacket(true);
43+
44+
if (error > 0) {
45+
Serial.println("Message sent correctly!");
46+
} else {
47+
Serial.println("Error sending message :(");
48+
}
49+
}
50+
51+
void loop() {
52+
}

LoRaWAN-Message/arduino_secrets.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define APP_EUI "0000000000000000"
2+
#define APP_KEY "00000000000000000000000000000000"
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#include <MKRWAN.h>
2+
3+
LoRaModem modem;
4+
5+
void setup() {
6+
int status;
7+
8+
// Initialize serial port at 9600 bauds
9+
Serial.begin(9600);
10+
while (!Serial);
11+
12+
loraSetup();
13+
14+
Serial.println("--------------------------------");
15+
Serial.println("- MKR WAN 1310 Channel Masking -");
16+
Serial.println("--------------------------------");
17+
18+
// Print default channels configuration
19+
Serial.print("- Default mask: ");
20+
Serial.println(modem.getChannelMask());
21+
22+
// Disable all channels
23+
Serial.println("- Disabling all channels...");
24+
for (unsigned int i = 0; i < 72; i++) {
25+
modem.disableChannel(i);
26+
}
27+
28+
// Print current channels configuration
29+
Serial.print("- Current mask: ");
30+
Serial.println(modem.getChannelMask());
31+
32+
// Enable AU915-928 channels
33+
// LoRaWAN® Regional Parameters and TTN specification: channels 8 to 15 plus 65
34+
Serial.println("- Enabling channels 8 to 15 plus 65...");
35+
for (unsigned int i = 8; i <= 15; i++) {
36+
modem.enableChannel(i);
37+
}
38+
39+
modem.enableChannel(65);
40+
41+
// Print current channels configuration
42+
Serial.print("- Current mask: ");
43+
Serial.println(modem.getChannelMask());
44+
}
45+
46+
void loraSetup() {
47+
// Initialize LoRa module with the US915-928 region parameters
48+
if (!modem.begin(US915)) {
49+
Serial.println("- Failed to start LoRa module!");
50+
while (1);
51+
};
52+
53+
delay(5000);
54+
55+
// Set poll interval to 30 seconds
56+
modem.minPollInterval(30);
57+
}
58+
59+
void loop() {
60+
}

0 commit comments

Comments
 (0)