HuyNQ

Dependencies:   C12832 MQTT_MbedOS

Fork of mbed-os-mqtt by Daniel Knox

Committer:
kokichi226
Date:
Thu Nov 02 09:59:26 2017 +0000
Revision:
2:c89dbc1d8123
Parent:
1:8d33e7fdd27c
Fix Printf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
azazeal88 0:35df42ee93ed 1 #include "mbed.h"
azazeal88 0:35df42ee93ed 2 #include "MQTTEthernet.h"
azazeal88 0:35df42ee93ed 3 #include "MQTTClient.h"
azazeal88 0:35df42ee93ed 4
azazeal88 0:35df42ee93ed 5
azazeal88 0:35df42ee93ed 6 // MQTT Variables
kokichi226 1:8d33e7fdd27c 7 char* MqttHostname = "192.168.1.105";
azazeal88 0:35df42ee93ed 8 int MqttPort = 1883;
kokichi226 1:8d33e7fdd27c 9 char* MqttTopic = "mbed-sample-dssdsdhhuynq";
kokichi226 1:8d33e7fdd27c 10 char* MqttClientId = "changeme-huynq-zcaxcaz";
azazeal88 0:35df42ee93ed 11
azazeal88 0:35df42ee93ed 12 int main()
azazeal88 0:35df42ee93ed 13 {
kokichi226 1:8d33e7fdd27c 14
kokichi226 2:c89dbc1d8123 15 printf("Example MQTT client\r\n");
azazeal88 0:35df42ee93ed 16
azazeal88 0:35df42ee93ed 17 // Brings up the network interface
azazeal88 0:35df42ee93ed 18 MQTTEthernet eth = MQTTEthernet();
azazeal88 0:35df42ee93ed 19 const char *ip = eth.get_ip_address();
azazeal88 0:35df42ee93ed 20
kokichi226 1:8d33e7fdd27c 21
kokichi226 2:c89dbc1d8123 22 printf("IP address is: %s\r\n", ip ? ip : "No IP");
azazeal88 0:35df42ee93ed 23
azazeal88 0:35df42ee93ed 24 // Create Mbed Client Interface
azazeal88 0:35df42ee93ed 25 MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(eth);
azazeal88 0:35df42ee93ed 26
azazeal88 0:35df42ee93ed 27 // Create TCP connection
azazeal88 0:35df42ee93ed 28 eth.open(eth.getEth());
azazeal88 0:35df42ee93ed 29 int rc = eth.connect(MqttHostname, MqttPort);
kokichi226 2:c89dbc1d8123 30 printf("TCP Status: %s\r\n", (rc == 0) ? "Success" : "Failure");
azazeal88 0:35df42ee93ed 31
azazeal88 0:35df42ee93ed 32 // Wait for a short length of time to allow user to see output messages.
azazeal88 0:35df42ee93ed 33 Thread::wait(2000);
azazeal88 0:35df42ee93ed 34
azazeal88 0:35df42ee93ed 35 if(rc == 0){
azazeal88 0:35df42ee93ed 36
kokichi226 1:8d33e7fdd27c 37
kokichi226 1:8d33e7fdd27c 38 printf("Starting MQTT Client");
azazeal88 0:35df42ee93ed 39
azazeal88 0:35df42ee93ed 40 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
azazeal88 0:35df42ee93ed 41 data.MQTTVersion = 3;
azazeal88 0:35df42ee93ed 42 data.clientID.cstring = MqttClientId;
azazeal88 0:35df42ee93ed 43 rc = client.connect(data);
azazeal88 0:35df42ee93ed 44
kokichi226 1:8d33e7fdd27c 45
kokichi226 2:c89dbc1d8123 46 printf("MQTT Client: %s\r\n", (rc == 0) ? "Connected" : "Failed");
azazeal88 0:35df42ee93ed 47
azazeal88 0:35df42ee93ed 48 while(rc == 0){
azazeal88 0:35df42ee93ed 49 MQTT::Message message;
azazeal88 0:35df42ee93ed 50
azazeal88 0:35df42ee93ed 51 // QoS 0
azazeal88 0:35df42ee93ed 52 char buf[100];
azazeal88 0:35df42ee93ed 53 sprintf(buf, "Hello World!");
azazeal88 0:35df42ee93ed 54 message.qos = MQTT::QOS0;
azazeal88 0:35df42ee93ed 55 message.retained = false;
azazeal88 0:35df42ee93ed 56 message.dup = false;
azazeal88 0:35df42ee93ed 57 message.payload = (void*)buf;
azazeal88 0:35df42ee93ed 58 message.payloadlen = strlen(buf)+1;
azazeal88 0:35df42ee93ed 59 rc = client.publish(MqttTopic, message);
azazeal88 0:35df42ee93ed 60
azazeal88 0:35df42ee93ed 61 Thread::wait(5000);
azazeal88 0:35df42ee93ed 62
azazeal88 0:35df42ee93ed 63 }
azazeal88 0:35df42ee93ed 64 }
azazeal88 0:35df42ee93ed 65
azazeal88 0:35df42ee93ed 66 // It is good practice to close the socket
azazeal88 0:35df42ee93ed 67 eth.disconnect();
azazeal88 0:35df42ee93ed 68 }
azazeal88 0:35df42ee93ed 69