LoRa_Node_STM32F103C8T6
Dependencies: mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node
Thermometer.cpp
- Committer:
- lukas_formanek
- Date:
- 2021-05-08
- Revision:
- 9:bc6233d6a997
- Parent:
- 8:978eb43296ae
File content as of revision 9:bc6233d6a997:
#include "Thermometer.h" const double voltage_divider_ref = V_BATT_REFF * (1.0/(1.0+1.6)); // max uroven napatia na delici Thermometer thermometer(true, true, false, THERM_PIN, BATTERY_PIN, FOTO_PIN); Thermometer::Thermometer(bool crcOn, bool useAddr, bool parasitic, PinName pinThermometer, PinName bat, PinName fot) : thermometer(crcOn, useAddr, parasitic, pinThermometer), battery(bat), foto(fot) { meassuredValue = 0.0; batteryValue = 0.0; fotoValue = 0.0; intervalSeconds = MEASURE_INTERVAL; counter = 0; }; void Thermometer::Init() { thermometer.initialize(); thermometer.setResolution(THERMOMETER_RESOLUTION); }; void Thermometer::StartPeriodicMeassure(int seconds) { counter = 0; Meassure(); intervalSeconds = seconds; // thermometerTicker.attach_us(this,&Thermometer::OnSampleTick,1000000); // kazdu sekundu thermometerTicker.attach(this,&Thermometer::OnSampleTick,1.0); // kazdu sekundu }; void Thermometer::StopPeriodicMeassure() { counter = 0; thermometerTicker.detach(); }; void Thermometer::Meassure() { meassuredValue = thermometer.readTemperature(); batteryValue = ((battery.read()*3.3)/voltage_divider_ref)*V_BATT_REFF; fotoValue = foto.read_u16(); while((rint(meassuredValue)) == 85) { Init(); meassuredValue = thermometer.readTemperature(); batteryValue = ((battery.read()*3.3)/voltage_divider_ref)*V_BATT_REFF; fotoValue = foto.read_u16(); } rfm.SendValue(GATEWAY_ID, meassuredValue, fotoValue, batteryValue); }; void Thermometer::OnSampleTick() { counter++; if(counter >= 60) { counter = 0; Meassure(); } };