Перейти к содержанию

Автоматика для РК с облачным интерфейсом


dunkel

Рекомендуемые сообщения

Опубликовано

Устройство собрано на базе ESP из готовых китайских модулей.

Реализованы функции регулятора/стабилизатора мощности нагрева, измерения температуры и управления клапанами, а так же связь с облачными сервисами.

Управление осуществляется через телефон.

Подробности, схемы и исходники здесь: https://rkdunkel.wordpress.com/

Все распространяется свободно и бесплатно, без каких-либо ограничений.

 

210806_RK_1.png

  • Спасибо 1
  • + репутация 1
Опубликовано (изменено)

а нельзя тут сделать функционал как в

 ?

Просто привык по дельте работать с колонной, но хочется удобства с nodemcu. И дисплей если можно ssd1306 прикрутить.

Изменено пользователем alexsmit
орфография
Опубликовано
22.12.2021 в 19:21, dunkel сказал:

Устройство собрано на базе ESP из готовых китайских модулей.

Реализованы функции регулятора/стабилизатора мощности нагрева, измерения температуры и управления клапанами, а так же связь с облачными сервисами.

Управление осуществляется через телефон.

Подробности, схемы и исходники здесь: https://rkdunkel.wordpress.com/

Все распространяется свободно и бесплатно, без каких-либо ограничений.

 

210806_RK_1.png

А можно еще библиотеки для проекта там же выложить?

Опубликовано

@alexsmit почитай внимательно правила форума,не пости преддыдущий пост полностью.

 

Цитата

2.3.3 Полное цитирование предыдущего сообщения в теме. Это не несёт никакой информации и засоряет форум.

 

Внимание к мелочам, стремление к идеалу.

Опубликовано

Можно прикручивать кнопки и дисплеи.

А можно не прикручивать.

Мне проще не прикручивать.

Опубликовано

К вопросу о библиотеках....

У них есть авторы, и это не я.

Я не могу распоряжаться чужой интеллектуальной собственностью.

Это только на АД смогли запатентовать голову Никсона.

Опубликовано

а с теми бибилиотеками что у меня уставнолены оно не компилируется

n file included from C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,
                 from C:\Users\Zver\Downloads\nodemcu\nodemcu.ino:11:
C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:56:23: error: 'CONST' has not been declared
   56 |   virtual int connect(CONST IPAddress& ip, uint16_t port);
      |                       ^~~~~
C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:56:38: error: expected ',' or '...' before '&' token
   56 |   virtual int connect(CONST IPAddress& ip, uint16_t port);
      |                                      ^
C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:87:10: error: conflicting return type specified for 'virtual size_t WiFiClient::availableForWrite()'
   87 |   size_t availableForWrite();
      |          ^~~~~~~~~~~~~~~~~
In file included from C:\Users\Zver\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Stream.h:27,
                 from C:\Users\Zver\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/HardwareSerial.h:32,
                 from C:\Users\Zver\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:288,
                 from sketch\nodemcu.ino.cpp:1:
C:\Users\Zver\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Print.h:80:21: note: overridden function is 'virtual int Print::availableForWrite()'
   80 |         virtual int availableForWrite() { return 0; }
      |                     ^~~~~~~~~~~~~~~~~
In file included from C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:40,
                 from C:\Users\Zver\Downloads\nodemcu\nodemcu.ino:11:
C:\Users\Zver\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiServer.h:52:3: error: invalid abstract return type 'WiFiClient'
   52 |   WiFiClient available(uint8_t* status = NULL);

и так еще куча ошибок

или укажите версию ардуино иде

Опубликовано

Попробовал датчик давления HX710B

210510172_forHX710B.thumb.png.39349fcd08681d0616d340251c5be519.png

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

На этом датчике сделал измерение и возможность стабилизации кубового давления. Заодно поигрался с ПИД-регулированием.

pid2.thumb.png.6ad8eaaa66bb9cb0837abe42d9e5bee2.png

На скриншоте видно, как регулятор меняет напряжение на тэне для стабилизации давления.

Коэффициенты ПИД задаются вручную, с ними еще нужно разбираться.

Прессостат работает устойчиво, предзахлеб держит стабильно, в захлеб не сваливается.

Схема и исходник  здесь

 

PS. К вопросу об интерфейсе. Мне понадобилось несколько минут, чтобы сделать новую вкладку и вывести на нее все необходимое для работы с давлением.

На мой взгляд, это поудобнее чем приделывать кнопки/экраны.

Опубликовано (изменено)
2 часа назад, dunkel сказал:

непонятно в каких попугаях он измеряет

Повесить параллельно манометр от тонометра - грубо , но хоть какое-то понимание . Для ректификации , этого манометра , более чем достаточно 

@dunkel  для этого прибора , нужно пробрасывать порт и подключать статический IP у провайдера ?

Изменено пользователем митрик
Опубликовано

Да я понимаю, просто тонометр на даче остался, теперь уже до весны.

Может попробую U-образник соорудить. Хотя для прессостата это особого значения не имеет, он и в попугаях стабилизирует.

А вот для коррекции по изменению атмосферного давления надо бы откалибровать.

Опубликовано (изменено)
2 часа назад, митрик сказал:

для этого прибора , нужно пробрасывать порт и подключать статический IP у провайдера ?

Нет, это работает как обычно - доступ к серверу.

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

Ежели кто хочет попробовать - ставьте свой сервер и развлекайтесь, там все очень просто.

https://github.com/blynkkk/blynk-library

https://github.com/blynkkk/blynk-server

Читайте, все подробно расписано.

Изменено пользователем dunkel
  • Спасибо 2
Опубликовано (изменено)

@dunkel четвёртый клапан , для охлаждения , сложно прицепить ? По народному монитору - если нет желания к нему подключаться , просто закоментировать некие  строки ?

Изменено пользователем митрик
Опубликовано
18 минут назад, митрик сказал:

четвёртый клапан , для охлаждения , сложно прицепить ?

Ничего сложного. Количество клапанов ограничивается только количеством свободных портов.

Но я, честно говоря, ни разу не использовал нижний клапан для УНО, обходился гофманом.

Может проще его использовать?

23 минуты назад, митрик сказал:

По народному монитору - если нет желания к нему подключаться , просто закоментировать некие  строки ?

bool narmon = 0; //вывод в Народный мониторинг

  • Спасибо 1
Опубликовано (изменено)
15.01.2022 в 20:19, dunkel сказал:

Попробовал датчик давления HX710B

 

У меня вопрос , по этому варианту - после закипания куба , давление поднимается , до рабочего , не сразу . Если при этом "пропустить вспышку" и не выключить разгон , в 99% колонну начнёт топить , потом , только выключать и ждать слива всей флегмы в куб . Как происходит этот момент в твоём случае ? Какая рабочая мощность и мощность тэна , есть ли режим разгона ? 

Изменено пользователем митрик
Опубликовано

Разгон до вспышки я наблюдаю глазами, у меня очень небольшие кубовые навалки, все происходит быстро.

Я думал над автоматизацией разгона, но для моих объемов это просто бессмысленно. А разгон это кнопка "FULL".

Наверное, мой случай не укладывается в современный тренд, но мне вполне достаточно царги 22-28мм с мочалками и тэна 0,7 -1,2 кВт.

 

  • Спасибо 1
Опубликовано
6 часов назад, dunkel сказал:

мне вполне достаточно царги 22-28мм с мочалками и тэна 0,7 -1,2 кВт.

Ничего жуткого не вижу - каждый работает , как ему подходит . Есть люди , с 70л кубом , 35й трубой , с мочалками и 2мя иглами , из автоматики , простой диммер - их всё устраивает , чуть ли не недельная ректификация никак не смущает . Работают по расчётам АС , без шпор , декрементов и т.д. , получают достойный продукт и менять ничего не собираются .

6 часов назад, dunkel сказал:

разгон это кнопка "FULL".

Может есть некая инструкция или описание всех кнопок ?

Опубликовано (изменено)

А мне наоборот нравится работать с малыми объемами. 3-5л СС с подрезанными кислотами ректифицируются легко и просто, количество ВПП и НПП очень небольшое.

И соответственно требования к колонне снижаются.

А по поводу кнопок, то все сигналы из интерфейса в контроллер передаются командой BLYNK_WRITE, при этом сами кнопки могут быть нарисованы и названы как угодно, или вообще не нарисованы. Смотреть надо на переменные, в которые приходит сигнал, а интерфейс каждый рисует под себя, как больше нравиться.

Немного прокомментировал:

 

//  получаем значения от сервера BLYNK
BLYNK_WRITE(V14) // кнопка STOP (выключает нагрев)
{
  Stop = param.asInt();
}
BLYNK_WRITE(V15) // кнопка FULL (разгон, включает полный нагрев)
{
  Full = param.asInt();
}
BLYNK_WRITE(V16) // слайдер Uout (уставка напряжения на тэне)
{
  Uout = param.asFloat();
}
BLYNK_WRITE(V18) // кнопка KlapVA (вкл. автоматику по дельте верхнего клапана) 
{
  KlapVA = param.asInt();
}
BLYNK_WRITE(V19) // кнопка KlapSA (вкл. автоматику по дельте среднего клапана)
{
  KlapSA = param.asInt();
}
BLYNK_WRITE(V20) // кнопка KlapVP (вкл. периодики верхнего клапана)
{
  KlapVP = param.asInt();
}
BLYNK_WRITE(V21) // кнопка KlapVB (ручное вкл. верхнего клапана)
{
  KlapVB = param.asInt();
}
BLYNK_WRITE(V22) // кнопка KlapSP (вкл. периодики среднего клапана)
{
  KlapSP = param.asInt();
}
BLYNK_WRITE(V23) // кнопка KlapSB (ручное вкл. среднего клапана)
{
  KlapSB = param.asInt();
}
BLYNK_WRITE(V24) // слайдер Sdekr (настройка декремента)
{
  Sdekr = param.asInt();
}
BLYNK_WRITE(V25) // слайдер Sopen (время откр. для периодики)
{
  Sopen = param.asInt();
}
BLYNK_WRITE(V26) // слайдер Sclose (время закр. для периодики)
{
  Sclose = param.asInt();
}
BLYNK_WRITE(V27) // слайдер temp2U (температура среднего градусника для закрытия клапана при работе по дельте)
{
  temp2U = param.asFloat();
}
BLYNK_WRITE(V28) // слайдер temp2D (температура среднего градусника для открытия клапана при работе по дельте)
{
  temp2D = param.asFloat();
}
BLYNK_WRITE(V29) // слайдер temp3U (температура нижнего градусника для закрытия клапана при работе по дельте)
{
  temp3U = param.asFloat();
}
BLYNK_WRITE(V30) // слайдер temp3D (температура нижнего градусника для открытия клапана при работе по дельте)
{
  temp3D = param.asFloat();
}
BLYNK_WRITE(V31) // кнопка bmp (наличие bmp180)
{
  bmp = param.asInt();
}
BLYNK_WRITE(V32) // слайдер P_bmp (ручная уставка давления при отсутствии bmp180)
{
  P_bmp = param.asDouble();
}
BLYNK_WRITE(V33) // кнопка KlapNB (ручное вкл. нижнего клапана)
{
  KlapNB = param.asInt();
}
BLYNK_WRITE(V34) // слайдер R (уставка сопротивления тэна)
{
  R = param.asFloat();
}
BLYNK_WRITE(V35) // кнопка ds127 (вкл. игнорирование ошибки градусников "-127")  
{
  ds127 = param.asInt();
}
BLYNK_WRITE(V36) // кнопка narmon (вкл. отправки в Народный мониторинг)
{
  narmon = param.asInt();
}
BLYNK_WRITE(V37) // слайдер KBP (уставка коф. делителя для измерения входного напряжения)
{
  KBP = param.asFloat();
  KBP = KBP / 10000;
}
BLYNK_WRITE(V38) // кнопка STAB (вкл. прессостата)
{
  STAB = param.asInt();
}
BLYNK_WRITE(V50) // слайдер pid_p (уставка давления для прессостата)
{
  pid_p = param.asFloat();
}
BLYNK_WRITE(V51) // слайдер pid_kp (уставка коэф. ПИД)
{
  pid_kp = param.asFloat();
}
BLYNK_WRITE(V52) // слайдер pid_ki (уставка коэф. ПИД)
{
  pid_ki = param.asFloat();
}
BLYNK_WRITE(V53) // слайдер pid_kd (уставка коэф. ПИД)
{
  pid_kd = param.asFloat();
}

 

Изменено пользователем dunkel
Опубликовано

Провел небольшой эксперимент по вопросу автоматического выключения разгона.

Вариант 1.  Отключение по превышению пороговой температуры на нижнем (или кубовом, если есть) градуснике.

Добавляем в скетч строчку:

  if (temp3 > 60.0) Full = 0; // отключение разгона по нижнему градуснику

И получаем результат:

for6.thumb.png.c47c061a5b7a9a9b23669f0857952b6e.png

 

При росте температуры мощность падает на уставку для пленочного режима, никакого захлеба нет.

 

Вариант 2. Для разгона используем прессостат.

Опытным путем выясняем давление в пленочном режиме (у меня 840 попугаев) и включаем прессостат на это давление.

Он сам разгоняет колонну, а потом сбрасывает мощность:

for7.thumb.png.eee6ea8f814b1880d2ab404b001d50c3.png

 

В итоге колонна стабилизируется в пленочном режиме, никакого захлеба нет.

 

Таким образом, автоматизация разгона не вызывает никаких затруднений.

 

Опубликовано
1 час назад, dunkel сказал:

Вариант 1. 

Предпочтительнее , только управлять правильнее всего Тд внизу царги , а при отключении разгона , включать клапан/насос охлаждения .

@dunkel  на схеме ,ТТР , управляемое напряжением , можно ли применить то , которое управляется током ? Насколько я понимаю , сама ESP на это не способна и нужно городить внешние модули

Опубликовано
7 минут назад, митрик сказал:

включать клапан/насос охлаждения

 

У меня такого нет, на воде обычный кран. Да мне это и не особо актуально.

Я просто попытался ответить на твой вопрос про разгон.

25 минут назад, митрик сказал:

на схеме ,ТТР , управляемое напряжением , можно ли применить то , которое управляется током ? Насколько я понимаю , сама ESP на это не способна и нужно городить внешние модули

 

Тут я не помогу, с такими реле не сталкивался.

Опубликовано
50 минут назад, dunkel сказал:

Я просто попытался ответить на твой вопрос про разгон

Я понял , просто уточнил . Ориентироваться по кубовому Тдатчику неправильно - крепость СС , может быть разной , а отсюда и Ткипения . 

53 минуты назад, dunkel сказал:

Тут я не помогу

Жаль , есть такое у меня , лежит без дела , надеялся применить . Сам проект интересный , жаль , нет всего железа в наличии , так бы собрал , для общего развития

Опубликовано (изменено)
23 минуты назад, митрик сказал:

Ориентироваться по кубовому Тдатчику неправильно - крепость СС , может быть разной , а отсюда и Ткипения

 

Так можно поставить пороговое хоть 40С. Вряд ли что-то закипит.

 

23 минуты назад, митрик сказал:

Жаль , есть такое у меня , лежит без дела , надеялся применить .

 

Напиши точную маркировку, попробую посмотреть.

Изменено пользователем dunkel
Опубликовано
30 минут назад, dunkel сказал:

можно поставить пороговое хоть 40С

В этом и смысл - для куба , нужно следить и думать , а если ориентироваться по Тд колонны , то нет - выставил 50-55°С и забыл . При этом , неважна спиртуозность СС , как только он закипел , низ колонны начинает прогреваться и сигнализирует , что пора переходить на рабочий режим

 

Опубликовано

@митрик  Вполне возможно, у меня в кубе нет градусника. Для куба я бы попробовал отслеживать первую производную (скорость изменения).

Там ничего сложного, простая арифметика: (T2-T1)/dt.

Опубликовано
10 часов назад, dunkel сказал:

Напиши точную маркировку, попробую посмотреть

IMG-20220120-WA0000.thumb.jpg.e6edc511548fb5bc54bb22f2d61c49c0.jpg

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...