Перейти к публикации
dunkel

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

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

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

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

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

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

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

 

210806_RK_1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 ?

Просто привык по дельте работать с колонной, но хочется удобства с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, митрик сказал:

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15.01.2022 в 20:19, dunkel сказал:

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@dunkel Попробуй эту кнопку в редакторе сообщений форума для выделения кода в тексте.image.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...