基于STM32的智能手环wifi连接手机APP(上)

简介: 基于STM32的智能手环wifi连接手机APP(上)

需要原理图工程,源码,PCB工程的朋友收藏,这篇文章关注我,私我吧!!!

请先阅读此部分,再读正文

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!说明:本次设计是在原有的STM32智能手环设计与实现的基础上进行了改进,改进如下:加入ESPwifi模块,替换掉蓝牙模块来实现手机APP的连接,删掉了原手环中的GSP经纬度定位功能,加入了血氧监测功能。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

对应源码文件下载链接:源码及所有文件资料

正文

基于STM32的智能手环wifi连接手机APP

摘要

本次设计主要组成是STM32单片机电路、ADXL345加速度传感器、心率检测电路、OLED液晶显示电路、电源电路、时钟DS1302和DS18B20温度传感器组成。通过ADXL345测量重力加速度,是用来判断人体状态,根据状态的数值变化进行计步功能。通过心率传感器测试,通过手指脉动放大经过比较器处理后发送给单片机进行心率采集。并将步数、心率,温度、时间等信息显示在液晶OLED上,当跌倒或者数据异常时蜂鸣器报警并且我们也可以通过蓝牙模块把当前的数据发生到手机端进行提醒,本次设计功能比较全面,具有良好的市场前景。

一、研究背景及意义

随着科技与时代不断进步,电子感应与加速计技术出现,取代了以前的技术,因此电子计步器随之而来。电子计数器,振动传感器是目前电子计步器比较重要的两大组成部分。心率是指一般人心脏在安静状态下每分钟跳动的次数,因为年龄或则性别等因素,存在着差异性。这是检验人体健康标准的一大指标,也是本次设计较为突出的一大重点。并且我们还通过温度传感器显示当前温度和时钟芯片显示当前时间便于训练。

在这个大环境的发展格局下,想设计一款集合计步功能和心率体温计时跌倒报警定位检测功能于一身的智能运动手环。

从而达到以下目的:

(1) 有利于社会公共交通安全;

(2) 提高人们法律意识;

(3) 使之便捷、安全、准确、高效,便于提高人体日常红外运动的普及化;

二、实现功能

  1. 以STM32单片机为数据处理中心,通过DS18B20采集当前温度,MAX30102传感器采集当前人体心率值;
  2. 通过DS1302时钟芯片可以方便时刻观察时间;
  3. 通过ADXL345进行计步里程,并且通过OLED液晶显示屏显示当前信息;
  4. 采用按键可以进行修改非常方便快捷;
  5. 通过GPS对当前运动者进行定位如果发生意外情况通过蓝牙模块发送蓝牙进行提醒;
  6. 时钟具有掉电行走功能,重新上电后无需校准;

三、系统方案设计

系统方案设计框图

3.1 单片机芯片选择

方案一:选择ST公司的STC89C52单片机作为主控制器,STC89S52主要是低功耗、高性能器件,具有良好的存储功能。该单片机价格低,功能比较全面, 功耗小,但它是个8位存储器,不能达到实现本次设计的需求,故而因此放弃。

方案二:STM32单片机是一款超低功耗的32位器件,功能性比较丰富,模电数电集中到一个芯片上,可以较好地解决很多问题,实用性比较强。STM32F103C8T6是该系列应用较为广泛的一款控制芯片,该芯片运行在32位系统、支持精简指令集、超低功耗的混合型单片机,具有高可靠性、低功耗、易扩展、体积小、性价比高、电路简单等优势,在精密仪器上被广泛应用,以及很多智能化产品中,提高产品质量,提升经济价值,已成为众多单片机系列中一颗耀眼的新星。因此选择方案二。

3.2 显示器方案设计

方案一 :LED数码管,这种数码管的最大优势是价格较低,性能稳定,可以非常简便的和单片机相连。主要是用于数字显示上,实用性较高。但是数码管显示的数字有限,本次设计涉及数字较多,因此达不到设计的要求,此方案放弃。

方案二: 选择OLED液晶显示,常和单片机配合使用,他可以显示大量的数据,文字等等,显示的位数也比较多,外观较好,清晰,并且它的程序编写起来比较简单。经济方面价格也比较低廉,其中OLED液晶显示屏随是比较有特色的一款,很适用于本次设计,综合下来选择此方案。 故选择方案二。

3.3 倾角传感器设计

方案一 :选用陀螺仪来检测位置的信息,功能比较强,精度准确,稳定性强,但是此器件精度要求高,控制起来较为复杂,不适用于本次设计。

方案二:选用ADI公司的倾角传感器ADXL345模块来检测位置的信息,ADXL345功能比较全面,有很多存储空间,其成本预算较低,便于控制。因此选择方案二。

3.4心率检测传感器设计

方案一 :选用压力传感器收集心率血氧数据,但其抗干扰能力较差,会对设计测量产生偏差,且测量的难度相对较大,很难达到本次设计的预期目的,所以排除此方案。

方案二 :选用MAX30102红外模块采集心率信号,此模块对管心率信号采集较为稳定,其抗干扰能力较强,测量的数值比较准确,波形稳定,相对于本次设计是一个很好的选择。故选择方案二。

3.5 温度传感器设计

DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,此传感器不但可以防水温度检测的范围比较广,价格低廉而且使用起来也比较方便。

3.6 无线数据传输设计

方案一 :选择采用NRF24L01模块进行传输,但是传输过程中需要只是2快板子分为主从才可以进行无线通信。

方案二: 选用HC05蓝牙模块,我们只需要通过此模块进行串口通信在手机端下载厂家提供的APP就可以完成数据的传输和显示,价格也比较便宜传输数据稳定。故选择方案二。

3.7 时钟模块设计

方案一 :选择单片机内部时钟,通过程序来显示当前的信息和参数,不需要外接传感器,但是内部时钟精度较差,非常容易产生积累误差并且无法掉电行走。

方案二 :选用DS1302时钟芯片,此芯片价格便宜,是专门用来处理万年历方面的信息,精准度较高,并且数据可以通过电子进行掉电行走,上电后无需重新设置。故选择方案二。

四、硬件电路设计

4.1 STM32单片机介绍

单片机的最小系统应能让单片机正常工作并且能够正常的发挥其功能的一个集成在一块芯片上的完整计算机系统。它是一个小型的电脑设备所具有的那样拥有者明显的大脑,也就是控制的核心。同时,也具有一些输出设备,还有就是定时器,能够作为时间的控制中心,具有作为通讯的接口,把所有需要用到的都集中在一个小小的芯片之上,这就是单片机。当然单片机现在的发展已经比较先进,我们来看一下作为最基本的存在它是怎样的。如下图:

STM32F103是STM32f101的增强型单片机,在32位的MCU中性能最强;具有出众的控制和通讯,非常适合低电压/低功耗的应用场合。下图为STM32内核:

对于本次设计,我们选择的单片机是STM32F103C8T6单片机。此单片机和51系列相比多了很多功能,不但运行速度比51单片机要快很多,自带2个AD转换,方便我们在设计烟雾和CO的时候免去了需要加外部ADC进行转换,非常方便;

STM32实物图如下图所示:

4.2 主要功能模块电路设计

4.2.1 电源电路设计

单片机的电源采用直流5V供电,电源模块包括一个3脚的电源座子和6脚的电源开关。电源座子用于连接外部的电源插头,电源开关用于控制整个单片机的电路开和关。原理图如下:

4.2.2 ADXL345倾角传感器电路设计

ADXL345的内部功能结构如下图所示,X、Y、Z三个相互正交的的方向上的加速度由 G-Cell传感器感知,经过容压变换器、增益放大、滤波器和电压信号输出。然后我们就可以得到步数,我们设置步数距离后可以通过步数在计算里程,ADXL345内部功能图如下:

ADXL345的三个相互正交的测量方向如下图,固定在人体上后,这三个方向上的数据意义也就随之确定了。

引脚配置(顶视图):

ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。

4.2.3 心率传感器电路设计

测心率实际上也在同时检测血氧,只是基于本模块我们只用到心率检测,把血氧检测到的数据不显示,所以实际在运用的时候我们也在同时测血氧饱和度。

MAX30102 是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了一个红光 LED 和一个红外光 LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。

原理说明:

传统的脉搏测量方法主要有三种:一是从心电信号中提取;二是从测量血压时压力传感器测到的波动来计算脉率;三是光电容积法。前两种方法提取信号都会限制病人的活动,如果长时间使用会增加病人生理和心理上的不舒适感。而光电容积法脉搏测量作为监护测量中最普遍的方法之一,其具有方法简单、佩戴方便、可靠性高等特点。

4.2.4 OLED显示屏电路设计

有机发光显示器(Organic Light Emitting Display,OLED)是一种新型发光和显示器件。OLED实质上是一个薄膜器件,即在阳极和阴极之间夹多层有机薄膜组成的稳定的绿色有机薄膜电致发光器件。当有电流通过时,这些有机材料就会发光。OLED使用普通的矩阵交叉屏,OLED位于交叉排列的阳极和阴极中间,通过对阳极和阴极组合的选通,可以控制每一个OLED的点亮。

液晶显示模块电路如图所示,P5是一个4孔的排针,专门供OLED液晶显示屏使用,5V是指接的5V电压;显示屏的SCL引脚连接的是单片机的B6引脚,通过SCL引脚传输串行时钟数据;SDA引脚连接的是单片机的B7引脚,通过SDA引脚传输串行数据。

4.2.5 DS18B20温度电路设计

DS18B20 是美国 DALLAS 半导体公司推出的应用单总线技术的数字温度传感器。它的主要技术特性如下:

① 具有独特的单线接口方式,即微处理器与其接口时仅需占用 1 位I/O 端口;

② 支持多节点,使分布式多点测温系统的线路结构设计和硬件开销大为简化;

③ 测温时无需任何外部元件:

④ 可以通过数据线供电,具有超低功耗工作方式:

⑤ 测温范围为-55~+125℃,测温精度为±0.5℃:

⑥ 温度转换精度 9-12 位可编程,能够直接将温度转换值以 16 位二进制数码的方式串行输出。12 位精度转换的最大时间为 750ms。

DS18B20温度传感器结构图:

4.2.6 DS1302时钟电路设计

DS1302是一款专门处理时钟的芯片,晶振为32.768,

1、由美国DALLAS公司推出。

2、它是一种高性能、低功耗、带RAM的实时时钟电路。

3、DS1302使用方便,接线简单,适合此电子时钟的设计制作。

4、DS1302可以对年月日时分秒等进行计时,并且带有闰年补偿功能。

5、它可以一次传送多个字节的时钟信号。并且内部有存放数据的RAM寄存器

6、DS1302的 工作电压宽达2.5~5.5V。同时还提供了对后备电源的引脚。

1引脚:VCC2为主电源引脚。

8引脚:VCC1备用电源引脚。

备注:DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。由于本设计未引用备用电源,只引用了1引脚,主电源引脚。

2和3引脚:X1、X2外接晶振引脚。(外接32.768kHz晶振)

4引脚:GND为接地引脚。

5引脚:CE/RST为复位/片选线。通过把RST输入驱动置高电平来启动所有的数据传送。

RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

RST提供终止单字节或多字节数据的传送手段。

6引脚:I/O为数据输入输出口。在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

7引脚:SCLK为串行时钟,输入。


基于STM32的智能手环wifi连接手机APP(下)+https://developer.aliyun.com/article/1627381

目录
相关文章
|
2月前
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
94 0
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
470 2
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
765 0
|
7月前
|
传感器
STM32标准库ADC和DMA知识点总结-1
STM32标准库ADC和DMA知识点总结
|
6月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
533 4
|
6月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
778 2
|
6月前
|
存储 数据采集 数据安全/隐私保护
使用STM32F103读取TF卡并模拟U盘:使用标准库实现
通过以上步骤,你可以实现用STM32F103将TF卡内容变成U盘进行读取。这种功能在数据采集、便携式存储设备等应用中非常有用。如果你有更多的需求,可以进一步扩展此项目,例如添加文件管理功能、加密存储等。希望这篇博客能帮到你,如果有任何问题,欢迎在评论区留言讨论!
260 1
|
6月前
|
开发者
【经典案例】使用HAL库配置STM32F407的SPI外设
在嵌入式系统开发中,STM32F407是一款广泛应用的微控制器,而SPI(Serial Peripheral Interface)是一种常用的通信接口。本文将详细介绍如何使用STM32的硬件抽象层(HAL)库配置STM32F407的SPI外设,并提供完整的代码示例。
638 1
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
197 0

热门文章

最新文章