measurement of vcc, calculation of battery lifetime

This commit is contained in:
Wolfgang Hottgenroth 2017-08-16 23:37:14 +02:00
parent 5a962d8835
commit b577f3992a
2 changed files with 22 additions and 2 deletions

BIN
Batterielaufzeit.xlsx Normal file

Binary file not shown.

View File

@ -1,4 +1,5 @@
#define ESP8266 #define ESP8266
#define MQTT_MAX_PACKET_SIZE 256
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
@ -8,6 +9,10 @@
#include <DallasTemperature.h> #include <DallasTemperature.h>
ADC_MODE(ADC_VCC);
// #define DEBUG // #define DEBUG
#define SLEEP #define SLEEP
@ -49,6 +54,8 @@ void setup() {
Serial.println("Starting ..."); Serial.println("Starting ...");
#endif #endif
setup_wifi(); setup_wifi();
client.setServer(mqttServer, mqttPort); client.setServer(mqttServer, mqttPort);
@ -143,13 +150,23 @@ void read_thermometer() {
int16_t t1 = (int)t; int16_t t1 = (int)t;
int16_t t2 = (int)((t - t1)*100); int16_t t2 = (int)((t - t1)*100);
uint32_t duration = millis() - startTime;
uint16_t vcc = ESP.getVcc();
#ifdef DEBUG
Serial.print(vcc);
Serial.println();
#endif
uint32_t duration = millis() - startTime;
//char topic[128]; //char topic[128];
//snprintf(topic, 127, "IoT/espThermometer2/%s/measurement", WiFi.macAddress().c_str()); //snprintf(topic, 127, "IoT/espThermometer2/%s/measurement", WiFi.macAddress().c_str());
char payload[128]; char payload[128];
snprintf(payload, 127, "%d.%d %ld", t1, t2, duration); snprintf(payload, 127, "%s %d.%d %ld %ld", clientId, t1, t2, vcc, duration);
#ifdef DEBUG
Serial.println(payload);
#endif
client.publish(topic, payload, true); client.publish(topic, payload, true);
@ -165,10 +182,13 @@ void loop() {
read_thermometer(); read_thermometer();
#ifdef SLEEP #ifdef SLEEP
#ifdef DEBUG #ifdef DEBUG
Serial.println("Sleeping"); Serial.println("Sleeping");
#endif #endif
client.disconnect();
ESP.deepSleep(sleepTime * 1000000); ESP.deepSleep(sleepTime * 1000000);
#endif #endif
} }