Перейти к содержимому

Добро пожаловать в сообщество любителей домашней колбасы, сыра, пива и других крафтовых продуктов "ЕмКолбаски"
Зарегистрируйтесь сейчас, чтобы получить доступ ко всем функциям нашего портала. После регистрации и входа в систему Вы сможете создавать темы, отвечать на сообщения в существующих темах, изменять репутацию другим пользователям, размещать фотографии своих кулинарных шедевров в галерее, управлять профилем и многое другое. Если у Вас уже есть учетная запись, войдите здесь - или же создайте учетную запись уже сегодня!




Фотография
* * * * * 3 - количество голосов

Коптильный комплекс на базе Arduino. Шаг 3 Датчики температуры

Автор: ДКР , 28 September 2017 · 4629 просмотров

Пора что-то подключить!!!

Начнем с датчиков температуры.... Я не буду глубоко вдаваться в теорию вопроса, но для раскрытия темы придется слегка обобщить материал.

Как уже сказано в "Шаге 0", прошивка позволяет легко менять различное подключенное оборудование. Определимся со списком этого оборудования.
На мой взгляд, на первое время будет достаточно реализовать подключение следующих датчиков:
  • 1 : LM35 ( TMP35, TMP37, LM335) National Semiconductor(диапазон −55˚...150˚C точность + / - 0.75°C)
  • 2 : 10 кОм (подтяжка 4.7К) NTC thermistor(диапазон -55…125 °C точность + / - 0.5°C) стоит в KY-013
  • 3 : 100 кОм (подтяжка 4.7К) ATC Semitec 104GT-2 thermistor (диапазон -50…300 °C точность + / - 0.6°C)
  • 4 : 200 кОм (подтяжка 4.7К) ATC Semitec 204GT-2 thermistor (диапазон -50…300 °C точность +/- 0.6°C) (добавлено 28 10 2017)
  • 5 : DS18B20 ATC Semitec 104GT-2 thermistor (диапазон -50…125 °C точность + / - 0.6-2.0°C) стоит в KY-001
  • 6 : MAX6675 + К-тип термопара (диапазон -200˚...1350˚C точность +/- 0.25°C) (добавлено 29 09 2017)
  • 7 : BME280 (диапазон -40 до + 85 °C точность + / - 1°C)
  • 8 : HTU21D (SHT21, Si7021 HDC1080) (диапазон −40˚...125˚C точность + / - 0.4°C)
  • 9 : SHT31 (диапазон 0%...100% точность +/- 2%) + Т -40-125°C +/- 0.2°C
  • 10 : AM2305/DHT22(диапазон 0%...100% точность +/- 2%) + Т -40-125°C +/- 0.4°C

Список конечно можно расширять, если это нужно....

Почему именно они?

Это популярные представители основных семейств датчиков температуры в массовом сегменте.


LM 35 - представитель семейства "интегральных датчиков температуры"

Это датчики у которых выходное напряжение пропорционально температуре по шкале Цельсия. Очень простое подключение и код для контроллера. Низкая цена. Но не терпит "вольностей" при монтаже.. Все экранируем, ставим RC цепочки... и.т.д. Смотрим Вложенный файл  datasheet LM35.pdf (306.53 КБ)
Скачано: 346.

Основная ценность этих датчиков в том, что у них ЛИНЕЙНАЯ зависимость значения напряжения на выходе от температуры. Коэффициент 10 мВ/ °C.


10 кОм/100 кОм/200 кОм терморезисторы Точные, экономичные, живучие при высоких температурах, стабильные... в общем все вроде чудесно.. Картину портит нелинейность параметров. На разных температурах значение сопротивления на градус разные. Эта особенность отбила желание применять их у многих. Причем эти многие, не понимая причины, кричат "врут", "большая погрешность"... и.т.д. И при этом бурно аплодируют всяким "цифровым" заменителям у которых внутри они же и стоят.. Есть дрейф показателей со временем.... Да, есть трудности пересчета значений, но при нормальном подходе все очень даже не плохо..


DS18B20 Один из самых распространенных представителей семейства "цифровых датчиков температуры". Такой "крепкий середнячёк". Все у него без рекордов, средняя точность, не очень экономичные, склонны к саморазогреву и смерти на низких температурах. Требуют контроллер для снятия показаний. Но функциональность отличная... Имеют память где хранят значения, сигналят о превышении порогов температуры, 2 вида питания основное/паразитное (правда на паразитном питании сужается диапазон).... В общем заслуженно попал в список.


MAX6675 + К-тип термопара Arduino контроллеры не в состоянии переварить данные от термопары, возможности АЦП не позволяют этого. Но если пропустить через дополнительный модуль это становится реальным. Говорить про термопару нечего, достаточно посмотреть на характеристики. (добавлено по комментарию)


AM2305, SHT31, BME280 и HTU21D - комбинированные датчики которые измеряют не только температуру но и влажность, а BME280 еще и давление. Подробней остановлюсь на них в следующем шаге. Так как попали они в список по теме влажности.. А температура уже "прицепом"...


Подключение к контроллеру


Вложенное изображение


Сопротивления на 4,7 кОм нужно подобрать/купить/найти как можно более точные....


Программные вопросы

  • Выбор датчиков

В конфигурации просто поменять цифру типа датчика на нужную.

Вложенное изображение

Если у Вас есть уличный температурный датчик (он является дополнительным оборудованием) установите в строке #define TEMP_SENSOR_EXT тип нужного датчика . Это действие подключит датчик наружной температуры.. Все просто.


Напоминаю: в программе существует поправка показаний датчиков. Она меняет +/- на всем диапазоне измерений..

  • Точность

LM35 - с ним все очень просто, расчет линейный, реализовано 3 уровня точности.

Для выбора точности поменяйте в этом месте значение:

Вложенное изображение


10 кОм/100 кОм терморезисторы - расчет идет не по формуле а через массив значений. Где значению АЦП соответствует свое значение температуры:

Вложенное изображение


Левая колонка - значение АЦП, правая - Температура....

Если у Вас стандартный терморезистор - ничего менять не нужно... Если непонятно что.. то тут можно подправить в нужную сторону значения АЦП...

Например: в диапазоне 15-55 градусов температура отличается от 1 до 0.5 градусов, свыше 55 температура точная...

Первый путь - Заносим в табличный редактор колонку АЦП, посчитали кол-во строк где нужно поменять. Поделили, получили вес 1 строки. Пропорционально разбросали поправку..

Второй путь - Плавно нагревая датчик, контролируем по поверочному прибору температуру и снимаем показания АЦП. Вносим их в таблицу.

  • Усреднение

Цифровые датчики сами усредняют показания, в случае аналоговых это сделано программно.

На экране Вы видите не фактические показания аналоговых датчиков, а усредненные за период. Если что-то не нравится, можно изменить эти интервалы. Меняем их в переменных:

Вложенное изображение

Например: хотим обновлять на экране раз в 2 секунды

Меняем 3000 на 2000.

Сами датчики опрашиваются чаще, если мы хотим за 2 секунды делать 10 замеров то меняем 300 на 200. Если 5 замеров то меняем 300 на 600 и у переменной "const int NumRead" поменяем значение с 10 на 5.


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

Надеюсь понятно описал....

  • Установка

Подготовил новый релиз программы с подключенными датчиками температуры.

Необходимо скачать библиотеку OneWire. Скачать.

Те кто ставит первый раз, не забываем установить шрифты. Там все картинки.


И заменить прошивку контроллера.Вложенный файл  TARNET8.RAR (12.6 КБ)
Скачано: 388 (Устарела, см. более свежие версии выше)


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


Следующий шаг - "Вентиляторы"


Спасибо за внимание))






Фотография
Константин М
29 Sep 2017 01:12

А такой штукенс - https://ru.aliexpres...2753850553.html

имеет низкую цену и резьбу для крепления.

 

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

    • Это нравится: ДКР
  • Жалоба

А такой штукенс 

 

Заказал, как придет прикручу..... Только что-то у меня вопрос про инерционность возникает... И думаю он для сосуда с жидкостью больше подходит чем для воздушной камеры. Как бы не увидеть температуру стенки к которой прикручен вместо температуры воздуха..

Добавил в список.. термопару думаю можно любую поставить
 

 

а вот датчик влажности 

 

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

    • Это нравится: Константин М и Бомбардир
  • Жалоба

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

А если сделать как в КТД-100 два термометра.

 

Это из руководства по эксплуатации КТД-100:

Влажность технологической среды в камере определяется по разности показаний сухого и влажного термометров. Влажный термодатчик должен быть обернут тонкой, хорошо смачиваемой х\б тканью в один слой (ткань не должна иметь складок). Другой конец ткани опустить в емкость с водой. Длина ткани от уровня воды до влажного термодатчика (5…10см.) должна быть отрегулирована.

  • Жалоба

А если сделать два термометра.

Уже сделал, правда наполовину...
Опишу, что сделал: (Вам пока не видно, работа над влажностью идет еще)

Если в качестве измерителя влажности указать датчик температуры то программа уходит на расчет влажности по разнице температур. 
Дальше я взял псих.таблицу (физика 10 класс) в вогнал ее как массив в память. 
Вроде один шаг сделал.. Думаю, как поправки считать буду.? Прикрутил датчик давления (BME280- он в списке не просто так появился) Получил атмосферное давление, посчитал разницу с установленной для псих.таблицы. Полез в Приложение 2 ГОСТ 8.524-85 за поправкой, заплутал в ней при переводе единиц измерения..бросил пока.. как разберусь - загружу как массив.
Параллельно понял, что таблица из учебника не подходит по точности(+/-1 градус). Встал вопрос расчета таблицы с точность +/- 0,1 градус. 
Считать конечно лень, ну думаю найду где... гугл поможет..
Осталась мелочь - посчитать поправку на скорость обдува...... Товарищ Зворыкин конечно формулу придумал... Ну а мне то что делать? Я не знаю как это соединить с регулируемой скоростью вентиляторов и неизвестно какой камерой... 

В общем пока застрял..... Поможете, буду рад)

  • Жалоба

Осталась мелочь - посчитать поправку на скорость обдува...... Товарищ Зворыкин конечно формулу придумал... Ну а мне то что делать? Я не знаю как это соединить с регулируемой скоростью вентиляторов и неизвестно какой камерой... 

В общем пока застрял..... Поможете, буду рад)

Не только от объема камеры и скорости вентилятора, но и от загрузки будет меняться скорость потока. 

Закройте датчик от направленного потока, например как тут: http://electromost.c...i/2010-11-30-13

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

Откалибруйте уже в камере.

А вообще то, вам так важна погрешность показания влажности в камере?

Многие вообще не измеряют влажность.

Можно опытным путем определить, достаточна или нет влажность при термообработке. Лишняя влага будет на полу камеры и постепенно уменьшая подачу воды на лопасти вентилятора или пара от парогенератора, можно добиться требуемой влажности при термообработке.

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

    • Это нравится: ДКР
  • Жалоба

А вообще то, вам так важна погрешность показания влажности в камере?

Я смотрю на контроллер как на общую платформу, а не как конкретный образец для конкретной камеры. Сегодня коптим, а завтра климат-камера.. По этому пытаюсь сохранить универсальность и брать от датчиков все что они могут дать..     

    • Это нравится: vash
  • Жалоба

Похоже, что контроллер после небольших доработок можно использовать на небольших атомных станциях, судя по обилию возможной периферии :)

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

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

  • Жалоба
 

В конфигурацию добавлен новый тип датчика: 
200 кОм (подтяжка 4.7К) ATC Semitec 204GT-2 thermistor (диапазон -50…300 °C точность +/- 0.6°C)
 
В щупах измерения температуры продукта для духовок часто 200 кОм терморезисторы.

  • Жалоба