hgcgf

Dependencies:   DHT MQTT WIZnetInterface mbed-src

Fork of MQTTw7500 by James Bruce

Revision:
13:097237daec3d
Parent:
12:4f0489448955
--- a/main.cpp	Sat Oct 03 10:54:52 2015 +0000
+++ b/main.cpp	Wed Dec 27 06:46:54 2017 +0000
@@ -3,14 +3,18 @@
 #include "MQTTEthernet.h"
 #include "MQTTClient.h"
 #define ECHO_SERVER_PORT   7
+Serial pc(USBTX,USBRX);
  
 int arrivedcount = 0;
+char *receive_data;
  
 void messageArrived(MQTT::MessageData& md)
 {
     MQTT::Message &message = md.message;
     printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id);
     printf("Payload %.*s\n", message.payloadlen, (char*)message.payload);
+    memcpy(receive_data,message.payload,sizeof(message.payload));
+    pc.printf(receive_data);
     ++arrivedcount;
 }
 
@@ -29,7 +33,7 @@
     
     MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
     
-    char* hostname = "192.168.1.99";
+    char* hostname = "172.16.73.4";
     int port = 1883;
     
     int rc = ipstack.connect(hostname, port);
@@ -42,7 +46,7 @@
     data.MQTTVersion = 3;
     data.clientID.cstring = "parents";
 
-    if ((rc = client.connect(data)) != 0)
+    if ((rc = client.connect(data)) == 0)
         printf("rc from MQTT connect is %d\n", rc);
  
     if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0)
@@ -50,28 +54,36 @@
         
     MQTT::Message message;
     char buf[100];
+ 
     int error = 0;
     float hum = 0.0f, temp = 0.0f;
+    
     while (true) 
     {
         error = sensor.readData();
-        if (0 == error) {
+        if (0 == error)
+        {
             hum = sensor.ReadHumidity();
             temp = sensor.ReadTemperature(CELCIUS);
-        }
+        }  
+        
         sprintf(buf, "%3.1f", hum);
         message.qos = MQTT::QOS0;
         message.retained = false;
         message.dup = false;
         message.payload = (void*)buf;
         message.payloadlen = strlen(buf);
-        rc = client.publish("openhab/parents/humidity", message);
+        rc = client.publish("openhab/parents/hum", message); 
+        client.yield(60000);
         sprintf(buf, "%3.1f", temp);
+        message.qos = MQTT::QOS0;
+        message.retained = false;
+        message.dup = false;
         message.payload = (void*)buf;
         message.payloadlen = strlen(buf);
-        rc = client.publish("openhab/parents/temperature", message);
+        rc = client.publish("openhab/parents/hum", message); 
+        client.yield(60000);
         
-        client.yield(60000);
     }
 }