¿Estás buscando una manera efectiva de medir la temperatura sin necesidad de contacto? ¡Entonces el sensor de temperatura infrarrojo MLX90614 es la solución perfecta para ti! En este artículo, te enseñaremos cómo utilizar este sensor junto con Arduino para obtener lecturas precisas y confiables. Descubre cómo funciona esta interfaz y todas las posibilidades que ofrece en tus proyectos de electrónica. ¡No te lo pierdas!
Desde la aparición de la COVID-19, han ido apareciendo escáneres de temperatura infrarrojos sin contacto en todo el mundo, desde aeropuertos hasta restaurantes. Tal vez tenga curiosidad acerca de estos escáneres de temperatura o tal vez esté interesado en construir uno. Pues bien, en este caso, el módulo Melexis MLX90614 podría ser la opción más rentable del mercado.
Descripción general del hardware del módulo MLX90614
El corazón del módulo es un sensor de temperatura infrarrojo sin contacto de alta precisión de Melexis. MLX90614. A diferencia de la mayoría de los sensores de temperatura, este sensor mide la temperatura sin ser tocado físicamente. Esto puede resultar muy útil para controlar la temperatura de objetos en movimiento, como el eje de un motor giratorio u objetos en una cinta transportadora. Simplemente apunte el sensor a lo que desea medir y detectará la temperatura absorbiendo las ondas IR emitidas.
habilidades
El MLX90614 genera dos mediciones de temperatura: una temperatura del objeto y una temperatura ambiente. La temperatura del objeto es la medición sin contacto «observada» por el sensor, mientras que la temperatura ambiente mide la temperatura en el chip del sensor. La temperatura ambiente se puede utilizar para calibrar los datos, pero lo que realmente necesitamos son mediciones de la temperatura del objeto.
Como no necesita tocar el objeto que se está midiendo, puede capturar un rango de temperatura más amplio que la mayoría de los sensores digitales: las mediciones de temperatura del objeto oscilan entre -70 y 382,2 °C, mientras que las mediciones de temperatura ambiente oscilan entre -40 y 125 °C. Tanto la temperatura ambiente como la temperatura del objeto tienen una resolución de 0,02°C con una precisión estándar de 0,5°C alrededor de la temperatura ambiente.
Filtro óptico incorporado
El MLX90614 cuenta con un filtro óptico integrado que corta la luz visible y la infrarroja cercana, reduciendo su impacto en las mediciones. También proporciona inmunidad a la luz ambiental y la luz solar.
Requisitos de energía
El módulo está equipado con un regulador de voltaje de precisión de 662K 3,3 V y un convertidor de nivel de voltaje, por lo que puede usarlo fácilmente con su microcontrolador favorito de 3,3 V o 5 V.
El MLX90614 consume menos de 2 mA durante la medición. Este bajo consumo de energía permite la implementación en dispositivos que funcionan con baterías, como escáneres térmicos portátiles.
Aquí están las especificaciones completas:
Temperatura del objeto | -70°C a 382,2°C |
Temperatura ambiente | -40°C a 85°C |
exactitud | ±0,5°C (temperatura ambiente aproximada) |
resolución | ±0,2 °C |
Campo de visión | 90° |
Tensión de alimentación | 3,3 a 5,5 V |
Corriente de funcionamiento | 2mA |
Consulte la siguiente hoja de datos para obtener más detalles.
¿Cómo funcionan los termómetros infrarrojos?
Si alguna vez ha utilizado un termómetro infrarrojo o ha visto a alguien utilizar uno, es posible que se haya preguntado: «¿Cómo es posible este tipo de medición?»
Bueno, los termómetros infrarrojos como el MLX90614 aprovechan el hecho de que cualquier objeto, incluidos los humanos, cuya temperatura esté por encima del cero absoluto (0°K o -273°C) (no visible para el ojo humano) emite directamente luz en el espectro infrarrojo proporcional. a su temperatura. Mira esto ley de stefan-boltzmann.
Internamente, el MLX90614 consta de dos dispositivos: un detector de termopila de infrarrojos y un ASSP (procesador de aplicaciones de acondicionamiento de señales). Aquí está el diagrama de bloques interno del MLX90614 que muestra tanto la termopila como el ASSP.
La radiación IR emitida por un objeto o una persona se enfoca primero mediante una lente convergente (lente convexa) en un detector de infrarrojos especial llamado termopila. La termopila detecta cuánta energía infrarroja emiten los objetos en su campo de visión (FOV) y genera una señal eléctrica proporcional a ella.
El voltaje generado por la termopila es detectado por el ADC de 17 bits del ASSP y luego procesado antes de pasar al microcontrolador.
Y lo mejor es que todo este proceso ocurre en una fracción de segundo.
Campo de visión (FOV)
El campo de visión (FOV) de un termómetro de infrarrojos es una de las métricas más importantes a considerar.
Está determinado por el ángulo en el que el sensor es sensible a la radiación térmica. Esto significa que el sensor detecta todos los objetos en el campo de visión y devuelve la temperatura promedio de todos los objetos dentro de él.
Es importante que el objeto de medición llene completamente el campo de visión. De lo contrario, el sensor puede detectar objetos que no deben medirse, lo que provocará mediciones inexactas.
El campo de visión también determina la relación entre la distancia a un objeto y el área de detección. Si el sensor está cerca del objeto, su rango de detección es muy estrecho, pero aumenta a medida que aumenta la distancia.
El campo de visión del MLX90614 tiene forma de cono y es relativamente amplio: 90°. Esto significa que por cada centímetro que te alejas de un objeto, el área de detección aumenta 2 centímetros. Si está a 30 cm (aproximadamente 1 pie) de distancia de un objeto, el rango de detección es de 60 cm (aproximadamente 2 pies).
Interfaces de salida MLX90614
El MLX90614 admite dos interfaces; Sin embargo, necesita uno para acceder al otro. La interfaz SMBus de 2 cables es el principal medio de comunicación con el MLX90614. Una vez configurada la interfaz SMBus, podrá configurar posteriormente el MLX90614 para generar una señal PWM (modulada por ancho de pulso) que represente la temperatura medida.
Interfaz SMBus
La interfaz principal del MLX90614 es la interfaz SMBus de 2 cables, que es básicamente la misma que I2C (un tipo de I2C ligeramente no estándar llamado «inicio repetido») y utiliza las mismas dos señales (SDA y SCL) para transmitir. de datos o señales de reloj. Un dispositivo maestro controla la señal del reloj mientras que la señal de datos se controla bidireccionalmente.
Cada MLX90614 tiene una dirección I2C predeterminada de 0x5A. Sin embargo, se puede programar para tener una de las 127 direcciones I2C, lo que le permite conectar hasta 127 dispositivos al mismo bus para obtener un mapa de temperatura más grande.
interfaz pwm
Los datos del MLX90614 también se pueden leer a través de la interfaz PWM. Tenga en cuenta que para utilizar la interfaz PWM, primero se debe configurar el MLX90614 a través del SMBus.
Una vez configurado, el MLX90614 emite una señal PWM continua de 10 bits en el pin SDA, que representa la temperatura del objeto medido. Por defecto, la señal PWM cubre el rango de -20°C a 120°C con una resolución de salida de 0,14°C, pero esto también se puede ajustar a través de SMBus.
Relé térmico/interruptor térmico
Al configurar esta área (estableciendo valores mínimos y máximos de temperatura), la salida PWM se puede convertir en una señal de “relé térmico/interruptor térmico”.
Entonces, cuando la temperatura excede el umbral establecido, se activa el pin PWM, que puede usarse como fuente de interrupción o para controlar directamente un relé. Tenga en cuenta que la potencia de salida es de sólo 25 mA.
Distribución de pines del módulo MLX90614
El módulo MLX90614 resalta las siguientes conexiones.
VCC es el pin de alimentación. Puedes conectarlo a la salida de 3,3V o 5V de tu Arduino.
Tierra es el piso.
SCL es el pin del reloj I2C, conéctalo a la línea de reloj I2C de tu Arduino.
ASD es el pin de datos I2C, conéctalo a la línea de datos I2C de tu Arduino.
Cableado de un módulo MLX90614 a un Arduino
Ahora que sabemos todo sobre el módulo, ¡podemos empezar a conectarlo a nuestro Arduino!
Primero conecte el pin VCC a la fuente de alimentación. 5V está bien. Utilice el mismo voltaje en el que se basa la lógica de su microcontrolador. Para la mayoría de los Arduinos, esto es 5V. Para dispositivos lógicos de 3,3 V, utilice 3,3 V. Ahora conecte GND a tierra común.
Conecte el pin SCL al pin de reloj I2C y el pin SDA al pin de datos I2C de su Arduino. Tenga en cuenta que cada placa Arduino tiene diferentes pines I2C que deben conectarse en consecuencia. En las placas Arduino con diseño R3, SDA (línea de datos) y SCL (línea de reloj) se encuentran en los encabezados cerca del pin AREF. También se les conoce como A5 (SCL) y A4 (SDA).
La siguiente figura muestra el cableado.
Instalación de biblioteca
Hay varias bibliotecas disponibles para el sensor MLX90614. Sin embargo, en nuestro ejemplo estamos usando la biblioteca Adafruit, que es muy fácil de usar, pero solo admite mediciones básicas de temperatura y no las funciones avanzadas del sensor. La biblioteca se puede descargar a través del Administrador de biblioteca IDE de Arduino.
Para instalar la biblioteca, navegue hasta Sketch > Incluir biblioteca > Administrar bibliotecas…. Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.
Filtra tu búsqueda escribiendo “adafruta mlx90614'. Haga clic en la entrada y luego seleccione Instalar.
código arduino
A continuación se muestra un boceto básico de Arduino que puede utilizar para probar rápidamente la funcionalidad del MLX90614. Continúe y cárguelo en su Arduino. Debería ver la temperatura ambiente y del objeto impresa en el puerto serie.
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
while (!Serial);
if (!mlx.begin()) {
Serial.println("Error connecting to MLX sensor. Check wiring.");
while (1);
};
}
void loop() {
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
Serial.print("*CtObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF());
Serial.print("*FtObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");
Serial.println();
delay(500);
}
Una vez cargado el boceto, abra su monitor serie y establezca la velocidad en baudios en 9600 bps. Debería ver que tanto la temperatura ambiente como la temperatura del objeto comienzan a fluir.
¡Intenta apuntar el sensor a los objetos que se encuentran a tu alrededor o a tu frente para asegurarte de no tener fiebre!
Nota:
Las interferencias electromagnéticas pueden provocar resultados incorrectos. Por lo tanto, cuando utilice un termómetro infrarrojo, asegúrese de que su teléfono, microondas, enrutador WiFi, televisor u otro dispositivo eléctrico esté completamente retirado.
Explicación del código:
El boceto comienza incluyendo la biblioteca Adafruit_MLX90614. Se llamó a un objeto Adafruit_MLX90614 en el mismo ámbito global mlx
se define.
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
En la configuración inicializamos la comunicación serie con el PC y la llamamos. begin()
Función.
El begin()
La función inicializa la interfaz I2C. Esta función acepta opcionalmente un parámetro (la dirección de 7 bits de su sensor). Sin embargo, si se deja en blanco, se supone que la dirección está configurada en el valor predeterminado (0x5A).
void setup() {
Serial.begin(9600);
while (!Serial);
if (!mlx.begin()) {
Serial.println("Error connecting to MLX sensor. Check wiring.");
while (1);
};
}
En el bucle simplemente imprimimos las temperaturas ambiente y del objeto actuales. readAmbientTempC()
/mlx.readAmbientTempF()
Y readObjectTempC()
/readObjectTempF()
Características.
void loop() {
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
Serial.print("*CtObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF());
Serial.print("*FtObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");
Serial.println();
delay(500);
}
Interfaz MLX90614 Sensor de temperatura infrarrojo sin contacto con Arduino
Desde la aparición de COVID-19, los escáneres de temperatura por infrarrojos sin contacto han estado apareciendo en todas partes del mundo, desde aeropuertos hasta restaurantes. Tal vez estés curioso acerca de estos escáneres de temperatura, o tal vez estés interesado en construir uno. Bueno, en ese caso, el Módulo Melexis MLX90614 podría ser la mejor opción económica disponible.
Visión general del hardware del módulo MLX90614
En el corazón del módulo se encuentra un sensor de temperatura infrarrojo de alta precisión sin contacto de Melexis – MLX90614. A diferencia de la mayoría de los sensores de temperatura, este sensor mide la temperatura sin ser tocado físicamente. Esto puede ser muy útil para monitorear la temperatura de algo en movimiento, como un eje de motor giratorio u objetos en una banda transportadora, por ejemplo. Simplemente apunta el sensor a lo que quieres medir y detectará la temperatura absorbiendo las ondas IR emitidas.
Capacidades
El MLX90614 genera dos mediciones de temperatura: una temperatura del objeto y una temperatura ambiente. La temperatura del objeto es la medición no contactada «observada» desde el sensor, mientras que la temperatura ambiente mide la temperatura en el chip del sensor. La temperatura ambiente se puede utilizar para calibrar los datos, pero lo que realmente necesitamos proviene de las mediciones de temperatura del objeto. Debido a que no tiene que tocar el objeto que se mide, puede detectar un rango más amplio de temperaturas que la mayoría de los sensores digitales: las mediciones de temperatura del objeto van de -70 a 382.2°C, mientras que las mediciones de temperatura ambiente van de -40 a 125°C. Tanto la temperatura ambiente como la del objeto tienen una resolución de 0.02°C con una precisión estándar de 0.5°C alrededor de la temperatura ambiente.
Filtro óptico integrado
El MLX90614 tiene un filtro óptico integrado que corta la luz visible y cercana al infrarrojo, reduciendo su efecto en las mediciones. También proporciona inmunidad contra la luz ambiental y la luz solar.
Requisitos de alimentación
El módulo viene con un regulador de voltaje de precisión de 662K 3.3V y un traductor de nivel de voltaje, por lo que puedes usarlo con tu microcontrolador favorito de 3.3V o 5V sin preocupaciones. El MLX90614 consume menos de 2mA durante la medición. Este bajo consumo de energía permite la implementación en dispositivos alimentados por batería, como escáneres térmicos portátiles.
Especificaciones completas
Temperatura del objeto: -70°C a 382.2°C
Temperatura ambiente: -40°C a 85°C
Precisión: ±0.5°C (alrededor de la temperatura ambiente)
Resolución: ±0.2°C
Campo de visión: 90°
Voltaje de alimentación: 3.3 a 5.5V
Corriente de funcionamiento: 2 mA
Para obtener más detalles, consulta la ficha técnica.
¿Cómo funcionan los termómetros infrarrojos?
Si alguna vez has usado o visto a alguien usar un termómetro infrarrojo antes, es posible que te hayas preguntado: «¿Cómo es posible esta forma de medición?» Los termómetros infrarrojos como el MLX90614 aprovechan el hecho de que cualquier objeto, incluidos los humanos, por encima de la temperatura absoluta cero (0°K o -273°C), emite (no visible para el ojo humano) luz en el espectro infrarrojo que es directamente proporcional a su temperatura. Internamente, el MLX90614 es un par de dos dispositivos: un detector termopar infrarrojo y un procesador de aplicación de acondicionamiento de señal. El proceso se logra en una fracción de segundo.
Campos de visión (FOV)
El campo de visión de un termómetro IR es una de las métricas más importantes a tener en cuenta. Es determinado por el ángulo en el que el sensor es sensible a la radiación térmica. Esto significa que el sensor detectará todos los objetos en el campo de visión y devolverá la temperatura promedio de todos los objetos en él.
Es importante que el objeto medido llene completamente el campo de visión. De lo contrario, el sensor puede detectar objetos que no se supone que deben ser medidos, lo que resulta en mediciones inexactas. El campo de visión del MLX90614 tiene forma de cono y es relativamente amplio: 90°.
Para más preguntas frecuentes sobre el sensor MLX90614, visita el link de preguntas frecuentes completo.
¡Genial artículo! Me encanta aprender sobre nuevas formas de utilizar Arduino. Este sensor de temperatura infrarrojo parece super útil. ¡Gracias por compartir!
¡Qué interesante el uso de este sensor de temperatura con Arduino! Definitivamente quiero probarlo en mi próximo proyecto. ¡Gracias por la información!