失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用

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

时间:2022-12-24 17:34:12

相关推荐

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

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

测温传感器

连接元件

我们使用的是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 <Wire.h>#include <Adafruit_MLX90614.h>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引脚

如果觉得《ESP32基于arduino开发的心跳体温检测系统(二)传感器的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。