iot_water_monitor_v2

Dependencies:   easy-connect-v16 Watchdog FP MQTTPacket RecordType-v-16 watersenor_and_temp_code

Files at this revision

API Documentation at this revision

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);
     
     }