测体温、测室温又不想碰到物体,红外测温是很省事的办法。MLX90614就是一块很常见的红外温度传感器,不用接触发热体,保持在几厘米外就能读出物体表面温度。这篇文章把它的接线、读数和几个容易踩的坑讲清楚。

先懂原理:靠红外辐射算温度
任何物体只要温度高于绝对零度,就会持续向外辐射红外线,温度越高辐射越强。MLX90614内部集成了红外热电堆探测器和一块信号处理芯片,把接收到的红外辐射换算成温度,再通过I2C接口把数值交给主控。所以它测的是“在传感器视野范围内的物体表面温度”,不是环境温度,也不是让你贴在皮上量。
它通常能同时给出两个读数:一个是看物体的红外温度,一个是传感器自身的环境温度。做测温项目时,真正要读的是物体那一路。芯片的视野角度一般在90度到110度之间,角度越小、离得越近,测得越准。

接线:四根线四脚搞定
模块引脚一般是VCC、GND、SCL、SDA四个。VCC接Arduino的5V或3.3V(多数模块兼容5V,看丝印或手册),GND接GND,SCL接A5,SDA接A4——这是Arduino Uno上I2C的标准位置。Arduino库自带上拉,所以不用自己接电阻。
代码里先调用Adafruit MLX90614这个库,初始化的那几行就会自动读回校准参数,后面readObjectTempC()读物体温度、readAmbientTempC()读环境温度,一个塞尔维亚公式把原始红外值换算成摄氏度,拿出来就能用。
三个高频坑要提前躲开
第一个是测距和角度:MLX90614读到的是“视野内所有热源的平均值”,离得太远、或者视野里有别的发热物体,读数就会拉偏。想看准,物体要尽量填满感测区,一般几厘米到十几厘米较稳。
第二个是被测物反射率:红外测温靠物体辐射,光亮的金属表面会把环境红外反射回来,读出来偏低,所以工程里测抛光金属一定要补偿或换接触式测温。第三个是供电:如果用面包板供电不稳,读数会跳动,建议独立5V或3.3V稳压给模块,别和大电流负载共一路。
上手后,做个无接触体温计、测杯水烫不烫、或者帮3D打印平台对红外热源,都是很简单实用的方向。







上电读数跳是供电不稳,独立稳压后立马稳了,供电比想象重要
非接触是我最看中的,测加工中的工件不用碰就能看温度,安全多了
视野里有别的发热源读数会被拉偏,我测杯水面放个暖瓶在旁边立马不准,果然
光亮的金属会反射红外导致偏低,这个坑踩过,做车间测温一定要补偿