LoRa_Node_STM32F103C8T6
Dependencies: mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node
Thermometer.cpp@9:bc6233d6a997, 2021-05-08 (annotated)
- Committer:
- lukas_formanek
- Date:
- Sat May 08 16:04:09 2021 +0000
- Revision:
- 9:bc6233d6a997
- Parent:
- 8:978eb43296ae
Lora_Node
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lukas_formanek | 0:cc04364f049a | 1 | #include "Thermometer.h" |
lukas_formanek | 0:cc04364f049a | 2 | |
lukas_formanek | 9:bc6233d6a997 | 3 | const double voltage_divider_ref = V_BATT_REFF * (1.0/(1.0+1.6)); // max uroven napatia na delici |
lukas_formanek | 9:bc6233d6a997 | 4 | |
lukas_formanek | 9:bc6233d6a997 | 5 | Thermometer thermometer(true, true, false, THERM_PIN, BATTERY_PIN, FOTO_PIN); |
lukas_formanek | 5:6e899f5db65e | 6 | |
lukas_formanek | 9:bc6233d6a997 | 7 | Thermometer::Thermometer(bool crcOn, bool useAddr, bool parasitic, PinName pinThermometer, PinName bat, PinName fot) |
lukas_formanek | 9:bc6233d6a997 | 8 | : thermometer(crcOn, useAddr, parasitic, pinThermometer), |
lukas_formanek | 9:bc6233d6a997 | 9 | battery(bat), |
lukas_formanek | 9:bc6233d6a997 | 10 | foto(fot) |
lukas_formanek | 0:cc04364f049a | 11 | { |
lukas_formanek | 0:cc04364f049a | 12 | meassuredValue = 0.0; |
lukas_formanek | 9:bc6233d6a997 | 13 | batteryValue = 0.0; |
lukas_formanek | 9:bc6233d6a997 | 14 | fotoValue = 0.0; |
lukas_formanek | 5:6e899f5db65e | 15 | intervalSeconds = MEASURE_INTERVAL; |
lukas_formanek | 5:6e899f5db65e | 16 | counter = 0; |
lukas_formanek | 0:cc04364f049a | 17 | }; |
lukas_formanek | 0:cc04364f049a | 18 | |
lukas_formanek | 0:cc04364f049a | 19 | void Thermometer::Init() |
lukas_formanek | 0:cc04364f049a | 20 | { |
lukas_formanek | 0:cc04364f049a | 21 | thermometer.initialize(); |
lukas_formanek | 6:531b8dccca06 | 22 | thermometer.setResolution(THERMOMETER_RESOLUTION); |
lukas_formanek | 0:cc04364f049a | 23 | }; |
lukas_formanek | 0:cc04364f049a | 24 | |
lukas_formanek | 5:6e899f5db65e | 25 | void Thermometer::StartPeriodicMeassure(int seconds) |
lukas_formanek | 0:cc04364f049a | 26 | { |
lukas_formanek | 8:978eb43296ae | 27 | counter = 0; |
lukas_formanek | 6:531b8dccca06 | 28 | Meassure(); |
lukas_formanek | 6:531b8dccca06 | 29 | intervalSeconds = seconds; |
lukas_formanek | 9:bc6233d6a997 | 30 | // thermometerTicker.attach_us(this,&Thermometer::OnSampleTick,1000000); // kazdu sekundu |
lukas_formanek | 9:bc6233d6a997 | 31 | thermometerTicker.attach(this,&Thermometer::OnSampleTick,1.0); // kazdu sekundu |
lukas_formanek | 5:6e899f5db65e | 32 | }; |
lukas_formanek | 5:6e899f5db65e | 33 | |
lukas_formanek | 5:6e899f5db65e | 34 | void Thermometer::StopPeriodicMeassure() |
lukas_formanek | 5:6e899f5db65e | 35 | { |
lukas_formanek | 8:978eb43296ae | 36 | counter = 0; |
lukas_formanek | 6:531b8dccca06 | 37 | thermometerTicker.detach(); |
lukas_formanek | 0:cc04364f049a | 38 | }; |
lukas_formanek | 0:cc04364f049a | 39 | |
lukas_formanek | 1:a54ff5e2c2f3 | 40 | void Thermometer::Meassure() |
lukas_formanek | 0:cc04364f049a | 41 | { |
lukas_formanek | 0:cc04364f049a | 42 | meassuredValue = thermometer.readTemperature(); |
lukas_formanek | 9:bc6233d6a997 | 43 | batteryValue = ((battery.read()*3.3)/voltage_divider_ref)*V_BATT_REFF; |
lukas_formanek | 9:bc6233d6a997 | 44 | fotoValue = foto.read_u16(); |
lukas_formanek | 0:cc04364f049a | 45 | while((rint(meassuredValue)) == 85) { |
lukas_formanek | 0:cc04364f049a | 46 | Init(); |
lukas_formanek | 0:cc04364f049a | 47 | meassuredValue = thermometer.readTemperature(); |
lukas_formanek | 9:bc6233d6a997 | 48 | batteryValue = ((battery.read()*3.3)/voltage_divider_ref)*V_BATT_REFF; |
lukas_formanek | 9:bc6233d6a997 | 49 | fotoValue = foto.read_u16(); |
lukas_formanek | 0:cc04364f049a | 50 | } |
lukas_formanek | 9:bc6233d6a997 | 51 | rfm.SendValue(GATEWAY_ID, meassuredValue, fotoValue, batteryValue); |
lukas_formanek | 5:6e899f5db65e | 52 | }; |
lukas_formanek | 0:cc04364f049a | 53 | |
lukas_formanek | 1:a54ff5e2c2f3 | 54 | void Thermometer::OnSampleTick() |
lukas_formanek | 1:a54ff5e2c2f3 | 55 | { |
lukas_formanek | 5:6e899f5db65e | 56 | counter++; |
lukas_formanek | 9:bc6233d6a997 | 57 | if(counter >= 60) { |
lukas_formanek | 8:978eb43296ae | 58 | counter = 0; |
lukas_formanek | 5:6e899f5db65e | 59 | Meassure(); |
lukas_formanek | 5:6e899f5db65e | 60 | } |
lukas_formanek | 0:cc04364f049a | 61 | }; |