kopia lustrzana https://github.com/micropython/micropython
Merge a897e95ddf
into 7b050b366b
commit
3167235ff6
|
@ -18,6 +18,9 @@ working with this board it may be useful to get an overview of the microcontroll
|
||||||
general.rst
|
general.rst
|
||||||
tutorial/index.rst
|
tutorial/index.rst
|
||||||
|
|
||||||
|
Note that there are several varieties of ESP32- ESP32, ESP32C3, ESP32S2, ESP32S3 supported by MicroPython,
|
||||||
|
with some differences in functionality between them.
|
||||||
|
|
||||||
Installing MicroPython
|
Installing MicroPython
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -58,12 +61,19 @@ The :mod:`esp32` module::
|
||||||
import esp32
|
import esp32
|
||||||
|
|
||||||
esp32.raw_temperature() # read the internal temperature of the MCU, in Fahrenheit
|
esp32.raw_temperature() # read the internal temperature of the MCU, in Fahrenheit
|
||||||
esp32.ULP() # access to the Ultra-Low-Power Co-processor
|
esp32.ULP() # access to the Ultra-Low-Power Co-processor, not on ESP32C3
|
||||||
|
|
||||||
Note that the temperature sensor in the ESP32 will typically read higher than
|
Note that the temperature sensor in the ESP32 will typically read higher than
|
||||||
ambient due to the IC getting warm while it runs. This effect can be minimised
|
ambient due to the IC getting warm while it runs. This effect can be minimised
|
||||||
by reading the temperature sensor immediately after waking up from sleep.
|
by reading the temperature sensor immediately after waking up from sleep.
|
||||||
|
|
||||||
|
ESP32C3, ESP32S2, and ESP32S3 also have an internal sensor available.
|
||||||
|
It is implemented a bit differently than the ESP32 and returns
|
||||||
|
temperature in Celsius::
|
||||||
|
|
||||||
|
esp32.mcu_temperature() # read the internal temperature of the MCU, in Celsius
|
||||||
|
|
||||||
|
|
||||||
Networking
|
Networking
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|
|
@ -168,6 +168,25 @@ static mp_obj_t esp32_raw_temperature(void) {
|
||||||
}
|
}
|
||||||
static MP_DEFINE_CONST_FUN_OBJ_0(esp32_raw_temperature_obj, esp32_raw_temperature);
|
static MP_DEFINE_CONST_FUN_OBJ_0(esp32_raw_temperature_obj, esp32_raw_temperature);
|
||||||
|
|
||||||
|
#else
|
||||||
|
// IDF 5 exposes new internal temperature interface, and the ESP32C3/S2/S3
|
||||||
|
// now have calibrated temperature settings in 5 discrete ranges.
|
||||||
|
#include "driver/temperature_sensor.h"
|
||||||
|
|
||||||
|
static mp_obj_t esp32_mcu_temperature(void) {
|
||||||
|
static temperature_sensor_handle_t temp_sensor = NULL;
|
||||||
|
float tvalue;
|
||||||
|
if (temp_sensor == NULL) {
|
||||||
|
temperature_sensor_config_t temp_sensor_config = TEMPERATURE_SENSOR_CONFIG_DEFAULT(-10, 80);
|
||||||
|
ESP_ERROR_CHECK(temperature_sensor_install(&temp_sensor_config, &temp_sensor));
|
||||||
|
}
|
||||||
|
ESP_ERROR_CHECK(temperature_sensor_enable(temp_sensor));
|
||||||
|
ESP_ERROR_CHECK(temperature_sensor_get_celsius(temp_sensor, &tvalue));
|
||||||
|
ESP_ERROR_CHECK(temperature_sensor_disable(temp_sensor));
|
||||||
|
return mp_obj_new_int((int)(tvalue + 0.5));
|
||||||
|
}
|
||||||
|
static MP_DEFINE_CONST_FUN_OBJ_0(esp32_mcu_temperature_obj, esp32_mcu_temperature);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static mp_obj_t esp32_idf_heap_info(const mp_obj_t cap_in) {
|
static mp_obj_t esp32_idf_heap_info(const mp_obj_t cap_in) {
|
||||||
|
@ -202,6 +221,8 @@ static const mp_rom_map_elem_t esp32_module_globals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_gpio_deep_sleep_hold), MP_ROM_PTR(&esp32_gpio_deep_sleep_hold_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_gpio_deep_sleep_hold), MP_ROM_PTR(&esp32_gpio_deep_sleep_hold_obj) },
|
||||||
#if CONFIG_IDF_TARGET_ESP32
|
#if CONFIG_IDF_TARGET_ESP32
|
||||||
{ MP_ROM_QSTR(MP_QSTR_raw_temperature), MP_ROM_PTR(&esp32_raw_temperature_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_raw_temperature), MP_ROM_PTR(&esp32_raw_temperature_obj) },
|
||||||
|
#else
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_mcu_temperature), MP_ROM_PTR(&esp32_mcu_temperature_obj) },
|
||||||
#endif
|
#endif
|
||||||
{ MP_ROM_QSTR(MP_QSTR_idf_heap_info), MP_ROM_PTR(&esp32_idf_heap_info_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_idf_heap_info), MP_ROM_PTR(&esp32_idf_heap_info_obj) },
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue