MQTT test project.
Dependencies: EthernetInterface MQTT RHT03 mbed-rtos mbed
main.cpp@0:5939450e4bef, 2014-04-07 (annotated)
- Committer:
- charliebsimms
- Date:
- Mon Apr 07 12:13:07 2014 +0000
- Revision:
- 0:5939450e4bef
To test mqtt using a temperature sensor and using wifi connection to send the information to a mqtt server.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
charliebsimms | 0:5939450e4bef | 1 | #include "mbed.h" |
charliebsimms | 0:5939450e4bef | 2 | #include "EthernetInterface.h" |
charliebsimms | 0:5939450e4bef | 3 | #include "PubSubClient.h" |
charliebsimms | 0:5939450e4bef | 4 | |
charliebsimms | 0:5939450e4bef | 5 | Serial pc(USBTX, USBRX); |
charliebsimms | 0:5939450e4bef | 6 | |
charliebsimms | 0:5939450e4bef | 7 | char* serverIpAddr = "192.168.2.111"; /*Sever ip address*/ |
charliebsimms | 0:5939450e4bef | 8 | int port = 1883; /*Sever Port*/ |
charliebsimms | 0:5939450e4bef | 9 | |
charliebsimms | 0:5939450e4bef | 10 | void callback(char* topic, char* payload, unsigned int len); /*Callback function prototype*/ |
charliebsimms | 0:5939450e4bef | 11 | PubSubClient mqtt(serverIpAddr, port, callback); |
charliebsimms | 0:5939450e4bef | 12 | EthernetInterface eth; |
charliebsimms | 0:5939450e4bef | 13 | |
charliebsimms | 0:5939450e4bef | 14 | void callback(char* topic, char* payload, unsigned int len) |
charliebsimms | 0:5939450e4bef | 15 | { |
charliebsimms | 0:5939450e4bef | 16 | //Send incoming payloads back to topic "/mbed". |
charliebsimms | 0:5939450e4bef | 17 | mqtt.publish("mbed", payload, len); |
charliebsimms | 0:5939450e4bef | 18 | } |
charliebsimms | 0:5939450e4bef | 19 | |
charliebsimms | 0:5939450e4bef | 20 | int main() { |
charliebsimms | 0:5939450e4bef | 21 | |
charliebsimms | 0:5939450e4bef | 22 | eth.init(); //Use DHCP |
charliebsimms | 0:5939450e4bef | 23 | eth.connect(); |
charliebsimms | 0:5939450e4bef | 24 | pc.printf("IP Address is %s\n", eth.getIPAddress()); |
charliebsimms | 0:5939450e4bef | 25 | |
charliebsimms | 0:5939450e4bef | 26 | pc.printf("MQTTClient Tester"); |
charliebsimms | 0:5939450e4bef | 27 | |
charliebsimms | 0:5939450e4bef | 28 | |
charliebsimms | 0:5939450e4bef | 29 | char clientID[] = "mbed"; /*Client nanme show for MQTT server*/ |
charliebsimms | 0:5939450e4bef | 30 | char pub_topic[] = "mbed"; /*Publish to topic : "/mbed" */ |
charliebsimms | 0:5939450e4bef | 31 | char sub_topic[] = "mirror"; /*Subscribe to topic : "/mirror" */ |
charliebsimms | 0:5939450e4bef | 32 | |
charliebsimms | 0:5939450e4bef | 33 | if(!mqtt.connect(clientID)){ |
charliebsimms | 0:5939450e4bef | 34 | pc.printf("\r\nConnect to server failed ..\r\n"); |
charliebsimms | 0:5939450e4bef | 35 | return -1; |
charliebsimms | 0:5939450e4bef | 36 | } |
charliebsimms | 0:5939450e4bef | 37 | |
charliebsimms | 0:5939450e4bef | 38 | pc.printf("\r\nConnect to server sucessed ..\r\n"); |
charliebsimms | 0:5939450e4bef | 39 | |
charliebsimms | 0:5939450e4bef | 40 | mqtt.publish(pub_topic, "Hello here is mbed..."); |
charliebsimms | 0:5939450e4bef | 41 | mqtt.subscribe(sub_topic); |
charliebsimms | 0:5939450e4bef | 42 | |
charliebsimms | 0:5939450e4bef | 43 | |
charliebsimms | 0:5939450e4bef | 44 | pc.printf("#### End of the test.. ####"); |
charliebsimms | 0:5939450e4bef | 45 | |
charliebsimms | 0:5939450e4bef | 46 | //eth.disconnect(); |
charliebsimms | 0:5939450e4bef | 47 | |
charliebsimms | 0:5939450e4bef | 48 | while(1) { |
charliebsimms | 0:5939450e4bef | 49 | mqtt.loop(); |
charliebsimms | 0:5939450e4bef | 50 | } |
charliebsimms | 0:5939450e4bef | 51 | } |