通过单片机进行控制的智能健康手环的设计
2022-07-15侯晨祥周迎勤
◎侯晨祥 周迎勤
科技的进步使一些我们以前想都不敢想的事物渐渐进入我们的生活,生活中也有很多东西从以前的装饰品变成了科技产品,例如一些电话手表,测温戒指,智能手环等,这些东西已经成为我们生活中的常客,改变了我们的生活,并随着嵌入式的发展,这些东西也渐渐的变的不在高大上起来,实现了平民化、商业化。智能健康手环使用单片机作为系统主控,由心率血氧检测模块(MAX30102)、温湿度检测模块(SHT30)、光照检测模块(TEMT6000)、大气压强检测模块(BMP280)、OLED 显示电路、按键电路和报警单元组成。该智能健康手环可检测用户的心率,血氧含量情况,也可对用户周围环境进行检测,如温度,湿度,大气压强和光照强度等,手环集成有人机交互系统,可人为控制其测量方式,选择检测方法,也添加有报警电路,当任何传感器检测的数据超过预定值时,进行报警提醒,确保使用者的安全,从而实现检测人体健康和周围环境情况的目的。在可以实现目前市面上大部分产品的功能的情况下,添加了一下手环自己的功能,不再借助手机来观测环境情况。
系统使用意法半导体生产的STM32 作为主控芯片,通过单片机控制外部设备进行环境光检测,环境温度湿度检测,周围气压情况和使用者心率检测的功能,同时制作成一个方便佩戴的手环外形,传感器选型也秉着低功耗,低成本的观念,选择制作,能保证系统可以独立的长时间正常使用。
一、背景和意义
科技改变着我们的社会生活,目前也有很多科技产品融入在社会生活中,并且我们渐渐的向万物互联的方向走去,家庭空气检测,电子门锁,扫地机器人,空调伴侣等,产品变的越来越细致化,方便我们的使用,携带,可是我们生活作息,身体健康也渐渐的向亚健康靠拢,在这样的环境下我们需要一款既可以检测我们身体健康又可以检测环境健康的产品出现在我们的生活中。
二、智能健康手环系统关键技术
1.检测技术:检测传感器多选用工业级别的传感器,他们通过压力,超声波,电磁波,光敏等传感器技术,进行相应的数据检测,同时芯片内部自行编码,通过软件寻址或电平控制的方式来向外传输检测数据。
2.串口通信:传感器通过内部编码,可把检测的数据进行打包发送到外界的主控中,但是主控如何识别这些数据呢?我们主要使用串口通信的方式进行读取,通信也有很多方式,本系统中主要使用IIC 通信协议进行传感器数据读取。
3.人机交互:系统除去可自行检测的传感器外面,我们还需要引入人机交互系统,通过按键,显示等方式,在使用者处得到工作信号,然后再通过人机交互系统把检测完成的数据显示给使用者。
三、主要内容
1.总体框架。
通过功能分析进行总体框架的设计,根据要求,我们需要选择一款合适的单片机作为系统的主控,其次是主控的工作电路,包括下载电路,时钟电路,复位电路等,然后根据需要实现的目的,来选择合适的传感器,传感器选择好后,根据传感器的数据手册进行单片机接口的分配即可。
2.硬件搭建。
搭建系统前需要了解一些数模电方面的基础知识,保证设计的原理图在理论上可行,紧接着根据需要学习Altium designer 软件,通过该软件原理图设计和PCB 绘制。绘制过程中,我们需要严格按照各传感器的工作电压进行设计,一个完整的系统电源部分万不可出现问题,另外根据传感器的检测功能,设计过程中需要分配好放置位置。
3.软件设计。
软件方面主要通过单片机程序实现,传感器开始检测后,大部分可自行进行数据处理,我们需要做的就是编写好通信程序,保证接收的数据正确即可,但是也有一部分传感器无法自己计算,我们收到数据后,需要编写标准公式,自己梳理;然后编写人机交互界面,方便使用者观看检测数据,最后编写界面显示,美化系统界面。
4.整体调试。
软件设计完成后,我们需要大量的时间进行数据调试,调试根据实际实物情况制作人机交互系统的设计,从而完善整个操作系统,完成所有的功能。
四、智能健康手环工作原理
(一)系统工作原理
智能健康手环通过单片机进行控制,通过连接传感器的输入输出,将传感器处理的数据作为主控芯片的输入,传到主控芯片中,主控芯片通过输入的数据,判断温湿度是否超过阈值,超过阈值则进行报警,同时将光照强度,心率等转化成数字。以实现数据的监测。图4-1 是手环系统框图。
图4-1 智能健康手环组成框图
系统主要包括有单片机最小系统,温湿度检测模块(SHT30),大气压强检测模块(BMP280),心率血氧检测模块(MAX30102),光照检测模块(TEMT6000),OLED 显示单元,按键电路,报警单元组成,其各功能分工如下:
单片机最小系统:计算和处理传感器检测到的数据,响应按键电路的输入,操作显示屏幕和报警电路进行报警。
温湿度检测模块(SHT30):通过SHT30 芯片对空气中的温度湿度进行检测,并把数据传输给单片机。
大气压强检测模块(BMP280):通过BMP280 芯片检测当前环境的大气压强情况。
心率血氧检测模块(MAX30102):通过MAX30102 光敏传感器检测使用者心率,血氧含量情况。
光照检测模块(TEMT6000):通过TEMT6000 光敏器件检测使用者当前的环境光。
OLED 显示单元:响应单片机的指令,并把数值显示出来。
按键电路:为使用者提供操作界面。
报警单元:响应单片机的指令,当检测的数据和预期值有较大变化时,表示使用者所处环境情况复杂,需要撤离或注意身体情况。
(二)单片机模块方案选择
根据系统能够实现预期功能,首先需要选择一款合适的单片机作为整个系统的大脑,首先预计使用意法半导体公司的单片机,为了满足可实现制作实物手环的目的,系统预计使用64 脚的单片机进行制作,选定使用STM32F103C8T6 作为主系统处理器,单片机内核使用ARM32 位的Cortex-M3 架构,工作频率最高可达72MHZ,单片机使用2.0~3.6 伏宽电压供电且单片机具有功耗低,有睡眠,停机和待机三种工作模式,芯片的宽供电和低功耗标志着系统可处于长期工作中,并且系统对电池的要求也不会过高。
单片机内部资源配置:内部集成有2 个12 路ADC 通道,可转换范围在0~3.6V,芯片支持USART,I2C,SPI 多种通信方式,芯片集成有64 个引脚,除复位,时钟,下载,电源和接地外,还具有大约48 个外设引脚,硬件资源上足够系统使用;单片机内部集成有64K 程序闪存存储器,7 个DMA 控制器,在软件资源分配上,也足够系统使用;并且芯片体积小,资源丰富,方便后期的实物制作与调试。
(三)温湿度检测模块(SHT30)
系统通过手环内部集成的温湿度传感器实现对温湿度的检测,系统中温湿度检测模块使用SHT30,其中温湿度检测模块(SHT30)包括温度传感器T Sensor、湿度传感器RH Sensor、ADC 模/数转换器、上电复位、校准、数据处理以及数据接口等。其中,如图可知,将温度传感器和湿度传感器收集到的数据传送到ADC 模/数转换器中进行转换,从而将连续变换的模拟信号转换成离散的数字信号,然后提过外部引脚,配合芯片的工作电路,严格按照IIC 通信协议,当芯片读取到单片机发送的起止信号好,开始向单片机传送检测到的数据。
(四)大气压强检测模块(BMP280)
系统通过内部集成的大气压强检测模块(BMP280)实现对大气压强的检测,其中,模块使用BMP280 作为检测和数据处理芯片,通过压强传感器接收环境中的压强,将连续变化的模拟数据作为输入传到环境模块中,环境模块接收到环境中变化的压强信号之后,将模拟量传到内部ADC 单元,进行模数转换,使得模拟量变成数字信号,然后提过分配的接口引申出去,配个芯片工作电路,严格按照IIC 协议,等待响应数据线和时钟信号将数据发送来的起止信号,把数据发送到单片机中,供单片机数据处理。
(五)心率血氧检测模块(MAX30102)
心率血氧检测模块选用MAX30102,芯片工艺技术成熟,内部集成有一个660nm 红光和880nm 红外光,属于光电传感器的一种,可通过地址操作实现开关内部中断检测,也可通过软件进行芯片关断,关断后电流为零,保证了低功耗的同时也实现了数据的稳定性。
(六)光照检测模块(TEMT6000)
光照检测模块选用TEMT6000 作为检测传感器,TEMT600内部可看成一个硅型NPN 二极管,其基极集成在一个透明敏感元件中,通过光照的不同,基极的光感元件可产生不同的电压,通过三级管的放大特性,把数据放大,通过电压的形式发送出去,可通过AD 转换直接读取检测的数值,传感器只对可见光敏感,不需要额外的过滤设施,并且具有良好的线性输出,确保数值的可靠性。
五、硬件电路设计
(一)单片机电路
系统选用STM32F103C8T6 作为系统的芯片,PCB 封装采用LQFP64 国际标准封装,P1 接口使用SPI 的下载方式,该下载方式方便简单,按照芯片数据手册和下载器对应接线,通过编译器进行下载编译即可,不需要操作单片机的BOOT 脚,但是BOOT 脚需要接地,保证程序可执行;C3,C2,XTAL 组成外部时钟电路,通过外部时钟产生信号,输送到单片机中,VCC接电源,GND 接地,其中图中接入了大量的滤波电容,起到了滤波作用。
(二)稳压电路
要想系统能正常稳定的工作,必须有一款文波小,输出电压稳定输出电流稳定的稳压电路;实现我选用的是3.7 伏锂电池,但是系统中模块供电平均为5V 和3.3V,STM32F103C8T6的工作电压在2.0~3.6V 之间,3.7V 的电源就显的格外突兀,但是又考虑到产品的可穿戴性,无法使用大容量,大电源的电池,于是我计划进行升压后降压处理,通过检测,升压符合预期结果并且得到了5V 的电源输入,有了5V 的电源,只需要接一个3.3V 的稳压即可,LM1117-3.3V 芯片是一款线性稳压芯片,本身就具备文波小电源稳定的特点。
(三)信息采集电路
1.温湿度检测模块(SHT30)。
温湿度检测模块使用SHT30 芯片,芯片小巧,数据精准,电路结构简单,其中R7,R8 为IIC 接口SCL 和SDA 的上拉电阻,C14 进行电源滤波,单片机通过IIC 协议进行读取数据即可。
2.大气压强检测电路(BMP280)。
按照BMP280 数据手册,设计得出,其中出去上拉电阻和滤波电容外,自行设计的就是一个G 电阻和一个V 电阻,这两个电阻可对芯片进行模式转换,根据手册当芯片5 脚接地时或接源时,芯片响应地址不同设计得出。
3.心率血氧检测模块(MAX30102)。
心率血氧检测模块使用MAX30102 模块进行检测,因为传感器需要紧贴手背,为了方便设计于是采用了成品模块,通过排母的方式连接在手环背面,VIN 接 5V,SCL 接 PB8,SDA 接PB9。
4.光照检测模块(TEMT6000)电路。
TEMT6000 类似于一个三极管,不过他的基极不需要接,芯片外接的光敏元件,当光照射到感光片上时,会产生微弱的电流,然后导通三极管,把一个模拟量发送到单片机,单片机只需要开启AD 转换数据即可。
(四)人机交互电路
1.OLED 显示单元。
液晶显示屏幕选择的是OLED-0.91 寸长款屏幕,其引脚功能如下:
GND——电源地
3.3V——电源
SCL——PB12(时钟信号)
SDA——PB13(数据信号)
2.报警单元。
设计报警单元主要是为了配合按键电路的响应,当按下确定键的时候,蜂鸣器给我们一个声音信号,确保按下,另一方面是当周围环境不论是大气压过高还是温度过热的时候,能给予报警提示。
电路主要使用三极管开关特性,配置电阻只让三极管工作在放大区或截止区即可。
3.按键电路。
按键一测接地,另外一测接单片机IO 口,单片机IO 口初始化拉高,只需要检测低电平即可。
由于屏幕使用的是0.91 寸长屏幕,测量的数据无法全部显示在屏幕上,所以需要按键操作选择需要显示数据。
六、系统调试
系统设计完成后,需要进行系统的总体调试,所以我们需要针对硬件电路和软件程序分别进行调试,两个分别调试完成后,才可进行系统的总体调试,具体调试过程如下:
硬件调试:
首先进行硬件设计,在AD 中绘制完电路图后,检查布置如下:
1.检查IO 口分配是否有问题,根据芯片数据手册,检查使用的IO 口,查看IO 口是否和芯片硬件电路有冲突。
2.检查电源部分电路和电源分配方式,将数字电路的地和模拟电路的地使用0 欧电阻隔离。
3.绘制PCB 电路图,绘制的时候需要注意通信线等长,过孔等于线宽。
4.绘制完成后进行规则检查,标识好电路符号,发至工厂打板。
5.电路收到后,焊接芯片时一定要细致,观察引脚锡是否有互联,清理干净版面,准备进行上电测试。
6.上电时使用直流稳压电源供电,电流从小到大的顺序慢慢增加。
7.测试各模块上电是否正常,确认无误后进行准备进行总体调试。
结论:系统利用单片机实现对整个电路的控制作用,电路中最主要的部分是通过传感器输出到单片机中的数字信号实现整个系统的设计。系统主要完成了以下工作:
1.通过温湿度检测模块(SHT30)检测空气温度湿度情况。
2.通过大气压强检测模块(BMP280 检测大气压强。
3.通过心率血氧检测模块(MAX30102)检测使用者心率情况和血氧含量。
4.通过光照检测模块(TEMT6000)检测光照。
5.通过OLED 显示单元显示测量数据。
6.通过按键电路提供操作界面。
7.通过报警单元进行声音报警。