Code for sensor nodes connected by radio receiver with gateway
Dependencies: mbed WakeUp coapRadioClient DHT11
mainMoisture.cpp@7:2393eb882f82, 2019-01-25 (annotated)
- Committer:
- Ka_myk
- Date:
- Fri Jan 25 12:11:18 2019 +0000
- Revision:
- 7:2393eb882f82
inrement message id
Who changed what in which revision?
User | Revision | Line number | New 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 | //} |