а пробовали эту программу натравить на свой сервер и подключаться, допустим на 80 порт Apache? попробуйте и помониторьте ресурсы сервера.ESP8266 зависает через пару секунд работы этой программы, перестает реагировать на АТ команды.
лучше сразу откажитесь от AT командНе понимаю, как бы я мог попробовать то же самое по UDP. Ведь по UDP соединение не устанавливается.
А подробнее про ошибку в ТСР не расскажите?
У меня впечатление, что там у них не одна ошибка. Помимо того, что так легко можно завалить ТСР сервер, у нас еще перестает устанавливаться соединение с РС. То есть, после старта работает нормально, можем законнектиться к ESP8266 с разных компьютеров. А через несколко часов - хана, с одного компьютера можно законнектиться, а с любого другого уже нельзя, соединение не устанавливается. Перезапуск ТСР сервера командами AT+CIPSERVER не помогает. А вот если сбросить модуль командой AT+RST а потом заново инизиализировать, то опять работает с любым компом.
Хорошо, пусть на это требуется время. Если ESP не готов, если он занят своими делами, освобождает память, значит, он не должен устанавливать новое соединение. Когда будет готов - установит соединение. Я же не гонюсь за определенным количеством транзакций в секунду, и не я устанавливаю темп, а ESP8266. Пусть будет не 200 в секунду, пусть хоть 10 в секунду, хоть 1 в секунду. В чем здесь принципиальная проблема? Не вижу.Если внимательно посмотреть описания AT команд, то становится ясно, что поддерживается 5 одновременных TCP соединений. Для освобождения памяти после закрытия соединения требуется некоторое время.
Хм, как по мне, так и памяти у него до фига, и тактовая огромная. Пусть он не обеспечит такой же производительности, как Апач на писюке, никто этого и не требует. Пусть помедленнее работает. Я же вообще АТ командами пользуюсь, какая уж там скорость...В прошивках, написанных более оптимально, ситуация несколько лучше, однако чудес не бывает - у вас в руках крохотный чип с небольшой тактовой частотой (до 160 МГц) и небольшим объемом памяти и все это крутит почти полноценный стек TCP протокола.
Если это баг в ТCP сервере, то как это мне поможет?лучше сразу откажитесь от AT команд
и пользуйте луа , либо ардулино, либо СИ.
А фатальных багов практически и нет, нужно только использовать последние версии и следовать документации. Если вы все же найдете баг - 2000USD вашиОднако хотя бы отсутствия багов можно ожидать?
из указанных вариантов только AT прошивки использует технологию espconn, у остальных собственная реализацияПричем тут АТ? Если это баг в ТCP сервере, то как это мне поможет?
1) Виктор Вам уже кое-что написал.Причем тут АТ? Если это баг в ТCP сервере, то как это мне поможет?
http://bbs.espressif.com/viewtopic.php?f=20&t=288А фатальных багов практически и нет, нужно только использовать последние версии и следовать документации. Если вы все же найдете баг - 2000USD ваши
Вот это хорошо, это вселяет оптимизм. Я уже давно посматриваю на вариант с Ардуино IDE, но пока не было серьезных оснований для перехода.из указанных вариантов только AT прошивки использует технологию espconn, у остальных собственная реализация
Там где можно использовать UDP, я использую UDP. А там, где надо использовать ТСР сервер - приходится использовать ТСР сервер. Например, HTTP сервер на UDP никак не сделаешь.1) Виктор Вам уже кое-что написал.
2) Используйте UDP. Проверено, мин нет.
А подробнее не расскажете, в чем мулька?3) Есть проблема вернее сказать особенность ESP она описана в документации.
Касается работы совмещенного режима станция+точка доступа и переподключением других устройств. Поэтому на уровне нативного кода надо делать некоторые прогаммные кульбиты чтобы соединения не терялись. На уровне AT команд Вы это не сделаете.
Примерно так.
ESP8266 softAP + station channel configuration - ESP8266 Developer ZoneА подробнее не расскажете, в чем мулька?
"Уронить" прошивку на SDK 1.5.4 или 2.0.0 можно только кривыми руками. Каждый раз, как вываливается в exception, нахожу ошибку в своем коде.Там юзер пишет, что Espressif не отвечает на баг репорт. А ему в ответ говорят - заполняй онлайн, и дают ссылку на страницу, которая удалена ("The forum you selected does not exist").
Если я правильно понял их условия, то описанное мною некорректное поведение TCP сервера в прошивке с АТ командами этим условиям соответствует. Единственно в чем не соответствует - я использую не самый свежий вариант софта, а тот, который влезает в 512К. Так что у вас есть шанс: залейте свежайший софт с АТ командами и завалите его так, как я описал выше, приз будет ваш. Свой код инициализации модуля при помощи АТ команд я выложил здесь Cannot connect to ESP8266 after a while - ESP8266 Developer ZoneЕсли вы найдете фатальную ошибку у них в SDK, то можете присылать мне, я знаю как у жадных китайцев получать 2000$
NodeMCU и Wemos D1. - все есть.Добрый день!
Столкнулся с ситуацией подвисания разных модулей на базе ESP8266.
Для программирования использую Arduino IDE 1.6.8
На данный момент использую ESP-01, NodeMCU-0,9 и Wemos D1.
Прочитал темы про правильное подключение чипа с подтягиванием к земле или питанию.
На этом фоне у меня вопрос: Имеется ли вся эта необходимая обвязка в модулях nodemcu и wemos, или там так же надо производить всё эту необходимую обвязку?
И ещё вопрос по поводу RC-цепочки к пину CHIP-EN. Можете подсказать как именно подключить её? Или просто подразумевается что этот пине не должен висеть в воздухе?
В таком случае у меня закономерный вопрос.NodeMCU и Wemos D1. - все есть.
про RC посмотрите на схеме Wemos D1
Я не берусь ставить диагноз по рассказу.В таком случае у меня закономерный вопрос.
WEB-сервер на Arduino IDE 1.6.8, Wemos D1
Схема:
WEMOS D1 ( UART D7,D8)-согласователь уровней- ArduinoUNO (UART D8,D9).
Пробовал убирать согласователь уровней и понижение питания всей схему до уровня 3,3-3,7В - изменений нет.
Сама ESP-ка связывается с другими серверами только за временем. Не думаю что тут есть проблемы.Я не берусь ставить диагноз по рассказу.
Могу лишь высказать следующие предположения.
2) Скорее всего теряется связь с сервером и потом не восстанавливается.
Больше советов по решению проблемы, я так понимаю, нету?Ну тогда пора выкладывать код
Поставьте контрольный вывод переменных на терминал и проверяйте логику программы.Больше советов по решению проблемы, я так понимаю, нету?