softm

Самодельный термостат с pid на "Ардуино" (здоровое питание diy, йогурт, темпе, натто)

40 повідомлень у цій темі

Пару слов как я делал єлектронику к самодельному термостату.

 

Взял следубщие запчасти:

  • индикатор 1602
  • Ардуино "Уно" (можно любое, но "уно" было)
  • датчик Даллас Ds18b20
  • исполнительная плата с парой реле

 

 

Написал программу, смысл которой в чтении показаний датчика, сравнении с эталонной температурой, и включением реле. Программа работает под древней версией "Ардуино" 1.0.6.(мне лично так удобней).

 

Программа она там в конце есть ссылка на архив.

 

Пока в виде макета оно валяется, приделаю в какой-то корпус то все ...

 

 

Screenshot_48.jpg

 

ПС. Почему и зачем? Точность датчика 0.1С. И мне надо держать одну температуру. А найти куда я запхнул термостат от аквариума я не смог. Но он где-то есть 100% :)

2

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

На фото 1602 -85гр + Ардуіно Uno -215гр + реле-65гр + давач температури.

 

Як альтернатива - Терморегулятор W1209 - 95гр.

 

Хоча мені більше подобається китаєць REX C100, бо має автонастройку парамтерів ПІД регулятора.

З власного досвіду, замкнуті термоізольовані об'єкти легко нагріти, але важко (довго) охолоджувати.

І в більшості випадків перегрівати такі девайси навіть на незначну величину температури недопустимо.

 

Тому цікаво побачити результати регулювання за допомогою пропонованого автором регулятора (термостата) і процес налагодження його параметрів.

 

2

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
6 годин назад, kratmel написав:

замкнуті термоізольовані об'єкти легко нагріти, але важко (довго) охолоджувати.

 

Малесенький вентилятор поставити, щоб в середині повітря перемішував?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Як любитель городити саморобки замість використання готових конструкцій згадаю про ще одну перевагу саморобок.

Вони гнучкі і придатні до розширення.

Єдиний момент, замість Arduino я в більшості випадків використовую ESP32.

Отож типовий кейс: потрібно гігрометр+термометр в сауну, щоб контролювати температуру і вологість в парилці. Беру ESP32+DHT21+OLED дисплей, програму пишу в середовищі Arduino. Все працює, усі задоволені. Проходить місяць-другий, полінувався бігати час від часу в сауну щоб перевірити "Натопилася чи ще ні?". Запустив на ESP-сі маленький Web-сервер, тепер показники доступні на веб-сторінці в локальній мережі. Ще через місяць, забувся відчинити кватирку в парилці, споруда не просохла вчасно. Додав Telegram-сповіщення про тривалу високу вологість. Тоді ж додав ще один датчик DS18B20, для вимірювання температури води в баку який гріється сонцем, на даху. Прийшла осінь, за нею зима. Сауна добре утеплена, але при тривалих заморозках може охолонути нижче нуля. Щоб не замерзла вода в ємностях, встановив 60Вт лампу розжарювання, яку вмикаю через твердотільне реле від тієї ж ESP-хи. Попутно повідомляючи зранку про це в Telegram.

Час від часу ESP-ха може зависнути, тому на NE555 городжу таке - https://github.com/mattbornski/Arduino-Watchdog-Circuit/find/master

Софтову частину не використовував, просто вставив в цикл реконекта WiFi команду ресету Watchdog.

Виникла потреба в барометрі - додав BMP180.

Захотів збирати статистику цього всього і віддалено вмикати лампу - додав MQTT. І так далі.

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

3

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 година назад, Karmadon написав:

Малесенький вентилятор поставити, щоб в середині повітря перемішував?

Мав справу із маленькими і великими об'єктами. Вентилятор вирівнює температуру в об'ємі але пришвидшувати охолодження не допомагає. Особливо в добре утеплених камерах запікання порошкової фарби (велика маса нагрітих частин)

 

 

Змінено користувачем kratmel
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 година назад, Zalizovskiy написав:

Час від часу ESP-ха (Ардуінка) може зависнути...

Це напевно головна проблема таких схем.

Для прикладу - маю розроблену на Ардуінці систему рухомого упору для стрічкової пили, що приводиться в рух кроковим двигуном чи кроковим серво.

В базовому варіанті - все працює ідеально. Але це тільки на столі.

На реальному верстаті - все працювало до першого включення насоса охолоджувальної рідини - далі зависло і збились координати. Повністю забрати зависання і проблеми з Ардуїнкою вдалося лише повністю гальванічно ізолювавши її.

Тобто по живленню, входах і виходах. В результаті бажана економія на використанні такого рішення  зійшла нанівець.

 

Так система нормально працює зараз, але повторювати її для іншого верстата я не став. Поставив промисловий контролер і все запрацювало зразу після встановлення на верстаті. 

 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

З практиком не посперечаєшся, я розмірковую чисто теоретично.

Датчик жеж не встановиш біля нагрівача, тому теплому повітрю треба певний час, щоб за допомогою конвекції він дійшов до датчика, от я цей час і пропоную зменшити за допомогою вентилятора.

Чи я не правий?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, kratmel написав:

Це напевно головна проблема таких схем.

Звичайно ж слід оцінювати вартість відмови подібної самодіяльності.

В моєму випадку максимальним збитком буде розтріскування бочки з водою, якщо різко вдарить мороз. Але тої води небагато і зазвичай в морози її там не тримають.

Щодо стабільності, в моєму випадку апаратний Watchdog повністю вирішив проблему. Єдиним гемороєм залишилося зберігання констант, які вираховуються в процесі роботи. Їх або в зовнішній flash зберігати (а вона теж не вічна, тобто привіт FRAM), або передавати назовні (що я і роблю по MQTT).

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, Karmadon написав:

от я цей час і пропоную зменшити за допомогою вентилятора.

Якщо зразу після включення нагріву - перемішувати повітря вентилятором то буде фактично однакова температура по об'єму. І рости вона буде відповідно. Без примусового руху повітря - встановиться якийсь режим природньої циркуляції.

Просто виключивши нагрів в момент коли температура досягне бажаної - матимемо перерегулювання бо нагрівач не вистигає миттєво. Тут або бавитись із зменшненням потужності нагріву при досягненні певної температури, або застосовувати ПІД регулятор який треба відповідно налаштувати.

 

 

 

 

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, Zalizovskiy написав:

зберігання констант, які вираховуються в процесі роботи.

Ось саме тому промислові ПЛК мають батарею. І все це живе в RAM.

Я не пригадую чи плата RTC для Ардуінки не має вбудованої пам'яті, що  підтримується батарейкою...

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, kratmel написав:

Я не пригадую чи плата RTC для Ардуінки не має вбудованої пам'яті, що  підтримується батарейкою...

Популярний Arduin-івський модуль DS3231 і його старший брат 1307 мають окрему 24С32 і все. Звичайно ж, якщо туди постійно писати наприклад константи PID, які постійно оновлюються, флешки вистачить на місяць-два.

В інших саморобках я використовував оце -  https://www.aliexpress.com/item/1005003077716200.html?spm=a2g0o.productlist.0.0.4e7d571bPj9Oma&algo_pvid=ae02b75e-bd4b-44d9-986c-ce4c00977bd5&algo_exp_id=ae02b75e-bd4b-44d9-986c-ce4c00977bd5-1&pdp_ext_f={"sku_id"%3A"12000023914117862"} 

...вкупі із оцією бібліотекою  - https://github.com/systronix/Systronix_MB85RC256V

Працює вже кілька років, вміст оновлюється раз в кілька секунд.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Маю думку, що вибір алгоритму регулювання залежить від об'єкту.

Скажімо, для нагріву баку з водою, коли теплоємність об'єкту значно перевищує теплоємність нагрівача, частіше за все вистачить і просто позиційного регулювання, або, якщо потрібно дуже точне підтримання температури - регулювання пропорційним алгоритмом, з плавним зменшенням/збільшенням потужності поблизу точки уставки. ПІД-регулювання буде для такого випадку явно надлишковим.

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, Олек77 написав:

ПІД-регулювання буде для такого випадку явно надлишковим.

Тим власне мені і цікавий допис автора теми.

Інакшого способу зменшити потужність нагрівача окрім "повільного" ШІМ (PWM) у автора нема - на фото бачимо тільки реле.

А як себе поведе алгоритм із гістерезисом в замкнутому об'ємі - питання експерименту.

Добавляти SSR і "швидкий" ШІМ - то подальші експериментальні дослідження.

 

Тому моя думка - релейний вихід для такого об'єкта потребує ПІД алгоритму.

Маючи можливість плавно регулювати потужність можемо бавитись із іншими способами регулювання.

 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Ок, собрал, протестировал

Вылет первого цикла 0,25С. начиная со второго цикла  - 0.12С..

Мощность нагревателя - 20Вт (4*Ф0.4 нихрома около 3.5 метров).

Емкость камеры макс - 9.5л. 280*280*120

Емкость для тестирпования-  1.5 л (воды с начальными 23С)

Выход в режим - 22 минуты

Толщина изоляции - 40 мм экструдированного пенопласта

--

risovaja_muka__002-2.jpg

 

Коробка такая

 

risovaja_muka__001-4.jpg

 

Внутри

 

risovaja_muka__003-2.jpg

 

Больше слов зачем это, вот тут.

 

 

 

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
46 минут назад, softm сказал:

Вылет первого цикла 0,25С. начиная со второго цикла  - 0.12С..

Похоже, алгоритм все-таки ПИД?

Хотя, при таких раскладах, температура в емкости в режиме нагрева догонит температуру "воздушной бани" только часов через 5-6, если холодную воду залить.

Но да, держать температуру внутри гастроемкости должно с таким теплоаккумулятором даже точнее, чем погрешность датчика.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 година назад, Олек77 написав:

Похоже, алгоритм все-таки ПИД?

Хотя, при таких раскладах, температура в емкости в режиме нагрева догонит температуру "воздушной бани" только часов через 5-6, если холодную воду залить.

Но да, держать температуру внутри гастроемкости должно с таким теплоаккумулятором даже точнее, чем погрешность датчика.

 

Я выложил на блоге текст программы с использованными в 1.0.6 версии "Ардуино" библиотеками.  Функция просто - сравнение, обработка от "далласа" не происходит, гистерезиса то есть - нет.

 

По технологии туда надо "комнатное" ставить. 23С где-то у меня.

 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
10 минут назад, softm сказал:

Я выложил на блоге текст программы с использованными в 1.0.6 версии "Ардуино" библиотеками

Не-не, Ардуинки, их программки - это не ко мне - совсем не Копенгаген.

Да, в таком варианте можно и "комнатное" двухпозиционное ставить - емкость все сгладит.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
8 часов назад, Karmadon сказал:

З практиком не посперечаєшся, я розмірковую чисто теоретично.

Датчик жеж не встановиш біля нагрівача, тому теплому повітрю треба певний час, щоб за допомогою конвекції він дійшов до датчика, от я цей час і пропоную зменшити за допомогою вентилятора.

Чи я не правий?

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

 

4 часа назад, softm сказал:

Выход в режим - 22 минуты

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

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Распределили 0,9 л продукта по баночкам. Запустил тест на 38С.

 

Screenshot_50.jpg

 

Подъем/опускание температуры жидкости приблизительно 3..4С в час. Вылет воздуха составляет около 0,4С. 

 

Пид пока не приделал, в виде библиотеки для Ардуино 1.0.6 он есть, правда с ошибкой, но если ее исправить все ок работает.  Как исправить есть у меня на блоге ))

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

А головний апарат також буде керуватися ардуїнкою? 

;-)

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, ttnd3d написав:

А головний апарат також буде керуватися ардуїнкою? 

;-)

 

Не понял вопроса))

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Вторая версия прошивки, приделана кнопка для выбора 32С/38С по кругу

 

вот тут написал пару слов про обработку прерывания в Ардуино "Уно" и про то, что делаю. Исходные тексты программы и всех библиотек прилагаются там же.

 

risovaja_muka__001-8.jpg

 

Внутри прошивки есть "пид", но не активированный, компилируется ... настраивать надо три параметра kp ki kd ... кто хочет може попробовать. 

 

Также каждый 10-ть циклов инициализируется индикатор 1602, бо подвисал (!), вероятно от ЭМИ помехи...  термостат работал, а индикатор выводил пургу. Ну и следует учесть что я проводами то все подключил длинными. Правильно конечно развести плату и сделать аккуратно.

 

Йогурт уже два раза делали, второй раз из вторички, а не бактериальной закваской.

Темпе только запустил. Кратко как сделать есть по той же ссылке сверху.

 

Надеюсь кому то полезно будет то все прочитать...

2

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
16 годин назад, softm написав:

 

Не понял вопроса))

Закваска буде в термокамері вигріватися. Малувато її, правда, на перший погляд.

А самогонний апарат вручну буде підтримуватися в потрібному режимі? 

)

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
4 години назад, ttnd3d написав:

Закваска буде в термокамері вигріватися. Малувато її, правда, на перший погляд.

А самогонний апарат вручну буде підтримуватися в потрібному режимі? 

)

 

Делал йогурт, и сейчас делаю темпе)))

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
4 години назад, softm написав:

 

Делал йогурт, и сейчас делаю темпе)))

Тююююю. Так не інтересно )))

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Створіть акаунт або увійдіть для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!


Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.


Увійти зараз

  • Зараз на сторінці   0 користувачів

    Немає користувачів, які переглядають цю сторінку