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

WEB интерфейс к HelloDistiller на ESP8266

Форум самогонщиков Автоматика
1 ... 30 31 32 33 34 35 36 ... 45 33
AlexeyD_ Студент Москва 10 42
Отв.640  03 Окт. 21, 18:35
Всем, добрый день.
В WebUi v4 столкнулся со следующей проблемой, в рамке Управления клапанами на главной странице перестал отображаться статус разгонного ТЭНа, т.е. независимо от состояния разгонного ТЭНа постоянно отображается кнопка красного цвета с надписью Закрыт.
Статус разгонного ТЭНа в рамке Состояние контроллера отображается правильно.
2021-10-03_17-36-14.png
2021-10-03_17-36-14. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.

В WebUi.json код прописан следующий:
 {
        "name": "Разгонный ТЭН",
        "type": "code",
        "value": "razgonTEH",
        "units": "",
        "code": "(x)?'Вкл':'Выкл'"
      }


Статус кнопки в отладчике:
2021-10-03_17-51-36.png
2021-10-03_17-51-36. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.


При нажатии на кнопку, код на контроллер передаётся правильно razgonTEH=0,1,5,6.

Что это может быть?

PS. Изначально столкнулся с неприятной ошибкой связанной с разгонным ТЭНом в процессе Термостат (в прошивках контроллера версии 4 и ниже):

При запуске процесса Термостат, если температура на 1-ом датчике (т.е в котле) больше заданной температуры в термостате и у вас установлен разгонный ТЭН, ТЕН безусловно включается в начале процесса и ... до полного выкипания
WEB интерфейс к HelloDistiller на ESP8266
WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
. Условия для выключения ТЭНа при данных условиях нет.

Решение: в process.cpp в ProcessTermostat() вставляем выделенную строку.

void ProcessTermostat()
{
   ...
   case 3:           //
      UstPower = 0; // Убираем мощность с ТЭНов
      if (DS_TEMP(TEMP_TERMOSTAT) > TempTerm - Delta)
      {
         digitalWrite(PIN_TERMOSTAT_ON, LOW);   // Выключаем нагрев
         digitalWrite(PIN_TERMOSTAT_OFF, HIGH); // Включаем охлаждение
         digitalWrite(PIN_START_1, !RELAY_HIGH);
         digitalWrite(PIN_START_2, !RELAY_HIGH);
         digitalWrite(PIN_RZG_ON, !RELAY_HIGH); //AD// * Отключаем разгонный тен, если температура выше заданной.
         break;
      }
      // Если температура упала ниже TempTerm-Delta, идем регулировать ТЭНы
      StateMachine = 2;
      // if (BeepStateProcess) my_beep(BEEP_LONG);
      break;
Phisik Куратор Екатеринбург 688 1.5K
Отв.641  04 Окт. 21, 20:11
MAX_KLP' was not declared in this scopeVimax, 02 Окт. 21, 19:03
Обнови файлы исходников, удалил возможно чего лишнего.
Что это может быть?AlexeyD_, 03 Окт. 21, 18:35
Там надо посмотреть в коде ХД передается ли статус на есп. Полистай тему поиском, был вроде уже такой вопрос
AlexeyD_ Студент Москва 10 42
Отв.642  04 Окт. 21, 20:50, через 40 мин
Там надо посмотреть в коде ХД передается ли статус на есп. Полистай тему поиском, был вроде уже такой вопросPhisik, 04 Окт. 21, 20:11
Ничего похожего я в теме не нашёл. Статус на ESP передается, в рамке Состояние контроллера статус ТЭНа отображается правильно. Скажу больше, если передать статус ТЭНа в ESP через UserValue

mqtt.cpp
...
case 17:  // Флаг активности разгонного ТЭна
   snprintf_P(buf, MQTT_BUFFER_SIZE, PSTR("userValue3=%d"), digitalRead(PIN_RZG_ON) == RELAY_HIGH);
   // DEBUG_SERIAL.println(buf);
      break;

в файле webui.json прописываем
{
              "name": "Разгонный ТЭН",
                "type": "code",
                "value": "userValue3",
                "units": "",
                "code": "(x)?'Вкл':'Выкл'"
            },

То всё работает правильно. (Вопрос: А значение UserValue можно передавать из ESP в Мегу?)
Phisik Куратор Екатеринбург 688 1.5K
Отв.643  04 Окт. 21, 21:08, через 19 мин
рамке Состояние контроллера статус ТЭНа отображается правильноAlexeyD_, 04 Окт. 21, 20:50
Все, понял в чем дело. Похоже только в одном месте работает. Уберите из "состояния контроллера", должно заработать в клапанах.
Вопрос: А значение UserValue можно передавать из ESP в МегуAlexeyD_, 04 Окт. 21, 20:50
Откройте консоль браузера F12, и покликайте на кнопку клапана. Должно улетать на мегу сообщение userValue3=0 (или 1,2), можно дописать свой обработчик и управлять чем угодно.
сообщение удалено
Phisik Куратор Екатеринбург 688 1.5K
Отв.644  06 Окт. 21, 15:54
else if (strncmp_P(pub_topic, PSTR("UserValue3"), 10) == 0)AlexeyD_, 04 Окт. 21, 21:52
snprintf_P(buf, MQTT_BUFFER_SIZE, PSTR("userValue3=%d"), digitalRead(PIN_RZG_ON) == RELAY_HIGH);AlexeyD_, 04 Окт. 21, 22:50
Просто невнимательность похоже. userValue3 != UserValue3
сообщения удалены (2)
nic2015 Магистр Феодосия 219 56
Отв.645  11 Окт. 21, 22:17
Обнаружил небольшой баг. Не критично, разве что принципиально.
При тесте оборудования кроме всего прочего даётся шим на насос нбк 1,5 литра в час, 2%.
В веб интерфейсе не показывает при этом скорость.
Smegol Студент Братск 17
Отв.646  01 Нояб. 21, 02:52
Доброго времени суток. Не могу прошить ESP Пишет что Данный файл или каталог отсутствует!
2021-11-01 (2).png
2021-11-01 (2).png WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
gol_avto Доцент Москва-Серпухов-Анапа 1.4K 486
Отв.647  01 Нояб. 21, 05:48
Данный файл или каталог отсутствует!Smegol, 01 Нояб. 21, 02:52
Билл Гейтс не предусмотрел Максима Виноградова в наименованиях своих папок.
saniaxxx Кандидат наук Кострома 421 63
Отв.648  02 Нояб. 21, 22:45
Пишет что Данный файл или каталог отсутствуетSmegol, 01 Нояб. 21, 02:52
В таких делах лучше не использовать кириллицу в названии директорий
сообщения удалены (4)
Phisik Куратор Екатеринбург 688 1.5K
Отв.649  27 Нояб. 21, 19:34
Могу я расчитывать на ещё один ключVimax, 27 Нояб. 21, 17:23
Да, ключей можно хоть мешок набрать, самодельщикам - первый даром, остальные/остальным за пиво с сахаром. Пиши в ЛС, чтобы тему не засорять.
ildarunic Бакалавр Татарстан ЮВ 54 31
Отв.650  29 Нояб. 21, 14:34
Игрался с датчиком паров спирта MQ-3 и заметил, что он в коде подключен на моментальное отключение тенов и уход в аварию (6 раз читал значение и сразу вырубал).

Немного переписал код, сделал по аналогии с датчиками уровня: сейчас пищит, отсчитывает заданное кол-во периодов, выводит на экран предупреждение и если нет реакции человека - то отрубает тены и уходит в аварию.

Сообщения на дисплей выводятся посредством установки переменной DispDopInfo равным 7.

При такой сработке веб-интерфейс включает alarm.mp3, но текстовое предупреждение не выводит, соответственно звук на странице не отключить. Приходится перезагружать контроллер и обновлять страницу.

Прошу добавить в прошивку esp вывод предупреждения при DispDopInfo==7 с текстом "Аварийная ситуация: Сработка датчика паров спирта".

Датчики у меня стоят около TCA и на полу, использую цифровой вывод, резисторы настроены на максимальную чувствительность и срабатывают при малейшем появлении запаха. Пока нос начинает чувствовать - проходит секунд 40-60.

alarm.cpp:






 if (USE_GAS_SENSOR)
 {
   if (UROVEN_GAS_SENSOR!=1) U_GAS=analogRead(PIN_GAS_SENSOR);
   else U_GAS=!digitalRead(PIN_GAS_SENSOR); // Датчики газа(паров спирта) инверсные, то есть при не сработавшем состоянии у них на выходе 1, при сработке 0

   //      Если датчик еще не прогрелся, то выводим значение времени, оставшееся для прогрева датчика паров спирта
   if (Seconds<TIME_PROGREV_GAS_SENSOR)
   
   {
     U_GAS=TIME_PROGREV_GAS_SENSOR-Seconds;
   }
   else
   {

     if (U_GAS>=UROVEN_GAS_SENSOR)
     {
       CountGasSensor = CountGasSensor + 1;
       DispDopInfo=7;
       if (CountGasSensor>COUNT_GAS_SENSOR )
       {
         flNeedAnalyse=1;
       };

       // По прошествии 5 сек устанавливаем флаг сработки.
         if (CountGasSensor>COUNT_GAS_SENSOR_ALARM)
         {
#ifndef TEST
           IspReg=252;      // Переводим контроллер в режим тревоги, если не установлен тестовый режим.
#endif
         }
     }
     else
     {
       if (DispDopInfo==7) DispDopInfo=0;
        CountGasSensor=0;
     }
   }
 }





settings.h:



// Газовый сенсор
#define USE_GAS_SENSOR 1           // Надо ли использовать датчик загазованности
#define UROVEN_GAS_SENSOR 1        // Уровень сигнала, достижение котогого свидетельсвует о срабатывании датчика спиртового пара. 1- цифровой режим, любая другая цифра - аналоговый. Знч = 700    
#define COUNT_GAS_SENSOR 3         // Сколько должно держаться значение уровня, чтобы сработал датчик каждое значение - это полсекунды.
#define COUNT_GAS_SENSOR_ALARM 30 // Сколько должно держаться значение уровня, чтобы сработала тревога каждое значение - это полсекунды.
#define TIME_PROGREV_GAS_SENSOR 60 // Время для програва датчика спиртовых паров газа.






display.cpp



         if (DispDopInfo == 1)
            sprintf_P(lcd_buffer, PSTR("Smena TARA!(%3i)"), (IspReg == 117 || IspReg == 118) ? COUNT_ALARM_UROVEN_FR - CountAlarmUroven : COUNT_ALARM_UROVEN - CountAlarmUroven); //Выводим на экран инфомацию о необходимости замены тары.
         if (DispDopInfo == 2)
            sprintf_P(lcd_buffer, PSTR("VODA! (%3i)"), COUNT_ALARM_VODA - CountAlarmVoda); //Выводим на экран инфомацию о необходимости замены тары.
         if (DispDopInfo == 3)
            sprintf_P(lcd_buffer, PSTR("Low Power! %3iV"), (uint16_t)MaxVoltsOut); //Выводим на экран инфомацию о необходимости замены тары.
         if (DispDopInfo == 6)
            sprintf_P(lcd_buffer, PSTR("HIGH Power! %3iV"), (uint16_t)MaxVoltsOut); //Выводим на экран инфомацию о необходимости замены тары.
         if (DispDopInfo == 4)
            sprintf_P(lcd_buffer, PSTR("Err temp! ds=%2i"), (int)NumErrDs18); //Выводим на экран инфомацию о ошибке чтения датчика.
         if (DispDopInfo == 5)
            sprintf_P(lcd_buffer, PSTR("!PRESS=%3i/%3i"), U_MPX5010, AlarmMPX5010); //Выводим на экран инфомацию о ошибке чтения датчика.
         if (DispDopInfo == 7)
            sprintf_P(lcd_buffer, PSTR("GAS! (%3i)"), COUNT_GAS_SENSOR_ALARM - CountGasSensor); //Выводим на экран инфомацию о сработке датчка паров спирта.


сообщения удалены (4)
ffasad Студент Verkhnednepovsk 27 15
Отв.651  08 Дек. 21, 23:29
Доброго времени суток.
Коллеги, как можно вывести в раздел "Состояние контролера" показания потребляемого тока (какая переменная?).

Кто-то пробовал вынести термодатчик на мороз? У меня показало так...

Добавлено через 5мин.:

Доброго времени суток.
Уважаемый Phisik, насколько сложно сделать вкл./выкл. датчика паров спирта через меню (без перепрошивки)?
минус2.jpg
минус2.jpg WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
Vimax Кандидат наук Homyel 414 74
Отв.652  09 Дек. 21, 07:47
ffasad, я не ув. Илья)))
Но вангую, что не перепрошив контроллер, ты ничего не получишь.
Кода на вкл/выкл в контроллере просто нет.
Как-то так...
Phisik Куратор Екатеринбург 688 1.5K
Отв.653  09 Дек. 21, 13:52
какая переменнаяffasad, 08 Дек. 21, 23:29
userValueN
У меня показало такffasad, 08 Дек. 21, 23:29
Надо исправить на что-то типа такого abs(DS_TEMP[...])%100 при выводе на экран.
ffasad Студент Verkhnednepovsk 27 15
Отв.654  09 Дек. 21, 21:55
Phisik, я имел в виду переменную в mqtt.cpp и в webui.json

Добавлено через 5дн. 13ч. 41мин.:

Какое значение (переменную) подставить вместо ХХХ в userValue2 и что прописать в "code" ?
Заранее благодарен.
Снимок экрана 2021-12-09 205138.jpg
Снимок экрана 2021-12-09 205138.jpg WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
Снимок экрана 2021-12-09 205229.jpg
Снимок экрана 2021-12-09 205229.jpg WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
Nicki Бакалавр Екатеринбург 98 26
Отв.655  21 Дек. 21, 18:00
Режим эмульгации кто-то пробовал сделать?
Ифкин67 Новичок г. Калининград 1
Отв.656  06 Янв. 22, 18:31
Приветствую всех неравнодушных! Принимайте меня в "кружок самогонщиков-автоматизаторов". Заимев "Wein Reform" и проведя несколько ректификаций задумался об автоматизации процесса. В итоге, я в вашей ветке. Получив комплектующие, за праздники собрал их в кучку и вот что получилось:
DSC00092.JPG
DSC00092. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
DSC00093.JPG
DSC00093. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
DSC00094.JPG
DSC00094. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.
DSC00095.JPG
DSC00095. WEB интерфейс к HelloDistiller на ESP8266. Автоматика.

Пополнив галерею изображений самоделок, осмелюсь попросить куратора темы о предоставлении лицензии на его замечательное творение: Вэб-интерфес. ESP ID : 13C2DA1620C2.
ffasad Студент Verkhnednepovsk 27 15
Отв.657  08 Янв. 22, 15:44
что не перепрошив контроллер, ты ничего не получишь.
Кода на вкл/выкл в контроллере просто нет.
Как-то так...Vimax, 09 Дек. 21, 07:47
А вынести в WEB на подобие кнопок ручного управления "разгонный тэн" или клапана?
сообщение удалено
ffasad Студент Verkhnednepovsk 27 15
Отв.658  10 Янв. 22, 09:57
С прошедшими праздниками!
Нужна подсказка - после срабатывания "авария по ТСА" при ректификации, как вернуться быстро к продолжению процесса (сброс аварии), кроме как через RESET (возвращает в "работа на себя") или щелкать смену этапа с 101 до нужного???
Скетч 4.0 от Phisik.
Вроде бы где-то встречал, не могу найти Грустный
сообщения удалены (6)
zaxap Студент Катав-Ивановск 28 3
Отв.659  21 Янв. 22, 18:41
Видимо тоже нарвался на кривую Esp, не работает RX. С WEB команды идут на контроллер, а обратно нет.