. Прозвонил все еще раз от регулятора до ESP. Коротышей нет и контакт везде естьToljnuch, 13 Дек. 25, 15:17
Странно что не работает... Попробуйте: отсоединить на самоваре Rx и Tx идущие на РМВк и перемычкой соединить Rx и Tx только на Самоваре. Т.е соедините Rx2 и Tx2 ESP32. Регулятор не включайте. С интерфейса самовара дайте установить напряжение на регуляторе 150 вольт. Что покажет Самовар?
fok52
Студент
Нижний Новгород
47 7
Отв.3681 13 Дек. 25, 18:01
lkosoj, обновил на 6.26 вроде перестало ребутить. Заметил на дисплее время не идет все по нулям
IMG_20251213_175934.jpg Автоматика Самовар. Вопросы по электр(он)ике.
Toljnuch
Бакалавр
Сочи
99
Отв.3682 13 Дек. 25, 18:05 (через 4 мин)
Т.е соедините Rx2 и Tx2 ESP32Kuban, 13 Дек. 25, 16:27
Пря на самой ESP32 ? или можно на плате?
lkosojКуратор
Видное
659 737
Отв.3683 13 Дек. 25, 18:05 (через 1 мин)
время не идет все по нулямfok52, 13 Дек. 25, 18:01
а в интерфейсе время идет?
fok52
Студент
Нижний Новгород
47 7
Отв.3684 13 Дек. 25, 18:10 (через 5 мин)
lkosoj, в интерфейсе работа отсчитывается
Screenshot_2025-12-13-18-08-20-161_org.telegram.messenger.jpg Автоматика Самовар. Вопросы по электр(он)ике.
Kuban
Доктор наук
Краснодар
659 518
Отв.3685 13 Дек. 25, 18:42 (через 33 мин)
Пря на самой ESP32 ? или можно на плате?Toljnuch, 13 Дек. 25, 18:05
Можно на плате
Shurchik
Студент
Пангоды
14 1
Отв.3686 13 Дек. 25, 19:46
связь с моим стабилизатором через WiFi.dranek, 01 Дек. 25, 21:04
Исчезающие сообщения не дает цитировать. Присылайте инфу, буду собирать и тестировать стабилизатор. Как раз на днях вахта заканчивается и дома много чего ждет. Напишите плз в личку, есть личный вопрос.
Добавлено через 1мин.:
Доброе. Еще одной могу поделитьсяToljnuch, 12 Дек. 25, 10:05
Как заполучить? в Л.С пожалуйста.
Kuban
Доктор наук
Краснодар
659 518
Отв.3687 14 Дек. 25, 07:24
Kuban, и мои поделия собрали? dranek, 13 Дек. 25, 14:01
Ваши не собирал. Собирал и покупал регуляторы тех разработчиков, которые в этой ветке в обсуждениях не участвуют, но их изделия, в связке с Самоваром, используются.
fok52
Студент
Нижний Новгород
47 7
Отв.3688 14 Дек. 25, 17:52
6.26 Наработка Расхода воды сбрасывается. Должно уже наверно около 300л накапать, а в интерфейсе 60л
Screenshot_2025-12-14-17-46-22-144_org.telegram.messenger-edit.jpg Автоматика Самовар. Вопросы по электр(он)ике.
lkosojКуратор
Видное
659 737
Отв.3689 14 Дек. 25, 18:06 (через 15 мин)
а в предыдущей версии нормально показывал?
fok52
Студент
Нижний Новгород
47 7
Отв.3690 14 Дек. 25, 18:10 (через 4 мин)
lkosoj, 6.24 нет Ты вроде писал что поправил, но я 6.25 не ставил
lkosojКуратор
Видное
659 737
Отв.3691 14 Дек. 25, 18:22 (через 13 мин)
Нет, я ничего с датчиком потока не делал с момента его появления в Самоваре. Его основная задача - ловить отсутствие потока. Он может забиться, и показывать не корректную скорость, он может врать на разной скорости. И у меня нет уверенности, что он изначально корректно показывает. Если есть такая задача - использовать его как реальный расходомер, то нужно тестировать, на сколько новый датчик совпадает по показаниям с Самоваром и на сколько показания уплывают через 10 погонов (он реально забивается и крыльчатка начинает проскальзывать, его нужно или чистить или менять).
fok52
Студент
Нижний Новгород
47 7
Отв.3692 14 Дек. 25, 18:28 (через 6 мин)
Про точность это верно подмечено что он не годится как полноценный расходомер. Но хотябы можно сделать что бы во время прогона он не обнулялся
lkosojКуратор
Видное
659 737
Отв.3693 14 Дек. 25, 18:29 (через 1 мин)
Нашел проблему, исправил. В следующей версии будет исправление. Если нужно сейчас, в Samovar.h можно поправить
volatile uint16_t WFtotalMilliLitres = 0; // Переменная для учета расхода воды
на
volatile uint32_t WFtotalMilliLitres = 0; // Переменная для учета расхода воды
dranek
Доктор наук
Минск
568 553
Отв.3694 16 Дек. 25, 23:42
Ради общего дела.Kuban, 13 Дек. 25, 14:05
Это можно. 1. В Самоваре код чтения состояния регулятора от kvic содержит ошибку, которая приводит к задержкам и неустойчивому чтению, потому что Serial.flush() очищает выходной буфер, а не входной. А регулятор строчит отчеты как из пулемёта. Найти её мне помог эмулятор, который я сам себе и написал. Эмулятор. Автоматика Самовар. Вопросы по электр(он)ике. Можно просто так, работает с эмулятором отлично:
void StatusKVIC() { vTaskDelay(500 / portTICK_PERIOD_MS); if (xSemaphoreTake(xSemaphoreAVR, (TickType_t)(200 / portTICK_RATE_MS)) != pdTRUE) { return; } static String buffer; buffer = ""; while (Serial2.available()) { char c = Serial2.read(); // Явно читаем как char buffer += c; } // Если в буфере есть данные if (buffer.length() > 8 ) { // Ищем последние 8 символов перед \_r int lastCR = buffer.lastIndexOf('\_r'); if (lastCR >= 8 ) { // Берем 8 символов перед \_r (формат T1234567) String data = buffer.substring(lastCR - 8, lastCR); Serial.println(data);
// Проверяем что первый символ 'T' if (data.charAt(0) == 'T') { String hexData = data.substring(1); // убираем 'T'
2. Библиотека asyncHTTPrequest ущербная, периодически способна вызывать ресет из-за повторного высвобождения памяти, если удаленный сервер не отвечает. Обнаружено при обучении стабилизатора управляться по сети. Правильно было бы перейти на альтернативу, например asyncHTTPrequest_generic, однако это трудозатратно. Поэтому вот исправленная, с костылём. asyncHTTPrequest.zip UPD Случайно выложил функцию с ошибкой, старая редакция, читала в буфер не правильно, перевыложил.
kvic
Магистр
Тула
254 87
Отв.3695 17 Дек. 25, 11:09
регулятор строчит отчеты как из пулемётаdranek, 16 Дек. 25, 23:42
Реально как из пулемёта. Вроде он каждую секунду отправляет "пулю" (или полсекунды), а тут десять раз в секунду.
dranek
Доктор наук
Минск
568 553
Отв.3696 17 Дек. 25, 11:24 (через 16 мин)
К сведению. Регулятор Kvic шлёт непрерывно своё состояние, вне зависимости от запроса, 5 раз в секунду. В текущей прошивке (на гитхабе). Внимание для тех кто вдруг решит обновляться. Скорость обмена по UART в новой прошивке изменена на 9600Kuban, 05 Марта 25, 17:43
это мало что меняет Я думаю с синхронным чтением состояния Stab AVR проблемы тоже из-за неправильного использования Serial2.flush(). Вот простая очистка для входного буфера.
А вот после отправки запроса возможно надо тоже Serial2.flush(). РВМк скорей всего работает потому что там по другому отправка и чтение команд реализована. UPD В SDK ESP32 Serial.flush() блокирует выполнение, пока все данные в буфере передачи не будут отправлены.
В SDK ESP32 Serial.flush() блокирует выполнение, пока все данные в буфере передачи не будут отправленыdranek, 17 Дек. 25, 11:24
блокирует конкретный task в котором выполняется? Или все таски? UPD вопрос снят. Погуглил, ИИ сообщает:
In ESP-IDF/Arduino for ESP32,Serial.flush() waits for the transmit buffer to clear, but it can cause freezing (hanging) if the serial port isn't connected or monitored, especially on newer boards like ESP32-S3; developers often use non-blocking methods (like esp_uart_read_bytes or SafeString::skipToDelimiter in Arduino) or ensure a console is open to prevent this issue, as Serial.flush() itself can block indefinitely without a receiver.
несколько странная реализация - если к UART не подключен приемник, то давайте-ка зависнем.Опасно срабатыванием собаки-смотрителя
dranek
Доктор наук
Минск
568 553
Отв.3699 19 Дек. 25, 08:41 (через 29 мин)
если к UART не подключен приемникVolume, 19 Дек. 25, 08:12