MLX90614是一款数字红外温度传感器,由Melexis公司开发生产。它能够测量目标物体的表面温度而无需接触,通过测量红外辐射来实现温度测量,因此非常适用于需要避免与目标物体接触或者需要在高温环境中进行温度测量的应用。
以下是MLX90614红外测温传感器的一些关键特性和功能: 非接触式测温
:MLX90614利用红外辐射技术,能够实现对目标物体表面的温度测量,无需与目标物体直接接触。 数字输出
:该传感器输出的是数字信号,可以直接连接到微控制器或数字设备进行数据处理和分析。 高精度
:MLX90614具有很高的温度测量精度,能够满足许多应用的要求。 双温度测量
:传感器内置了两个独立的温度测量单元,一个用于测量目标物体的表面温度,另一个用于测量传感器芯片的温度。 广泛的工作温度范围
:MLX90614适用于广泛的工作温度范围,包括常温环境和高温环境。 低功耗 :传感器具有低功耗特性,在使用过程中能够有效节省能量。 I2C总线接口
:MLX90614采用标准的I2C总线接口,方便与各种微控制器和其他数字设备进行通信和集成。 小型化设计 :传感器尺寸小巧,易于集成到各种设备和系统中。
本期我们将利用Arduino IDE 利用ESP32快速实现该温度传感器的初始化与数据获取。 Arduino
IDE(集成开发环境)是一款用于编写和上传代码到Arduino板子上的软件工具。它是由Arduino开发团队开发的免费开源软件,旨在简化使用者对Arduino平台的开发和编程过程。
这也是我非常喜欢使用Arduino IDE的原因。
在Arduino IDE中安装MLX90614的库。
可以在其源文件中看见初始化的内容,默认使用的是Wire(D21,D22)所以我们将传感器的SCL连接到D21,SDA连接到D22。
#include <Wire.h>//包含I2C库#include <Adafruit_MLX90614.h>//包含MLX库
Adafruit_MLX90614 mlx;//定义一个mlx变量
void setup() { // put your setup code here, to run once: Serial.begin(115200); Wire.begin();//默认初始化D21,D22 mlx.begin();//默认函数即可}
void loop() { // put your main code here, to run repeatedly: double Obj = mlx.readObjectTempC();//读取物体温度 double Amb = mlx.readAmbientTempC();//读取环境温度 Serial.println("物体温度:"+String(Obj)+"rn"+"环境温度:"+String(Amb)); delay(1000);}
我们只需要定义一个MLX90614的变量,调用begin初始化,最后读取表面温度和测量温度。
之后将我们测量的温度进行输出。
打开串口助手查看。
-
** 闲置温度
**
可以看到在不进行测量的时候表面温度和环境温度的区别并不是很大。
- 手掌温度
贴上手掌后温度约为36.49℃,差不多就是人体温度。
- 液体温度
对准液体,约为26.91摄氏度。 然后这边修改一下代码,弄上无线传输。
- **冰箱保鲜层
**
这是将传感器置于冰箱保鲜层所测得的数据。
- ** 冰箱冷底层 **
冰箱冷冻层数据