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
Parent:
3:4ffffdb5230f
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 "mbed.h"
Ka_myk 7:2393eb882f82 3 //#include "msg.h"
Ka_myk 7:2393eb882f82 4 //#include "dbg.h"
Ka_myk 7:2393eb882f82 5 //#include "coapClient.h"
Ka_myk 7:2393eb882f82 6 //#include <string>
Ka_myk 7:2393eb882f82 7 //
Ka_myk 7:2393eb882f82 8 //// https://os.mbed.com/users/Sissors/code/WakeUp/
Ka_myk 7:2393eb882f82 9 //#include "WakeUp.h"
Ka_myk 7:2393eb882f82 10 //
Ka_myk 7:2393eb882f82 11 //#include "DHT11.h"
Ka_myk 7:2393eb882f82 12 //#include "humidityMeter.h"
Ka_myk 7:2393eb882f82 13 //#include "tempMeter.h"
Ka_myk 7:2393eb882f82 14 //
Ka_myk 7:2393eb882f82 15 //#define DATA_BUFFER_LEN 10
Ka_myk 7:2393eb882f82 16 //#define BUFFER_LEN 32
Ka_myk 7:2393eb882f82 17 //#define CHANNEL 4
Ka_myk 7:2393eb882f82 18 //#define RX_ADDRESS 0xABCDEF08
Ka_myk 7:2393eb882f82 19 //#define TX_ADDRESS 0xABCDEF11
Ka_myk 7:2393eb882f82 20 //#define DATA_RATE 1000
Ka_myk 7:2393eb882f82 21 //#define RETRANSMITS 4
Ka_myk 7:2393eb882f82 22 //
Ka_myk 7:2393eb882f82 23 //char postUri[] = "/hum";
Ka_myk 7:2393eb882f82 24 //char getConfUri[] = "/conf/hum";
Ka_myk 7:2393eb882f82 25 //char postUri2[] = "/temp";
Ka_myk 7:2393eb882f82 26 //
Ka_myk 7:2393eb882f82 27 //Serial pc(USBTX, USBRX); // tx, rx
Ka_myk 7:2393eb882f82 28 //PinName pinA = PinName(A5);
Ka_myk 7:2393eb882f82 29 //uint8_t token[] = {1};
Ka_myk 7:2393eb882f82 30 //CoapClient coapClient = CoapClient(2, token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS);
Ka_myk 7:2393eb882f82 31 //InterruptIn button(USER_BUTTON);
Ka_myk 7:2393eb882f82 32 //
Ka_myk 7:2393eb882f82 33 //
Ka_myk 7:2393eb882f82 34 //// change this
Ka_myk 7:2393eb882f82 35 //DHT11 dht(pinA);
Ka_myk 7:2393eb882f82 36 //HumidityMeter sensor = HumidityMeter(&dht);
Ka_myk 7:2393eb882f82 37 //TempMeter sensor2 = TempMeter(&dht);
Ka_myk 7:2393eb882f82 38 //
Ka_myk 7:2393eb882f82 39 //int config_interval = 30;
Ka_myk 7:2393eb882f82 40 //int sense_interval = 10;
Ka_myk 7:2393eb882f82 41 //
Ka_myk 7:2393eb882f82 42 //int config_time_left = 0;
Ka_myk 7:2393eb882f82 43 //int sense_time_left = 0;
Ka_myk 7:2393eb882f82 44 //
Ka_myk 7:2393eb882f82 45 //void check_for_new_config() {
Ka_myk 7:2393eb882f82 46 // uint8_t buffer[BUFFER_LEN];
Ka_myk 7:2393eb882f82 47 // int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri);
Ka_myk 7:2393eb882f82 48 // if(ret > 0) {
Ka_myk 7:2393eb882f82 49 // uint8_t sensor_id = 0;
Ka_myk 7:2393eb882f82 50 // int data = -1;
Ka_myk 7:2393eb882f82 51 // Msg::deconstruct_data_msg(&sensor_id, &data, buffer, ret);
Ka_myk 7:2393eb882f82 52 // DBG("INTERVAL: %d", data);
Ka_myk 7:2393eb882f82 53 // sense_interval = data;
Ka_myk 7:2393eb882f82 54 // }
Ka_myk 7:2393eb882f82 55 // DBG("GET: %d", ret);
Ka_myk 7:2393eb882f82 56 //}
Ka_myk 7:2393eb882f82 57 //
Ka_myk 7:2393eb882f82 58 //void collect_and_send_data() {
Ka_myk 7:2393eb882f82 59 // uint8_t buffer[DATA_BUFFER_LEN];
Ka_myk 7:2393eb882f82 60 // int data = sensor.read();
Ka_myk 7:2393eb882f82 61 // DBG("DATA: %d", data);
Ka_myk 7:2393eb882f82 62 // int sensor_id = sensor.getSensorId();
Ka_myk 7:2393eb882f82 63 // // TODO put sensor_id in URI, not in payload
Ka_myk 7:2393eb882f82 64 // Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
Ka_myk 7:2393eb882f82 65 // int ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri);
Ka_myk 7:2393eb882f82 66 // DBG("POST: %d", ret);
Ka_myk 7:2393eb882f82 67 //
Ka_myk 7:2393eb882f82 68 // data = sensor2.read();
Ka_myk 7:2393eb882f82 69 // DBG("TEMP: %d", data);
Ka_myk 7:2393eb882f82 70 // sensor_id = sensor2.getSensorId();
Ka_myk 7:2393eb882f82 71 // // TODO put sensor_id in URI, not in payload
Ka_myk 7:2393eb882f82 72 // Msg::construct_data_msg(sensor_id, data, buffer, DATA_BUFFER_LEN);
Ka_myk 7:2393eb882f82 73 // ret = coapClient.post(buffer, DATA_BUFFER_LEN, postUri2);
Ka_myk 7:2393eb882f82 74 // DBG("POST: %d", ret);
Ka_myk 7:2393eb882f82 75 //}
Ka_myk 7:2393eb882f82 76 //
Ka_myk 7:2393eb882f82 77 //bool start = false;
Ka_myk 7:2393eb882f82 78 //void send_packet() {
Ka_myk 7:2393eb882f82 79 // DBG("Start");
Ka_myk 7:2393eb882f82 80 // start = true;
Ka_myk 7:2393eb882f82 81 //}
Ka_myk 7:2393eb882f82 82 //
Ka_myk 7:2393eb882f82 83 //
Ka_myk 7:2393eb882f82 84 //int main() {
Ka_myk 7:2393eb882f82 85 // pc.baud(115200);
Ka_myk 7:2393eb882f82 86 // WakeUp::calibrate();
Ka_myk 7:2393eb882f82 87 // sensor.initialize();
Ka_myk 7:2393eb882f82 88 // sensor2.initialize();
Ka_myk 7:2393eb882f82 89 // DBG("RESTART");
Ka_myk 7:2393eb882f82 90 // int czas_na_spanko = 1;
Ka_myk 7:2393eb882f82 91 // Timer t;
Ka_myk 7:2393eb882f82 92 // button.rise(&send_packet);
Ka_myk 7:2393eb882f82 93 // while(true) {
Ka_myk 7:2393eb882f82 94 // while(start) {
Ka_myk 7:2393eb882f82 95 // if (config_time_left <= 0) {
Ka_myk 7:2393eb882f82 96 // check_for_new_config();
Ka_myk 7:2393eb882f82 97 // config_time_left = config_interval;
Ka_myk 7:2393eb882f82 98 // }
Ka_myk 7:2393eb882f82 99 // if (sense_time_left <= 0) {
Ka_myk 7:2393eb882f82 100 // collect_and_send_data();
Ka_myk 7:2393eb882f82 101 // sense_time_left = sense_interval;
Ka_myk 7:2393eb882f82 102 // }
Ka_myk 7:2393eb882f82 103 //
Ka_myk 7:2393eb882f82 104 // czas_na_spanko = min(config_time_left, sense_time_left);
Ka_myk 7:2393eb882f82 105 // DBG("SPANKO: %d", czas_na_spanko);
Ka_myk 7:2393eb882f82 106 // if(czas_na_spanko > 0) {
Ka_myk 7:2393eb882f82 107 // t.stop();
Ka_myk 7:2393eb882f82 108 // //WakeUp::set(czas_na_spanko);
Ka_myk 7:2393eb882f82 109 // wait(czas_na_spanko);
Ka_myk 7:2393eb882f82 110 // t.reset();
Ka_myk 7:2393eb882f82 111 // t.start();
Ka_myk 7:2393eb882f82 112 // config_time_left -= czas_na_spanko;
Ka_myk 7:2393eb882f82 113 // sense_time_left -= czas_na_spanko;
Ka_myk 7:2393eb882f82 114 // } else {
Ka_myk 7:2393eb882f82 115 // config_time_left -= t.read_ms();
Ka_myk 7:2393eb882f82 116 // t.stop();
Ka_myk 7:2393eb882f82 117 // t.reset();
Ka_myk 7:2393eb882f82 118 // t.start();
Ka_myk 7:2393eb882f82 119 // }
Ka_myk 7:2393eb882f82 120 // }
Ka_myk 7:2393eb882f82 121 // }
Ka_myk 7:2393eb882f82 122 //}