Sensores de temperatura para un proyecto Arduino sous-vide

Estoy creando un controlador PID para sous-vide, como este , y estoy tratando de decidir qué sensor de temperatura elegir.

Prioridades:

  • Costo: < £ 25 entregado en el Reino Unido
  • Precisión: +/- 0.5C
  • Rango: 0 - 100C
  • Salida: algo que un Arduino puede leer con un circuito adicional mínimo (por ejemplo, 0-5 V CC, una resistencia que se mide fácilmente o una salida digital como OneWire, etc.)
  • Físico: resistente al agua, apto para alimentos (idealmente) y con una correa de al menos un metro de largo; idealmente, no requiere demasiado trabajo para crear este factor de forma (no tengo un taller)
  • Modo de falla: sería ideal si una falla causara una lectura de temperatura excesiva en lugar de una temperatura insuficiente

Feliz de ceder en cualquiera de los anteriores si es necesario, pero este es mi ideal. También estoy abierto a sugerencias sobre qué más debería ceder. Estaría particularmente interesado en ideas sobre sensores como un tipo k, un pt100, un chip TMP36 y un termistor 10K "estándar" (aunque si estos nombres no son lo suficientemente específicos, hágamelo saber lo que debería ser buscando en su lugar).

La precisión de 0,5 °C no tiene sentido y solo hará que su vida sea más difícil. 1°C es más que suficiente. E incluso eso no se puede obtener con un termistor NTC sin pasar un día doloroso calibrarlo.
Parece que la aplicación en realidad requiere la mayor precisión absoluta posible. Parece que el punto de cocción controlada está operando precisamente en un rango muy estrecho de temperaturas cercanas a la ebullición.
Para una cocina sous-vide, realmente solo necesita uno o dos puntos de calibración, porque está trabajando en un rango de temperatura muy limitado.
@RocketSurgeon - Sous vide generalmente se cocina a unos 60ºC. La precisión que necesita depende de lo que se esté cocinando. Puede variar mucho.
Bueno saber. Pensé erróneamente en recetas de té que requerían calentar el agua casi hasta el punto de ebullición pero evitando hervir, cosas como esta.
Rocketmagnet y Rocketsurgeon teniendo una conversación, eso no fue confuso para nada a la vista.
¿Por qué siento que he visto exactamente la misma pregunta antes? Ah, de tu pregunta anterior.
Los baños de agua comerciales no parecen citar precisión. Citan resolución, estabilidad y uniformidad. ¿Es realmente necesario un nivel tan alto de precisión?
@Kellenjb: esta pregunta es sobre el sensor de temperatura. Mi pregunta anterior era sobre el relé.
@Cybergibbons: estoy feliz de calibrar en lugar de tener algo absolutamente preciso, pero me gustaría saber cuando una receta dice 55C, que puedo configurarla en 55C y obtener el resultado que estoy buscando. Por lo que puedo decir, eso realmente necesita una precisión de +/- 0.5C, aunque +/- 1C podría ser aceptable. +/-2C no sería aceptable.
@RichardRussell Este artículo de Gizmag puede ser de interés: julio de 2012.
Aquí hay una buena implementación de sous vide que puede darle algunas ideas. flashingleds.net/sousvader/sousvader.html

Respuestas (5)

Primero, estar de acuerdo con los demás: optar por una precisión de 1.0C hará que su vida sea mucho más fácil.

Parece que está configurado con sensores analógicos, pero le sugiero uno con una interfaz digital. Los sensores analógicos son (usados) radiométricos (entregan un porcentaje de Vcc dependiente de la temperatura), lo que da una respuesta no lineal, que tendrá que convertir. El otro tipo (LM35, etc.) son absolutos, lo que requiere A/D contra un voltaje de referencia que debe ser (mucho) más preciso que la precisión deseada. A menos que desee medir algo que un sensor de interfaz digital no puede (como >> 100C), esto parece una molestia innecesaria.

Editar: probemos con un LM35. 10 mV/C, incluso suponiendo que el LM35 en sí mismo no presente ningún error , una referencia típica (LM431, etc.) tiene una precisión del 1 %, lo que introduce un error del 1 % en la lectura de temperatura. Un microcontrolador típico A/D es de 10 bits, supongamos que la escala completa es una referencia de 2,5 V (¡compruebe si su uC lo permite!). El error A/D de 1 bit (¡seamos optimistas!, mejor verifique su hoja de datos de uC) es 2.5mV = error de 1/4C. Entonces, incluso sin el sensor en sí, tenemos un error de +/ 1.25 C (en el mejor de los casos...).

Obtenga un sensor de interfaz digital, por ejemplo, el viejo DS1820 / 18S20 / 18B20, todos TO92. O uno de los sensores I2C o SPI que fabrica Microchip en TO220. Si está calentando en una bandeja o algo así, puede conectar la pestaña a la bandeja.

No me importa demasiado si es analógico o digital; no sabía que existían dispositivos digitales. Editaré la pregunta para aclarar. Habiendo mirado las especificaciones del DS18S20, parece adecuado, solo necesitaría incrustarlo en algún tipo de sonda para sumergirlo en el agua, un desafío no trivial para alguien que nunca ha hecho eso :-)
Según la información proporcionada en esta respuesta y varias otras, y buscando más, encontré una sonda impermeable DS18B20 en Alpha-Crucis (UE). También está disponible en Adafruit en los EE. UU. Cumple con todos mis requisitos y tiene un factor de forma ideal.

Obtenga un IC de sensor de temperatura de precisión, como el LM35CAZ .

LM35CAZ

Lo alimenta con unos buenos 5v, y la salida es un voltaje simple que es una función lineal de la temperatura. Tienen una precisión bastante buena de ±1⁄4˚C a temperatura ambiente.

Agregado:

Varias personas han hablado de que la "Precisión sobre el rango de temperatura" de este sensor es de ±1ºC. Este es el rango equivocado para hablar. La "precisión a la temperatura de cocción" es el rango correcto del que hablar. A unos 60ºC, la precisión es de ±0,7, y probablemente mejor que eso. La línea 'típica' varía alrededor de 0,1ºC sobre su rango de cocción.

Precisión de LM35CAZ

Probablemente solo necesite uno o dos puntos de calibración para que este sensor sea lo suficientemente preciso para sus necesidades. Pero, por supuesto, eso requiere un termómetro preciso para calibrarlo. Para eso, tienes un par de opciones:

Opción 1: Puedes usar agua. La temperatura del agua que se está congelando es de 0ºC. Así que métalo en una pequeña taza de agua en el congelador y observe cuidadosamente el voltaje de salida. Caerá y caerá hasta que el agua comience a congelarse. En este punto, la temperatura dejará de bajar y se mantendrá plana por un tiempo. Una vez que se completa la congelación, la temperatura comenzará a descender nuevamente. Tome nota del voltaje en la región plana para usar como su punto de calibración de 0ºC.

Gráfica de temperatura del agua helada

Haz lo mismo con el agua hirviendo. Lo mejor es hacerlo al nivel del mar. Si no está al nivel del mar, compruebe cuál es la temperatura de ebullición del agua a su altitud.

Calibración de un termómetro.

Usar 0ºC y 100ºC no es tan bueno como usar, digamos 50ºC y 80ºC, pero es mucho más fácil. Si tiene un termómetro muy preciso disponible, entonces debe usar puntos de calibración más cercanos a su temperatura de cocción.

Opción 2: Usar alcohol metílico. (Gracias stevenvh) Esto hierve a 64.7ºC. Esto está tan cerca de su temperatura de cocción, que solo debería necesitar un punto de calibración para obtener una temperatura de cocción muy precisa. Obviamente, tenga cuidado de no intoxicarse o volarse con los vapores. ¡No caliente el alcohol sobre una llama desnuda!

Agregado - Amplificación

Dado que está trabajando en un rango de temperatura estrecho y necesita una buena precisión de control, probablemente también valga la pena amplificar la salida del sensor. Esto dará una mayor resolución de ADC en Arduino, lo que se traducirá en una mejor estabilidad del algoritmo de control PID. Consulte la pregunta Conversión de nivel de voltaje analógico (cambio de nivel) que analiza la amplificación y el cambio de nivel de un voltaje analógico.

Asumiendo que está trabajando en el rango de 40ºC - 100ºC (0.4v - 1.0v). Querrá restar 0,4v de la señal, dando 0,0v - 0,6v, y amplificar el resultado con una ganancia de 8, dando 0,0v - 4,8v. Esto le dará una excelente resolución.

La precisión sobre el rango de temperatura es de 1°C. 0.25°C es hablar de ventas.
@stevenvh - "Precisión sobre temperatura" es el rango incorrecto del que hablar. La "precisión a la temperatura de cocción" es el rango correcto del que hablar.
0,5°C se especifica a 25°C. ¿La temperatura de cocción estará más cerca de eso o más cerca del rango de temperatura? Creo que esto último.
@stevenvh: creo que el diagrama que publiqué responde esa pregunta.
No me malinterpretes, no quiero que tu sensor se vea mal. Quiero ser realista. Como ingeniero de diseño, evito los valores típicos. Diseño para el peor de los casos. Si se especifica un máximo de 0,7 °C a 60 °C , significa que puede ocurrir , sin importar cuán agradable se vea el 0,1 °C. Dependiendo de su aplicación, contar con valores típicos puede ocasionar problemas de calidad.
@stevenvh - Por eso es una buena idea calibrar a 0ºC y 100ºC. Hacer esto probablemente traería la precisión dentro de 0.25ºC. A menos que realmente diseñe para el peor de los casos y asuma que la precisión cambia aleatoriamente dentro de esos límites.
Podrías calibrar en el punto de ebullición del alcohol metílico en lugar del agua: 64,7°C.
@stevenvh - ¡Es una buena idea! Probablemente podría hacer una calibración de 1 punto en ese caso para obtener una precisión lo suficientemente buena. Aunque tendría que tener cuidado de no intoxicarse/inmolarse.
Siéntase libre de agregarlo a su respuesta. No todo el mundo lee todos los comentarios.
La amplificación del rango útil para cubrir el rango del sensor reducirá el ruido de cuantificación, pero también debe tener en cuenta que ahora agrega su propio conjunto de errores. Incluso si calibra en un solo punto, ahora debe considerar la desviación del voltaje de compensación de entrada del amplificador sobre la temperatura del dispositivo, no las cosas que se cocinan. No digo que amplificar sea malo, solo que si lo vas a recomendar, también debes indicar los problemas que conlleva.
@Olin - Ese es un buen punto. Sin embargo, el ruido de cuantificación es realmente malo en este caso. 5 LSB sobre 0,25ºC. Esto hará que la estabilidad sea bastante difícil. Mañana mencionaré errores de amplificación en la respuesta.
Tenga en cuenta que el dispositivo está recortado de fábrica, por lo tanto, el 0.5C AT 25C garantizado (para el modelo superior) y la divergencia en ambos sentidos. Es muy probable [TM] que se comportará igual de bien a cualquier otra temperatura razonable una vez calibrado.
Gracias por esta respuesta y discusión - muy apreciada
@RichardRussell - Sin problemas. No olvides votar a favor y/o marcar las respuestas útiles.
Como nota al margen, puede encontrar que una taza de agua helada alcanzará los 0 grados con mucha precisión. Esto se debe a que el derretimiento del hielo lo mantendrá a 0 grados, para pasar por encima tiene que derretir todo el hielo. Solo una simple taza de agua helada le dará una excelente referencia de 0 grados en el medio, no es necesario mirar para siempre (es necesario compensar la presión y el contenido mineral si desea ser súper preciso)
Solo una nota de alguien que era muy bueno en química. Cualquier impureza, ácido, base, sal, dureza del agua, cobre, hierro, etc. disueltos en el agua cambia tanto su punto de ebullición como su punto de congelación, y como se trata de una calibración, el agua destilada es tan barata y fácil de conseguir ¡Asegúrese de usar agua destilada para todas sus necesidades de calibración! No obtendrá la "elevación del punto de ebullición" o la "depresión del punto de congelación" que obtendría del grifo (o incluso del cielo).
El hielo también debe estar hecho de agua destilada. ¡Use solo agua destilada para las calibraciones más precisas!

Parece que solo estás preguntando por la sonda. Aparentemente quieres algo que puedas poner en contacto directo con la comida. Un controlador PID incluye mucho más que solo el sensor de retroalimentación, pero parece que no está preguntando por eso. Si algo de esto es incorrecto, entonces debe actualizar su pregunta. Tampoco tengo idea de qué es una cosa "Sous Vide". Cualquier información relevante debe estar en su pregunta. Los enlaces son solo para material de fondo.

Como mencionó Steven, 1/2 grados centígrados es muy ambicioso e innecesario cuando se habla de comida.

El sensor de temperatura más fácil será un termistor. Pueden manejar el rango y, de lo contrario, solo necesitan una resistencia de carga. El resultado también será proporcional a su suministro, por lo que cualquier variación en el suministro se cancelará. La detección de fallas es fácil en el firmware ya que las lecturas muy cercanas a la parte superior o inferior del rango indican temperaturas poco realistas. Si obtiene algo fuera de un rango de temperatura válido, entonces asume una falla de hardware e ingresa lo que crea que es su modo seguro. Este es realmente un problema de firmware, no de hardware con un termistor y la resistencia de carga correcta.

En cuanto a hacerlo apto para alimentos, encerrar la sonda en vidrio debería ser bueno. ¿Qué tal aplicar epoxi al termistor en el fondo de un pequeño tubo de ensayo, que luego se convierte en la sonda? La parte superior se puede sellar con pegamento caliente o algo así. Tiene que ser hermético al agua, pero la comida no debería estar allí. Solo deben salir dos cables aislados de la parte superior del tubo. El vidrio es bastante bueno para transmitir calor. La constante de tiempo de la sonda aún debe ser mucho menor que la constante de tiempo desde la potencia del calentador hasta el cambio de temperatura de los alimentos.

Los termistores no son muy precisos a menos que pague mucho dinero. Para un proyecto de pasatiempo único, obtendría cualquier termistor que se pueda tener en el rango correcto y calibraría manualmente. Calibre a unas pocas temperaturas conocidas determinadas a partir de un termómetro confiable conocido, luego haga que el firmware interpole en el medio. Para obtener crédito adicional, incluso puede buscar la ecuación nominal del termistor, ajustar los puntos medidos lo mejor posible y luego derivar la función continua a partir de eso. Puede completar una tabla fija en el firmware con muchos segmentos de la función calibrada para que la interpolación lineal entre segmentos sea bastante buena.

Una vez más, 1/2 grados centígrados es pedir demasiado, pero de todos modos no necesitas tanto. Un termistor con quizás 4 puntos de calibración, ajuste de ecuación y luego interpolación debería estar bien para resolver el problema real.

Calibre a 1/2 grado usando un termómetro confiable y conocido, ¿no es eso lo que está moviendo el problema? El termómetro de referencia debe ser al menos tan preciso, preferiblemente más preciso, que ese 1/2 grado.
@Federico: Se está moviendo el problema de la precisión, pero el termómetro de referencia puede ser cualquier tecnología, no necesita ser apto para alimentos y no necesita ser legible por máquina. Un termómetro decente de mercurio (u otro líquido) diseñado para ese rango debería estar disponible sin demasiados problemas.
Tengo un termómetro de sonda decente que está calibrado que puedo usar para calibrar este. No lo necesito directamente en contacto con la comida, pero como estará sumergido en líquido en una olla arrocera que también puedo usar para cocinar arroz, no quiero que pierda algo tóxico... Un "Sous Vide" cosa es un método de cocción con temperaturas precisas en bolsas envasadas al vacío al baño maría. Estoy construyendo un controlador PID a partir de un Arduino y, en este caso, solo necesito decidir sobre el sensor de temperatura.

Con el LM335Z, puede calibrar el error de compensación y ganancia para cualquier sensor dado con 2 lecturas de prueba a 0'C 100'C con hielo y agua hirviendo.

Luego obtenga una lectura de verificación en el rango medio, digamos 50'C.

Puede hacer una plantilla de prueba y calibrar un sensor como su estándar plateado contra otro termómetro estándar dorado. Luego guarda los errores esperados-reales y calcula una progresión lineal o un número de ganancia y compensación para guardar en EEPROM para que se conviertan en un conjunto calibrado. Si obtiene un lote, es posible que todos tengan el mismo error de compensación y ganancia que puede corregir en el software para mostrar la lectura corregida.

Con estándares de 0,1 °C, puede esperar un error de 0,2 °C y usar cualquier pantalla que elija para garantizar ese error de 0,5 °C para sus puntos de ajuste críticos.

Ver figura 3

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

Sellaría el sensor con una fina capa de epoxi de calidad alimentaria para proteger el dispositivo de fugas de humedad y usaría par trenzado o dos cables flexibles de par trenzado usando 2 como escudo y luego usaría "chokes CM de ferrita" para absorber la interferencia de RF.

Luego necesita un ADC que tenga una precisión garantizada de +/- 0,5 bits o quizás 1 en 256 niveles para leer con una precisión de 0,5/100%. Esto no está garantizado en la mayoría de los Arduino, por lo que debe usar un DAC de hardware para probar esto en Salida menos Entrada en un alcance de 2 canales y seleccionar un par de CA para CH1 y CH 2 y luego mostrar el modo XY CH1 vs Ch2 para obtener un punto central que atraviesa un máximo de +/- 1 bit. Cualquier ruido Vref en su ADC provocará niveles de cuantificación omitidos o histéresis durante transiciones como 01111 a 10000 y la diafonía de tierra digital a entrada de tierra analógica fallará por monotonicidad.

Consulte el sitio de TI para obtener información sobre errores de ADC.

@Richard Russell << Aprecio la necesidad de un control de 0,5 grados C en los estilos de cocina orgánicos a bajas temperaturas donde los organismos vivos comienzan a morir rápidamente por encima de la temperatura Pasteur cuando se mata la bacteria.

Si fuera yo, calibraría con una precisión de 0,1 grados usando mis temperaturas de calibración de ganancia de compensación entre 45 y 65 grados C después de que esté firmemente conectado a la olla bien aislada. Entonces puede superar a cualquier otra cocina comercial en el mercado... suponiendo que esté bien aislada en un dieléctrico de alto valor R.

Luego, por la apariencia para que pueda cobrar $ 500, envuélvalo en SS estadounidense de precisión que, como el "Spirit of St Louis", está profundamente rayado y muy pulido. ;)

Personalmente, haría que el exterior del SS fuera grabado con ácido por profesionales que hacen esto todos los días con una obra de arte de importancia culinaria histórica por $ 50 y luego cobran extra por la obra de arte personalizada con el logotipo personal y el nombre de la empresa. Solo pregunte si necesita una buena referencia.

Gracias por dejarme ayudarte con tu objetivo.

Saludos, eso es realmente útil. Debo decir que no tengo idea de qué es "American SS", pero suena bien :-)
SS = acero inoxidable
Seguramente, cuando calibras el sensor, lo haces después del ADC. Por lo tanto, ¿también está calibrando el error ADC?

Según la información proporcionada en otras respuestas y búsquedas adicionales, encontré una sonda impermeable DS18B20 en Alpha-Crucis (UE). También está disponible en Adafruit en los EE. UU.

Cumple con todos mis requisitos y tiene un factor de forma ideal.

esto es solo un enlace a un producto y no hay información de por qué. Hay usuarios que ponen mucho trabajo en las respuestas para ayudar a enseñarte y la aceptación es normalmente una recompensa por tal tarea, especialmente si hicieron el trabajo de guiarte aquí.
OK, aceptaré una respuesta diferente. ¿Dónde debo poner mi propia conclusión?
Estaba diciendo dos cosas, 1) Si la respuesta de alguien es lo que realmente te llevó aquí, probablemente debería obtener la aceptación. 2) Escribir respuestas es más que aceptable, pero ¿puede darnos más información que solo un enlace? En este momento, no sé nada más que este dispositivo se lleva a algunos lugares y es resistente al agua.
Hice un Sous Vide usando un DS18B20 , el que tiene punta de plástico, pero el modelo con punta metálica es mejor. Para cocinar es lo suficientemente bueno (lo estoy usando a diario) y +/- 1°C es todo lo que necesitas. La temperatura no es uniforme en su sartén; puede ser de +/- 3°C dependiendo de donde pongas la sonda y como calientas el agua (inmersión vs placa calefactora), o si el agua está circulando o no.