• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Энергопотребление ESP(сверхновое)

nikolz

Well-known member
Во всех последних SDK есть установки/включение WiFi с опциями без записи конфига во Flash. А если пользуетесь моими сборками SDK или сами расковыриваете его, то всегда можно написать перехват или замену функции записи/чтения конфигов из закрытых китайских либ на свои... Кроме конфигов WiFi надо ещё махнуть сохранение калибровок для быстрого рестарта после deep_sleep и калибровок по напряжению питания - они пишутся в другой сектор, в одно и то-же место, после блока esp_init_data_default.bin.

А в Arduino протрет дыру наверняка...

Для =AK= это не важно - он перепаивает Flash после пары месяцев работы модуля в устройстве с мало-потребляющим дополнительным MCU. :)

В общем это решаемая часть, в отличии от функционирования ESP8266 с активным "просыпанием" по пинам при малом токе потребления. Слишком много жрет в таком режиме и очень долгое время восстановления.
1) Вообще-то чел спросил про память RTC, что не есть флеш.
2) относительно записи конфигурации во флеш все не так мрачно
во-первых, можно просто написать проверку на несовпадение и писать если разное.
Во-вторых, записывать конфигурацию как current, тем самым не писать ее вообще во флешь.
Ну а так, конечно, нет защиты от...
 

nikolz

Well-known member
а тыкните в пример.спасибо
я делаю так, это на СИ, но в дурине можно вставить СИ или переписать на дурину
Код:
    if (wifi_get_opmode()!=STATION_MODE)    wifi_set_opmode_current(STATION_MODE);
    if(wifi_get_phy_mode() != PHY_MODE_11B)     wifi_set_phy_mode(PHY_MODE_11B);
    if (wifi_station_get_auto_connect()==0)    wifi_station_set_auto_connect(1);
wifi_station_get_config (&stationConf); //читаем конфигурацию
    uint8 e1=strcmp(stationConf.ssid,_SSID);
    uint8 e2=strcmp(stationConf.password,_PASSWORD);
    if (e1!=0 ||e2!=0){
        os_bzero(&stationConf,sizeof(struct station_config));
        ets_strcpy(stationConf.ssid,_SSID);
        ets_strcpy(stationConf.password,_PASSWORD);
          wifi_station_set_config_current(&stationConf);
}
 
Сверху Снизу