Browse Source

calculate voltage

main
Hendrik Langer 5 years ago
parent
commit
e8cc27dc50
  1. 15
      src/main.cpp

15
src/main.cpp

@ -84,14 +84,14 @@ struct __attribute__((packed)) sensor_readings_t {
uint32_t voc = 0; // Ohm uint32_t voc = 0; // Ohm
float pm10 = NAN; // µg/m³ float pm10 = NAN; // µg/m³
float pm25 = NAN; // µg/m³ float pm25 = NAN; // µg/m³
float lux = NAN; float lux = NAN; // lx
float uvi = NAN; float uvi = NAN;
float uva = NAN; float uva = NAN;
float uvb = NAN; float uvb = NAN;
float temperature_max = NAN; // °C float temperature_max = NAN; // °C
float temperature_min = NAN; // °C float temperature_min = NAN; // °C
int battery = 0; float voltage = NAN; // V
int8_t rssi = 0; int8_t rssi = 0; // dBm
time_t lastUpdate = 0; time_t lastUpdate = 0;
} sensor_readings; } sensor_readings;
@ -371,11 +371,12 @@ void getSensorMeasurements() {
} }
} }
sensor_readings.battery = analogRead(_VBAT); int battery = analogRead(_VBAT);
sensor_readings.voltage = (battery/4096.0)*2*3.42;
sensor_readings.rssi = WiFi.RSSI(); sensor_readings.rssi = WiFi.RSSI();
ESP_LOGI(TAG, "RSSI : %5d dBm", sensor_readings.rssi); ESP_LOGI(TAG, "RSSI : %5d dBm", sensor_readings.rssi);
ESP_LOGI(TAG, "Battery : %5d ", sensor_readings.battery); ESP_LOGI(TAG, "Battery : %5d ", battery);
ESP_LOGI(TAG, "Heap : %5lu", ESP.getFreeHeap()); ESP_LOGI(TAG, "Heap : %5lu", ESP.getFreeHeap());
sensor_readings.lastUpdate = getTimestamp(); sensor_readings.lastUpdate = getTimestamp();
@ -417,7 +418,7 @@ void receiveMqtt(const char* topic, const char* data, int data_len) {
if (jsonDoc.containsKey("uvb")) sensor->uvb = jsonDoc["uvb"].as<float>(); if (jsonDoc.containsKey("uvb")) sensor->uvb = jsonDoc["uvb"].as<float>();
if (jsonDoc.containsKey("pm10")) sensor->pm10 = jsonDoc["pm10"].as<float>(); if (jsonDoc.containsKey("pm10")) sensor->pm10 = jsonDoc["pm10"].as<float>();
if (jsonDoc.containsKey("pm2.5")) sensor->pm25 = jsonDoc["pm2.5"].as<float>(); if (jsonDoc.containsKey("pm2.5")) sensor->pm25 = jsonDoc["pm2.5"].as<float>();
if (jsonDoc.containsKey("voltage")) sensor->battery = jsonDoc["voltage"].as<int>(); if (jsonDoc.containsKey("voltage")) sensor->voltage = jsonDoc["voltage"].as<float>();
if (jsonDoc.containsKey("rssi")) sensor->rssi = jsonDoc["rssi"].as<int8_t>(); if (jsonDoc.containsKey("rssi")) sensor->rssi = jsonDoc["rssi"].as<int8_t>();
if (jsonDoc.containsKey("timestamp")) sensor->lastUpdate = jsonDoc["timestamp"].as<time_t>(); if (jsonDoc.containsKey("timestamp")) sensor->lastUpdate = jsonDoc["timestamp"].as<time_t>();
ESP_LOGI(TAG, "got new values from %s, timestamp: %lu", topic, sensor->lastUpdate); ESP_LOGI(TAG, "got new values from %s, timestamp: %lu", topic, sensor->lastUpdate);
@ -670,7 +671,7 @@ void sendValues() {
jsonDoc["pm10"] = sensor_readings.pm10; jsonDoc["pm10"] = sensor_readings.pm10;
jsonDoc["pm2.5"] = sensor_readings.pm25; jsonDoc["pm2.5"] = sensor_readings.pm25;
} }
jsonDoc["voltage"] = sensor_readings.battery; jsonDoc["voltage"] = sensor_readings.voltage;
jsonDoc["rssi"] = sensor_readings.rssi; jsonDoc["rssi"] = sensor_readings.rssi;
jsonDoc["timestamp"] = sensor_readings.lastUpdate; jsonDoc["timestamp"] = sensor_readings.lastUpdate;
serializeJson(jsonDoc, buf, JSON_BUF_LEN); serializeJson(jsonDoc, buf, JSON_BUF_LEN);

Loading…
Cancel
Save