Skip to content

Commit 69cb7d2

Browse files
committed
added MKR NB 1500 example
1 parent 82a9f34 commit 69cb7d2

File tree

4 files changed

+95
-3
lines changed

4 files changed

+95
-3
lines changed

.github/workflows/test.yml

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
board: "arduino:samd:mkrgsm1400"
1717
- example: "ArduinoMKRGSM1400Secure"
1818
board: "arduino:samd:mkrgsm1400"
19+
- example: "ArduinoMKRNB1500"
20+
board: "arduino:samd:mkrnb1500"
1921
- example: "ArduinoWiFi101Secure"
2022
board: "arduino:avr:uno"
2123
- example: "ArduinoWiFiShield"
@@ -60,6 +62,10 @@ jobs:
6062
arduino --install-boards arduino:samd;
6163
arduino --install-library MKRGSM;
6264
fi
65+
if [[ "$BOARD" =~ "arduino:samd:mkrnb1500" ]]; then
66+
arduino --install-boards arduino:samd;
67+
arduino --install-library MKRNB;
68+
fi
6369
arduino --install-library WiFi101
6470
mkdir -p ~/Arduino/libraries
6571
ln -s $PWD ~/Arduino/libraries/.

CMakeLists.txt

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ project(arduino-mqtt)
55

66
include_directories(
77
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino
8-
/Users/256dpi/Development/Arduino/libraries/Ethernet/src
9-
/Users/256dpi/Development/Arduino/libraries/WiFi101/src
10-
/Users/256dpi/Development/Arduino/libraries/MKRGSM/src
8+
/Users/256dpi/Documents/Arduino/libraries/Ethernet/src
9+
/Users/256dpi/Documents/Arduino/libraries/WiFi101/src
10+
/Users/256dpi/Documents/Arduino/libraries/MKRGSM/src
11+
/Users/256dpi/Documents/Arduino/libraries/MKRNB/src
1112
/Applications/Arduino.app/Contents/Java/libraries/Bridge/src
1213
/Users/256dpi/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WiFi/src
1314
/Users/256dpi/Library/Arduino15/packages/esp32/libraries/WiFi/src
@@ -24,6 +25,7 @@ set(SOURCE_FILES
2425
examples/ArduinoEthernetShield/ArduinoEthernetShield.ino
2526
examples/ArduinoMKRGSM1400/ArduinoMKRGSM1400.ino
2627
examples/ArduinoMKRGSM1400Secure/ArduinoMKRGSM1400Secure.ino
28+
examples/ArduinoMKRNB1500/ArduinoMKRNB1500.ino
2729
examples/ArduinoWiFi101/ArduinoWiFi101.ino
2830
examples/ArduinoWiFi101Secure/ArduinoWiFi101Secure.ino
2931
examples/ArduinoWiFiShield/ArduinoWiFiShield.ino

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ The following examples show how you can use the library with various Arduino com
1919
- [Adafruit HUZZAH ESP8266](https://github.com/256dpi/arduino-mqtt/blob/master/examples/AdafruitHuzzahESP8266/AdafruitHuzzahESP8266.ino) ([Secure](https://github.com/256dpi/arduino-mqtt/blob/master/examples/AdafruitHuzzahESP8266Secure/AdafruitHuzzahESP8266Secure.ino))
2020
- [Arduino/Genuino WiFi101 Shield](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ArduinoWiFi101/ArduinoWiFi101.ino) ([Secure](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ArduinoWiFi101Secure/ArduinoWiFi101Secure.ino))
2121
- [Arduino MKR GSM 1400](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ArduinoMKRGSM1400/ArduinoMKRGSM1400.ino) ([Secure](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ArduinoMKRGSM1400Secure/ArduinoMKRGSM1400Secure.ino))
22+
- [Arduino MKR NB 1500](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ArduinoMKRNB1500/ArduinoMKRNB1500.ino)
2223
- [ESP32 Development Board](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ESP32DevelopmentBoard/ESP32DevelopmentBoard.ino) ([Secure](https://github.com/256dpi/arduino-mqtt/blob/master/examples/ESP32DevelopmentBoardSecure/ESP32DevelopmentBoardSecure.ino))
2324

2425
Other shields and boards should also work if they provide a [Client](https://www.arduino.cc/en/Reference/ClientConstructor) based network implementation.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// This example uses an Arduino MKR NB 1500 board
2+
// to connect to shiftr.io.
3+
//
4+
// You can check on your device after a successful
5+
// connection here: https://www.shiftr.io/try.
6+
//
7+
// by Max Kriegleder
8+
// https://github.com/256dpi/arduino-mqtt
9+
10+
#include <MKRNB.h>
11+
#include <MQTT.h>
12+
13+
const char pin[] = "";
14+
const char apn[] = "apn";
15+
const char login[] = "login";
16+
const char password[] = "password";
17+
18+
NBClient net;
19+
NB nbAccess;
20+
MQTTClient client;
21+
22+
unsigned long lastMillis = 0;
23+
24+
void connect() {
25+
// connection state
26+
bool connected = false;
27+
28+
Serial.print("connecting to cellular network ...");
29+
30+
while (!connected) {
31+
if ((nbAccess.begin(pin, apn, login, password) == NB_READY)) {
32+
connected = true;
33+
} else {
34+
Serial.print(".");
35+
delay(1000);
36+
}
37+
}
38+
39+
Serial.print("\nconnecting...");
40+
while (!client.connect("arduino", "public", "public")) {
41+
Serial.print(".");
42+
delay(1000);
43+
}
44+
45+
Serial.println("\nconnected!");
46+
47+
client.subscribe("/hello");
48+
// client.unsubscribe("/hello");
49+
}
50+
51+
void messageReceived(String &topic, String &payload) {
52+
Serial.println("incoming: " + topic + " - " + payload);
53+
54+
// Note: Do not use the client in the callback to publish, subscribe or
55+
// unsubscribe as it may cause deadlocks when other things arrive while
56+
// sending and receiving acknowledgments. Instead, change a global variable,
57+
// or push to a queue and handle it in the loop after calling `client.loop()`.
58+
}
59+
60+
void setup() {
61+
Serial.begin(115200);
62+
63+
// Note: Local domain names (e.g. "Computer.local" on OSX) are not supported
64+
// by Arduino. You need to set the IP address directly.
65+
client.begin("public.cloud.shiftr.io", net);
66+
client.onMessage(messageReceived);
67+
68+
connect();
69+
}
70+
71+
void loop() {
72+
client.loop();
73+
74+
if (!client.connected()) {
75+
connect();
76+
}
77+
78+
// publish a message roughly every second.
79+
if (millis() - lastMillis > 1000) {
80+
lastMillis = millis();
81+
client.publish("/hello", "world");
82+
}
83+
}

0 commit comments

Comments
 (0)