Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
}