/* lab5.ino - ELEX 7860 IoT MQTT example Ed.Casas 2019-2-27 This code is incomplete and/or contains errors. */ #include WifiIPStack ipstack; // IP via WiFi // initialization: set up WiFi connection void setup() { Serial.begin(9600); WiFi.begin( ESSID, WiFi password ) ; while ( WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); } while (WiFi.localIP() == INADDR_NONE) { Serial.print("+"); delay(300); } Serial.print (String("\nConnected to ") + WiFi.SSID() + " with IP="); Serial.println(WiFi.localIP()) ; } #include // timeouts #include // continously publish RSSI void loop() { int rc = 0; char data[80] ; MQTT::Client client(ipstack); // client rc = ipstack.connect( brokerhostname , MQTT port ); // connect to broker rc || Serial.println("TCP connect returned " + rc) ; // should return true rc = client.connect(); rc && Serial.println("MQTT connect returned: " + rc); snprintf(data, 80, "RSSI=%d", WiFi.RSSI()) ; Serial.println(String("publishing:") + data); rc = client.publish("my/important/topic", data, strlen(data)); rc && Serial.println("MQTT publish returned: " + rc); client.yield(2000) ; rc = client.disconnect() ; rc && Serial.println("MQTT disconnect returned: " + rc); rc = ipstack.disconnect(); // disconnect rc && Serial.println("TCP disconnect returned: " + rc); }