include battery voltage in current weather

master
Kenneth Barbour 2020-06-12 23:08:43 -04:00
parent e02a6066f3
commit 83c1f2fa35
2 changed files with 28 additions and 2 deletions

19
src/battery.h 100644
View File

@ -0,0 +1,19 @@
#ifndef _UWEATHER_BATTERY_H_
#define _UWEATHER_BATTERY_H_
#include <Arduino.h>
const int BATT_IN_PIN = A0;
double battery_read_voltage()
{
int acc = analogRead(BATT_IN_PIN);
int i = 0;
while (i < 10) {
acc += analogRead(BATT_IN_PIN);
i++;
}
return (double) acc * .00042; // TODO: check this against a multimeter
}
#endif /** _UWEATHER_BATTERY_H_ include guard */

View File

@ -6,6 +6,7 @@
#include <QueryString.h> #include <QueryString.h>
#include "config.h" #include "config.h"
#include "version.h" #include "version.h"
#include "battery.h"
/** /**
* How long to wait after the OK to shutdown before no longer * How long to wait after the OK to shutdown before no longer
@ -80,13 +81,19 @@ void handle_firmware(HttpRequest& req, HttpResponse& res)
void handle_weather_current(HttpRequest& req, HttpResponse& res) void handle_weather_current(HttpRequest& req, HttpResponse& res)
{ {
char buff[3][10] = {}; char buff[4][10] = {};
dtostrf(BME.readTemperature(), 2, 1, buff[0]); dtostrf(BME.readTemperature(), 2, 1, buff[0]);
dtostrf(BME.readPressure(), 2, 1, buff[1]); dtostrf(BME.readPressure(), 2, 1, buff[1]);
dtostrf(BME.readHumidity(), 2, 1, buff[2]); dtostrf(BME.readHumidity(), 2, 1, buff[2]);
dtostrf(battery_read_voltage(), 2, 1, buff[3]);
Serial.printf("temp= %s, pres= %s, hum=%s\r\n", buff[0], buff[1], buff[2]); Serial.printf("temp= %s, pres= %s, hum=%s\r\n", buff[0], buff[1], buff[2]);
res.headers.set("Content-Type", "application/json"); res.headers.set("Content-Type", "application/json");
content.printf("{\"time\": null, \"temperature\": %s, \"pressure\": %s, \"humidity\": %s}", buff[0], buff[1], buff[2]); content.printf("{\"time\": null, \"temperature\": %s, \"pressure\": %s, \"humidity\": %s, \"battery_voltage\": %s}",
buff[0],
buff[1],
buff[2],
buff[3]
);
} }
// Handle WiFi Scan // Handle WiFi Scan