// 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 #include 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"); } }