• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как пользоваться Light Sleep в стандартной прошивке?

Evgen2

New member
Здрасте всем.

Возможно, это элементарный вопрос, но что-то не могу найти на него ответ.
Общаюсь с Esp8266 по UART через терминал "вручную" (и с эхом), после ввода "AT+SLEEP=1" получается прямо какой-то эстонский вариант модема - чтобы получить эхо-символ нужно долго и упорно давить на клавишу, при этом видно, что иногда проскакивают ложные символы. Если ввести команду правильно - в ответ придет ОК, если нет - ERROR, т.е. вроде бы связь остается работать

Код:
AT+SLEEP?
+SLEEP:2

OK
AT+SLEEP=1

OK
ATaaaaaaaaaaaaaa11111122222э2233333

ERROR
AT

OK
AT+їS
Понятно, что если делать не ручками, то наверное можно наверное, ориентируясь на эхо таки ввести "AT+SLEEP=2", но это как-то не слишком правильно. Может есть какое-то иное решение?
 

pvvx

Активный участник сообщества
Light Sleep - это только для экономии питания. В нем ничего не работает. Тем более в AT.
Возможно использование только в режиме ожидания. Как только произошло соединение или ещё чего, то необходимо переключить режим. Иначе неизбежны потери данных и затыки.
 

Evgen2

New member
Light Sleep - это только для экономии питания. В нем ничего не работает. Тем более в AT.
Возможно использование только в режиме ожидания. Как только произошло соединение или ещё чего, то необходимо переключить режим. Иначе неизбежны потери данных и затыки.
Ну так ясен пень, что для экономии. Вопрос - как переключить обратно, если есть только уарт.
 

pvvx

Активный участник сообщества
Ну так ясен пень, что для экономии. Вопрос - как переключить обратно, если есть только уарт.
Никак, если в этот момент sleep работает. Он в режиме AP не работает... Исключительно для режима STATION. И когда работает, то отключает все прерывания на период между фреймами WiFi, да увеличивает в сотни раз период обслуживания TCP и всего что связано с Lwip...
И вообще - что вы хотите от китайской прошивки AT? :confused:
 
Последнее редактирование:

Evgen2

New member
Никак, если в этот момент sleep работает. Он в режиме AP не работает... Исключительно для режима STATION. И когда работает, то отключает все прерывания на период между фреймами WiFi, да увеличивает в сотни раз период обслуживания TCP и всего что связано с Lwip...
И вообще - что вы хотите от китайской прошивки AT? :confused:
так я и хочу для режима STATION.... неужели столько народу работает с этой штукой, а я все равно первый с таким вопросом? Ок, сейчас попробую напрограммировать по своей версии ;-) , что получится - доложу.
 

pvvx

Активный участник сообщества
так я и хочу для режима STATION.... неужели столько народу работает с этой штукой, а я все равно первый с таким вопросом? Ок, сейчас попробую напрограммировать по своей версии ;-) , что получится - доложу.
А никто не работает с AT. Только простые тесты у детей или не дают левых команд.
И при этом им всё равно - работает это или нет. Вы будете первым, желающим на AT сделать что-то серьезное?
По этому флаг вам в руки и пишите об ошибках и недочетах в AT его производителю - Espressif :)
 
Последнее редактирование:

Evgen2

New member
А никто не работает с AT. Только простые тесты у детей или не дают левых команд.
И при этом им всё равно - работает это или нет. Вы будете первым, желающим на AT сделать что-то серьезное?
По этому флаг вам в руки и пишите об ошибках и недочетах в AT его производителю - Espressif :)
Давайте уточним, что такое AT - это режим AT-команд или что-то еще?
 

Evgen2

New member
Проверил. Действительно работает.
Т.е. если после "AT+SLEEP=1\r\n" медленно и печально выдавать "AT+SLEEP=2\r\n" - 12 байт, с ожиданием эха и повтором, если эхо не пришло, то за 0.5-0.7 секунды и суммарно 15-17 посылок байта удается протолкнуть команду "проснуться". Ну вот. Сам себе же и ответил ;-)
 

pvvx

Активный участник сообщества
Давайте уточним, что такое AT - это режим AT-команд или что-то еще?
Это прошивка с AT командами.
Проверил. Действительно работает.
Т.е. если после "AT+SLEEP=1\r\n" медленно и печально выдавать "AT+SLEEP=2\r\n" - 12 байт, с ожиданием эха и повтором, если эхо не пришло, то за 0.5-0.7 секунды и суммарно 15-17 посылок байта удается протолкнуть команду "проснуться". Ну вот. Сам себе же и ответил ;-)
Про это и написал - опрос идет промежутками, т.к. процессор отключается между WiFi Beacon.
 

Makc1806

New member
Добрый день! Спрошу здесь, что-бы не создавать новых тем.
Мне кажется, что-то не так с новыми SDK. Работаю через IDE с библиотеками и менеджером плат. Перепробовал все варианты с Light sleep -ом, черт его подери!
Вот в режиме модем:
Код:
  WiFi.setSleepMode(WIFI_MODEM_SLEEP);
  WiFi.forceSleepBegin();
хоть с параметрами в мс, хоть навечно, гарантировано не работает радио, пока не скажешь:
Код:
  WiFi.forceSleepWake(); delay(1);
  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PWD);
но проц работает, вижу по oled секунды идут, все хорошо -потребление с 78-80мА падает гарантировано до ~20мА. Все хорошо, все правильно.
Но вот с ligt sleep - беда.
Скетч компилится без ошибок, заливается, а псле Light_Sleep в коде, вместо Modem_Sleep, проц ... работает, а не должен-же? Должен пропускать такты, экономить энергию. И потребление остается 20мА. Какие там 1,5-1,8мА, заявленные?
Поискал по библиотекам, нашел, что в SDK папке с ESP8266_NONOS_SDK_V1.5.3_16_04_16 в файле user_interface.h написано так: [inline]
typedef enum { NONE_SLEEP_T = 0, LIGHT_SLEEP_T , MODEM_SLEEP_T}sleep_type_t;[/inline]
но должно же быть так: [inline]typedef enum { NONE_SLEEP_T = 0, LIGHT_SLEEP_T = 1, MODEM_SLEEP_T =2}sleep_type_t;[/inline]
по аналогии с [inline]typedef enum { PHY_MODE_11B = 1, PHY_MODE_11G = 2, PHY_MODE_11N = 3} phy_mode_t;[/inline]
Поправил, скомпилил, залил - не оно. :(

Светодиод, про который все говорят, к стати, на esp-01 потребляет около 1-1,5мА несчастных и никак не 8!

Может есть, т.с. ветераны ESP, кто пробовал старые SDK, там работало?
У меня контроллер ок. 2 недель, может что-то упустил?
Или лыжи не едут...

Кто что скажет?
 
Сверху Снизу