Example MQTT for CO657. You should modify your client ID! Broker and Topic can be adjusted to situation.

Dependencies:   C12832 MQTT_MbedOS

Revision:
0:35df42ee93ed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 01 22:14:54 2016 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "C12832.h"
+#include "MQTTEthernet.h"
+#include "MQTTClient.h"
+
+// LCD Pinout
+C12832 lcd(D11, D13, D12, D7, D10);
+
+// MQTT Variables
+char* MqttHostname = "broker.hivemq.com";
+int MqttPort = 1883;
+char* MqttTopic = "mbed-sample";
+char* MqttClientId = "changeme";
+
+int main()
+{
+    // Clear LCD and print a welcome message from row 0, col 0.
+    lcd.cls();
+    lcd.locate(0,0);
+    lcd.printf("Example MQTT client\n");
+
+    // Brings up the network interface
+    MQTTEthernet eth = MQTTEthernet();
+    const char *ip = eth.get_ip_address();
+    
+    lcd.cls();
+    lcd.locate(0,0);
+    lcd.printf("IP address is: %s\n", ip ? ip : "No IP");
+    
+    // Create Mbed Client Interface
+    MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(eth);
+
+    // Create TCP connection
+    eth.open(eth.getEth());
+    int rc = eth.connect(MqttHostname, MqttPort);
+    lcd.printf("TCP Status: %s\n", (rc == 0) ? "Success" : "Failure");
+    
+    // Wait for a short length of time to allow user to see output messages.
+    Thread::wait(2000);
+    
+    if(rc == 0){
+        
+        lcd.cls();
+        lcd.locate(0,0);
+        lcd.printf("Starting MQTT Client");
+
+        MQTTPacket_connectData data = MQTTPacket_connectData_initializer;       
+        data.MQTTVersion = 3;
+        data.clientID.cstring = MqttClientId;
+        rc = client.connect(data);
+        
+        lcd.cls();
+        lcd.locate(0,0);
+        lcd.printf("MQTT Client: %s\n", (rc == 0) ? "Connected" : "Failed");
+        
+        while(rc == 0){
+            MQTT::Message message;
+ 
+            // QoS 0
+            char buf[100];
+            sprintf(buf, "Hello World!");
+            message.qos = MQTT::QOS0;
+            message.retained = false;
+            message.dup = false;
+            message.payload = (void*)buf;
+            message.payloadlen = strlen(buf)+1;
+            rc = client.publish(MqttTopic, message);  
+            
+            Thread::wait(5000);
+
+        }
+    }
+    
+    // It is good practice to close the socket
+    eth.disconnect();
+}
+