Уважаемые посетители сайта esp8266.ru!
Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram
Спасибо за ответ.
1. ограничить подключения до одного клиента (устройством управлять можно только одним пользователем)
2. web или только передает данные, или только принимает, нет одновременных прием-передача, за очередностью следит сам web
Может ли возникнуть переполнение данных при передаче web <> UART? при условии 1 и 2 пункта.
Какие ограничения у текущего примера Hello? C точки зрения передаваемой длины сообщения?
Да, я все это скачал и на основе их, сейчас и пытаюсь все сделать. Andy Korg немного мне разжевал, что, куда в своей теме.
Только все примеры основанны на очень старых сборках, а в текущих много всего изменилось.
И постоянные утверждения:
Не верьте
Pvvx имеет ввиду, что в общем случае задача не решаемая, так как надо вводить дополнительные ограничения. Это правильно, конечно. Но в частном-то случае, под свою задачу, почему нет? Тем более как минимум два работающих примера есть на форуме.
Если сообщения будут выводится в UART, то программа встанет на ожидании вывода и ничего больше делать не сможет, пока UART не выведет все символы.
По этой причине рекомендуется отключать вывод отладочных сообщений в установках из web, если требуется получить максимальную скорость и отзывчивость web и т.д..
Поддерживаю эту мысль, pvvx создал довольно универсальную платформу. Как и всякая универсальная платформа имеет свои ограничения и допущения. Так что надо просто "подкручивать" под свою задачу вот и все.
Здравствуйте pvvx. Пытаюсь добиться стабильной работы своей платы на базе вашего веб-сервера. Плата мной разведенная, там стоит флешка EN25QH32A. Пока вникаю в особенности программирования ESP8266, питаю ее от USB порта, на котором переходник USB-COM, но через отдельный LDO, который до 600 мА. Нестабильность заключается в следующем - если сбрасывать плату кнопкой сброса (пин EXT_RSTB - там резистор 10К на 3.3 и конденсатор 1нф на землю), то программа стартует без проблем, винда подключается к точе доступа ESP8266 довольно быстро и я могу заходить на страницы сервера. Но если переткнуть юсб-кабель, подождав чтобы винда потеряла точку, то сначала она долго не появляется в списке, а потом подключается с ограниченным доступом к сети. Сделал скриншоты, чтобы было нагляднее:
так выглядит подключение, когда все нормально, после первой прошивки флешки.
так происходит, когда переткнешь питание.
и в конце заканчивается этим:
После этого уже ни перетыкание, ни сбросы - ничего не помогает. Если же в Эклипсе сделать FlashClearSettings, то через несколько секунд винда подключается нормально, даже без дополнительного сброса.
Я уже с месяц пробую разные примеры, разбираясь с написанием прошивки под ESP8266, пользуюсь UDK и примерами оттуда. Ваш пример пока самый стабильный, но этот момент меня напрягает, т.к. готовый продукт, который будет отваливаться от сети при пропадании питания - не есть хорошо. В других примерах часто есть такое, что даже при нажатии на кнопку сброса влетает в не понятные состояния с Exception. У вас все стартует после сброса, тут вопросов нету. Была мысль что в флешь шьются какие-то настройки точки доступа и при вырубании питания что-то там нарушается. Долго искал такое место в исходниках вебсервера, возможно даже что-то там сделал, потому-что какое-то время у меня перестало происходить отваливание точки доступа. Но случилось что пришлось переставить проект вебсервера заново и все началось опять.
Но если переткнуть юсб-кабель, подождав чтобы винда потеряла точку, то сначала она долго не появляется в списке, а потом подключается с ограниченным доступом к сети.
Возможно проблемы с включением питания - сбросом и инициализацией.
Это возможно от путаницы старта после deep-sleep, для ускорения инициализации WiFi. Надо глядеть....
еще одна проблема, возможно как-то перекликается с уже описанной.. Выставил на странице сервера Wifi settings -> Auth Mode: WPA2_PSK вместо OPEN, переподключился с вводом пароля через свисток на компьютере - все работает. После этого попробовал подключиться вторым клиентом через телефон - как только телефон пишет про аутентификацию, в терминале платы видно что происходит резет и телефон выдает ошибку аутентификации в итоге. Компьютер со свистком вроде не успевает потерять точку при этом.
если выставить OPEN, то подключается с двух мест без проблем. И еще - пробовал выставлять другой канал, отличный от 01 - после перезагрузки страницы все тот же первый канал.
PS. Похоже с телефона не получается подключиться при включенном WPA2_PSK даже в одиночку - тоже резетится плата и ошибка аутентификации в итоге.
Канал зависит от подключения к внешней AP. Меняется, если только режим SOFTAP.
Проблема с повторным включением питания и работой SOFTAP есть в SDK1.5.0. Пока не выловлена. Плавающая - то работает, то нет и у меня зависит от типа модуля. На котором (ESP-12) переделывал на SDK 1.5.0 всё работает , на ESP-01 не работает, на плате ESP12E DEVKIT - беда плавающая - то работает, то нет. Поиски продолжаются...
Всё - ничего с SDK 1.5.0 не сделать. Ошибки (протектед) в rijndaelEncrypt() и сплошной кошмар с либами. Надо добавлять слишком жирные и с совершенно ненужными функциями либы: libwpa2.a, libcrypto.a, кучу хлама из libmain.a и т.д. И это всё (сотни кило в прошивку !) ради wifi_station_set_cert_key() и wifi_station_clear_cert_key().
Откат на SDK 1.4.1 (в git откатил либы). Там всё работает.
Подождем итогов - может следующая, после 1.5.0 SDK будет лучше.
чтобы поменять либы, достаточно переименовать ESP8266_SDK_141 в ESP8266_SDK, сделать clean, all? Если да, то у меня все точно так же - при перетыкании питания ограниченный доступ. И FlashClearSetings помогает.
а как можно сравнить, что было записано в настройках вайфай когда все коннектилось и после того как перестало коннектиться? Может там мысли появятся, если станет понятно что портится?
чтобы поменять либы, достаточно переименовать ESP8266_SDK_141 в ESP8266_SDK, сделать clean, all? Если да, то у меня все точно так же - при перетыкании питания ограниченный доступ. И FlashClearSetings помогает.
"Свалка" ничего внешнего (из UDK) не берет. Вам надо загрузить новые исходники с git. Там уже изменена папка lib и номер версии DEF_SDK_VERSION в include\sdk\sdk_config.h, плюс мелкие доработки... Либы от SDK используются "обкоцанные". В директории lib есть батники, как они составлены из стандартных. Вырезают лишний хлам и ненужные объектники из стандартных SDK либ и перепаковывают в свои либы. Но все готовые *.a для сборки meSDK уже лежат в данной папке.
Это загрузка сертификата... В 2C-ESP8266__SDK__Programming Guide__EN_v1.5.pdf описано...
В 1.5.0 всё собирается без либы libwpa2.a, но почему-то, при WPA возникает WDT в rijndaelEncrypt() в разных точках. Зацикливается что-то.
Угу - от этого OTA полностью закончилось - это не лезет ни в какую их базовую flash и RAM чипа по размеру В общем "перегрузка" фичами не соизмеримыми с производительностью и сферой применения данного модуля. Оптимизацией этих фич под данный чип заниматься никто не будет.
Скорее всего это "испытание на пользователях" алгоритмов для ESP32. А нам оно не надо. Есть толпа модулей на OpenWRT, а их цена уже почти как у ESP32.