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

测温传感器

连接元件

我们使用的是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开发的心跳体温检测系统(二)传感器的使用相关推荐

  1. ESP32基于arduino开发的心跳体温检测系统(一)项目介绍及准备

    本文为被北邮信息系统设计课程摧残的同学们(包括但不限于作者的室友)提供一个可行的方案及模板. 本项目使用Arduino作为开发环境,使用ESP32开发一个心跳体温检测系统. 系统通过心跳传感器--pu ...

  2. ESP32基于arduino开发的心跳体温检测系统(四)本地端系统整合

    在前三篇文章了解了三个外接模块的使用方法之后,我们开始将三个模块整合起来. 头文件.宏定义与变量声明 头文件 #include <SPI.h> #include <Wire.h> ...

  3. c语言pm2.5检测系统,基于Arduino的PM2.5实时检测系统

    沈华刚 洪香勤 都兴隆 摘 要:文章针对城市中PM2.5进行分析监视,并把数据实行显示在下位机和网络端.有利于相关部门或个人获得PM2.5数据信息,及时对恶劣污染作出反应,减少恶劣环境对人们的侵害.本 ...

  4. 如何基于Arduino开发板使用APDS9960 RGB和手势传感器

    今天大多数手机都带有手势控制功能,可以打开或关闭任何应用程序.启动音乐.拨打电话等.这是一个非常方便的功能,可以节省时间,并且看起来很酷,可以用手势控制任何设备.我们以前使用加速度计来构建手势控制的机 ...

  5. 基于STM32开发可燃气体智慧检测系统

    开发环境:Keil uVision5 \ STM32CubeMX 硬件型号:STM32F051K8(芯片), NB-iot(核心板) 涉及技术:ADC/SPI/UART/DMA/巴法云/AT命令/QT ...

  6. arduino编码器计数_基于Arduino开发环境的光电编码器检测仪设计方案 - 全文

    0 引言 Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的.其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块.各种模 ...

  7. 基于ARM RK3568的红外热成像体温检测系统

    得益于我国政府有力的新冠疫情防控手段,人民群众的生产和生活没有受到过多影响.而放眼全球,疫情防控形势依旧严峻,这提醒着我们仍不能掉以轻心,除做好个人防护之外,公共场所的体温检测成为基础但重要的疫情防控 ...

  8. 基于Arduino开发板的火焰报警器

    ** 基于Arduino开发板的火焰报警器* 概述 本文将通过使用火焰传感器与Arduino UNO组成一个简单的火灾报警系统.该火焰传感器是基于IR(红外线 Infrared Radiation)的 ...

  9. 查看gpio状态_基于Arduino开发,借助blinker平台,让NodeMCU实现8路继电器APP端状态监视和控制...

    基于Arduino开发,借助blinker物联网平台,让NodeMCU实现8路继电器APP端状态监视和控制 先上开发板功能图: 本文利用了NodeMCU上的D0-D3,D5-D9,总共 8个 GPIO ...

最新文章

  1. HPUX在oracle10g安装和卸载缩写
  2. 枚举类型enum用法_Java枚举深度解读,看这篇就够了
  3. 测试isEmpty null 方法
  4. 五十个小技巧提高PHP执行效率
  5. 【LeetCode笔记】49. 字母异位词分组(Java、字符串、哈希表)
  6. (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字
  7. 使用PyQt4和twisted写的局域网聊天室(2)
  8. JAVA 第2课 基本程序设计
  9. 深度学习模型的前馈运算与反馈运算
  10. [编程题] 被3整除
  11. OpenCV中寻找轮廓函数cvFindContours的使用说明以及序列cvSeq的用法说明
  12. 也谈SQLite效率:Julia和CSV
  13. 快速在小程序上实现“友情链接/合作伙伴”功能
  14. autojs 文件转base64
  15. 使用POI导出Excel时,关于设置带有多行表头表格自动宽度的问题解决办法
  16. Facebook改名,元宇宙非区块链不可
  17. windows系统C盘扩容详解
  18. [leetcode] 379. Design Phone Directory 解题报告
  19. python拼音名_Python汉字转换成拼音
  20. 关于field-of-view和receptive field

热门文章

  1. #clickid#CID#全新小程序链路CID/clickid解决方案,合规、完美防阿里封禁
  2. excel表格如何转换成word表格_Word如何制作表格?Word制作表格超实用技巧
  3. java代码实现打气球游戏_javascript+css3开发打气球小游戏完整代码
  4. Python函数初始
  5. Mac下将ISO写入U盘镜像
  6. 服务器要输入exit才会读系统,脚本经典小窍门
  7. VRRP主备网关原理
  8. C语言-实现对单循环链表中奇数和偶数结点的移动(前面奇数结点后面偶数结点)
  9. C# RabbitMQ: None of the specified endpoints were reachable
  10. geoserver发布切片影像地图