基于STM32的智能手环设计与实现

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

基于STM32的智能手环设计与实现

  • 摘要
  • 一、研究背景及意义
  • 二、实现功能
  • 三、系统方案设计
    • 系统方案设计框图
    • 3.1 单片机芯片选择
    • 3.2 显示器方案设计
    • 3.3 倾角传感器设计
    • 3.4心率检测传感器设计
    • 3.5 温度传感器设计
    • 3.6 无线数据传输设计
    • 3.7 时钟模块设计
  • 四、硬件电路设计
    • 4.1 STM32单片机介绍
    • 4.2 主要功能模块电路设计
      • 4.2.1 电源电路设计
      • 4.2.2 ADXL345倾角传感器电路设计
      • 4.2.3 心率传感器电路设计
      • 4.2.4 OLED显示屏电路设计
      • 4.2.5 DS18B20温度电路设计
      • 4.2.6 DS1302时钟电路设计
      • 4.2.7 按键电路设计
      • 4.2.8 蜂鸣器报警电路设计
      • 4.2.9 GPS定位模块电路设计
      • 4.2.10 蓝牙模块电路设计
  • 五、软件编程设计
    • 5.1软件整体流程图设计
    • 5.2 心率程序设计
    • 5.3 液晶显示程序设计
    • 5.4 按键程序设计
    • 5.5 DS18B20温度采集程序设计
    • 5.6 DS1302时钟程序设计
    • 5.7 蜂鸣器报警程序设计
    • 5.8 ADXL345三轴传感器程序设计
    • 5.9 GPS程序设计流程图
    • 5.10 蓝牙程序流程图设计
  • 六、实物视频及图片

摘要

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

一、研究背景及意义

随着科技与时代不断进步,电子感应与加速计技术出现,取代了以前的技术,因此电子计步器随之而来。电子计数器,振动传感器是目前电子计步器比较重要的两大组成部分。心率是指一般人心脏在安静状态下每分钟跳动的次数,因为年龄或则性别等因素,存在着差异性。这是检验人体健康标准的一大指标,也是本次设计较为突出的一大重点。并且我们还通过温度传感器显示当前温度和时钟芯片显示当前时间便于训练。
在这个大环境的发展格局下,想设计一款集合计步功能和心率体温计时跌倒报警定位检测功能于一身的智能运动手环。
从而达到以下目的:
(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为串行时钟,输入。

4.2.7 按键电路设计

本设计一共设置有5个控制命令按键:参数设置;设置加;设置减;清除当前步数里程。我们采用的是独立式的按键,独立式按键就是每单个的按键就会有一条单独的I/O线,他们之间互不影响,按键一端接地,采用的是低电平有效,按下按键就会连接该条线路。键盘抖动的消除采用的是软件消除,因为硬件需要外接器件成本高也比较麻烦,软件消除的原理是线建立一个子程序,在检测到按键闭合时先执行子程序延时功能,按键断开时也执行数毫秒的功能从而达到消除抖动的目的。电路图设计:在这里插入图片描述

4.2.8 蜂鸣器报警电路设计

按键我们可以用于设置心率体温上限,血氧下限,当参数不在范围内蜂鸣器进行声光报警提醒。
蜂鸣器是一种蜂鸣元器件,供电时就进行蜂鸣,操作非常简单。市场上有很多蜂鸣器,我们选择提供5V电源的蜂鸣器被认为是实用的。当我们使用蜂鸣器时,我们有一个小技巧。如果我们觉得蜂鸣器不够响,我们可以把蜂鸣器顶部的纸去掉。在本次设计中,当检测到温度或者烟雾浓度高于报警上限时,蜂鸣器报警。蜂鸣器电路如图3.6所示,由3部分组成,一部分是一个1k的电阻,第二部分是一个PNP三极管,最后一部分就是蜂鸣器。三极管采用NPN三极管,其主要功能是放大电流和电平特性,因为单片机电路的电路非常小,无法提供蜂鸣器所需的电流,经过三极管放大驱动电流后,电流放大200倍,驱动蜂鸣器报警。
在这里插入图片描述

4.2.9 GPS定位模块电路设计

GPS接收模块通过它的接收天线获取卫星信号,经过变频、放大、滤波、相关、混频等一系列处理,可以实现对天线视界内卫星的跟踪、锁定和测量。在获取了卫星的位置信息和测算出卫星信号传播时间之后,即可计算出天线位置。用户通过输入输出接口,与GPS接收模块进行信息交换,实现功能。GPS接收模块内部结构如图所示。
在这里插入图片描述
该设计中GPS信号接收模块所选用的是VK2828U7接收模块,该模块是由美国瑟孚科技有限公司所生产。主要使用到的引脚如下图所示。该模块具有12通道并行接收能力,所接收的GPS信号属于民用频段的L1信号(1575.42MHz),在没有SA干扰的情况下平均定位误差为10米,动态速度误差为0.1米/秒,信号灵敏度达到-142dBm,冷启动定位时间为42秒,热启动时间为38秒,重新定位时间仅仅需要8秒。
在这里插入图片描述

4.2.10 蓝牙模块电路设计

本次设计采用的无线通信模块为HC05。HC05模块是主从一体的,而且性能较高,可以与PDA、手机、电脑等具有蓝牙功能的设备实现配对,该模块所支持的波特率范围非常大,为4800~1382400,而且该模块和3.3V或5V的单片机系统相兼容,极其方便、灵活。在这里插入图片描述

五、软件编程设计

完整的控制系统由硬件系统和软件系统组成,前一章主要阐述了系统的硬件电路的设计方案,若要充分发挥系统的设计功能,则需要支持硬件平台的软件程序,即烧写到单片机内部的程序。本设计利用STM32为控制中心,采用的的是STM32F103C8T6芯片,开发环境是Keil uVision5 by ARM软件,这款开发环境是目前STM32单片机系统的主流软件,使用的非常频繁。程序的烧录使用的是STLINKV2下载器进行烧录程序。

5.1软件整体流程图设计

主程序模块:系统上电后,我们需要配置个个传感器的引脚,然后初始化IIC 让oled进行液晶显示和ADXL345进行数据采集,采集完成后蓝牙串口初始化等待发送数据,DS18B20进行温度采集,心率传感器通过获取当前心率值,时钟显示当前的时间,最后把数据通过蓝牙发送到手机端,控制OLED显示当前采集到的数据,最后进入按键扫描判断按键是否按下如果按下则处理按键扫描函数。
如下图所示,是整个系统的主程序流程图:
在这里插入图片描述

5.2 心率程序设计

本次设计采用的是MAX30102芯片对人体心率或者血氧进行采集,我们此次是用来做心率采集,MAX30102我们采用的是IIC进行通信首先我们需要在程序里面配置IIC数据传输的引脚分别进行配置,然后对IIC进行初始化bsp_InitI2C(); MAX30102写寄存器函数maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data); MAX30102读寄存器函数maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data); MAX30102初始化maxim_max30102_init(); MAX30102读缓冲器FIFO maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led); 计算心率,通过检测PPG (photoplethysmographic,光电容积脉搏波描记法)周期的峰值和相应的红/红外信号的AC/DC,计算出心率值

maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer,int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid,int32_t *pn_heart_rate, int8_t *pch_hr_valid)

在这里插入图片描述

5.3 液晶显示程序设计

要让液晶显示屏正常工作,首先写入命令控制字,然后在写入需要显示的数据。写入命令控制字之前,必须用指令来查看液晶是否正在工作。如果正在工作,那就必须等待,直到液晶发出工作完成的信号时,才能够写入控制字和数据。液晶显示模块程序流程图如下图所示。
在这里插入图片描述

5.4 按键程序设计

按键电路有四个引脚。其中两两相同。我们在连接电路的时候只需要连接2个引脚就可以了。工作原理其实就是一个对信号的高低电平检测。在我们按键被按下时,单片机引脚的IO口就会检测为低电平。这些IO口电平特性的改变就会程执行相应的功能操作。判断按键是否按下if(K10){while(K10)去延时,数值加;if(K20){delay_key()延迟,然后while(K20);是否按下如果按下,数值减。单独按第三个按键就是清零流程图如下图所示:
在这里插入图片描述

5.5 DS18B20温度采集程序设计

从DS18B20中读取温度的过程是:首先获取DS18B20中的温度值,该温度值为BCD码形式,然后通过转换,以十进制形式输出温度值,且此时输出的温度值含有两位小数,但输出时没有小数点,输出的温度值是实际温度的一百倍。它的步骤如下:
(1)初始化函数
(2)读取温度传感器的温度
(3)计算实际温度值

如果测得的温度大于0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,测到的数值需要取反加1再乘以0.0625才能得到实际温度。
在这里插入图片描述

5.6 DS1302时钟程序设计

在这里插入图片描述

5.7 蜂鸣器报警程序设计

蜂鸣器的正极性的一端联接到三极管上,为了防止三极管直接被导通我们加一个1K的限流电阻,通过单片机iO口来输出高点电平,当管脚为高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当管脚为低电平时,三极管截至,蜂鸣器不发出声音。其电路如图所示。
流程图如下:
在这里插入图片描述

5.8 ADXL345三轴传感器程序设计

本次设计采用的是ADXL345三轴传感器来检测当前行走的步数,ADXL345有2种通信方式,我们采用的是IIC进行数据传输。首先我们需要在程序里面配置IIC数据传输的引脚分别为SCL对应A6 ,SDL对应A7,然后对ADXL345进行初始化Init_ADXL345();写入开始信号和停止信号。void ADXL345_Start();void ADXL345_Stop();接收应答信号:bit ADXL345_RecvACK(),ADXL345开始读取采集到的数据BYTE ADXL345_RecvByte();读取ADXL345的加速度值,从而判断是否发生位移void Multiple_read_ADXL345(void);如果读取到的数据为0XE5表示发生位移行走。devid=Single_Read_ADXL345(0X00); if(devid!=0XE5)在这里插入图片描述

5.9 GPS程序设计流程图

先是STM32单片机对串口的引脚进行配置,配置完成后我们选择需要用到的串口引脚进行初始化,引脚初始化完成后我们选择相对应的波特率来进行串口通信,延迟一段时间后开始获取采集信息,本次设计使用了串口3,4G模块 – USART1,GPS – USART2,BLE – USART3,DEBUG – UART4GPS。接下来进行串口时钟使能,RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); 然后是GPIO端口模式设置,GPS数据采集部分流程图如下图所示:在这里插入图片描述

5.10 蓝牙程序流程图设计

本次设计使用HC-05蓝牙模块作为单片机和手机间的的通信工具。首先给蓝牙透传模块上电,此时led闪烁。单片机上的蓝牙模块也上电工作,蓝牙主要是通过串口进行数据传输,初始化显示内容为uchar code Init1[]="WELCOME: ";延迟void HC-05 delay(uint z);写入命令void RART_com(uchar com);写数据void write_data(uchar date);初始化void HC-05(void)读取字节for(i=0;i<8;i++) {write_data(Init1[i]);}最后我们通过手机点击“搜索位于有效范围内的设备”,系统将搜索蓝牙设备,默认设备名称“CH-05”,双击或者点击右键选择“添加蓝牙设备”, 输入配对密码(默认为“1234”)。点击“下一步”,如果密码正确,则单片机和手机之间则建立通信,在手机选择波特率9600,在手机上显示经纬度信息和时间。下图是HC-05蓝牙通信模块流程图:在这里插入图片描述

六、实物视频及图片

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里经纬度和手机指南针做一下对比,手机经纬度如下:
在这里插入图片描述
测试结果还是比较准确的。

手机APP设计:
在这里插入图片描述

在这里插入图片描述
视频如下:

基于STM32的智能手环设计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/246791.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCL 高斯投影正算:大地坐标转高斯投影坐标(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据PCL 高斯投影正算:大地坐标转高斯投影坐标(C++详细过程版)由CSDN点云侠原创。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 二、代码实现 头文件及读取保存函数见:

【Linux】分区向左扩容的方法

文章目录 为什么是向左扩容操作前的备份方法&#xff1a;启动盘试用Ubuntu后进行操作 为什么是向左扩容 Linux向右扩容非常简单&#xff0c;无论是系统自带的disks工具还是apt安装的gparted工具&#xff0c;都有图像化的界面可以操作。但是&#xff0c;都不支持向左扩容。笔者…

Java通过模板替换实现excel的传参填写

以模板为例子 将上面$转义的内容替换即可 package com.gxuwz.zjh.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.HashMap; import java.util.Map; import java.io.IOException; impor…

react中优化类名写法(类似与vue的动态class对象方式)

安装和引入方式 npm install classnamesimport classNames form classsnames//render 方法中&#xff0c;需要动态className的地方直接参照上图使用

2024幻兽帕鲁服务器,阿里云配置

阿里云幻兽帕鲁服务器Palworld服务器推荐4核16G配置&#xff0c;可以选择通用型g7实例或通用算力型u1实例&#xff0c;ECS通用型g7实例4核16G配置价格是502.32元一个月&#xff0c;算力型u1实例4核16G是432.0元/月&#xff0c;经济型e实例是共享型云服务器&#xff0c;价格是32…

【Git】windows系统安装git教程和配置

一、何为Git Git(读音为/gɪt/)是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 二、git安装包 有2种版本&#xff0c;Git for Windows Setup和Git for Windows Portable(便携版)两个版本都可以。 三、Git for Windows Por…

宏景eHR FrCodeAddTreeServlet SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR FrCodeAddTreeServlet 接口处存在SQL注入漏洞,未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令,从而窃取数…

AI编译器的前端优化策略

背景 工作领域是AI芯片工具链相关&#xff0c;很多相关知识的概念都是跟着项目成长建立起来&#xff0c;但是比较整个技术体系在脑海中都不太系统&#xff0c;比如项目参与中涉及到了很多AI编译器开发相关内容&#xff0c;东西比较零碎&#xff0c;工作中也没有太多时间去做复盘…

【MySQL】事务

目录 一、事务的概念二、支持事务的存储引擎三、事务的提交方式三、事务的操作四、事务的隔离级别五、一致性 一、事务的概念 事务由一条或多条SQL语句组成&#xff0c;这些语句在逻辑上存在相关性&#xff0c;共同完成一个任务&#xff0c;事务主要用于处理操作量大&#xff…

258:vue+openlayers加载mapbox-style的地图

第258个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中添加mapbox地图,跟之前的不同处理方式是,这里采用了ol-mapbox-style插件来加载mapbox地图。具体请参考源代码和API。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示…

STM正点mini-跑马灯

一.库函数版 1.硬件连接 &#xff27;&#xff30;&#xff29;&#xff2f;的输出方式&#xff1a;推挽输出 &#xff29;&#xff2f;口输出为高电平时&#xff0c;P-MOS置高&#xff0c;输出为&#xff11;&#xff0c;LED对应引脚处为高电平&#xff0c;而二极管正&#…

深度学习-循环神经网络-RNN实现股价预测-LSTM自动生成文本

序列模型(Sequence Model) 基于文本内容及其前后信息进行预测 基于目标不同时刻状态进行预测 基于数据历史信息进行预测 序列模型:输入或者输出中包含有序列数据的模型 突出数据的前后序列关系 两大特点: 输入(输出)元素之间是具有顺序关系。不同的顺序,得到的结果应…

java servlet勤工助学家教管系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 勤工助学家教管系统是一套完善的java web信息管理系统 serlvetdaobean mvc 模式开发 &#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myecli…

Flutter中实现中国省份地图

效果展示(这里只展示局部&#xff0c;完全展示违规)&#xff1a; 可以点击省份改变颜色&#xff0c;更多功能可以自行拓展。 注&#xff1a;非完整中国地图&#xff01;&#xff01;&#xff01; 本文用于记录在Flutter项目中安卓端实现中国地图&#xff0c;因为实现过程是通过…

代码随想录算法训练营第31天 | 贪心算法理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法理论基础 选取每一阶段的局部最优&#xff0c;堆叠成全局最优。遇到求最优解问题时&#xff0c;可以先手动模拟一下&#xff0c;将问题分解&#xff0c;举例分析小问题的局部最优是否能达到全部最优&#xff0c;能的话就可以试一下贪心算法。贪心算法的题没有固定的套…

个体诊所电子处方系统设计,社区门诊处方开单管理系统软件教程

个体诊所电子处方系统设计&#xff0c;社区门诊处方开单管理系统软件教程 一、前言 以下软件程序操作教程以 佳易王诊所电子处方管理系统软件V17.3为例说明 如图&#xff0c;在基本信息设置里&#xff0c;可以设置处方配方模板&#xff0c;这样在开电子处方的时候可以一键导入…

MYSQL表的约束详解!

文章目录 前言一、空属性二、默认值三、列描述四、zerofill五、主键六、自增长七、唯一键八、外键 前言 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角度保证数据…

【服务器】关于lspci指令查看网卡数量的小坑

准备用lspci指令查看服务器上有多少个网卡&#xff0c;但是由于对lspci的输出结果不了解&#xff0c;导致得到了错误的结果&#xff0c;折腾了好几周 T_T 一、什么是lspci指令&#xff1f;如何使用&#xff1f; 1、lspci指令用来查看当前系统连接的所有PCI/PCIe设备 2、使用…

单元测试——题目十二

目录 题目要求: 定义类 测试类 题目要求: 根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。 编写程序代码,使用JUnit框架编写测试类对编写的…

Android读写文件,适配Q以上

Android Q升级了文件系统&#xff0c;访问文件不仅仅是说动态权限了&#xff0c;有各种限制。权限什么的就不赘述了&#xff0c;下面介绍一下在10以上的系统中访问文件。 首先是打开文件管理器 /*** 打开文件管理器 存储卡和外接U盘都可以访问*/public void openFileManager()…