HuyNQ

Dependencies:   C12832 MQTT_MbedOS

Fork of mbed-os-mqtt by Daniel Knox

Committer:
kokichi226
Date:
Thu Nov 02 09:39:32 2017 +0000
Revision:
1:8d33e7fdd27c
Parent:
0:35df42ee93ed
Child:
2:c89dbc1d8123
Nucleo F429ZI - Example mqtt connect via ethernet

Who changed what in which revision?

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