• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 недель, может что-то упустил?
Или лыжи не едут...

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