电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>DIY一个热成像监视器

DIY一个热成像监视器

2023-06-26 | zip | 0.00 MB | 次下载 | 2积分

资料介绍

描述

想为我们办公室做一个疫情期间的热像仪已经很久没有了。但是阵列热传感器在 2020 年曾经非常昂贵,因为对 COVID-19 有巨大的需求,我不得不暂停我的计划,直到最近,我才有机会这样做。当然,从市场上买一个也不错,但价格昂贵,实际上还不如我的设计。在硬件和固件上都开源。

补给品

1、基于ESP32-S2的并行TFT Touch,分辨率320*240:

pYYBAGNY32OADSUTAAhWSa8JrEY365.jpg
 

https ://youtu.be/fXq_TVa0oq4

 

2.) 基于ESP32-S2,带WIFI,可以直接将数据/结果传输到本地网络,进行远程监控。

2. MLX90640 红外热像仪,是我专门为这个应用设计的。

poYBAGNY32qAG4y4AAFHCv_J76Q341.png
 

3. 以及为此设计的一套亚克力外壳,带有激光切割

pYYBAGNY326AMN_TAAEfDuohv24686.jpg
 

第 1 步:硬件组装

热像仪使用 I2C控制器通信,I2C 地址为 0x33,而 ESP32-S2 Parallel TFT 具有用于外部传感器的内置连接器(I2C/GPIO),因此很容易将热像仪连接到 TFT,通过简单的即插即用电缆。

pYYBAGNY33GAOug6AAFaI8eqEe4668.jpg
 

SD 卡插入 SD 插槽进行数据存储。

pYYBAGNY33SAcLylAAGHR_IEpQo049.jpg
 

第 2 步:固件

固件是这个应用程序的核心工作,对于 MLX90640,我使用了Adfruit_MLX90640 Lib 此外,由于 MLX90640 得到的原始数据是 32*24 的数据,带有噪声,我们需要对其进行更多处理:

一个。过滤数据,使它们显示平滑,否则显示会很刺眼。

湾。查看所有原始数据中的最高温度。通常,最高温度指向我们感兴趣的地方,它告诉我们一个人的健康状况是否良好。

C。原始数据的线性插值算法,使其看起来不那么像素,并且适合显示(我将其显示在320x240区域,显示区域的50%)。

1.过滤温度数据:

Void filter_frame(float *in, float *out)
{
    if (MLX_MIRROR == 1)
    {
        for (int i = 0; i < 32 * 24; i++)
        {
            out[i] = (out[i] + in[i]) / 2;
        }
    }
    else
    {
        for (int i = 0; i < 24; i++)
            for (int j = 0; j < 32; j++)
            {
                out[32 * i + 31 - j] = (out[32 * i + 31 - j] + in[32 * i + j]) / 2;
            }
    }
}

滤波器中,温度最终输出被输入平均,从而产生稳定平滑的输出;

查看不带/带过滤器的输出对比。

pYYBAGNY33qACaSoAAy3bAVC3l8566.jpg
 

 

poYBAGNY34GAOo6NAAyWCoRfrsU854.jpg
 

2. 快速整理温度,找出最高温度点,存入frame[767]:

void qusort(float s[], int start, int end)
{
    int i, j;        
    i = start;       
    j = end;         
    s[0] = s[start];
    while (i < j)
    {
        while (i < j && s[0] < s[j])
            j--;
        if (i < j)
        {
            s[i] = s[j];
            i++;         
        }
        while (i < j && s[i] <= s[0])
            i++;
        if (i < j)
        {
            s[j] = s[i];
            j--;         
        }
    }
    s[i] = s[0];
    if (start < i)
        qusort(s, start, j - 1);
    if (i < end)
        qusort(s, j + 1, end);
}

3. 原始数据的线性插值算法,更好的显示,适合320x240的显示区域:

//Transform 32*24 to 320 * 240 pixel
void interpolation(float *data, uint16_t *out)
{


    for (uint8_t h = 0; h < 24; h++)
    {
        for (uint8_t w = 0; w < 32; w++)
        {
            out[h * 10 * 320 + w * 10] = map_f(data[h * 32 + w], MINTEMP, MAXTEMP);
        }
    }
    for (int h = 0; h < 240; h += 10)
    {
        for (int w = 1; w < 310; w += 10)
        {
            for (int i = 0; i < 9; i++)
            {
                out[h * 320 + w + i] = (out[h * 320 + w - 1] * (9 - i) + out[h * 320 + w + 9] * (i + 1)) / 10;
            }
        }
        for (int i = 0; i < 9; i++)
        {
            out[h * 320 + 311 + i] = out[h * 320 + 310];
        }
    }
    for (int w = 0; w < 320; w++)
    {
        for (int h = 1; h < 230; h += 10)
        {
            for (int i = 0; i < 9; i++)
            {
                out[(h + i) * 320 + w] = (out[(h - 1) * 320 + w] * (9 - i) + out[(h + 9) * 320 + w] * (i + 1)) / 10;
            }
        }
        for (int i = 0; i < 9; i++)
        {
            out[(231 + i) * 320 + w] = out[230 * 320 + w];
        }
    }
    for (int h = 0; h < 240; h++)
    {
        for (int w = 0; w < 320; w++)
        {
            out[h * 320 + w] = camColors[out[h * 320 + w]];
        }
    }
}

查看没有/使用线性插值算法的输出对比。

pYYBAGNY34eAF2BiAAu_KxszLkw636.jpg
 

 

pYYBAGNY346AEQd0AA4BiZKz0sM172.jpg
 

代码可在:Makerfabs Github获得

第 3 步:测试和结果

烧录完成后,通过USB-C型5V电源给系统供电,显示正常,温度检测

poYBAGNY35WASQ08AAhiouIsmO4689.jpg
 
poYBAGNY35uAdxtFAAgAiegrzII276.jpg
 
poYBAGNY36GAa2q_AAk9XQyDOBk550.jpg
 

第 4 步:更多

所有的温度都可以存储在SD卡上进行存储。

pYYBAGNY36WACW9bAACezBcu5Kk582.jpg
 

另外,作为ESP32 WIFI,所有数据和图片都可以显示和存储在本地网络PC或智能手机中,我用Python做了一个简单的温度显示:

poYBAGNY36mAKRt_AAFCvb0BhK8955.png
 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1NB-IoT芯片厂商的资料说明
  2. 0.31 MB   |  22次下载  |  1 积分
  3. 2智慧监狱建设的核心终端—智慧监仓屏
  4. 0.25 MB   |  2次下载  |  免费
  5. 3PC318C016M/D 200V半桥栅极驱动器技术手册
  6. 0.77 MB   |  2次下载  |  免费
  7. 45.0SMDJ200A单向TVS瞬态抑制二极管规格书
  8. 0.88 MB   |  1次下载  |  免费
  9. 5PC318C041EQ 200V半桥栅极驱动器技术手册
  10. 0.50 MB   |  次下载  |  免费
  11. 6PC318C042NM 200V半桥栅极驱动器技术手册
  12. 0.55 MB   |  次下载  |  免费
  13. 7技嘉H110主板IT8628E_BX IO电路图资料
  14. 2.61 MB   |  次下载  |  1 积分
  15. 8H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
  16. 0.63 MB   |  次下载  |  1 积分

本月

  1. 1元宇宙深度解析—未来的未来-风口还是泡沫
  2. 6.40 MB  |  241次下载  |  免费
  3. 2元宇宙底层硬件系列报告
  4. 13.42 MB  |  184次下载  |  免费
  5. 32022 年展望報告 – 半導體產業
  6. 1.43 MB  |  136次下载  |  免费
  7. 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
  8. 1.57 MB  |  90次下载  |  免费
  9. 5汽车电子行业深度解析:智能化与电动化方兴未艾
  10. 6.47 MB  |  71次下载  |  免费
  11. 6中国DPU行业白皮书
  12. 23.80 MB  |  37次下载  |  免费
  13. 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
  14. 14.75 MB  |  27次下载  |  免费
  15. 8NB-IoT芯片厂商的资料说明
  16. 0.31 MB   |  22次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935137次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191425次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183352次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81602次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73822次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65991次下载  |  10 积分