Датчики температуры для проекта Arduino sous-vide

8

Я создаю ПИД-регулятор для sous-vide, как этот , и пытаюсь решить, какой датчик температуры получить.

Приоритеты:

  • Стоимость: <£ 25 с доставкой в ​​Великобритании
  • Точность: +/- 0.5C
  • Диапазон: 0 - 100C
  • Выход: что-то, что может быть прочитано Arduino с минимальной дополнительной схемой (например, 0-5 В пост. Тока, сопротивление, которое легко измеряется, или цифровой выход, такой как OneWire и т. Д.)
  • Физические: водонепроницаемые, безопасные для пищевых продуктов (в идеале) и с длиной провода не менее метра - в идеале не слишком много работы для создания этого форм-фактора (у меня нет мастерской)
  • Режим отказа: был бы идеальным, если бы сбой вызвал показания перегрева, а не понижения температуры

Рад идти на компромисс по любому из вышеперечисленного, если это необходимо, но это мой идеал. Также открыт для предложений о том, что еще я должен идти на компромисс. Меня особенно интересуют мысли относительно таких датчиков, как k-тип, pt100, микросхема TMP36 и «стандартный» терморезистор 10K (хотя, если эти названия недостаточно точны, пожалуйста, дайте мне знать, каким я должен быть ищем вместо).

Ричард Рассел
источник
1
Точность 0,5 ° C не имеет смысла и только усложнит вашу жизнь. 1 ° С более чем достаточно. И даже то, что вы не можете получить с термистором NTC, не потратив мучительный день на его калибровку.
Стивенвх
1
Похоже, что приложение действительно требует максимально возможной абсолютной точности. Похоже, что точка контролируемого приготовления пищи работает именно в очень узком диапазоне температур, близких к температуре кипения.
5
Ракетный магнит и ракетный хирург разговаривали, что не смущало глаз.
Кортук
1
@RichardRussell Эта статья Gizmag может быть интересна - июль 2012.
Рассел МакМэхон
1
Вот хорошая реализация видео, которая может дать вам некоторые идеи. flashingleds.net/sousvader/sousvader.html
Рассел МакМахон,

Ответы:

5

Во-первых, согласиться с другими: точность в 1.0C значительно облегчит вашу жизнь.

Кажется, вы настроены на аналоговые датчики, но я бы предложил один с цифровым интерфейсом. Аналоговые датчики являются (используются) радиометрическими (выдают процент Vcc, зависящий от температуры), что дает нелинейный отклик, который вам придется преобразовать. Другой тип (LM35 и т. Д.) Является абсолютным, что требует от вас аналого-цифрового преобразования от эталонного напряжения, которое должно быть (намного) более точным, чем требуемая точность. Если вы не хотите измерить что-то, чего не может датчик цифрового интерфейса (например, >> 100C), это кажется излишним хлопотом.

Изменить: давайте попробуем LM35. 10 мВ / C, даже если предположить, что сам LM35 не вносит ошибок , типичный эталон (LM431 и т. Д.) Имеет точность 1%, что вносит погрешность в 1% в показание температуры! Типичный A / D микроконтроллера имеет 10 бит, давайте предположим, что полная шкала является эталоном 2,5 В (проверьте, позволяет ли это ваш ОК!). 1-битная ошибка A / D (давайте будем оптимистичны, лучше проверьте таблицу данных uC) составляет 2,5 мВ = 1 / 4C ошибка. Так что даже без самого датчика мы имеем ошибку + / 1,25 C (в лучшем случае ..).

Получить датчик цифрового интерфейса, например старый добрый DS1820 / 18S20 / 18B20, все TO92. Или один из датчиков I2C или SPI, который Microchip производит в TO220. Если вы нагреваете в лотке или что-то еще, вы можете подключить вкладку к лотку.

Воутер ван Оойен
источник
Я не возражаю слишком много, если это аналоговый или цифровой - я не знал, что цифровые устройства существуют. Я отредактирую вопрос, чтобы уточнить. Посмотрев на характеристики DS18S20, он выглядит подходящим, мне просто нужно встроить его в своего рода зонд, чтобы погрузиться в воду - нетривиальная задача для того, кто никогда этого не делал :-)
Ричард Рассел
Основываясь на информации, приведенной в этом ответе и других, а также на дальнейших поисках, я нашел водостойкий зонд DS18B20 в Alpha-Crucis (EU). Это также доступно в Adafruit в США. Он отвечает всем моим требованиям и имеет идеальный форм-фактор.
Ричард Рассел
7

Получить точный датчик температуры IC, как LM35CAZ .

LM35CAZ

Вы получаете питание 5 В, и на выходе получается простое напряжение, которое является линейной функцией температуры. Они имеют довольно хорошую точность ± 1⁄4˚C при комнатной температуре.

Добавлено:

Несколько человек говорили о том, что «точность в диапазоне температур» для этого датчика составляет ± 1ºC. Это неправильный диапазон, чтобы говорить о. «Точность при температуре приготовления» - это правильный диапазон для разговора. При температуре около 60ºC точность составляет ± 0,7, и, вероятно, лучше, чем это. «Типичная» линия изменяется примерно на 0,1ºC в зависимости от вашего диапазона приготовления.

Точность LM35CAZ

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

Вариант 1: вы можете использовать воду. Температура воды, которая подвергается замерзанию, составляет 0ºC. Поэтому положите его в небольшую чашку воды в морозильнике и внимательно следите за выходным напряжением. Он будет падать и падать, пока вода не начнет замерзать. В этот момент температура перестанет падать и останется на некоторое время без изменений. По окончании замораживания температура снова начнет падать. Обратите внимание на напряжение в плоской области, которое будет использоваться в качестве точки калибровки 0ºC.

График температуры замерзшей воды

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

Калибровка термометра.

Использование 0ºC и 100ºC не так хорошо, как использование, скажем, 50ºC и 80ºC, но это намного проще. Если у вас есть очень точный термометр, вам следует использовать калибровочные точки ближе к вашей температуре приготовления.

Вариант 2: использовать метиловый спирт. (Спасибо stevenvh) Это кипит при 64.7ºC. Это настолько близко к вашей температуре приготовления, что вам нужна только одна точка калибровки, чтобы получить очень точную температуру приготовления. Очевидно, будьте осторожны, чтобы не опьянеть и не взорвать себя дымом. Не нагревайте алкоголь над открытым огнем!

Добавлено - Усиление

Поскольку вы работаете в узком температурном диапазоне и вам нужна хорошая точность управления, вероятно, также стоит усилить выходной сигнал датчика. Это даст большее разрешение АЦП в Arduino, что приведет к лучшей стабильности алгоритма управления ПИД. См. Вопрос « Преобразование уровня аналогового напряжения (сдвиг уровня)», в котором рассматриваются усиление и сдвиг уровня аналогового напряжения.

Предполагая, что вы работаете в диапазоне 40–100 ° C (0,4–1,0 В). Вы хотите вычесть 0,4 В из сигнала, давая 0,0 В - 0,6 В, и усилить результат с коэффициентом усиления 8, давая 0,0 В - 4,8 В. Это даст отличное разрешение.

Rocketmagnet
источник
Точность в диапазоне температур составляет 1 ° C. 0.25 ° C - разговор о продажах.
Stevenvh
1
@stevenvh - «Точность по температуре» - это неправильный диапазон, о котором можно говорить. «Точность при температуре приготовления» - это правильный диапазон для разговора.
Ракетный магнит
0,5 ° С указано при 25 ° С. Будет ли температура приготовления ближе к этому или ближе к температурному диапазону? Я думаю, последний.
Stevenvh
4
Вы можете калибровать при температуре кипения метилового спирта вместо воды: 64,7 ° C.
Stevenvh
2
Увеличение полезного диапазона для охвата диапазона датчика уменьшит шум квантования, но вы также должны отметить, что теперь он добавляет свой собственный набор ошибок. Даже если вы проводите калибровку в одной точке, теперь вы должны учитывать смещение напряжения на входе усилителя в зависимости от температуры устройства, а не от готовящегося материала. Я не говорю, что усиление - это плохо, просто если вы собираетесь порекомендовать его, вы должны также указать проблемы, которые с ним связаны.
Олин Латроп
3

Похоже, вы спрашиваете только о зонде. Очевидно, вы хотите что-то, что вы можете поставить в прямой контакт с едой. ПИД-регулятор включает в себя не только датчик обратной связи, но кажется, что вы не спрашиваете об этом. Если что-то из этого неверно, вам следует обновить свой вопрос. Я также понятия не имею, что такое "Sous Vide". Любая информация, имеющая к этому отношение, должна быть в вашем вопросе. Ссылки только для справочного материала.

Как отметил Стивен, 1/2 градуса Цельсия очень амбициозны и не нужны, когда вы говорите о еде.

Самым простым датчиком температуры будет термистор. Они могут работать с диапазоном и в противном случае требуется только нагрузочный резистор. Результат также будет пропорционален вашему предложению, поэтому любые изменения предложения будут отменены. Обнаружить сбой в микропрограммном обеспечении легко, поскольку показания очень близко к верхней или нижней части диапазона указывают на нереальные температуры. Если вы получаете что-то за пределами допустимого диапазона температур, вы допускаете аппаратный сбой и вводите то, что вы считаете безопасным режимом. Это действительно проблема прошивки, а не аппаратная с термистором и правильным нагрузочным резистором.

Что касается того, чтобы сделать его безопасным для пищевых продуктов, то следует поместить зонд в стекло. Как насчет эпоксидирования термистора на дно маленькой пробирки, которая затем становится зондом? Верх можно запечатать горячим клеем или чем-то еще. Это должно быть водонепроницаемым, но еда не должна быть там. Только два изолированных провода должны выходить из верхней части трубки. Стекло довольно хорошо передает тепло. Постоянная времени зонда должна быть значительно меньше постоянной времени от мощности нагревателя до температуры смены пищи.

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

Опять же, 1/2 градуса Цельсия требует слишком многого, но в любом случае вам это не нужно. Термистор с 4 точками калибровки, подгонкой по уравнениям и последующей интерполяцией должен быть в порядке для решения актуальной проблемы.

Олин Латроп
источник
Откалибруйте до 1/2 градуса с помощью надежного известного термометра, разве это не решает проблему? Эталонный термометр должен быть, по меньшей мере, такой же точной, предпочтительно более точной, чем эта 1/2 градуса.
Федерико Руссо
1
@Federico: проблема точности, но эталонный термометр может быть любой технологией, не должен быть безопасным для пищевых продуктов и не должен быть машиночитаемым. Приличный ртутный (или другой жидкий) термометр, предназначенный для этого диапазона, должен быть в наличии без особых проблем.
Олин Латроп
У меня есть приличный измерительный термометр, который я могу использовать для калибровки. Мне не нужно, чтобы он находился в непосредственном контакте с едой, но так как он будет погружен в жидкость в рисоварке, которую я также могу использовать для приготовления риса, я не хочу, чтобы она вытекла что-то ядовитое ... Видеосъёмка - это метод приготовления с точными температурами в вакуумных упакованных пакетах на водяной бане. Я строю ПИД-регулятор из Arduino, и в этом случае мне просто нужно определиться с датчиком температуры.
Ричард Рассел
1

Используя LM335Z, вы можете откалибровать смещение и погрешность усиления для любого заданного датчика с помощью 2 тестовых показаний при 0 ° C 100 ° C со льдом и кипящей водой.

Затем получите контрольное значение в середине диапазона, скажем, 50'C.

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

Стандарты 0,1 ° С позволяют ожидать погрешность 0,2 ° С и использовать любой дисплей, который вы выберете, чтобы гарантировать погрешность 0,5 ° С для критических заданных значений.

См. Рис 3

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf

Я бы заклеил датчик тонким слоем пищевой эпоксидной смолы для защиты устройства от утечки влаги и использовал витую пару или две витые пары, используя 2 в качестве экрана, а затем использовал «ферритовые дроссели CM» для поглощения радиочастотных помех.

Затем вам понадобится АЦП с гарантированной точностью +/- 0,5 бита или, возможно, 1 на 256 уровнях, чтобы получить точность 0,5 / 100%. Это не гарантируется в большинстве Arduino, поэтому вам нужно использовать аппаратный ЦАП, чтобы проверить это на Выходе минус Вход на 2-канальном прицеле и выбрать пару AC для CH1 и CH 2, а затем отобразить режим XY CH1 против Ch2, чтобы получить центральную точку, которая проходит максимум +/- 1 бит. Любой шум Vref в вашем АЦП вызовет пропущенные уровни квантования или гистерезис во время переходов, таких как 01111 - 10000, и перекрестные помехи от цифрового заземления на входной аналоговый сигнал заземления не будут выполняться из-за монотонности.

Проверьте сайт TI для литературы по ошибкам АЦП.

@Richard Russell << Я ценю необходимость контроля на 0,5 градуса C при приготовлении органических блюд при низких температурах, когда живой организм начинает быстро умирать выше температуры Пастера, когда бактерии убиты.

Если бы это был я, я бы откалибровал с точностью до 0,1 градуса, используя температуры калибровки усиления смещения между 45 и 65 градусами после того, как он будет надежно прикреплен к хорошо изолированной емкости. Тогда вы сможете превзойти любую другую коммерческую плиту на рынке ... при условии, что она хорошо изолирована диэлектриком с высоким значением R.

Тогда для внешнего вида, чтобы можно было брать 500 долларов, заверните его в точный американский СС, который, как и «Дух Сент-Луиса», сильно царапается и полируется. ;)

Лично я получу гравировку на наружную кислоту SS профессионалами, которые делают это каждый день с произведением искусства, имеющим историческое значение для приготовления пищи, за 50 долларов, а затем доплачивают за заказное произведение искусства с личным логотипом и названием компании. Просто спросите, нужен ли вам хороший реф.

Спасибо, что позволили мне помочь вам с вашей целью.

Тони Стюарт Sunnyskyguy EE75
источник
Приветствия - это действительно полезно. Должен сказать, что я понятия не имею, что такое «американский СС», но это звучит хорошо :-)
Ричард Рассел
SS = Нержавеющая сталь
dext0rb
Конечно, когда вы калибруете датчик, вы делаете это после АЦП. Поэтому вы тоже калибруете ошибку АЦП?
Ракетный магнит
0

Основываясь на информации, приведенной в других ответах, и на дальнейших поисках, я нашел водостойкий зонд DS18B20 в Alpha-Crucis (EU). Это также доступно в Adafruit в США.

Он отвечает всем моим требованиям и имеет идеальный форм-фактор.

Ричард Рассел
источник
1
это просто ссылка на продукт, а не информация о том, почему. Есть пользователи, которые вкладывают много усилий в ответы, чтобы помочь вам научиться, и принятие, как правило, является наградой за такую ​​задачу, особенно если они выполнили всю работу, направляя вас сюда.
Кортук
ОК, я приму другой ответ. Где я должен поставить свой собственный вывод?
Ричард Рассел
Я говорил две вещи: 1) Если чей-то ответ на самом деле привел вас сюда, он, вероятно, должен получить согласие. 2) Написание ответов более чем приемлемо, но вы можете дать нам больше информации, чем просто ссылку. Прямо сейчас я ничего не знаю, кроме того, что это устройство находится в нескольких местах и ​​является водонепроницаемым.
Кортук
Я сделал Sous Vide на DS18B20, с пластиковым наконечником, но модель с металлическим наконечником лучше. Для приготовления пищи достаточно (я использую его ежедневно) и все, что вам нужно, это +/- 1 ° C. Температура не одинакова в вашей кастрюле; температура может быть +/- 3 ° C, в зависимости от того, где вы поместили датчик и как вы нагреваете воду (нагревательная пластина погружения в / с), или если вода циркулирует или нет.