Fix internal temperature reading on ESP32 (#1391)
The previous macro used SENS_SAR_MEAS_WAIT2_REG to identify if we have the reading capability was not working, so replacing it by a fresh one NO_INT_TEMP_READING, defined as a negation due to the fact that most of the ESP32 supports internal temperature reading.
This commit is contained in:
1 parent
ad97e9a677
commit
76b5e9269f
5 files changed
+8
-6
No files matched your search
@@ -501,6 +501,7 @@ CRGB leds[FASTLED_IND_NUM_LEDS];
|
|||||||
//# define TRIGGER_GPIO 14 // pin D5 as full reset button (long press >10s)
|
//# define TRIGGER_GPIO 14 // pin D5 as full reset button (long press >10s)
|
||||||
#elif ESP32
|
#elif ESP32
|
||||||
//# define TRIGGER_GPIO 0 // boot button as full reset button (long press >10s)
|
//# define TRIGGER_GPIO 0 // boot button as full reset button (long press >10s)
|
||||||
|
//# define NO_INT_TEMP_READING true //Define if we don't want internal temperature reading for the ESP32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// VCC ------------D|-----------/\/\/\/\ ----------------- Arduino PIN
|
// VCC ------------D|-----------/\/\/\/\ ----------------- Arduino PIN
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ void MQTTtoONOFF(char* topicOri, char* datacallback) {
|
|||||||
//Check regularly temperature of the ESP32 board and switch OFF the relay if temperature is more than MAX_TEMP_ACTUATOR
|
//Check regularly temperature of the ESP32 board and switch OFF the relay if temperature is more than MAX_TEMP_ACTUATOR
|
||||||
# ifdef MAX_TEMP_ACTUATOR
|
# ifdef MAX_TEMP_ACTUATOR
|
||||||
void OverHeatingRelayOFF() {
|
void OverHeatingRelayOFF() {
|
||||||
# if defined(ESP32) && defined(SENS_SAR_MEAS_WAIT2_REG) // This macro is necessary to retrieve temperature and not present with S3 and C3 environment
|
# if defined(ESP32) && !defined(NO_INT_TEMP_READING)
|
||||||
if (millis() > (timeinttemp + TimeBetweenReadingIntTemp)) {
|
if (millis() > (timeinttemp + TimeBetweenReadingIntTemp)) {
|
||||||
float internalTempc = intTemperatureRead();
|
float internalTempc = intTemperatureRead();
|
||||||
Log.trace(F("Internal temperature of the ESP32 %F" CR), internalTempc);
|
Log.trace(F("Internal temperature of the ESP32 %F" CR), internalTempc);
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ void pubMqttDiscovery() {
|
|||||||
);
|
);
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# ifdef ESP32
|
# if defined(ESP32) && !defined(NO_INT_TEMP_READING)
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Internal temperature", (char*)getUniqueId("tempc", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Internal temperature", (char*)getUniqueId("tempc", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "temperature", "{{ value_json.tempc }}", //set availability_topic,device_class,value_template,
|
"", "temperature", "{{ value_json.tempc }}", //set availability_topic,device_class,value_template,
|
||||||
|
|||||||
+3
-4
@@ -227,8 +227,7 @@ static String ota_server_cert = "";
|
|||||||
# include <nvs_flash.h>
|
# include <nvs_flash.h>
|
||||||
|
|
||||||
bool ProcessLock = false; // Process lock when we want to use a critical function like OTA for example
|
bool ProcessLock = false; // Process lock when we want to use a critical function like OTA for example
|
||||||
|
# if !defined(NO_INT_TEMP_READING)
|
||||||
# if defined(SENS_SAR_MEAS_WAIT2_REG)
|
|
||||||
// ESP32 internal temperature reading
|
// ESP32 internal temperature reading
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
|
|
||||||
@@ -1651,7 +1650,7 @@ unsigned long uptime() {
|
|||||||
/**
|
/**
|
||||||
* Calculate internal ESP32 temperature
|
* Calculate internal ESP32 temperature
|
||||||
*/
|
*/
|
||||||
#if defined(ESP32) && defined(SENS_SAR_MEAS_WAIT2_REG)
|
#if defined(ESP32) && !defined(NO_INT_TEMP_READING)
|
||||||
float intTemperatureRead() {
|
float intTemperatureRead() {
|
||||||
SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT2_REG, SENS_FORCE_XPD_SAR, 3, SENS_FORCE_XPD_SAR_S);
|
SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT2_REG, SENS_FORCE_XPD_SAR, 3, SENS_FORCE_XPD_SAR_S);
|
||||||
SET_PERI_REG_BITS(SENS_SAR_TSENS_CTRL_REG, SENS_TSENS_CLK_DIV, 10, SENS_TSENS_CLK_DIV_S);
|
SET_PERI_REG_BITS(SENS_SAR_TSENS_CTRL_REG, SENS_TSENS_CLK_DIV, 10, SENS_TSENS_CLK_DIV_S);
|
||||||
@@ -1681,7 +1680,7 @@ void stateMeasures() {
|
|||||||
SYSdata["mqttport"] = mqtt_port;
|
SYSdata["mqttport"] = mqtt_port;
|
||||||
SYSdata["mqttsecure"] = mqtt_secure;
|
SYSdata["mqttsecure"] = mqtt_secure;
|
||||||
# ifdef ESP32
|
# ifdef ESP32
|
||||||
# ifdef SENS_SAR_MEAS_WAIT2_REG // This macro is necessary to retrieve temperature and not present with S3 and C3 environment
|
# ifndef NO_INT_TEMP_READING
|
||||||
SYSdata["tempc"] = intTemperatureRead();
|
SYSdata["tempc"] = intTemperatureRead();
|
||||||
# endif
|
# endif
|
||||||
SYSdata["freestack"] = uxTaskGetStackHighWaterMark(NULL);
|
SYSdata["freestack"] = uxTaskGetStackHighWaterMark(NULL);
|
||||||
|
|||||||
@@ -1512,6 +1512,7 @@ build_flags =
|
|||||||
'-DFASTLED_IND_TYPE=NEOPIXEL'
|
'-DFASTLED_IND_TYPE=NEOPIXEL'
|
||||||
'-DFASTLED_IND_NUM_LEDS=1'
|
'-DFASTLED_IND_NUM_LEDS=1'
|
||||||
'-DRGB_INDICATORS=true'
|
'-DRGB_INDICATORS=true'
|
||||||
|
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
|
||||||
'-DGateway_Name="OpenMQTTGateway_ESP32_BLE"'
|
'-DGateway_Name="OpenMQTTGateway_ESP32_BLE"'
|
||||||
|
|
||||||
[env:esp32c3-dev-m1-ble]
|
[env:esp32c3-dev-m1-ble]
|
||||||
@@ -1531,6 +1532,7 @@ build_flags =
|
|||||||
'-DFASTLED_IND_TYPE=NEOPIXEL'
|
'-DFASTLED_IND_TYPE=NEOPIXEL'
|
||||||
'-DFASTLED_IND_NUM_LEDS=1'
|
'-DFASTLED_IND_NUM_LEDS=1'
|
||||||
'-DRGB_INDICATORS=true'
|
'-DRGB_INDICATORS=true'
|
||||||
|
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
|
||||||
'-DGateway_Name="OpenMQTTGateway_ESP32_BLE"'
|
'-DGateway_Name="OpenMQTTGateway_ESP32_BLE"'
|
||||||
|
|
||||||
[env:thingpulse-espgateway]
|
[env:thingpulse-espgateway]
|
||||||
|
|||||||
Reference in new issue
Block a user