Code for sensor nodes connected by radio receiver with gateway
Dependencies: mbed WakeUp coapRadioClient DHT11
mainMoisture.cpp
00001 //#include "sensor.h" 00002 //#include "humidityMeter.h" 00003 //#include "moistureMeter.h" 00004 //#include "mbed.h" 00005 //#include "msg.h" 00006 //#include "dbg.h" 00007 //#include "coapClient.h" 00008 //#include <string> 00009 // 00010 //// https://os.mbed.com/users/Sissors/code/WakeUp/ 00011 //#include "WakeUp.h" 00012 // 00013 //#define BUFFER_LEN 32 00014 //#define CHANNEL 4 00015 //#define RX_ADDRESS 0xABCDEF08 00016 //#define TX_ADDRESS 0xABCDEF12 00017 //#define DATA_RATE 1000 00018 //#define RETRANSMITS 4 00019 // 00020 //char postUri[] = "/moist"; 00021 //char getConfUri[] = "/conf/moist"; 00022 // 00023 //Serial pc(USBTX, USBRX); // tx, rx 00024 //PinName pinA = PinName(PC_0); 00025 //uint8_t token[] = {3}; 00026 //CoapClient coapClient = CoapClient(3,token, RETRANSMITS, DATA_RATE, CHANNEL, RX_ADDRESS, TX_ADDRESS); 00027 //InterruptIn button(USER_BUTTON); 00028 // 00029 // 00030 //// TODO #ifdef 00031 //MoistureMeter sensor = MoistureMeter(pinA); 00032 // 00033 //int config_interval = 30; 00034 //int sense_interval = 10; 00035 // 00036 //int config_time_left = 0; 00037 //int sense_time_left = 0; 00038 // 00039 //void check_for_new_config() { 00040 // DBG("************ ASKING FOR NEW CONFIG..."); 00041 // uint8_t buffer[BUFFER_LEN]; 00042 // uint8_t sensor_id; 00043 // int new_interval; 00044 // int ret = coapClient.get(buffer, BUFFER_LEN, getConfUri); 00045 // if(ret > 0) { 00046 // Msg::deconstruct_data_msg(&sensor_id, &new_interval, buffer, BUFFER_LEN); 00047 // sense_interval = new_interval; 00048 // DBG("************ NEW INTERVAL IS %d.", sense_interval); 00049 // } 00050 // DBG("************ GET RET: %d", ret); 00051 //} 00052 // 00053 //void collect_and_send_data() { 00054 // uint8_t buffer[10]; 00055 // int data = sensor.read(); 00056 // int sensor_id = sensor.getSensorId(); 00057 // // TODO put sensor_id in URI, not in payload 00058 // DBG("************ SENDING VALUE %d...", data); 00059 // Msg::construct_data_msg(sensor_id, data, buffer, 10); 00060 // int ret = coapClient.post(buffer, 10, postUri); 00061 // DBG("************ POST RET: %d", ret); 00062 //} 00063 // 00064 //bool start = false; 00065 //void send_packet() { 00066 // DBG("Start"); 00067 // start = true; 00068 //} 00069 // 00070 // 00071 //int main() { 00072 // pc.baud(115200); 00073 // WakeUp::calibrate(); 00074 // sensor.initialize(); 00075 // DBG("RESTART"); 00076 // int czas_na_spanko = 1; 00077 // Timer t; 00078 // button.rise(&send_packet); 00079 // while(true) { 00080 // while(start) { 00081 // if (config_time_left <= 0) { 00082 // check_for_new_config(); 00083 // config_time_left = config_interval; 00084 // } 00085 // if (sense_time_left <= 0) { 00086 // collect_and_send_data(); 00087 // sense_time_left = sense_interval; 00088 // } 00089 // 00090 // czas_na_spanko = min(config_time_left, sense_time_left); 00091 // DBG("*********** Config time left %d.", config_time_left); 00092 // DBG("*********** Sense time left %d.", sense_time_left); 00093 // DBG("*********** Interval %d.", sense_interval); 00094 // DBG("*********** Czas na spanko to %d.", czas_na_spanko); 00095 // if(czas_na_spanko > 0) { 00096 // t.stop(); 00097 // wait(czas_na_spanko); 00098 // t.reset(); 00099 // t.start(); 00100 // config_time_left -= czas_na_spanko; 00101 // sense_time_left -= czas_na_spanko; 00102 // } else { 00103 // config_time_left -= t.read_ms(); 00104 // t.stop(); 00105 // t.reset(); 00106 // t.start(); 00107 // } 00108 // } 00109 // } 00110 //}
Generated on Fri Jul 15 2022 10:06:21 by 1.7.2