25 constexpr float VCC = 3.3f;
26 constexpr float R_REF = 100000.0f;
28 R_REF * voltage / (VCC - voltage);
31 constexpr float B = 3950.0f;
32 constexpr float T0 = 298.15f;
33 constexpr float R0 = 10000.0f;
36 float temp = 1.0f / (1.0f / T0 + (1.0f / B) * log(r_ntc / R0)) - 273.15f;
42 constexpr float VCC = 3.3f;
43 constexpr float R_REF = 100000.0f;
45 R_REF * voltage / (VCC - voltage);
48 constexpr float K = 1500000.0f;
49 constexpr float GAMMA = 1.5f;
50 float lux = K / pow(r_photo, GAMMA);
53 light_queue_.push_front(lux);
54 if (light_queue_.size() > 50) {
56 for (
auto l : light_queue_) avg += l;
57 avg /= light_queue_.size();
61 static int counter = 0;
63 if (gui_) gui_->
SetLight(
static_cast<uint8_t
>(light_ / 20 + 1));
68 light_queue_.pop_back();
74 float GetTemperature()
const {
return temperature_; }
77 float GetLight()
const {
return light_; }
80 float GetHumidity()
const {
return aht_ ? aht_->GetHumidity() : 0.0f; }
83 float GetCompensatedTemperature()
const {
84 return aht_ ? aht_->GetTemperature() : 0.0f;
88 float GetPressure()
const {
return bmp_ ? bmp_->
ReadPressure() : 0.0f; }
92 Aht20* aht_ =
nullptr;
97 float temperature_ = 0.0f;
101 std::deque<float> light_queue_;