產品說明4
MLX90640-D55 Thermal Camera,紅外熱像儀32×24像素 55度 I2C接口
MLX90640(BAB) 紅外熱像儀模塊32×24像素55度視場角I2C接口
55度視場角,適合遠距離測量,支持Raspberry Pi/Arduino/STM32/ESP32等主控板。


*MLX90640-D55 Thermal Camera : 55°×35° (角度小,適合遠距離測量)
*MLX90640-D110 Thermal Camera :110°×75° (角度大,適合近距離測量)

*清單*
- MLX90640-D55 Thermal Camera × 1
- PH2.0 4PIN連接線× 1



產品簡介
【一分鐘自我介紹】
我是一款紅外熱像儀模塊,32×24像素,55度視場角,I2C接口通信,兼容3.3V/5V電平,支持RaspberryPi/Arduino(ESP32)/STM32等主控板。
我採用MLX90640遠紅外熱傳感器陣列,可檢測鏡頭視野中物體的紅外輻射能量分佈,經量化處理後可獲得該視野物體表面溫度分佈,並生成熱成像圖,尺寸小巧,方便集成到各種工業或智能控制應用。


【我的特點】
- 採用MLX90640遠紅外熱傳感器陣列,32×24像素
- 支持I2C接口通信,可設置為快速模式(速率可達1MHz)
- 噪聲等效溫差(NETD)僅為0.1K RMS@1Hz刷新率,噪聲性能好
- 板載電平轉換電路,可兼容3.3V/5V的工作電平
- 提供完善的配套資料手冊(RaspberryPi/Arduino(ESP32)/STM32示例程序和用戶手冊等)


【我的參數】
- 工作電壓:3.3V/5V
- 工作電流:<23mA
- 通信接口:I2C (地址為0x33)
- 視場角(水平視角×垂直視角):
- MLX90640-D55 Thermal Camera : 55°×35° (角度小,適合遠距離測量)
- MLX90640-D110 Thermal Camera :110°×75° (角度大,適合近距離測量)
- 工作溫度:-40℃~85℃
- 目標溫度:-40℃~300℃
- 檢測精度:±1℃
- 刷新速率:0.5Hz~64Hz (可編程設置)
- 產品尺寸:28mm×16 mm
- 固定孔尺寸:2.0mm


【我的用途】
- 高精度非接觸性物體溫度檢測
- 紅外熱像儀、紅外測溫儀
- 智能家居、智能樓宇、智能照明
- 工業溫度控制、安防、入侵/移動檢測
接口說明(以接入MCU為例):
- VCC:接3.3V或5V
- GND:接GND
- SDA:接MCU.I2C數據線
- SCL:接MCU.I2C時鐘線


*使用示例*
樹莓派主板的紅外熱成像圖 |
 |


[硬件說明]:
『通信協議』
MLX90640-D55 Thermal Camera的通訊協議為I2C,
支持I2C高速模式(最高可達1MHz),只能作為I2C總線上的從設備,SDA和SCL端口可以承受5V電壓,可以直接接入到5V的I2C總線中,
模塊的設備地址是可以編程的,最多可以有127個地址,出廠默認值為0x33. 與一般I2C總線一樣,在傳送數據過程中共有三種類型信號:開始信號、結束信號和應答信號.

- [開始信號]: SCL為高電平, SDA由高電平轉換為低電平.
- [結束信號]: SCL為高電平, SDA由低電平轉換為高電平.
- 可以看出開始信號和結束信號都是在SCL總線為高電平時刻完成的.



[應答信號]: 在每個字節傳輸之後的第9個時鐘期間內, 發送數據端設備釋放SDA總線, 接收數據端設備拉低SDA總線表示收到字節(ACK), 或者是SDA總線為高電平不應答(NoACK).



[設備地址]:主機通過在START條件後發送7位從機地址來尋址從機. 前七個位是該地址專用, 第8個是讀/寫(R / W)位. 該位指示傳輸方向,其中高電平表示主機將從從機讀取數據, 低電平表示主機將向從機發送數據.



MLX90640-D55 Thermal Camera共768個IR傳感器(也稱為像素)組成. 每個像素的行和列位置標識為Pixel(i,j), 其中i是其行號(從1到24), j是其列號(從1到32),像素具體到某一平面可以參照上圖


[需要說明]:傳感器原廠在傳感器出廠時允許有4個以內的壞點 ,每個壞點都在EEPROM表中有標識,
所以模塊可能會有一定機率存在壞點,也就是說這不能作為退換貨的依據,對此原廠的建議是使用相鄰像素的平均值代替.



產品規格


[FAQ]:
問題: MLX90640-D110 Thermal Camera的測量距離多遠? 支援幀率最大是多少?
A:官方器件手冊未給出測量距離參數,
[微雪電子]測試結果: 室內溫度22°C,燈光昏暗條件下,身高178cm測試人員在離MLX90640-D110 Thermal Camera 1米開始揮手並後退至9米后, MLX90640-D110 Thermal Camera捕捉焦點消失, 其中遠離MLX90640-D110 Thermal Camera的鏡頭2米(左右)後則不能識別人體輪廓. MLX90640-D110 Thermal Camera支援最大32Hz的幀率.


問題: MLX90640-D55 Thermal Camera的測量距離多遠? 支援幀率最大是多少?
A:官方器件手冊未給出測量距離參數,
[微雪電子]測試結果: 室內溫度22°C,燈光昏暗條件下,身高178cm測試人員在離MLX90640-D55 Thermal Camera 1米開始揮手並後退至11米后, MLX90640-D55 Thermal Camera捕捉焦點消失, 其中遠離MLX90640-D55 Thermal Camera的鏡頭5米(左右)後則不能識別人體輪廓. MLX90640-D55 Thermal Camera支援最大32Hz的幀率.
相關文件

[內存及寄存器]

上圖為MLX90640的RAM區和控制寄存器分布圖,其中RAM區的兩種數據模式,
EEPROM用於存儲校準常數和設備的配置參數, 如下圖所示:


MLX90641支援8種刷新率,最高可達64Hz,刷新率由控制寄存器1(0x800D)控制,如下圖:


8種刷新率的設置是取決於控制寄存器1(0x800D)的位7, 位8, 位9, 其中有國際象棋模式(出廠默認設置), 電視交錯模式,如下圖所示:

兩種模式在子頁面的更新方式上不同, 這裡需要注意的是傳感器僅在國際象棋模式下進行過出廠校準, 因此在國際象棋模式下可以獲得更好的固定圖案噪聲行為, 因此為了獲得最佳效果建議使用國際象棋棋盤模式, 兩種模式的設定取決於控制寄存器1(0x800D)的位12.



[測溫原理和測量距離]:
【測溫原理】:
**什麼是紅外測溫? (引用自OPTRIS)
在測量領域,“溫度”是僅次於“時間”的常用的物理參數之一。 基於普朗克和玻爾茲曼輻射定律的原理,紅外測溫儀通過吸收被測物體發出的紅外輻射來測定其溫度。 那麼,非接觸測溫是如何實現的呢?
凡是溫度高於絕對零度(0 K或-273.15°C)的物體,均會自表面向外發出電磁輻射,且該輻射與物體的固有溫度成比例。 在這種輻射中,包含用於實現測溫的紅外輻射。 當該輻射貫穿大氣後,藉助專用鏡頭便能將其聚集在探測器上。 隨後,探測器會生成與該輻射成比例的電信號。 該信號得到放大,並通過接受連續的數位信號處理而轉化為與物體溫度成比例的輸出信號。 如此一來,在顯示器上便會顯示出溫度的測量值,或為信號形式輸出。
在利用輻射實現測溫時,輻射率ε(Epsilon)起到了至關重要的作用。 它表明了實際物體與黑體的輻射值之間的關係。 黑體的輻射率為1(最大值)。 不過,能夠滿足黑體這一理想條件的物體並不多。 在校準感測器時,一般會用到輻射體的接觸面(包含所推薦的波長:0.99)。
就其波長而言,許多物體通常具有恆定的輻射率,但其輻射能力遠不如黑體。 它們被稱作灰體。 若物體的輻射率取決於其溫度和波長(諸如金屬類),則此類物體被稱作選擇性輻射體。 在這兩種情況下,所缺失的輻射部分通過輻射率的明確加以補充。 當使用選擇性輻射體時,需要牢記所測定的波長(針對金屬,選擇短波)。
除了自物體表面發出的輻射之外,紅外感測器還能接受到周圍環境的反射輻射,或許還有被測物體的貫穿紅外輻射。

【測量距離】:
對於非接觸式紅外測溫模組, 很重要的一個概念是“視場 (FOV)”. 視場是由溫差電堆接收到50%的輻射信號來確定的, 並且和感測器的主軸線相關. 測得的溫度是視場內被測物體的溫度加權平均值, 所以當被測物體完全覆蓋FOV視場時的準確度是最高的.


[關於測量距離、視場關係]可參考Melexis提到的如下圖所示的計算公式:











相關資訊


[使用說明]:
『Raspberry Pi 4B』: 硬體連接
1.感測器器件工作中注意避免雙手直接接觸核心器件,做好防靜電,上電前檢查電源防反接.
2.感測器工作時避免幅度過大振動,帶電拔插操作,不要使用過長線纜連接通信,容易導致EEPROM寫入錯誤而失效.

PI-4B | MLX90640 Thermal Camera |
5V | 5V |
GND | GND |
SDA(BCM2) | SDA |
SCL(BCM3) | SCL |
----------------------------
[環境設置]
- 推薦已安裝好庫的鏡像進行測試,使用鏡像進行測試請忽略下面環境設置等操作.
- 百度雲盤樹莓派鏡像提取碼64ax,谷歌雲盤樹莓派鏡像,鏡像使用者名和密碼都是test.
- 使能Raspberry Pi的I2C總線,設置后要求重啟,建議設置完下一步驟后再重啟.

**調整 I2C 速率, 在/boot/config.txt 檔中加入速率參數,更改後需要重啟生效,如下指令所示:
sudo nano /boot/config.txt
dtparam=i2c_arm=on,i2c_arm_baudrate=400000
**若自行安裝庫和下載 C/C++ 範例程式,請參考如下指令:
cd ~
wget https://www.waveshare.net/wiki/%E6%96%87%E4%BB%B6:Mlx90640-thermal_camera.zip
unzip Mlx90640_thermal_camera.zip
cd mlx90640_thermal_camera/RaspberryPi/cpp/
chmod +x install.sh
sudo ./install.sh
**若自行安裝庫和下載 python 示例程式,請參考如下指令:
sudo apt update
pip3 install opencv-python==4.6.0.66
pip3 install pithermalcam
sudo apt-get install libatlas-base-dev


【C/C++示例】
*樹莓派終端輸入如下指令執行範例程式,效果如下圖所示
make
sudo ./main
#若使用 Windodws MSTSC 远程登录,则需要使用下面命令
sudo -E ./main


[python示例]
- 感謝 tomshaffner 開源 pithermalcam , 詳細安裝操作參考連結
- 樹莓派終端輸入如下指令執行範例程式,本地網路視頻推流示例執行后,其它行動裝置或電腦打開瀏覽器輸入樹莓派終端列印資訊,效果如下圖所示:
python3
import pithermalcam as ptc
# 执行本地网络视频推流示例
ptc.stream_camera_online()
# 执行实时视频流显示示例,参考终端打印信息操作
ptc.display_camera_live()





