iot_water_monitor_v2
Dependencies: easy-connect-v16 Watchdog FP MQTTPacket RecordType-v-16 watersenor_and_temp_code
Revision 8:844796296dea, committed 2017-12-01
- Comitter:
- DuyLionTran
- Date:
- Fri Dec 01 03:13:52 2017 +0000
- Parent:
- 7:6fa70270f05f
- Child:
- 9:268373df20d7
- Commit message:
- version 1.1.5
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Nov 29 15:09:42 2017 +0000 +++ b/main.cpp Fri Dec 01 03:13:52 2017 +0000 @@ -37,20 +37,26 @@ * Variables ***************************************************************/ /* MQTT Varialbles */ -float firmwareVersion = 0.86; +float firmwareVersion = 0.9; char server[] = ORG ".messaging.internetofthings.ibmcloud.com"; -char topicCMD[] = "iot-2/cmd/test/fmt/json"; -char topicEvent[] = "iot-2/evt/status/fmt/json"; +char topicCMD[] = "iot-2/cmd/command/fmt/json"; +char topicEvent[] = "iot-2/evt/status_update/fmt/json"; char authMethod[] = "use-token-auth"; char token[] = TOKEN; char clientId[] = "d:" ORG ":" DEVICE_TYPE ":" DEVICE_ID; int ibmPort = 1883; /* Internet Varialbles */ -bool internetState = false; +bool internetState = false; +uint16_t cmdID = 0; /* Time Handles */ +uint32_t uploadPeriod = 6; uint32_t lastRead; + +/* Analog Handles */ +float analogVal0; + /*************************************************************** * Structs/Classess ***************************************************************/ @@ -59,7 +65,9 @@ MQTT::Client<MQTTNetwork, Countdown> client(mqttNetwork); Timer readTime; -Thread thread; + +AnalogIn phSensor(SENSOR_1_PIN); + Serial serial(USBTX, USBRX); /*************************************************************** @@ -90,6 +98,7 @@ */ int MQTT_publish(char *sendMessage); +void getADC(); /*************************************************************** * Callbacks @@ -121,7 +130,8 @@ int MQTT_networkConnect() { logMessage("Connecting to %s:%d\r\n", server, ibmPort); - int rc = mqttNetwork.connect(server, ibmPort); + int rc = MQTT_SUCCESS; + rc = mqttNetwork.connect(server, ibmPort); if (rc != 0) { logMessage("rc from TCP connect is %d\r\n", rc); return rc; @@ -142,6 +152,8 @@ logMessage("rc from MQTT subscribe is %d\r\n", rc); return rc; } + + return rc; } int MQTT_init() { @@ -156,7 +168,7 @@ ret = MQTT_networkConnect(); if (ret != MQTT_SUCCESS) { - printf("Fail to connect to MQTT or fail to subscribe"); + printf("Fail to connect to MQTT or fail to subscribe\r\n"); } return ret; @@ -168,8 +180,8 @@ msg.retained = false; msg.dup = false; msg.payload = sendMessage; - msg.payloadlen = strlen(sendMessage) + 1; - return client.publish(topicEvent, msg); + msg.payloadlen = strlen(sendMessage); + return client.publish((char *)topicEvent, msg); } /*************************************************************** @@ -183,7 +195,7 @@ MQTT_init(); char greetingMessage[100]; - sprintf(greetingMessage, "{\"Device ID\":\"PROEVN\",\"Firmware Version\":\"%f\"}", firmwareVersion); + sprintf(greetingMessage, "{\"Name\":\"PROEVN\",\"Firmware Version\":%.1f}", firmwareVersion); printf("Sending payload: %s\r\n", greetingMessage); if (!MQTT_publish((char *)greetingMessage)) { @@ -193,21 +205,21 @@ printf("Publish failed\r\n"); } - readTime.start(); + readTime.start(); + uploadPeriod = 6; - wait(2); + printf("Get into loop\r\n"); + float voltageValue; - uint8_t counter = 0; - uint16_t cmdID = 0; + while(true) { + analogVal0 = phSensor.read(); + voltageValue = (analogVal0 * 5.0); - while(true) { - - if ((uint32_t)(readTime.read() - lastRead) > 10) { - counter++; + if ((uint32_t)(readTime.read() - lastRead) > uploadPeriod) { char payload[100]; - sprintf(payload, "{\"Type\":\"1\",\"Command ID\":\"%d\",\"ADC0\":\"%d\",\"ADC1\":\"%d\"}", cmdID, counter, counter++); + sprintf(payload, "{\"Type\":1,\"Command ID\":%d,\"ADC0\":%.2f,\"Voltage 1\":%.2f}", cmdID, analogVal0, voltageValue); printf("MQTT publish %s\r\n", payload); - if (!MQTT_publish((char *)payload)) { + if (!MQTT_publish(payload)) { printf("Publish ok\r\n"); cmdID++; } @@ -217,6 +229,7 @@ lastRead = readTime.read(); } + client.yield(100); }