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

Нужна помощь Перестает отвечать вебсервер ESP8266-01

gerkimuyda

New member
@gerkimuyda дальше молчит в консоль.
т.е. "Could not find a valid BMP280 sensor, check wiring!" не выводится.
Я ведь не делал ПРАВИЛЬНЫЙ вариант, я написал временный способ узнать CHIP_ID (не проверяя последствия).

Если у вас заработало - хорошо. Сохраните свой рабочий код, чтобы можно было перепроверить, если вдруг после новых изменений снова что-то не будет работать. (Таким образом, по-шагово внося изменения, можно определить после каких действий все ломается и выяснить причину "почему")
 
Последнее редактирование:

Алексей.

Active member
По пробовал построить сервер на rtos, результат тот же, сервер перестает отвечать.
В тесте сервер принимает запрос на соединение от клиента и строит новый таск,
в таске для сокета клиента выполняет чтение http запроса и всегда отправляется ответ с 404-м кодом, если от клиента получаю разрывает соединения, закрываю сокет клиента и прекращаю таск клиента.
Для проверки использовал простенький скрипт, в котором в цикле выполнял тестовый запрос
#!/bin/bash
test_no=1
while [ $test_no -le 100000 ]
do
curl http://192.168.4.1/test && echo ' '$test_no
((test_no++))
done
Очень интересный результат получил, иногда после 80-90 запросов сервер перестает отвечать, иногда и после 15-ти не отвечает, запросы выполняются без каких либо задержек, после получения ответа на один запрос сразу выполняется следующий запрос.
С стороны сервера вижу что разрыв соединения со стороны клиента не всегда приходит, несмотря на то что FIN от клиента при разрыве соединения уходит, сервер его не обрабатывает, а поскольку сокеты клиентов на сервере я закрываю только в случае получения разрыва соединения от клиента, не получив разрыв соединения от клиента сокет остается открытым. В результате таблица файловых дескрипторов переполняется, сервер при попытке выполнить accept для очередного соединения получает ENFILE (File table overflow).

PS:
На ESP32 сначала поймал такое, после решил проверить на ESP8266, а там тоже самое.
 
Последнее редактирование:

Assada

New member
Наткнулся на эту тему с похожей проблемой. Но так и не понял причину.

Датчик BMP280 отдает температуру -134 градуса. А сам вебсервер доступен. Зависает где-то через минут 40-60. Перезапуск восстанавливает датчик и все снова работает в штатном режиме. Есть ощущение что значение какой-то конкретной переменной выходит за рамки доступной памяти.
 
Сверху Снизу