ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用

您所在的位置:网站首页 mlx90614测温原理及流程 ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用

ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用

2023-08-06 19:56| 来源: 网络整理| 查看: 265

在上篇文章里,我们配置好了开发需要的环境。接下来就开始尝试使用传感器。

测温传感器 连接元件

我们使用的是MLX90614 gy906测温传感器,有4个引脚,分别为VCC、GND、SCL、SDA。其中VCC接高电平,GND接地,SCL和SDA是IIC通信端口,后面会提到该如何使用SCL和SDA。 将VCC、GND分别接至ESP32的5V电源端、GND端,将SCL接至ESP32的22号引脚,SDA接至ESP32的21号引脚。这样,测温传感器就连接好了。

测试

然后使用如下代码来测试传感器是否能正常工作。

#include #include Adafruit_MLX90614 mlx = Adafruit_MLX90614(); void setup() { Serial.begin(9600); Serial.println("Adafruit MLX90614 test"); mlx.begin(); } void loop() { Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C"); Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF()); Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F"); Serial.println(); delay(500); }

选择好开发板 在这里插入图片描述 选择“上传”,等待烧录完毕。之后打开串口监视器,若在串口监视器中能看到正常范围内的温度数据,则证明传感器工作正常,就可以进入下一步的操作了。

代码解释 Adafruit_MLX90614 mlx = Adafruit_MLX90614();

此条语句声明并且例化了一个名为mlx的Adafruit_MLX90614类,之后程序中的操作都基于这个mlx实例。

mlx.begin();

此条语句初始化实例mlx,使其在之后的主程序main中能够正常工作。

Serial.print(mlx.readObjectTempC()); Serial.println("*C");

此条语句调用Adafruit_MLX90614类中的readObjectTempC函数,其作用是测量当前在测温模块前的物体温度,并且以摄氏度的形式表现出来。这条语句是系统测温功能的核心语句。 值得一提的是,MLX90614是一款红外光电测温模块,物体温度的高低与物体距离光电感应器的距离成负相关关系。简而言之,要想测得准,尽量贴着感应头。

心跳传感器 连接元件

我们使用的是Pulse Sensor心跳传感器,有3个引脚,分别为+、-和数据引脚。其中+接高电平,-接地。 将+、-分别接至ESP32的5V电源端、GND端,将数据引脚接至ESP32的35号引脚。这样,心跳传感器就连接好了。

测试

然后使用如下代码来测试传感器是否能正常工作。

int pin = 35; double Data; void setup() { // put your setup code here, to run once: Serial.begin(9600); //打开串口 pinMode( pin, INPUT);//设置管脚为输入 } void loop() { // put your main code here, to run repeatedly: Data=analogRead(pin); Serial.println(Data); Serial.println(); delay(1000); }

烧录完毕后,打开串口监视器,将手指放到传感器的非引脚面,观察读数。若放手指前后,监视器数值有明显变化,则证明传感器工作正常。 需要注意的是,监视器数值可能数值较大,大约在2k左右,并且浮动较大,这是正常的,处理的方法在后面系统整合时会提到。

特别注意事项

比较心跳传感器和测温传感器的测试代码可以发现,心跳传感器需要在代码内声明引脚值,此处为

int pin = 35;

而在测温传感器的测试代码中,并没有相关的引脚声明,这是因为MLX90614使用IIC与开发板通信,在arduino环境下,Adafruit_MLX90614库使用的引脚是开发板的默认IIC通信端口,在arduino UNO开发板上是模拟引脚4号和模拟引脚5号。而在ESP32开发板上是21和22号引脚,所以采用了上述的连接方式。 关于ESP32开发板上21和22号引脚的问题,见下列的文章 ESP32-I2C简要理解 esp32 在arduino1.8下的I2C引脚



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3