40
40
#include "esp32/rom/rtc.h"
41
41
#elif CONFIG_IDF_TARGET_ESP32S2
42
42
#include "esp32s2/rom/rtc.h"
43
- #include "driver/temp_sensor .h"
43
+ #include "driver/temperature_sensor .h"
44
44
#elif CONFIG_IDF_TARGET_ESP32S3
45
45
#include "esp32s3/rom/rtc.h"
46
- #include "driver/temp_sensor .h"
46
+ #include "driver/temperature_sensor .h"
47
47
#elif CONFIG_IDF_TARGET_ESP32C3
48
48
#include "esp32c3/rom/rtc.h"
49
- #include "driver/temp_sensor .h"
49
+ #include "driver/temperature_sensor .h"
50
50
#else
51
51
#error Target CONFIG_IDF_TARGET is not supported
52
52
#endif
@@ -64,14 +64,38 @@ float temperatureRead()
64
64
return (temprature_sens_read () - 32 ) / 1.8 ;
65
65
}
66
66
#else
67
+ static temperature_sensor_handle_t temp_sensor = NULL ;
68
+
69
+ static bool temperatureReadInit ()
70
+ {
71
+ static volatile bool initialized = false;
72
+ if (!initialized ){
73
+ initialized = true;
74
+ //Install temperature sensor, expected temp ranger range: 10~50 ℃
75
+ temperature_sensor_config_t temp_sensor_config = TEMPERATURE_SENSOR_CONFIG_DEFAULT (10 , 50 );
76
+ if (temperature_sensor_install (& temp_sensor_config , & temp_sensor ) != ESP_OK ){
77
+ initialized = false;
78
+ temp_sensor = NULL ;
79
+ log_e ("temperature_sensor_install failed" );
80
+ }
81
+ else if (temperature_sensor_enable (temp_sensor ) != ESP_OK ){
82
+ temperature_sensor_uninstall (temp_sensor );
83
+ initialized = false;
84
+ temp_sensor = NULL ;
85
+ log_e ("temperature_sensor_enable failed" );
86
+ }
87
+ }
88
+ return initialized ;
89
+ }
90
+
67
91
float temperatureRead ()
68
92
{
69
93
float result = NAN ;
70
- temp_sensor_config_t tsens = TSENS_CONFIG_DEFAULT ();
71
- temp_sensor_set_config ( tsens );
72
- temp_sensor_start ( );
73
- temp_sensor_read_celsius ( & result );
74
- temp_sensor_stop ();
94
+ if ( temperatureReadInit ()){
95
+ if ( temperature_sensor_get_celsius ( temp_sensor , & result ) != ESP_OK ){
96
+ log_e ( "temperature_sensor_get_celsius failed" );
97
+ }
98
+ }
75
99
return result ;
76
100
}
77
101
#endif
0 commit comments