| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // This example uses an Arduino MKR GSM 1400 board
- // to connect to shiftr.io.
- //
- // IMPORTANT: This example uses the new MKRGSM library.
- //
- // You can check on your device after a successful
- // connection here: https://shiftr.io/try.
- //
- // by Sandeep Mistry
- // https://github.com/256dpi/arduino-mqtt
- #include <MKRGSM.h>
- #include <MQTT.h>
- const char pin[] = "";
- const char apn[] = "apn";
- const char login[] = "login";
- const char password[] = "password";
- GSMClient net;
- GPRS gprs;
- GSM gsmAccess;
- MQTTClient client;
- unsigned long lastMillis = 0;
- void connect() {
- // connection state
- bool connected = false;
- Serial.print("connecting to cellular network ...");
- // After starting the modem with gsmAccess.begin()
- // attach to the GPRS network with the APN, login and password
- while (!connected) {
- if ((gsmAccess.begin(pin) == GSM_READY) &&
- (gprs.attachGPRS(apn, login, password) == GPRS_READY)) {
- connected = true;
- } else {
- Serial.print(".");
- delay(1000);
- }
- }
- Serial.print("\nconnecting...");
- while (!client.connect("arduino", "try", "try")) {
- Serial.print(".");
- delay(1000);
- }
- Serial.println("\nconnected!");
- client.subscribe("/hello");
- // client.unsubscribe("/hello");
- }
- void messageReceived(String &topic, String &payload) {
- Serial.println("incoming: " + topic + " - " + payload);
- }
- void setup() {
- Serial.begin(115200);
- // Note: Local domain names (e.g. "Computer.local" on OSX) are not supported by Arduino.
- // You need to set the IP address directly.
- client.begin("broker.shiftr.io", net);
- client.onMessage(messageReceived);
- connect();
- }
- void loop() {
- client.loop();
- if (!client.connected()) {
- connect();
- }
- // publish a message roughly every second.
- if (millis() - lastMillis > 1000) {
- lastMillis = millis();
- client.publish("/hello", "world");
- }
- }
|