hgcgf

Dependencies:   DHT MQTT WIZnetInterface mbed-src

Fork of MQTTw7500 by James Bruce

Committer:
roisetomy
Date:
Wed Dec 27 06:46:54 2017 +0000
Revision:
13:097237daec3d
Parent:
12:4f0489448955
hjvjhb

Who changed what in which revision?

UserRevisionLine numberNew contents of line
justinkim 8:f837e0d255e8 1 #include "mbed.h"
bangbh 9:21574e058141 2 #include "DHT.h"
bangbh 9:21574e058141 3 #include "MQTTEthernet.h"
bangbh 9:21574e058141 4 #include "MQTTClient.h"
justinkim 8:f837e0d255e8 5 #define ECHO_SERVER_PORT 7
roisetomy 13:097237daec3d 6 Serial pc(USBTX,USBRX);
bangbh 9:21574e058141 7
bangbh 9:21574e058141 8 int arrivedcount = 0;
roisetomy 13:097237daec3d 9 char *receive_data;
bangbh 9:21574e058141 10
bangbh 9:21574e058141 11 void messageArrived(MQTT::MessageData& md)
justinkim 8:f837e0d255e8 12 {
bangbh 9:21574e058141 13 MQTT::Message &message = md.message;
bangbh 9:21574e058141 14 printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id);
bangbh 9:21574e058141 15 printf("Payload %.*s\n", message.payloadlen, (char*)message.payload);
roisetomy 13:097237daec3d 16 memcpy(receive_data,message.payload,sizeof(message.payload));
roisetomy 13:097237daec3d 17 pc.printf(receive_data);
bangbh 9:21574e058141 18 ++arrivedcount;
bangbh 9:21574e058141 19 }
bangbh 9:21574e058141 20
bangbh 9:21574e058141 21 void baud(int baudrate) {
bangbh 9:21574e058141 22 Serial s(USBTX, USBRX);
bangbh 9:21574e058141 23 s.baud(baudrate);
bangbh 9:21574e058141 24 }
bangbh 9:21574e058141 25
bangbh 9:21574e058141 26 int main (void)
bangbh 9:21574e058141 27 {
bangbh 9:21574e058141 28 DHT sensor(D4, DHT11);
bangbh 9:21574e058141 29 baud(115200);
justinkim 8:f837e0d255e8 30 printf("Wait a second...\r\n");
jamesabruce 12:4f0489448955 31 char* topic = "openhab/parents/command";
bangbh 9:21574e058141 32 MQTTEthernet ipstack = MQTTEthernet();
bangbh 9:21574e058141 33
bangbh 9:21574e058141 34 MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
bangbh 9:21574e058141 35
roisetomy 13:097237daec3d 36 char* hostname = "172.16.73.4";
bangbh 9:21574e058141 37 int port = 1883;
bangbh 9:21574e058141 38
bangbh 9:21574e058141 39 int rc = ipstack.connect(hostname, port);
bangbh 9:21574e058141 40 if (rc != 0)
bangbh 9:21574e058141 41 printf("rc from TCP connect is %d\n", rc);
bangbh 9:21574e058141 42
bangbh 9:21574e058141 43 printf("Topic: %s\r\n",topic);
justinkim 8:f837e0d255e8 44
bangbh 9:21574e058141 45 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
bangbh 9:21574e058141 46 data.MQTTVersion = 3;
jamesabruce 12:4f0489448955 47 data.clientID.cstring = "parents";
bangbh 9:21574e058141 48
roisetomy 13:097237daec3d 49 if ((rc = client.connect(data)) == 0)
bangbh 9:21574e058141 50 printf("rc from MQTT connect is %d\n", rc);
bangbh 9:21574e058141 51
bangbh 9:21574e058141 52 if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0)
bangbh 9:21574e058141 53 printf("rc from MQTT subscribe is %d\n", rc);
bangbh 9:21574e058141 54
bangbh 9:21574e058141 55 MQTT::Message message;
bangbh 9:21574e058141 56 char buf[100];
roisetomy 13:097237daec3d 57
bangbh 9:21574e058141 58 int error = 0;
bangbh 9:21574e058141 59 float hum = 0.0f, temp = 0.0f;
roisetomy 13:097237daec3d 60
justinkim 8:f837e0d255e8 61 while (true)
justinkim 8:f837e0d255e8 62 {
bangbh 9:21574e058141 63 error = sensor.readData();
roisetomy 13:097237daec3d 64 if (0 == error)
roisetomy 13:097237daec3d 65 {
bangbh 9:21574e058141 66 hum = sensor.ReadHumidity();
bangbh 9:21574e058141 67 temp = sensor.ReadTemperature(CELCIUS);
roisetomy 13:097237daec3d 68 }
roisetomy 13:097237daec3d 69
bangbh 9:21574e058141 70 sprintf(buf, "%3.1f", hum);
bangbh 9:21574e058141 71 message.qos = MQTT::QOS0;
bangbh 9:21574e058141 72 message.retained = false;
bangbh 9:21574e058141 73 message.dup = false;
bangbh 9:21574e058141 74 message.payload = (void*)buf;
jamesabruce 12:4f0489448955 75 message.payloadlen = strlen(buf);
roisetomy 13:097237daec3d 76 rc = client.publish("openhab/parents/hum", message);
roisetomy 13:097237daec3d 77 client.yield(60000);
bangbh 9:21574e058141 78 sprintf(buf, "%3.1f", temp);
roisetomy 13:097237daec3d 79 message.qos = MQTT::QOS0;
roisetomy 13:097237daec3d 80 message.retained = false;
roisetomy 13:097237daec3d 81 message.dup = false;
bangbh 9:21574e058141 82 message.payload = (void*)buf;
jamesabruce 12:4f0489448955 83 message.payloadlen = strlen(buf);
roisetomy 13:097237daec3d 84 rc = client.publish("openhab/parents/hum", message);
roisetomy 13:097237daec3d 85 client.yield(60000);
jamesabruce 12:4f0489448955 86
justinkim 8:f837e0d255e8 87 }
justinkim 8:f837e0d255e8 88 }
justinkim 8:f837e0d255e8 89