case5
Dependencies: mbed SeeedShieldBot BluetoothSerial
Diff: main.cpp
- Revision:
- 0:469ef45c1fe2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Sep 15 15:08:26 2021 +0000 @@ -0,0 +1,64 @@ +#include "mbed.h" + +#define MQTT_MAX_PACKET_SIZE 400 +#define MQTT_MAX_PAYLOAD_SIZE 300 + +void ibm_cloud_demo(NetworkInterface *net) +{ + TCPSocket socket; + MQTTClient client(&socket); + + SocketAddress a; + char* hostname = "quickstart.messaging.internetofthings.ibmcloud.com"; + net->gethostbyname(hostname, &a); + int port = 1883; + a.set_port(port); + + printf("Connecting to %s:%d\r\n", hostname, port); + + socket.open(net); + printf("Opened socket\n\r"); + int rc = socket.connect(a); + if (rc != 0) + printf("rc from TCP connect is %d\r\n", rc); + printf("Connected socket\n\r"); + + + MQTTPacket_connectData data = MQTTPacket_connectData_initializer; + data.MQTTVersion = 3; + data.clientID.cstring = "d:quickstart:my_test:my_test_board"; + data.username.cstring = "testuser"; + data.password.cstring = "testpassword"; + if ((rc = client.connect(data)) != 0) + printf("rc from MQTT connect is %d\r\n", rc); + + MQTT::Message message; + + char buf[MQTT_MAX_PAYLOAD_SIZE]; + float temp = 1; + float press = 2; + float hum = 3; + + sprintf(buf, + "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Temp\":%0.4f,\"Pressure\":%0.4f,\"Humidity\":%0.4f}}", + temp, press, hum); + message.qos = MQTT::QOS0; + message.retained = false; + message.dup = false; + message.payload = (void*)buf; + message.payloadlen = strlen(buf); + + char* topic = "iot-2/evt/my_event/fmt/json"; + + if( (message.payloadlen + strlen(topic)+1) >= MQTT_MAX_PACKET_SIZE ) + printf("message too long!\r\n"); + + rc = client.publish(topic, message); + return; +} + + +nt main() +{ + ibm_cloud_demo(NetworkInterface *net); +}