James Maki / adc_sensor_lora

Dependencies:   libmDot mbed-rtos mbed-src

Files at this revision

API Documentation at this revision

Comitter:
jamescmaki
Date:
Sat Jul 18 00:02:04 2015 +0000
Commit message:
Initial commit

Changed in this revision

libmDot.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed-src.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r d9c1041494ec libmDot.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libmDot.lib	Sat Jul 18 00:02:04 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/MultiTech/code/libmDot/#390fc83d588d
diff -r 000000000000 -r d9c1041494ec main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jul 18 00:02:04 2015 +0000
@@ -0,0 +1,110 @@
+/*
+ * ADC Sensor Demo
+ *
+ * Analog inputs are read and pushed to the LoRa gateway.
+ *
+ * Analog sensors should be wired to mDot pins 16 and 17.
+ *
+ */
+
+#include "mbed.h"
+#include "mDot.h"
+#include <string>
+#include <vector>
+
+/*
+ * LoRa settings
+ *
+ * For Conduit AEP settings can be found at:
+ *
+ *   https://<ip-address>/lora_network.html
+ *
+ * For Conduit mlinux:
+ *
+ *   /var/config/lora/lora-network-server.conf
+ *
+ */
+static std::string config_network_name = "testtest";
+static std::string config_network_pass = "memememe";
+static uint8_t config_frequency_sub_band = 5;
+
+enum {
+    MSG_TYPE_ADC0,
+    MSG_TYPE_ADC1,
+};
+
+AnalogIn adc0(PA_1); // PIN16 on mDot
+AnalogIn adc1(PA_4); // PIN17 on mDot
+
+Serial debug(USBTX, USBRX);
+
+int main() {
+    int32_t rc;
+
+    debug.baud(115200);
+
+    mDot *mdot = mDot::getInstance();
+
+    mdot->resetConfig();
+
+    printf("mDot version: %s\r\n", mdot->getId().c_str());
+
+    // Activity Status on UDK2
+    mdot->setActivityLedPin(LED1);
+    mdot->setActivityLedEnable(true);
+
+    if ((rc = mdot->setFrequencySubBand(config_frequency_sub_band)) != mDot::MDOT_OK) {
+        printf("failed to set frequency sub-band: %d\r\n", rc);
+        return 1;
+    }
+
+    if ((rc = mdot->setNetworkName(config_network_name)) != mDot::MDOT_OK) {
+        printf("failed to set network name: %d\r\n", rc);
+        return 1;
+    }
+
+    if ((rc = mdot->setNetworkPassphrase(config_network_pass)) != mDot::MDOT_OK) {
+        printf("failed to set network pass phrase: %d\r\n", rc);
+        return 1;
+    }
+
+    while ((rc = mdot->joinNetwork()) != mDot::MDOT_OK) {
+        printf("failed to join network: %d\r\n", rc);
+        if (mdot->getFrequencyBand() == mDot::FB_868){
+            rc = mdot->getNextTxMs();
+        } else {
+            rc = 0;
+        }
+
+        wait(1);
+    }
+
+    while (true) {
+        std::vector<uint8_t> lora_pl;
+
+        // Read analog inputs
+        uint16_t adc0_value = adc0.read_u16();
+        uint16_t adc1_value = adc1.read_u16();
+
+        // Pack ADC0 TLV
+        lora_pl.clear();
+        lora_pl.push_back(MSG_TYPE_ADC0);
+        lora_pl.push_back(2);
+        lora_pl.push_back(((char *) &adc0_value)[1]);
+        lora_pl.push_back(((char *) &adc0_value)[0]);
+
+        // Pack ADC1 TLV
+        lora_pl.push_back(MSG_TYPE_ADC1);
+        lora_pl.push_back(2);
+        lora_pl.push_back(((char *) &adc1_value)[1]);
+        lora_pl.push_back(((char *) &adc1_value)[0]);
+
+        // Send message
+        while ((rc = mdot->send(lora_pl)) != mDot::MDOT_OK) {
+            printf("failed to send message: %d\r\n", rc);
+            wait(1);
+        }
+
+        wait(5);
+    }
+}
diff -r 000000000000 -r d9c1041494ec mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Sat Jul 18 00:02:04 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#5aed8bae1001
diff -r 000000000000 -r d9c1041494ec mbed-src.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-src.lib	Sat Jul 18 00:02:04 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-src/#a274ee790e56