Code for sensor nodes connected by radio receiver with gateway

Dependencies:   mbed WakeUp coapRadioClient DHT11

Files at this revision

API Documentation at this revision

Comitter:
Ka_myk
Date:
Fri Jan 25 12:11:18 2019 +0000
Parent:
6:5102672e8ff4
Commit message:
inrement message id

Changed in this revision

coapRadioClient.lib Show annotated file Show diff for this revision Revisions of this file
mainDistance.cpp Show annotated file Show diff for this revision Revisions of this file
mainHumidity.cpp Show annotated file Show diff for this revision Revisions of this file
mainMoisture.cpp Show annotated file Show diff for this revision Revisions of this file
moistureMeter.cpp Show annotated file Show diff for this revision Revisions of this file
moistureMeter.h Show annotated file Show diff for this revision Revisions of this file
diff -r 5102672e8ff4 -r 2393eb882f82 coapRadioClient.lib
--- a/coapRadioClient.lib	Fri Jan 25 11:07:23 2019 +0000
+++ b/coapRadioClient.lib	Fri Jan 25 12:11:18 2019 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/teams/IOT_GRZYBKI/code/coapRadioClient/#792cf53a73c4
+https://os.mbed.com/teams/IOT_GRZYBKI/code/coapRadioClient/#d633e12f113f
diff -r 5102672e8ff4 -r 2393eb882f82 mainDistance.cpp
--- a/mainDistance.cpp	Fri Jan 25 11:07:23 2019 +0000
+++ b/mainDistance.cpp	Fri Jan 25 12:11:18 2019 +0000
@@ -26,7 +26,7 @@
 PinName pinA = PinName(PB_3);
 PinName pinB = PinName(PA_10);
 uint8_t token[] = {2};
-CoapClient coapClient = CoapClient(token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
+CoapClient coapClient = CoapClient(1, token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
 InterruptIn button(USER_BUTTON);
 
 
diff -r 5102672e8ff4 -r 2393eb882f82 mainHumidity.cpp
--- a/mainHumidity.cpp	Fri Jan 25 11:07:23 2019 +0000
+++ b/mainHumidity.cpp	Fri Jan 25 12:11:18 2019 +0000
@@ -1,122 +1,122 @@
-#include "sensor.h"
-#include "mbed.h"
-#include "msg.h"
-#include "dbg.h"
-#include "coapClient.h"
-#include <string>
-
-// https://os.mbed.com/users/Sissors/code/WakeUp/
-#include "WakeUp.h"
-
-#include "DHT11.h"
-#include "humidityMeter.h"
-#include "tempMeter.h"
-
-#define DATA_BUFFER_LEN 10
-#define BUFFER_LEN 32
-#define CHANNEL 4
-#define RX_ADDRESS 0xABCDEF08
-#define TX_ADDRESS 0xABCDEF11
-#define DATA_RATE 1000
-#define RETRANSMITS 4
-
-char postUri[] = "/hum";
-char getConfUri[] = "/conf/hum";
-char postUri2[] = "/temp";
-
-Serial pc(USBTX, USBRX); // tx, rx
-PinName pinA = PinName(A5);
-uint8_t token[] = {1};
-CoapClient coapClient = CoapClient(token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
-InterruptIn button(USER_BUTTON);
-
-
-// change this
-DHT11 dht(pinA);
-HumidityMeter sensor = HumidityMeter(&dht);
-TempMeter sensor2 = TempMeter(&dht);
-
-int config_interval = 30;
-int sense_interval = 10;
-
-int config_time_left = 30;
-int sense_time_left = 0;
-
-void check_for_new_config() {
-    uint8_t buffer[BUFFER_LEN];
-    int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri);
-    if(ret > 0) {
-        uint8_t sensor_id = 0;
-        int data = -1;
-        Msg::deconstruct_data_msg(&sensor_id, &data, buffer, ret);
-        DBG("INTERVAL: %d", data);
-        sense_interval = data;
-    }
-    DBG("GET: %d", ret);
-}
-
-void collect_and_send_data() {
-    uint8_t buffer[DATA_BUFFER_LEN];
-    int data = sensor.read();
-    DBG("DATA: %d", data);
-    int sensor_id = sensor.getSensorId();
-    // TODO put sensor_id in URI, not in payload
-    Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
-    int ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri);
-    DBG("POST: %d", ret);
-    
-    data = sensor2.read();
-    DBG("TEMP: %d", data);
-    sensor_id = sensor2.getSensorId();
-    // TODO put sensor_id in URI, not in payload
-    Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
-    ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri2);
-    DBG("POST: %d", ret);
-}
-
-bool start = false;
-void send_packet() {
-    DBG("Start");
-    start = true;
-}
-
-
-int main() {
-    pc.baud(115200);
-    WakeUp::calibrate();
-    sensor.initialize();
-    sensor2.initialize();
-    DBG("RESTART");
-    int czas_na_spanko = 1;
-    Timer t;
-    button.rise(&send_packet);
-    while(true) {
-        while(start) {
-            if (config_time_left <= 0) {
-                check_for_new_config();
-                config_time_left = config_interval;
-            }
-            if (sense_time_left <= 0) {
-                collect_and_send_data();
-                sense_time_left = sense_interval;
-            }
-
-            czas_na_spanko = min(config_time_left, sense_time_left);
-            DBG("SPANKO: %d", czas_na_spanko);
-            if(czas_na_spanko > 0) {
-                t.stop();
-                //WakeUp::set(czas_na_spanko);
-                wait(czas_na_spanko);
-                t.reset();
-                t.start();
-                config_time_left -= czas_na_spanko;
-                sense_time_left -= czas_na_spanko;
-            } else {
-                config_time_left -= t.read_ms();
-                t.stop();
-                t.reset();
-                t.start();
-            }
-        }
-    }
-}
\ No newline at end of file
+//#include "sensor.h"
+//#include "mbed.h"
+//#include "msg.h"
+//#include "dbg.h"
+//#include "coapClient.h"
+//#include <string>
+//
+//// https://os.mbed.com/users/Sissors/code/WakeUp/
+//#include "WakeUp.h"
+//
+//#include "DHT11.h"
+//#include "humidityMeter.h"
+//#include "tempMeter.h"
+//
+//#define DATA_BUFFER_LEN 10
+//#define BUFFER_LEN 32
+//#define CHANNEL 4
+//#define RX_ADDRESS 0xABCDEF08
+//#define TX_ADDRESS 0xABCDEF11
+//#define DATA_RATE 1000
+//#define RETRANSMITS 4
+//
+//char postUri[] = "/hum";
+//char getConfUri[] = "/conf/hum";
+//char postUri2[] = "/temp";
+//
+//Serial pc(USBTX, USBRX); // tx, rx
+//PinName pinA = PinName(A5);
+//uint8_t token[] = {1};
+//CoapClient coapClient = CoapClient(2, token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
+//InterruptIn button(USER_BUTTON);
+//
+//
+//// change this
+//DHT11 dht(pinA);
+//HumidityMeter sensor = HumidityMeter(&dht);
+//TempMeter sensor2 = TempMeter(&dht);
+//
+//int config_interval = 30;
+//int sense_interval = 10;
+//
+//int config_time_left = 0;
+//int sense_time_left = 0;
+//
+//void check_for_new_config() {
+//    uint8_t buffer[BUFFER_LEN];
+//    int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri);
+//    if(ret > 0) {
+//        uint8_t sensor_id = 0;
+//        int data = -1;
+//        Msg::deconstruct_data_msg(&sensor_id, &data, buffer, ret);
+//        DBG("INTERVAL: %d", data);
+//        sense_interval = data;
+//    }
+//    DBG("GET: %d", ret);
+//}
+//
+//void collect_and_send_data() {
+//    uint8_t buffer[DATA_BUFFER_LEN];
+//    int data = sensor.read();
+//    DBG("DATA: %d", data);
+//    int sensor_id = sensor.getSensorId();
+//    // TODO put sensor_id in URI, not in payload
+//    Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
+//    int ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri);
+//    DBG("POST: %d", ret);
+//    
+//    data = sensor2.read();
+//    DBG("TEMP: %d", data);
+//    sensor_id = sensor2.getSensorId();
+//    // TODO put sensor_id in URI, not in payload
+//    Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
+//    ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri2);
+//    DBG("POST: %d", ret);
+//}
+//
+//bool start = false;
+//void send_packet() {
+//    DBG("Start");
+//    start = true;
+//}
+//
+//
+//int main() {
+//    pc.baud(115200);
+//    WakeUp::calibrate();
+//    sensor.initialize();
+//    sensor2.initialize();
+//    DBG("RESTART");
+//    int czas_na_spanko = 1;
+//    Timer t;
+//    button.rise(&send_packet);
+//    while(true) {
+//        while(start) {
+//            if (config_time_left <= 0) {
+//                check_for_new_config();
+//                config_time_left = config_interval;
+//            }
+//            if (sense_time_left <= 0) {
+//                collect_and_send_data();
+//                sense_time_left = sense_interval;
+//            }
+//
+//            czas_na_spanko = min(config_time_left, sense_time_left);
+//            DBG("SPANKO: %d", czas_na_spanko);
+//            if(czas_na_spanko > 0) {
+//                t.stop();
+//                //WakeUp::set(czas_na_spanko);
+//                wait(czas_na_spanko);
+//                t.reset();
+//                t.start();
+//                config_time_left -= czas_na_spanko;
+//                sense_time_left -= czas_na_spanko;
+//            } else {
+//                config_time_left -= t.read_ms();
+//                t.stop();
+//                t.reset();
+//                t.start();
+//            }
+//        }
+//    }
+//}
\ No newline at end of file
diff -r 5102672e8ff4 -r 2393eb882f82 mainMoisture.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mainMoisture.cpp	Fri Jan 25 12:11:18 2019 +0000
@@ -0,0 +1,110 @@
+//#include "sensor.h"
+//#include "humidityMeter.h"
+//#include "moistureMeter.h"
+//#include "mbed.h"
+//#include "msg.h"
+//#include "dbg.h"
+//#include "coapClient.h"
+//#include <string>
+//
+//// https://os.mbed.com/users/Sissors/code/WakeUp/
+//#include "WakeUp.h"
+//
+//#define BUFFER_LEN 32
+//#define CHANNEL 4
+//#define RX_ADDRESS 0xABCDEF08
+//#define TX_ADDRESS 0xABCDEF12
+//#define DATA_RATE 1000
+//#define RETRANSMITS 4
+//
+//char postUri[] = "/moist";
+//char getConfUri[] = "/conf/moist";
+//
+//Serial pc(USBTX, USBRX); // tx, rx
+//PinName pinA = PinName(PC_0);
+//uint8_t token[] = {3};
+//CoapClient coapClient = CoapClient(3,token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
+//InterruptIn button(USER_BUTTON);
+//
+//
+//// TODO #ifdef
+//MoistureMeter sensor = MoistureMeter(pinA);
+//
+//int config_interval = 30;
+//int sense_interval = 10;
+//
+//int config_time_left = 0;
+//int sense_time_left = 0;
+//
+//void check_for_new_config() {
+//    DBG("************ ASKING FOR NEW CONFIG...");
+//    uint8_t buffer[BUFFER_LEN];
+//    uint8_t sensor_id;
+//    int new_interval;
+//    int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri);
+//    if(ret > 0) {
+//        Msg::deconstruct_data_msg(&sensor_id, &new_interval, buffer, BUFFER_LEN);
+//        sense_interval = new_interval;
+//        DBG("************ NEW INTERVAL IS %d.", sense_interval);
+//    }
+//    DBG("************ GET RET: %d", ret);
+//}
+//
+//void collect_and_send_data() {
+//    uint8_t buffer[10];
+//    int data = sensor.read();
+//    int sensor_id = sensor.getSensorId();
+//    // TODO put sensor_id in URI, not in payload
+//    DBG("************ SENDING VALUE %d...", data);
+//    Msg::construct_data_msg(sensor_id, data, buffer, 10);
+//    int ret = coapClient.post(buffer, 10, postUri);
+//    DBG("************ POST RET: %d", ret);
+//}
+//
+//bool start = false;
+//void send_packet() {
+//    DBG("Start");
+//    start = true;
+//}
+//
+//
+//int main() {
+//    pc.baud(115200);
+//    WakeUp::calibrate();
+//    sensor.initialize();
+//    DBG("RESTART");
+//    int czas_na_spanko = 1;
+//    Timer t;
+//    button.rise(&send_packet);
+//    while(true) {
+//        while(start) {
+//            if (config_time_left <= 0) {
+//                check_for_new_config();
+//                config_time_left = config_interval;
+//            }
+//            if (sense_time_left <= 0) {
+//                collect_and_send_data();
+//                sense_time_left = sense_interval;
+//            }
+//
+//            czas_na_spanko = min(config_time_left, sense_time_left);
+//            DBG("*********** Config time left %d.", config_time_left);
+//            DBG("*********** Sense time left %d.", sense_time_left);
+//            DBG("*********** Interval %d.", sense_interval);
+//            DBG("*********** Czas na spanko to %d.", czas_na_spanko);
+//            if(czas_na_spanko > 0) {
+//                t.stop();
+//                wait(czas_na_spanko);
+//                t.reset();
+//                t.start();
+//                config_time_left -= czas_na_spanko;
+//                sense_time_left -= czas_na_spanko;
+//            } else {
+//                config_time_left -= t.read_ms();
+//                t.stop();
+//                t.reset();
+//                t.start();
+//            }
+//        }
+//    }
+//}
\ No newline at end of file
diff -r 5102672e8ff4 -r 2393eb882f82 moistureMeter.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/moistureMeter.cpp	Fri Jan 25 12:11:18 2019 +0000
@@ -0,0 +1,17 @@
+#include "moistureMeter.h"
+#include "dbg.h"
+
+int MoistureMeter::read() {
+    DBG("Reading moisture...\n\r");
+    int readValue = (int)1000*analogIn.read();
+    DBG("Moisture read: %d\n\r", readValue);
+    return readValue;
+}
+
+int MoistureMeter::getSensorId() {
+    return 2;
+}
+
+void MoistureMeter::initialize() {
+    DBG("Moisture sensor initialized");
+}
\ No newline at end of file
diff -r 5102672e8ff4 -r 2393eb882f82 moistureMeter.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/moistureMeter.h	Fri Jan 25 12:11:18 2019 +0000
@@ -0,0 +1,21 @@
+#ifndef SLAVE_MOISTUREMETER_H
+#define SLAVE_MOISTUREMETER_H
+
+#include "sensor.h"
+
+class MoistureMeter : public Sensor {
+
+private:
+    AnalogIn analogIn;
+
+public:
+    MoistureMeter(PinName dataPin) : analogIn(dataPin) {}
+    
+    int read();
+    
+    int getSensorId();
+
+    void initialize();
+};
+
+#endif //SLAVE_MOISTUREMETER_H
\ No newline at end of file