Allá por julio, presenté la idea de crear una herramienta casera. Esto es algo que puede proporcionar una funcionalidad que las herramientas de la tienda no pueden ofrecer, o una herramienta que es más barata que lo que está disponible en la tienda. La Parte 2 describe cómo construir un registrador de datos de temperatura para el hogar usando mbed.
Allá por julio, presenté la idea de crear una herramienta casera. Esto es algo que puede proporcionar una funcionalidad que las herramientas de la tienda no pueden ofrecer, o una herramienta que es más barata que lo que está disponible en la tienda.
En la Parte 1, comenzamos los pasos para crear un registrador de datos de temperatura.
La Parte 2 describe cómo construir un registrador de datos de temperatura para el hogar usando mbed.
Con mbed puede comenzar muy rápidamente con su microcontrolador, compilador en línea, amplias herramientas, código de muestra y ayuda disponible. Empecé mirando qué entradas de temperatura necesitaba y determiné que necesitaba tres entradas de temperatura. Dos de estos usan sensores de temperatura NTC y uno usa un termopar.
Un NTC es una resistencia que cambia de valor a medida que cambia la temperatura ambiente. Tener un coeficiente de temperatura negativo (NTC) significa que la resistencia disminuye a medida que aumenta la temperatura. Estos sensores vienen en varias formas y tamaños. El que tengo tiene una resistencia de 10k a 25C. Puede ver que todos los NTC tienen sus valores de resistencia enumerados así.
Mi circuito para NTC no podría ser más simple. Solo estoy buscando entradas básicas, por lo que uso un NTC como parte de la red de resistencias para la fuente de alimentación de mbeds. El toque central se usa como entrada (analógica) para mbed. Las entradas son muy básicas, sin filtrado, control de ganancia o rango. Esto se puede lograr con un amplificador operacional, pero descubrí que usar una resistencia combinada en el lado fijo de la red para leer la temperatura ambiente normal funciona bien.
Abajo puedes ver el NTC y la resistencia de 10k. Esto le dará la mitad del voltaje del riel a 25C. A medida que aumenta la temperatura, el voltaje en la entrada disminuye.
circuito NTC
El mbed en sí es fácil de configurar usando la clase AnalogIn y diciéndole al compilador a qué pin conectar la señal. Luego, cuando quiera leer el valor, simplemente use la variable declarada. Sin embargo, en mi código decidí usar el valor bruto del ADC interno, así que accedo a la variable usando la función read_u16 como se muestra a continuación.
– entrada analógica Ain1(p19);
– algún valor = Ain1.read_u16();
entrada de termopar
Las entradas de termopar son un poco más difíciles ya que simplemente no se pueden conectar a mbed. Una entrada de termopar necesita un chip que pueda amplificar la señal débil que produce y pasarla al mbed. Los chips más antiguos proporcionaban voltajes analógicos, pero hoy en día puede conectarse a estos dispositivos a través de buses de comunicación como SPI. Para simplificar nuestras vidas, elegimos el IC max31855 que hace exactamente esto. Para hacerlo aún más fácil, conseguí esto en una placa prototipo de TAUTIC. Esto significa que no hay soldadura de montaje en superficie desordenada, solo conecte los pines de datos y alimentación.
SPI se conecta al chip máximo usando un bloque de datos de 32 bits. Sin embargo, las funciones preconstruidas en mbed que permiten el acceso directo al bus SPI solo están disponibles en formato de hasta 16 bits. Esto hace que la interfaz con el dispositivo sea tan fácil como los pines NTC o los pines analógicos. Sin embargo, es bastante fácil trabajar con SPI de todos modos, por lo que a continuación escribiré mi propio código para interactuar con el dispositivo.
Podemos ver que solo necesitamos el bloque de bits del bit 1 (0 primero) al 11. El resto se descarta. Un pequeño registro de desplazamiento en código C puede obtener rápidamente los datos del chip máximo. Realmente necesito verificar los tiempos del alcance, pero está funcionando ahora. Veré los detalles más adelante, pero parece estar dentro de los límites.
código_SPI
Lo último que necesitamos agregar esta vez es una conexión en serie que se usará para la depuración y luego para el Xbee.
Nuevamente, esto es realmente fácil de agregar a mbed. Agregue una clase Serial con pines RX y TX predefinidos, instale el controlador mbed USB to Serial en su PC y listo. Use un pequeño programa gratuito llamado putty.exe que se puede usar como terminal serial.Establezca la velocidad en baudios en 9600 y configure el puerto de comunicaciones (en el administrador de dispositivos de Windows en[シリアル ポート]) para obtener datos de mbed.
Lo último que voy a hacer es enviar los datos recopilados cada segundo y enviarlos por el puerto serie (código a continuación). Los datos del NTC siguen siendo recuentos de ADC sin procesar, no T’c todavía, pero los datos del chip máximo sí lo son.
código de salida
La próxima vez también consideraré convertir los recuentos de ADC sin procesar a T’c y almacenar los datos en el flash de mbed. Si quieres ver el código completo, puedes descargarlo desde el siguiente formulario.