send temp data to thingsboard through mqtt using lpc1768

Dependencies:   C12832 LM75B MQTT

Committer:
daklowprofile
Date:
Wed Jul 04 07:27:48 2018 +0000
Revision:
0:df50ec82d746
initial working code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daklowprofile 0:df50ec82d746 1 #define USE_LCD 0
daklowprofile 0:df50ec82d746 2
daklowprofile 0:df50ec82d746 3 #if USE_LCD
daklowprofile 0:df50ec82d746 4 #include "C12832.h"
daklowprofile 0:df50ec82d746 5
daklowprofile 0:df50ec82d746 6 // the actual pins are defined in mbed_app.json and can be overridden per target
daklowprofile 0:df50ec82d746 7 C12832 lcd(LCD_MOSI, LCD_SCK, LCD_MISO, LCD_A0, LCD_NCS);
daklowprofile 0:df50ec82d746 8
daklowprofile 0:df50ec82d746 9 #define logMessage lcd.cls();lcd.printf
daklowprofile 0:df50ec82d746 10
daklowprofile 0:df50ec82d746 11 #else
daklowprofile 0:df50ec82d746 12
daklowprofile 0:df50ec82d746 13 #define logMessage printf
daklowprofile 0:df50ec82d746 14
daklowprofile 0:df50ec82d746 15 #endif
daklowprofile 0:df50ec82d746 16
daklowprofile 0:df50ec82d746 17 #define MQTTCLIENT_QOS2 1
daklowprofile 0:df50ec82d746 18
daklowprofile 0:df50ec82d746 19 #include "easy-connect.h"
daklowprofile 0:df50ec82d746 20 #include "MQTTNetwork.h"
daklowprofile 0:df50ec82d746 21 #include "MQTTmbed.h"
daklowprofile 0:df50ec82d746 22 #include "MQTTClient.h"
daklowprofile 0:df50ec82d746 23 #include "LM75B.h"
daklowprofile 0:df50ec82d746 24
daklowprofile 0:df50ec82d746 25 LM75B tmp(p28,p27);
daklowprofile 0:df50ec82d746 26
daklowprofile 0:df50ec82d746 27
daklowprofile 0:df50ec82d746 28 int arrivedcount = 0;
daklowprofile 0:df50ec82d746 29
daklowprofile 0:df50ec82d746 30
daklowprofile 0:df50ec82d746 31 void messageArrived(MQTT::MessageData& md)
daklowprofile 0:df50ec82d746 32 {
daklowprofile 0:df50ec82d746 33 MQTT::Message &message = md.message;
daklowprofile 0:df50ec82d746 34 logMessage("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id);
daklowprofile 0:df50ec82d746 35 logMessage("Payload %.*s\r\n", message.payloadlen, (char*)message.payload);
daklowprofile 0:df50ec82d746 36 ++arrivedcount;
daklowprofile 0:df50ec82d746 37 }
daklowprofile 0:df50ec82d746 38
daklowprofile 0:df50ec82d746 39
daklowprofile 0:df50ec82d746 40 int main(int argc, char* argv[])
daklowprofile 0:df50ec82d746 41 {
daklowprofile 0:df50ec82d746 42 float version = 0.6;
daklowprofile 0:df50ec82d746 43 char* topic = "v1/devices/me/telemetry";
daklowprofile 0:df50ec82d746 44
daklowprofile 0:df50ec82d746 45 logMessage("HelloMQTT: version is %.2f\r\n", version);
daklowprofile 0:df50ec82d746 46
daklowprofile 0:df50ec82d746 47 NetworkInterface* network = easy_connect(true);
daklowprofile 0:df50ec82d746 48 if (!network) {
daklowprofile 0:df50ec82d746 49 return -1;
daklowprofile 0:df50ec82d746 50 }
daklowprofile 0:df50ec82d746 51
daklowprofile 0:df50ec82d746 52 MQTTNetwork mqttNetwork(network);
daklowprofile 0:df50ec82d746 53
daklowprofile 0:df50ec82d746 54 MQTT::Client<MQTTNetwork, Countdown> client(mqttNetwork);
daklowprofile 0:df50ec82d746 55
daklowprofile 0:df50ec82d746 56 const char* hostname = "demo.thingsboard.io";
daklowprofile 0:df50ec82d746 57 int port = 1883;
daklowprofile 0:df50ec82d746 58 logMessage("Connecting to %s:%d\r\n", hostname, port);
daklowprofile 0:df50ec82d746 59 int rc = mqttNetwork.connect(hostname, port);
daklowprofile 0:df50ec82d746 60 if (rc != 0)
daklowprofile 0:df50ec82d746 61 logMessage("rc from TCP connect is %d\r\n", rc);
daklowprofile 0:df50ec82d746 62 char assess_token[] = "aq8Xr1qkEzo1ANb4VQHa";
daklowprofile 0:df50ec82d746 63 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
daklowprofile 0:df50ec82d746 64
daklowprofile 0:df50ec82d746 65 data.username.cstring = assess_token;
daklowprofile 0:df50ec82d746 66
daklowprofile 0:df50ec82d746 67 if ((rc = client.connect(data)) != 0)
daklowprofile 0:df50ec82d746 68 logMessage("rc from MQTT connect is %d\r\n", rc);
daklowprofile 0:df50ec82d746 69
daklowprofile 0:df50ec82d746 70 if ((rc = client.subscribe(topic, MQTT::QOS0, messageArrived)) != 0)
daklowprofile 0:df50ec82d746 71 logMessage("rc from MQTT subscribe is %d\r\n", rc);
daklowprofile 0:df50ec82d746 72
daklowprofile 0:df50ec82d746 73 MQTT::Message message;
daklowprofile 0:df50ec82d746 74
daklowprofile 0:df50ec82d746 75
daklowprofile 0:df50ec82d746 76 while(1){
daklowprofile 0:df50ec82d746 77 char buf[256];
daklowprofile 0:df50ec82d746 78 int n = snprintf(buf, sizeof(buf), "{\"temperature\":%f, \"active\": false}", tmp.read());
daklowprofile 0:df50ec82d746 79 message.payload = reinterpret_cast<void*>(buf);
daklowprofile 0:df50ec82d746 80 message.payloadlen = n;
daklowprofile 0:df50ec82d746 81 rc = client.publish(topic, message);
daklowprofile 0:df50ec82d746 82 wait(5);
daklowprofile 0:df50ec82d746 83 }
daklowprofile 0:df50ec82d746 84
daklowprofile 0:df50ec82d746 85 }