ЗИМНЯЯ ВСТРЕЧА 26
Форум самогонщиков Сайт Барахолка Магазин ЗИМНЯЯ ВСТРЕЧА 26

Автоматика Самовар

Форум самогонщиков Вопросы по электр(он)ике
1 ... 182 183 184 185 186 187 188 ... 191 185
Kuban Доктор наук Краснодар 659 518
Отв.3680  13 Дек. 25, 16:27
. Прозвонил все еще раз от регулятора до 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
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
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
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() очищает выходной буфер, а не входной. А регулятор строчит отчеты как из пулемёта. Найти её мне помог эмулятор, который я сам себе и написал.
Эмулятор.png
Эмулятор. Автоматика Самовар. Вопросы по электр(он)ике.

Можно просто так, работает с эмулятором отлично:

  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'
               
                int cpv = hexToDec(hexData.substring(0, 3));
                if (cpv > 30 && cpv < 2550) {
                    current_power_volt = cpv / 10.0F;
                    target_power_volt = hexToDec(hexData.substring(3, 6)) / 10.0F;
                    current_power_mode = hexData.substring(6, 7); 
                }
              online = true;
              lastOnline = millis(); 
            }
        }
    }

    xSemaphoreGive(xSemaphoreAVR);
  }
Символ подчеркивания убрать.

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().
Вот простая очистка для входного буфера.
  void ClearSerialInBuff() { // Быстрая очистка буфера (максимум 100 символов)
   uint8_t cleared = 0;
   while (Serial2.available() && cleared < 100) {
       Serial2.read();
       cleared++;
   }
 }

А вот после отправки запроса возможно надо тоже Serial2.flush().
РВМк скорей всего работает потому что там по другому отправка и чтение команд реализована.
UPD
В SDK ESP32 Serial.flush() блокирует выполнение, пока все данные в буфере передачи не будут отправлены.
dranek Доктор наук Минск 568 553
Отв.3697  18 Дек. 25, 11:55
Вот это сервис!
Можно с ESP32 очень много чего делать, бекапить, шить, работать с файлами. Там есть видео.
https://thelastoutpostworkshop.github.io/...kit/espconnect/
Volume Научный сотрудник Уфа 715 386
Отв.3698  19 Дек. 25, 08:12
В 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
Будет крик в пустоту.