Sample test program for the MQTT PubSubClient library

Dependencies:   C12832_lcd EthernetInterface MQTT mbed-rtos mbed

Committer:
jwende
Date:
Sun May 26 16:52:40 2013 +0000
Revision:
0:3f9dd63f4f98
Sample client implementation for for MQTT PubSubClient library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jwende 0:3f9dd63f4f98 1 #include "mbed.h"
jwende 0:3f9dd63f4f98 2 #include "EthernetInterface.h"
jwende 0:3f9dd63f4f98 3 #include "C12832_lcd.h"
jwende 0:3f9dd63f4f98 4 #include "PubSubClient.h"
jwende 0:3f9dd63f4f98 5
jwende 0:3f9dd63f4f98 6 C12832_LCD lcd;
jwende 0:3f9dd63f4f98 7 Serial pc(USBTX, USBRX);
jwende 0:3f9dd63f4f98 8
jwende 0:3f9dd63f4f98 9 char* serverIpAddr = "192.168.2.111"; /*Sever ip address*/
jwende 0:3f9dd63f4f98 10 int port = 1883; /*Sever Port*/
jwende 0:3f9dd63f4f98 11 void callback(char* topic, char* payload, unsigned int len); /*Callback function prototype*/
jwende 0:3f9dd63f4f98 12 PubSubClient mqtt(serverIpAddr, port, callback);
jwende 0:3f9dd63f4f98 13 EthernetInterface eth;
jwende 0:3f9dd63f4f98 14
jwende 0:3f9dd63f4f98 15 void callback(char* topic, char* payload, unsigned int len)
jwende 0:3f9dd63f4f98 16 {
jwende 0:3f9dd63f4f98 17 lcd.printf("Topic: %s\r\n", topic);
jwende 0:3f9dd63f4f98 18 lcd.printf("Payload: %s\r\n\r\n", payload);
jwende 0:3f9dd63f4f98 19 //Send incoming payloads back to topic "/mbed".
jwende 0:3f9dd63f4f98 20 mqtt.publish("mbed", payload, len);
jwende 0:3f9dd63f4f98 21 }
jwende 0:3f9dd63f4f98 22
jwende 0:3f9dd63f4f98 23 int main() {
jwende 0:3f9dd63f4f98 24
jwende 0:3f9dd63f4f98 25 eth.init(); //Use DHCP
jwende 0:3f9dd63f4f98 26 eth.connect();
jwende 0:3f9dd63f4f98 27 lcd.cls();
jwende 0:3f9dd63f4f98 28 lcd.locate(0,3);
jwende 0:3f9dd63f4f98 29 pc.printf("IP Address is %s\n", eth.getIPAddress());
jwende 0:3f9dd63f4f98 30
jwende 0:3f9dd63f4f98 31 pc.printf("MQTTClient Tester");
jwende 0:3f9dd63f4f98 32
jwende 0:3f9dd63f4f98 33
jwende 0:3f9dd63f4f98 34 char clientID[] = "mbed"; /*Client nanme show for MQTT server*/
jwende 0:3f9dd63f4f98 35 char pub_topic[] = "mbed"; /*Publish to topic : "/mbed" */
jwende 0:3f9dd63f4f98 36 char sub_topic[] = "mirror"; /*Subscribe to topic : "/mirror" */
jwende 0:3f9dd63f4f98 37
jwende 0:3f9dd63f4f98 38 if(!mqtt.connect(clientID)){
jwende 0:3f9dd63f4f98 39 pc.printf("\r\nConnect to server failed ..\r\n");
jwende 0:3f9dd63f4f98 40 return -1;
jwende 0:3f9dd63f4f98 41 }
jwende 0:3f9dd63f4f98 42
jwende 0:3f9dd63f4f98 43 pc.printf("\r\nConnect to server sucessed ..\r\n");
jwende 0:3f9dd63f4f98 44
jwende 0:3f9dd63f4f98 45 mqtt.publish(pub_topic, "Hello here is mbed...");
jwende 0:3f9dd63f4f98 46 mqtt.subscribe(sub_topic);
jwende 0:3f9dd63f4f98 47
jwende 0:3f9dd63f4f98 48
jwende 0:3f9dd63f4f98 49 pc.printf("#### End of the test.. ####");
jwende 0:3f9dd63f4f98 50
jwende 0:3f9dd63f4f98 51 //eth.disconnect();
jwende 0:3f9dd63f4f98 52
jwende 0:3f9dd63f4f98 53 while(1) {
jwende 0:3f9dd63f4f98 54 mqtt.loop();
jwende 0:3f9dd63f4f98 55 }
jwende 0:3f9dd63f4f98 56 }