HuyNQ
Dependencies: C12832 MQTT_MbedOS
Fork of mbed-os-mqtt by
main.cpp@1:8d33e7fdd27c, 2017-11-02 (annotated)
- 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?
User | Revision | Line number | New 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 |