[LPM] ESP8266 and DS1820 DeepSleep (#1591)

Add support for the ESP8266 deep sleep and required change for DS1820 sensor used in my project.

Allow defining DS1820_RESOLUTION and DS1820_INTERVAL_SEC in ENVIRON without editing config file.

Allow DTimeBetweenReadingmq2 Env. MACRO change without editing source config file.

Added some an example ENVIRONMENTS

Add ESP8266_DEEP_SLEEP_IN_US to nodemcuv2-all-test
This commit is contained in:
Die Peter Pan authored and GitHub committed 2023-04-09 17:03:13 -05:00
1 parent ac0215b5be
commit 4e51d9ec45
8 files changed
+113 -8

No files matched your search

+24
View File
@@ -53,6 +53,14 @@ unsigned long timer_sys_checks = 0;
# define ARDUINOJSON_ENABLE_STD_STRING 1
#endif
/**
* Deep-sleep for the ESP8266 we need some form of indicator that we have posted the measurements and am ready to deep sleep.
* Set this to true in the sensor code after publishing the measurement.
*/
#ifdef ESP8266_DEEP_SLEEP_IN_US
bool ready_to_sleep = false;
#endif
#include <ArduinoJson.h>
#include <ArduinoLog.h>
#include <PubSubClient.h>
@@ -771,6 +779,11 @@ void setup() {
Log.notice(F("OpenMQTTGateway Version: " OMG_VERSION CR));
# endif
# ifdef ESP8266_DEEP_SLEEP_IN_US
Log.notice(F("Setting wake pin for deep sleep." CR));
pinMode(ESP8266_DEEP_SLEEP_WAKE_PIN, WAKEUP_PULLUP);
# endif
/*
The 2 modules below are not connection dependent so start them before the connectivity functions
Note that the ONOFF module need to start after the RN8209 so that the overCurrent task is launched after the setup of the sensor
@@ -1779,6 +1792,17 @@ void loop() {
#if defined(ZdisplaySSD1306)
loopSSD1306();
#endif
/**
* Deep-sleep for the ESP8266 - e.g. ESP8266_DEEP_SLEEP_IN_US 30000000 for 30 seconds.
* Everything is off and (almost) all execution state is lost.
*/
#ifdef ESP8266_DEEP_SLEEP_IN_US
if (ready_to_sleep) {
Log.notice(F("Entering deep sleep for : %l us." CR), ESP8266_DEEP_SLEEP_IN_US);
ESP.deepSleep(ESP8266_DEEP_SLEEP_IN_US);
}
#endif
}
/**