Description
You can now add affordable heat-vision to your project and with an Adafruit MLX90640 Thermal Camera Breakout. This sensor contains a 24x32 array of IR thermal sensors. When connected to your microcontroller (or Raspberry Pi) it will return an array of 768 individual infrared temperature readings over I2C. It's like those fancy thermal cameras, but compact and simple enough for easy integration.
This part will measure temperatures ranging from -40°C to 300°C with an accuracy of +- 2°C (in the 0-100°C range). With a maximum frame rate of 16 Hz (the theoretical limit is 32Hz but we were not able to practically achieve it), It's perfect for creating your own human detector or mini thermal camera. We have code for using this sensor on an Arduino or compatible (the sensor communicates over I2C) or on a Raspberry Pi with Python. If using an Arduino-compatible, you'll need a processor with at least 20KB RAM - a SAMD21 (M0) or SAMD51 (M4) chipset will do nicely. On the Pi, you can even perform interpolation processing with help from the SciPy python library and get some pretty nice results!
This sensor reads the data twice per frame, in a checker-board pattern, so it's normal to see a checker-board dither effect when moving the sensor around - the effect isn't noticeable when things move slowly.
To make it easy to use, we hand-soldered it on a breakout board with a 3.3V regulator and level shifting. So you can use it with any 3V or 5V microcontroller or computer. We've even included SparkFun qwiic compatible STEMMA QT connectors for the I2C bus so you don't even need to solder! Just plug-n-play with any of our STEMMA QT (JST SH) cables.
Even better - We've done all the hard work here, with example code and supporting software libraries to get you up in running in just a few lines of Arduino or Python code 產品簡介
MLX90640-D110 Thermal Camera是一款紅外熱像儀模塊,32×24像素,I2C接口通信,兼容3.3V/5V電平,支持Raspberry Pi,ESP32,STM32等主控,MLX90640遠紅外熱傳感器陣列,可精確檢測特定區域和溫度範圍內的目標物體,尺寸小巧,可方便集成到各種工業或智能控制應用中.
- 採用MLX90640遠紅外熱傳感器陣列,32×24像素
- 支持I2C接口通信,可設置為快速模式(速率可達1MHz)
- 噪聲等效溫差(NETD)僅為0.1K RMS@1Hz刷新率,噪聲性能好
- 板載電平轉換電路,可兼容3.3V/5V的工作電平
產品參數
- 工作電壓:3.3V/5V
- 工作電流:<23mA
- 通信接口:I2C (地址為0x33)
- 視場角(水平視角×垂直視角):
- MLX90640-D55 Thermal Camera:55°×35° (角度小,適合遠距離測量)
- MLX90640-D55 Thermal Camera:110°×75° (角度大,適合近距離測量)
- 工作溫度:-40℃~85℃
- 目標溫度:-40℃~300℃
- 檢測精度:±1℃
- 刷新速率:0.5Hz~64Hz (可編程設置)
- 產品尺寸:28mm×16 mm
- 固定孔尺寸:2.0mm
主要用途
- 高精度非接觸性物體溫度檢測
- 紅外熱像儀、紅外測溫儀
- 智能家居、智能樓宇、智能照明
- 工業溫度控制、安防、入侵/移動檢測
硬件說明
通信協議
MLX90640-D110 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-D110 Thermal Camera共768個IR傳感器(也稱為像素)組成. 每個像素的行和列位置標識為Pixel(i,j), 其中i是其行號(從1到24), j是其列號(從1到32),像素具體到某一平面可以參照上圖
需要說明的是傳感器原廠在傳感器出廠時允許
有4個以內的壞點 ,每個壞點都在EEPROM表中
有標識,所以模塊可能會有一定機率存在壞點,也
就是說這不能作為退換貨的依據,對此原廠的建
議是使用相鄰像素的平均值代替.
內存及寄存器
上圖為MLX90640的RAM區和控制寄存器分佈圖,其中RAM區的兩種數據模式,EEPROM用於存儲校準常數和設備的配置參數, 如下圖所示:
MLX90640支持8種刷新率,最高可達64Hz,刷新率由控制寄存器1(0x800D)控制,如下圖:
8種刷新率的設置是取決於控制寄存器1(0x800D)的位7, 位8, 位9, 其中有國際象棋模式(出廠默認設置), 電視交錯模式,如下圖所示:
兩種模式在子頁面的更新方式上不同, 這裡需要注意的是傳感器僅在國際象棋模式下進行過出廠校準, 因此在國際象棋模式下可以獲得更好的固定圖案噪聲行為, 因此為了獲得最佳效果建議使用國際象棋棋盤模式, 兩種模式的設定取決於控制寄存器1(0x800D)的位12.
測量原理
對於非接觸式紅外測溫模塊, 很重要的一個概念是"視場(FOV)". 視場是由溫差電堆接收到50%的輻射信號來確定的, 並且和傳感器的主軸線相關. 測得的溫度是視場內被測物體的溫度加權平均值, 所以當被測物體完全覆蓋FOV視場時的準確度是最高的.