DIY un monitor de imagen térmica

DIY un monitor de imagen térmica

enero 06, 2022

DIY-a-Therma-Imaging-Monitor
En este artículo, haré un monitor de imagen térmica utilizando la pantalla táctil TFT paralela ESP32-S3 y la cámara de imagen térmica MLX90640.

Ha pasado mucho tiempo desde que quiero hacer un monitor de imagen térmica en la epidemia para nuestra oficina. Pero el sensor térmico de matriz fue una vez muy caro en 2020, ya que hay enormes demandas en el COVID-19, que tengo que pausar mi plan, y hasta hace poco, tengo la oportunidad de hacerlo. Por supuesto, es bueno comprar uno en el mercado, pero el precio es caro, y en realidad no tan bueno como mi diseño. Código abierto tanto en hardware como en firmware.

1. ¿Qué utilicé para esto?

● ElTFT táctil paralelo basado en ESP32-S3, con la resolución 320*240:
ESP32-S2-3_5-Pulgada-Pantalla-ParaleloESP32-S2-3_5-Pulgada-Pantalla-Paralelo-1
La razón por la que uso este toque es que:
1.) Tiene una frecuencia de actualización mucho más alta que la pantalla SPI, verifique elVideo comparativo.
2.) Basado en ESP32-S3, con WIFi, por lo que puede transmitir directamente los datos / resultados a la red local, para el monitoreo remoto.

● Y elMLX90640Cámara termográfica, que está diseñada especialmente para esta aplicación.
Makerfabs-MLX90460
● Y un juego de estuche acrílico diseñado para esto, con corte por láser:
Estuche acrílico personalizado

2. Montaje de hardware

La cámara térmica utiliza I2C para la comunicación con los controladores, con dirección I2C 0x33, mientras que la ESP32-S3 TFT paralela tiene conectores incorporados (I2C / GPIO) para sensores externos, por lo que es muy fácil conectar la cámara térmica a la TFT, mediante un simple cable plug-n-play:
Makerfabs-DIY-Thermal-Imager-Cable-Connect

Inserte una tarjeta SD en la ranura SD para almacenar datos:
Makerfabs-DIY-Thermal-Imager-SD-Card-Install

3. Firmware:

El firmware es el trabajo principal para esta aplicación, para el MLX90640, utilicé elAdfruit_MLX90640 Lib. Además, como los datos brutos que obtiene MLX90640 son datos de 32 * 24, con ruidos, con los que debemos lidiar más:

un.Filtre los datos, para que sean suaves para la visualización, o la pantalla será dura.
b.Echa un vistazo a la temperatura más alta entre todos los datos sin procesar. Normalmente, la temperatura más alta apunta a lo que nos interesa, lo que nos dice si un hombre goza de buena o mala salud.
c.Algoritmo de interpolación lineal de datos sin procesar, para que no se vea tan pixelado, y adecuado para la visualización (lo hago mostrar en un área de 320x240, 50% del área de la pantalla).

1. Filtre los datos de temperatura:
Void filter_frame(float *in, float *out)
{
    si (MLX_MIRROR == 1)
    {
        for (int i = 0; i  En el filtro, la temperatura de salida final se promedió por la entrada, y así crear una salida estable y suave;

El contraste de salida sin/con el filtro:
Sin filtroCon filtro

2. Clasificación rápida de la temperatura, para averiguar el punto de temperatura más alto y almacenarlo en el marco[767]:
void qusort(float s[], int start, int end)
{
    int i, j;        
    i = inicio;       
    j = fin;         
    s[0] = s[inicio];
    mientras que (i  3. Algoritmo de interpolación lineal de los datos sin procesar, para que sea mejor para la visualización y adecuado para el área de visualización de 320x240: 
Transformar 32 * 24 a 320 * 240 píxeles
interpolación void(float *data, uint16_t *out)
{

para (uint8_t h = 0; h  El contraste de la salida sin/con el algoritmo de interpolación lineal:
Sin el algoritmo de interpolación linealCon algoritmo de interpolación lineal

El código está disponible en:Makerfabs Github.

4. Prueba y resultado

Después de la programación, alimente el sistema con alimentación de 5V por USB tipo C, la pantalla funciona bien y la temperatura detecta:
Imagen térmica-Monitor-32-CelsiusPrueba-32-Celsius

Imagen térmica-Monitor-40-CelsiusPrueba-40-Celsius

Imagen térmica-Monitor-55-CelsiusPrueba-55-Celsius

Allí todas las temperaturas se pueden almacenar en la tarjeta SD para almacenar.
Datos almacenados en la tarjeta SD

Además, como el ESP32 WIFI, todos los datos e imágenes se pueden mostrar y almacenar en la red local PC o teléfono inteligente, allí hice una pantalla de temperatura simple con Python:
Temperatura-Pantalla-con-Python-Programa

Si tiene más preguntas para esta aplicación sobre Cómo hacer bricolaje un monitor de imagen térmica, o necesita algunasservicio de ensamblaje de PCB personalizado, póngase en contacto conservice@makerfabs.com.corazón

Contáctenos