電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>DIY一個熱成像監(jiān)視器

DIY一個熱成像監(jiān)視器

2023-06-26 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

描述

想為我們辦公室做一個疫情期間的熱像儀已經(jīng)很久沒有了。但是陣列熱傳感器在 2020 年曾經(jīng)非常昂貴,因為對 COVID-19 有巨大的需求,我不得不暫停我的計劃,直到最近,我才有機會這樣做。當(dāng)然,從市場上買一個也不錯,但價格昂貴,實際上還不如我的設(shè)計。硬件和固件上都開源。

補給品

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

pYYBAGNY32OADSUTAAhWSa8JrEY365.jpg
?

。https ://youtu.be/fXq_TVa0oq4

?

2.) 基于ESP32-S2,帶WIFI,可以直接將數(shù)據(jù)/結(jié)果傳輸?shù)奖镜?a href='http://ttokpm.com/v/tag/1722/' target='_blank' class='arckwlink_none'>網(wǎng)絡(luò),進行遠(yuǎn)程監(jiān)控。

2. MLX90640 紅外熱像儀,是我專門為這個應(yīng)用設(shè)計的。

poYBAGNY32qAG4y4AAFHCv_J76Q341.png
?

3. 以及為此設(shè)計的一套亞克力外殼,帶有激光切割

pYYBAGNY326AMN_TAAEfDuohv24686.jpg
?

第 1 步:硬件組裝

熱像儀使用 I2C控制器通信,I2C 地址為 0x33,而 ESP32-S2 Parallel TFT 具有用于外部傳感器的內(nèi)置連接器(I2C/GPIO),因此很容易將熱像儀連接到 TFT,通過簡單的即插即用電纜。

pYYBAGNY33GAOug6AAFaI8eqEe4668.jpg
?

SD 卡插入 SD 插槽進行數(shù)據(jù)存儲。

pYYBAGNY33SAcLylAAGHR_IEpQo049.jpg
?

第 2 步:固件

固件是這個應(yīng)用程序的核心工作,對于 MLX90640,我使用了Adfruit_MLX90640 Lib 。此外,由于 MLX90640 得到的原始數(shù)據(jù)是 32*24 的數(shù)據(jù),帶有噪聲,我們需要對其進行更多處理:

一個。過濾數(shù)據(jù),使它們顯示平滑,否則顯示會很刺眼。

灣。查看所有原始數(shù)據(jù)中的最高溫度。通常,最高溫度指向我們感興趣的地方,它告訴我們一個人的健康狀況是否良好。

C。原始數(shù)據(jù)的線性插值算法,使其看起來不那么像素,并且適合顯示(我將其顯示在320x240區(qū)域,顯示區(qū)域的50%)。

1.過濾溫度數(shù)據(jù):

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;
            }
    }
}

濾波器中,溫度最終輸出被輸入平均,從而產(chǎn)生穩(wěn)定平滑的輸出;

查看不帶/帶過濾器的輸出對比。

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. 原始數(shù)據(jù)的線性插值算法,更好的顯示,適合320x240的顯示區(qū)域:

//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 步:測試和結(jié)果

燒錄完成后,通過USB-C型5V電源給系統(tǒng)供電,顯示正常,溫度檢測

poYBAGNY35WASQ08AAhiouIsmO4689.jpg
?
poYBAGNY35uAdxtFAAgAiegrzII276.jpg
?
poYBAGNY36GAa2q_AAk9XQyDOBk550.jpg
?

第 4 步:更多

所有的溫度都可以存儲在SD卡上進行存儲。

pYYBAGNY36WACW9bAACezBcu5Kk582.jpg
?

另外,作為ESP32 WIFI,所有數(shù)據(jù)和圖片都可以顯示和存儲在本地網(wǎng)絡(luò)PC或智能手機中,我用Python做了一個簡單的溫度顯示:

poYBAGNY36mAKRt_AAFCvb0BhK8955.png
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費