Some modifications to reduce power consumption i AP mode

This commit is contained in:
Gunnar Skjold
2020-01-23 18:47:02 +01:00
parent 8ee713b616
commit aef78962fb
2 changed files with 14 additions and 5 deletions

View File

@@ -28,8 +28,8 @@ void HanConfigAp::setup(int accessPointButtonPin, Stream* debugger)
// Assign pin for boot as AP
pinMode(accessPointButtonPin, INPUT_PULLUP);
// Test if we're holding down the AP pin, over 5 seconds
int time = millis() + 5000;
// Test if we're holding down the AP pin, over 1 second
int time = millis() + 1000;
print("Press the AP button now to boot as access point");
while (millis() < time)
{
@@ -55,8 +55,9 @@ void HanConfigAp::setup(int accessPointButtonPin, Stream* debugger)
WiFi.mode(WIFI_OFF);
delay(2000);
WiFi.softAP(AP_SSID);
WiFi.mode(WIFI_AP);
WiFi.setOutputPower(0);
WiFi.softAP(AP_SSID);
/* Setup the DNS server redirecting all the domains to this IP */
dnsServer.setErrorReplyCode(DNSReplyCode::NoError);

View File

@@ -73,13 +73,16 @@ void setup() {
while (!debugger);
debugger->println("");
debugger->println("Started...");
debugger->print("Voltage: ");
debugger->print(ESP.getVcc());
debugger->println("mV");
}
if (ESP.getVcc() < 3300) {
if(debugger) {
debugger->print("Voltage is too low: ");
debugger->print(ESP.getVcc());
debugger->println("v");
debugger->println("mV");
}
ESP.deepSleep(5000000); //Deep sleep for 5 seconds to allow output cap to charge up
}
@@ -138,8 +141,11 @@ void loop()
else
{
// Continously flash the LED when AP mode
if (millis() / 1000 % 2 == 0) led_on();
if (millis() / 50 % 64 == 0) led_on();
else led_off();
// Make sure there is enough power to run
delay(max(10, 3500-ESP.getVcc()));
}
ws.loop();
}
@@ -229,6 +235,7 @@ void readHanPort()
json["id"] = WiFi.macAddress();
json["up"] = millis();
json["t"] = time;
json["vcc"] = ((double) ESP.getVcc()) / 1000;
// Add a sub-structure to the json object,
// to keep the data from the meter itself
@@ -372,6 +379,7 @@ void sendMqttData(String data)
json["id"] = WiFi.macAddress();
json["up"] = millis();
json["data"] = data;
json["vcc"] = ((double) ESP.getVcc()) / 1000;
// Stringify the json
String msg;