Code for sensor nodes connected by radio receiver with gateway
Dependencies: mbed WakeUp coapRadioClient DHT11
mainHumidity.cpp@7:2393eb882f82, 2019-01-25 (annotated)
- 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?
User | Revision | Line number | New 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 | //} |