ESP32 - BLE не подключается/не перезапускается после легкого сна
новичок в arduino здесь.
Я пытаюсь подключиться через BLE после того, как ESP32 выходит из легкого сна. Я пробовал много разных вещей, но ни одна из них не работает. Все работает нормально, прежде чем устройство спит в первый раз. Не могли бы вы, ребята, дать несколько идей о том, что не так? официальные документы ужасны.
бтСтоп(); задержка(1000); esp_sleep_enable_timer_wakeup (TIME_TO_SLEEP * uS_TO_S_FACTOR); Serial.println("Сейчас иду спать"); esp_light_sleep_start(); бтСтарт();
@deniswsrosa, 👍1
1 ответ
Лучший ответ:
▲ 0
Наконец-то я нашел ответ, вам просто нужно снова рекламировать сервис после того, как он спит. Сначала вам нужно определить это:
#if CONFIG_PM_ENABLE
// Настроить динамическое масштабирование частоты:
// максимальная и минимальная частоты задаются в sdkconfig,
// автоматический легкий сон включен, если включена поддержка бестактного простоя.
// esp_pm_config_esp32c3_t pm_config = { // старая версия
esp_pm_config_t pm_config = {
.max_freq_mhz = 160, // например, 80, 160,
.min_freq_mhz = 80, // 40
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
#endif // CONFIG_PM_ENABLE
Затем в своем цикле вы можете сделать что-то вроде:
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
Serial.println("Going to light sleep now");
esp_light_sleep_start();
Serial.println("depois do sleep start");
BLEDevice::startAdvertising();
,
@deniswsrosa
Смотрите также:
- Библиотека ардуино или код для ESP32 для сканирования устройств Bluetooth?
- ESP32 запускает BLE после глубокого сна
- Антенна для ESP32-pico-d4
- Как получить имя подключенного устройства через BLE?
- Как получить продолжительность сканирования менее 1 секунды с помощью Arduino BLE?
- Служба BLE ESP32 не видна Node-RED
- Ошибка стека ESP32 при чтении с устройства BLE
- BLE OTA не удается обновить прошивку на ESP32 WROVER 16MB