Code for sensor nodes connected by radio receiver with gateway

Dependencies:   mbed WakeUp coapRadioClient DHT11

Committer:
Ka_myk
Date:
Fri Jan 25 12:11:18 2019 +0000
Revision:
7:2393eb882f82
inrement message id

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ka_myk 7:2393eb882f82 1 //#include "sensor.h"
Ka_myk 7:2393eb882f82 2 //#include "humidityMeter.h"
Ka_myk 7:2393eb882f82 3 //#include "moistureMeter.h"
Ka_myk 7:2393eb882f82 4 //#include "mbed.h"
Ka_myk 7:2393eb882f82 5 //#include "msg.h"
Ka_myk 7:2393eb882f82 6 //#include "dbg.h"
Ka_myk 7:2393eb882f82 7 //#include "coapClient.h"
Ka_myk 7:2393eb882f82 8 //#include <string>
Ka_myk 7:2393eb882f82 9 //
Ka_myk 7:2393eb882f82 10 //// https://os.mbed.com/users/Sissors/code/WakeUp/
Ka_myk 7:2393eb882f82 11 //#include "WakeUp.h"
Ka_myk 7:2393eb882f82 12 //
Ka_myk 7:2393eb882f82 13 //#define BUFFER_LEN 32
Ka_myk 7:2393eb882f82 14 //#define CHANNEL 4
Ka_myk 7:2393eb882f82 15 //#define RX_ADDRESS 0xABCDEF08
Ka_myk 7:2393eb882f82 16 //#define TX_ADDRESS 0xABCDEF12
Ka_myk 7:2393eb882f82 17 //#define DATA_RATE 1000
Ka_myk 7:2393eb882f82 18 //#define RETRANSMITS 4
Ka_myk 7:2393eb882f82 19 //
Ka_myk 7:2393eb882f82 20 //char postUri[] = "/moist";
Ka_myk 7:2393eb882f82 21 //char getConfUri[] = "/conf/moist";
Ka_myk 7:2393eb882f82 22 //
Ka_myk 7:2393eb882f82 23 //Serial pc(USBTX, USBRX); // tx, rx
Ka_myk 7:2393eb882f82 24 //PinName pinA = PinName(PC_0);
Ka_myk 7:2393eb882f82 25 //uint8_t token[] = {3};
Ka_myk 7:2393eb882f82 26 //CoapClient coapClient = CoapClient(3,token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
Ka_myk 7:2393eb882f82 27 //InterruptIn button(USER_BUTTON);
Ka_myk 7:2393eb882f82 28 //
Ka_myk 7:2393eb882f82 29 //
Ka_myk 7:2393eb882f82 30 //// TODO #ifdef
Ka_myk 7:2393eb882f82 31 //MoistureMeter sensor = MoistureMeter(pinA);
Ka_myk 7:2393eb882f82 32 //
Ka_myk 7:2393eb882f82 33 //int config_interval = 30;
Ka_myk 7:2393eb882f82 34 //int sense_interval = 10;
Ka_myk 7:2393eb882f82 35 //
Ka_myk 7:2393eb882f82 36 //int config_time_left = 0;
Ka_myk 7:2393eb882f82 37 //int sense_time_left = 0;
Ka_myk 7:2393eb882f82 38 //
Ka_myk 7:2393eb882f82 39 //void check_for_new_config() {
Ka_myk 7:2393eb882f82 40 // DBG("************ ASKING FOR NEW CONFIG...");
Ka_myk 7:2393eb882f82 41 // uint8_t buffer[BUFFER_LEN];
Ka_myk 7:2393eb882f82 42 // uint8_t sensor_id;
Ka_myk 7:2393eb882f82 43 // int new_interval;
Ka_myk 7:2393eb882f82 44 // int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri);
Ka_myk 7:2393eb882f82 45 // if(ret > 0) {
Ka_myk 7:2393eb882f82 46 // Msg::deconstruct_data_msg(&sensor_id, &new_interval, buffer, BUFFER_LEN);
Ka_myk 7:2393eb882f82 47 // sense_interval = new_interval;
Ka_myk 7:2393eb882f82 48 // DBG("************ NEW INTERVAL IS %d.", sense_interval);
Ka_myk 7:2393eb882f82 49 // }
Ka_myk 7:2393eb882f82 50 // DBG("************ GET RET: %d", ret);
Ka_myk 7:2393eb882f82 51 //}
Ka_myk 7:2393eb882f82 52 //
Ka_myk 7:2393eb882f82 53 //void collect_and_send_data() {
Ka_myk 7:2393eb882f82 54 // uint8_t buffer[10];
Ka_myk 7:2393eb882f82 55 // int data = sensor.read();
Ka_myk 7:2393eb882f82 56 // int sensor_id = sensor.getSensorId();
Ka_myk 7:2393eb882f82 57 // // TODO put sensor_id in URI, not in payload
Ka_myk 7:2393eb882f82 58 // DBG("************ SENDING VALUE %d...", data);
Ka_myk 7:2393eb882f82 59 // Msg::construct_data_msg(sensor_id, data, buffer, 10);
Ka_myk 7:2393eb882f82 60 // int ret = coapClient.post(buffer, 10, postUri);
Ka_myk 7:2393eb882f82 61 // DBG("************ POST RET: %d", ret);
Ka_myk 7:2393eb882f82 62 //}
Ka_myk 7:2393eb882f82 63 //
Ka_myk 7:2393eb882f82 64 //bool start = false;
Ka_myk 7:2393eb882f82 65 //void send_packet() {
Ka_myk 7:2393eb882f82 66 // DBG("Start");
Ka_myk 7:2393eb882f82 67 // start = true;
Ka_myk 7:2393eb882f82 68 //}
Ka_myk 7:2393eb882f82 69 //
Ka_myk 7:2393eb882f82 70 //
Ka_myk 7:2393eb882f82 71 //int main() {
Ka_myk 7:2393eb882f82 72 // pc.baud(115200);
Ka_myk 7:2393eb882f82 73 // WakeUp::calibrate();
Ka_myk 7:2393eb882f82 74 // sensor.initialize();
Ka_myk 7:2393eb882f82 75 // DBG("RESTART");
Ka_myk 7:2393eb882f82 76 // int czas_na_spanko = 1;
Ka_myk 7:2393eb882f82 77 // Timer t;
Ka_myk 7:2393eb882f82 78 // button.rise(&send_packet);
Ka_myk 7:2393eb882f82 79 // while(true) {
Ka_myk 7:2393eb882f82 80 // while(start) {
Ka_myk 7:2393eb882f82 81 // if (config_time_left <= 0) {
Ka_myk 7:2393eb882f82 82 // check_for_new_config();
Ka_myk 7:2393eb882f82 83 // config_time_left = config_interval;
Ka_myk 7:2393eb882f82 84 // }
Ka_myk 7:2393eb882f82 85 // if (sense_time_left <= 0) {
Ka_myk 7:2393eb882f82 86 // collect_and_send_data();
Ka_myk 7:2393eb882f82 87 // sense_time_left = sense_interval;
Ka_myk 7:2393eb882f82 88 // }
Ka_myk 7:2393eb882f82 89 //
Ka_myk 7:2393eb882f82 90 // czas_na_spanko = min(config_time_left, sense_time_left);
Ka_myk 7:2393eb882f82 91 // DBG("*********** Config time left %d.", config_time_left);
Ka_myk 7:2393eb882f82 92 // DBG("*********** Sense time left %d.", sense_time_left);
Ka_myk 7:2393eb882f82 93 // DBG("*********** Interval %d.", sense_interval);
Ka_myk 7:2393eb882f82 94 // DBG("*********** Czas na spanko to %d.", czas_na_spanko);
Ka_myk 7:2393eb882f82 95 // if(czas_na_spanko > 0) {
Ka_myk 7:2393eb882f82 96 // t.stop();
Ka_myk 7:2393eb882f82 97 // wait(czas_na_spanko);
Ka_myk 7:2393eb882f82 98 // t.reset();
Ka_myk 7:2393eb882f82 99 // t.start();
Ka_myk 7:2393eb882f82 100 // config_time_left -= czas_na_spanko;
Ka_myk 7:2393eb882f82 101 // sense_time_left -= czas_na_spanko;
Ka_myk 7:2393eb882f82 102 // } else {
Ka_myk 7:2393eb882f82 103 // config_time_left -= t.read_ms();
Ka_myk 7:2393eb882f82 104 // t.stop();
Ka_myk 7:2393eb882f82 105 // t.reset();
Ka_myk 7:2393eb882f82 106 // t.start();
Ka_myk 7:2393eb882f82 107 // }
Ka_myk 7:2393eb882f82 108 // }
Ka_myk 7:2393eb882f82 109 // }
Ka_myk 7:2393eb882f82 110 //}