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

Влияние WiFiServer на Serial

Написана программа измерений температуры и освещенности, передающая результаты по почте куда угодно. Контроль при отладке программы производился но выдаче результатов на Serial. Без Сервера все работало отлично. Возникла задача отправлять результаты по запросу Сервера. Отдельная программа работы сервера была найдена в Сети и запущена. При попытке объединения - обнаружилось, что при нажатии на соответствующее окно сервера изменяется характер выдачи в Serial. Выдача прекращается на какое-то время, потом возобнавляется. Как это исправить - не понятно.
Пример вывода:
34 23.23 36 1446.90 39 23.33 10 17 44
34 23.25 36 1443.60 39 23.36 10 17 54
Client disconnected.
34 23.08 36 1436.20 39 23.39 10 18 5
Client disconnected.
Client disconnected.
Client disconnected.
Client disconnected.
Client disconnected.
34 23.29 36 1508.00 39 23.45 10 32 5
34 23.34 36 1574.40 39 23.54 10 32 15
34 23.33 36 1582.40 39 23.63 10 32 25
Последняя в каждой строчке группа чисел - время: час, мин, сек. Сначала идет выдача как задумано, через 10 сек. После ряда манипуляций с Сервером выдаяа информации прекращается и возабновляется в нерегулируемые моменты времени.
 
Поиск по запросу "arduino esp8266 cont sys" привел к нашей теме и урокам или скетчам, в которых ранее я не видел ничего о влиянии Web или WiFi на Serial
 
если коротко - запросы/ответы сервера отправляются/принимаются/обрабатываются не мгновенно, на все нужно время, и, в течении этого времени, основная программа(опрос датчиков и вывод в порт) не выполняется
 
Я решил проблему, разведя сервер и выполнение измерений по ядрам. Однако поделюсь опытом. Попытки выйти на исполнение измерений после использования сервера посредством exit, goto не прошли. Вставка печати после завершения блока client показала, что мы выходим на измерения, но client активен и перехватывает исполнение измерений. Поэтому иногда выход на Serial происходит, но все очень не надежно. Разделение на два ядра пока проходит без сбоев. Многократное использование client не нарушает последователльности Serial.
 

aZholtikov

Active member
Разделение на два ядра пока проходит без сбоев.
Чисто для интереса. Как у Вас получилось разделить на 2 ядра SoC с одним ядром в принципе?
Какая-то недокументированная возможность или просто не правильно выбранная тема форума? ;-)
Истинных новичков это может ввести в "недопонимание".

P.S. Это был сарказм.
 
Извините, действительно я не написал, что использую esp32. Произошло из-за того, что первоначальная проблема влияния Сервера на вывод в Сериал относилась как к 8266 так и к esp32. Но решить ее удалось через использование двух ядер, естественно, на esp32.
 
Сверху Снизу