Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DHT MQTT WIZnetInterface mbed-src
Fork of MQTTw7500 by
main.cpp
00001 #include "mbed.h" 00002 #include "DHT.h" 00003 #include "MQTTEthernet.h" 00004 #include "MQTTClient.h" 00005 #define ECHO_SERVER_PORT 7 00006 Serial pc(USBTX,USBRX); 00007 00008 int arrivedcount = 0; 00009 char *receive_data; 00010 00011 void messageArrived(MQTT::MessageData& md) 00012 { 00013 MQTT::Message &message = md.message; 00014 printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id); 00015 printf("Payload %.*s\n", message.payloadlen, (char*)message.payload); 00016 memcpy(receive_data,message.payload,sizeof(message.payload)); 00017 pc.printf(receive_data); 00018 ++arrivedcount; 00019 } 00020 00021 void baud(int baudrate) { 00022 Serial s(USBTX, USBRX); 00023 s.baud(baudrate); 00024 } 00025 00026 int main (void) 00027 { 00028 DHT sensor(D4, DHT11); 00029 baud(115200); 00030 printf("Wait a second...\r\n"); 00031 char* topic = "openhab/parents/command"; 00032 MQTTEthernet ipstack = MQTTEthernet(); 00033 00034 MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack); 00035 00036 char* hostname = "172.16.73.4"; 00037 int port = 1883; 00038 00039 int rc = ipstack.connect(hostname, port); 00040 if (rc != 0) 00041 printf("rc from TCP connect is %d\n", rc); 00042 00043 printf("Topic: %s\r\n",topic); 00044 00045 MQTTPacket_connectData data = MQTTPacket_connectData_initializer; 00046 data.MQTTVersion = 3; 00047 data.clientID.cstring = "parents"; 00048 00049 if ((rc = client.connect(data)) == 0) 00050 printf("rc from MQTT connect is %d\n", rc); 00051 00052 if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0) 00053 printf("rc from MQTT subscribe is %d\n", rc); 00054 00055 MQTT::Message message; 00056 char buf[100]; 00057 00058 int error = 0; 00059 float hum = 0.0f, temp = 0.0f; 00060 00061 while (true) 00062 { 00063 error = sensor.readData(); 00064 if (0 == error) 00065 { 00066 hum = sensor.ReadHumidity(); 00067 temp = sensor.ReadTemperature(CELCIUS); 00068 } 00069 00070 sprintf(buf, "%3.1f", hum); 00071 message.qos = MQTT::QOS0; 00072 message.retained = false; 00073 message.dup = false; 00074 message.payload = (void*)buf; 00075 message.payloadlen = strlen(buf); 00076 rc = client.publish("openhab/parents/hum", message); 00077 client.yield(60000); 00078 sprintf(buf, "%3.1f", temp); 00079 message.qos = MQTT::QOS0; 00080 message.retained = false; 00081 message.dup = false; 00082 message.payload = (void*)buf; 00083 message.payloadlen = strlen(buf); 00084 rc = client.publish("openhab/parents/hum", message); 00085 client.yield(60000); 00086 00087 } 00088 } 00089
Generated on Sat Jul 16 2022 01:31:41 by
1.7.2
