基于ARM平台的睡眠检测蓝牙耳机系统设计_第1页
基于ARM平台的睡眠检测蓝牙耳机系统设计_第2页
基于ARM平台的睡眠检测蓝牙耳机系统设计_第3页
基于ARM平台的睡眠检测蓝牙耳机系统设计_第4页
基于ARM平台的睡眠检测蓝牙耳机系统设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ARM平台的睡眠检测蓝牙耳机系统设计Ⅰ摘要随着人们对健康关注度的提高,睡眠监测成为了一种重要的健康管理方式。本论文设计了一种基于ARM平台的睡眠监测蓝牙耳机系统,旨在通过蓝牙耳机实时采集和分析用户的睡眠数据,为用户提供科学、便捷的睡眠监测和健康管理服务。系统硬件主要包括蓝牙耳机、传感器和嵌入式处理器等。蓝牙耳机作为数据采集和音频播放的主要设备,通过蓝牙无线连接与手机或其他终端设备进行通信。传感器模块包括心率传感器和震动传感器,用于实时采集用户的心率和翻身信息。系统基于ARM平台实现,通过嵌入式处理器对数据进行处理和分析。实验结果表明,该系统能够准确、实时地采集和分析用户的睡眠数据,包括睡眠质量、心率等指标,并能生成详细的睡眠报告。基于ARM平台的睡眠监测蓝牙耳机系统具有较高的性能和可行性,并具有广泛的应用前景。关键词:ARM平台;睡眠监测;蓝牙耳机;数据采集;健康管理Ⅲ目录第1章绪论 [21]。这些国外研究成果为基于ARM平台的睡眠检测蓝牙耳机系统的进一步发展提供了宝贵的经验和借鉴。国内外研究者在基于ARM平台的睡眠检测蓝牙耳机系统设计方面取得的进展,为睡眠监测技术的发展提供了有益的参考和借鉴。不仅提高了系统的可穿戴性和舒适性,还优化了数据采集和分析算法,并拓展了系统的应用领域,为个人健康管理和医疗领域带来了新的机遇和挑战。1.3主要研究内容1.阅读相关文献确定了设计功能和软件硬件的选择方案2.硬件部分采用STM32单片机3.设计采用KEIL5软件平台和C编程语言完成位软件设计4.将系统进行调试运行并成功实现5.实现的成果为实物该系统应完成的主要功能有:蓝牙通信,手机端上位机上位机:1.接收下位机数据,显示,并记录;2.接收到下位机发来的未睡着信号,发送播放助眠音乐指令;3.可查看睡眠状况;下位机:1.系统可实时监测用户翻身状况,显示,并发送上位机;2.系统可实时监测用户心率状况,显示,并发送上位机;3.系统根据心率和翻身判断用户是否已睡着,未睡着,发送上位机信号,播报助眠音乐。

第2章系统总体结构2.1设计方案本设计是一种基于ARM平台的睡眠检测蓝牙耳机系统。该套系统主要由蓝牙模块、心率模块、STM32单片机、OLED、震动模块、语音模块等部分组成;采用STM32单片机技术处理对采集到的参数并显示通过蓝牙模块上传到上位机,系统可实时监测用户心率状况并发送上位机系统根据心率和翻身判断用户是否已睡着,未睡着,发送上位机信号,播报助眠音乐。2.2功能需求分析2.2.1技术路线(1)硬件部分需要单片机STM32F103c8t6、语音模块、震动模块、OLED、心率模块、蓝牙模块。(2)软件平台程序用keil5;(3)画原理图用AD;(4)编程语言用C语言;2.2.2预期结果作品展示,完成一个睡眠检测蓝牙耳机系统设计,并且该设计能实现的功能如下:

蓝牙通信,手机端上位机上位机:1.接收下位机数据,显示,并记录;2.接收到下位机发来的未睡着信号,发送播放助眠音乐指令;3.可查看睡眠状况;下位机:1.系统可实时监测用户翻身状况,显示,并发送上位机;2.系统可实时监测用户心率状况,显示,并发送上位机;3.系统根据心率和翻身判断用户是否已睡着,未睡着,发送上位机信号,播报助眠音乐。2.3总体方案设计在进行设计时,首先要进行理论知识准备,深入研究设计课题并掌握相关知识。然后,确定各个模块及其之间的关系,并收集所需的软硬件资料。在此基础上,规划系统的组成结构,勾画出整体框架并提出原理框图。接着,利用适当的软件进行硬件电路设计,并绘制相应的电路图,确保系统部件通过接口电路正确连接。同时,进行软件设计,绘制主流程图以完成系统的控制过程。最后,进行模拟仿真,以验证系统是否能够按照要求实现控制功能,并对论文进行整理。如图1为该系统的总体框图:图1总体框图2.4单片机型号选择图2STM32F103C8T6最小系统STM32系列单片机是一种功能强大且性能出色的单片机系列。它以其卓越的性能和可靠性被广泛应用于各种嵌入式应用程序中,特别适用于低成本、高性能和低功耗的场景。此系列单片机不仅在功耗和集成方面表现出优异的性能,而且具备简单的结构和便捷的工具,成为业界备受欢迎的选择。在这个系列中,STM32F103C8T6作为主控制芯片被本实验选用。这款芯片由ST公司生产,采用了32位ARMCortex-M3内核,拥有高达72MHz的主频。此外,它还配备了64KB的Flash存储器和20KB的RAM,使其具备足够的存储和运行能力。更重要的是,STM32F103C8T6集成了多个有用的外设,例如定时器、通用同步/异步收发器、SPI、I2C等,提供了丰富的接口和功能扩展选项。由于其强大的性能和丰富的功能,STM32F103C8T6芯片在多个领域中得到广泛应用。在工业自动化领域,它可以用于控制和监控系统,实现各种自动化任务。在家庭自动化方面,它可以用于智能家居系统的控制和管理,实现舒适和便捷的生活方式。在无线通信领域,它可以作为无线模块的控制器,实现数据传输和通信功能。在汽车电子领域,它可以用于车载系统的控制和管理,提升驾驶体验和安全性。除了在各个应用领域中的实际应用,STM32F103C8T6还是学习和实验的理想选择。它以其功能强大和价格实惠的特点,成为了教育机构和个人学习者的首选。丰富的学习资源和社区支持使得初学者可以迅速上手并深入理解嵌入式系统的设计和开发。总结而言,STM32系列单片机以其强大的性能、丰富的功能和简单的结构成为了业界的热门选择。其中,STM32F103C8T6作为该系列的一员,以其高性能的ARMCortex-M3内核、丰富的外设和适用于多个领域的特点而备受青睐。它不仅可以应用于各种实际场景,还是学习和实验的理想选择。随着嵌入式技术的不断发展,相信STM32F103C8T6将继续在嵌入式领域中发挥重要作用。外部晶振:STM32单片机需要外部晶振来提供系统时钟。晶振的频率一般为8MHz或16MHz,需要按照指定的引脚连接到STM32单片机上。电源电路:STM32单片机需要稳定的电源电压和电流来工作。最小系统电路一般使用稳压器将外部电源电压稳定在3.3V左右,并连接到STM32单片机的电源引脚上。复位电路:复位电路用于在启动时对STM32单片机进行复位操作。最小系统电路一般使用电容和电阻构成的复位电路,并将其连接到STM32单片机的复位引脚上。表1STM32单片机1STM32STM32表示ARMCortex-M内核的32位微控制器2FF代表芯片子系列3103103代表增强型系列4CR这一项代表引脚数,其中T代表36脚,C代表48脚R代表64脚,V代表100脚,Z代表144脚,I代表176脚58B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,C代表256K字节Flash,D代表384字节Flash,E代表512K字节Flash,G代表1M字节Flash6TT这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装766这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃

第3章系统的硬件部分设计3.1系统总体设计本设计是一种基于ARM平台的睡眠检测蓝牙耳机系统。该套系统主要由蓝牙模块、心率模块、STM32单片机、OLED、震动模块、声音模块等部分组成;采用STM32单片机技术处理对采集到的参数并显示通过蓝牙模块上传到上位机,系统可实时监测用户心率状况并发送上位机系统根据心率和翻身判断用户是否已睡着,未睡着,发送上位机信号,播报助眠音乐。该系统应完成的主要功能有:蓝牙通信,手机端上位机上位机:1.接收下位机数据,显示,并记录;2.接收到下位机发来的未睡着信号,发送播放助眠音乐指令;3.可查看睡眠状况;下位机:1.系统可实时监测用户翻身状况,显示,并发送上位机;2.系统可实时监测用户心率状况,显示,并发送上位机;3.系统根据心率和翻身判断用户是否已睡着,未睡着,发送上位机信号,播报助眠音乐。总体原理图如下所示:图3-1总体原理图3.2系统的主要功能模块设计3.2.1声音检测模块设计图3-2声音检测模块原理图本设计采用了ELECFANS品牌的5V高灵敏度声音传感器模块,它是一种能够检测声音信号并将其转换为电信号的传感器。声音传感器利用压电材料感知声波并产生电荷,将其转化为电压信号,以供测量电路读取。声音传感器在噪声监测、声音识别和语音控制等领域具有广泛应用。它能够检测环境中的声音信号,并将其转换为电信号,以便进行后续处理和分析。在一些特殊的应用中,如无线电视和音频录制,声音传感器还可将声音信号转换为数字信号,进行数字信号处理和存储。该声音传感器模块具有多项特点:首先,它具备A0模拟量输出功能,能实时输出麦克风的电压信号;其次,它具备D0开关量输出功能,当声音强度达到设定阈值时,输出高低电平信号,可通过电位器调节阈值灵敏度;此外,模块还设有3mm的安装螺丝孔,并采用5V直流电源供电。此外,该模块麦克风具有高感度和灵敏度,并配备电源指示灯和比较器输出指示灯。整个模块的PCB尺寸为35*15mm。关于功能说明,模块的+端为电源正极,G端为电源负极。A0为模拟量输出接口,声音越大,输出电压值越大。D0为开关量输出接口,声音信号大于设定阈值时输出高电平,低于阈值时输出低电平。L1为电源指示灯,L2为开关量输出指示灯,当输出高电平时灯亮。通过电位器可以调节声音的设定阈值。3.2.2震动传感器模块设计图3-3震动传感器原理图本设计选用了高灵敏度震动传感器SW-1801P,它是一种用于检测振动和震动的传感器。通过采用压电材料或加速度计等技术,该传感器可以感知物体的振动并将其转换为电信号。这些电信号可以被测量电路读取和处理。在各个领域,如机械设备、建筑结构和汽车等,广泛应用了震动传感器,用于监测设备运行状态和结构安全性等方面。它们能够检测物体所受的振动强度、频率和方向等信息,为后续的分析和处理提供数据支持。SW-1801P震动传感器具有以下特点:首先,它具备比较器输出功能,信号清晰,波形良好,并具有强大的驱动能力,最高可达15mA。其次,该传感器适用于3.3V至5V的工作电压范围。它的输出形式为数字开关量输出,即0和1。此外,传感器还设计了固定螺栓孔,方便进行安装。其小板PCB尺寸为3.2cmx1.4cm,并采用了宽电压LM393比较器。该传感器的管脚用途如下:VCC为电源正极,GND为电源负极,DO为数字量信号输出,而AO在此震动传感器中无效。在使用过程中需要注意,电源的极性不能反接,以免损坏芯片。此外,当开关信号指示灯亮时,输出端会输出低电平;不亮时,输出端则输出高电平。而信号输出的电平接近于电源电压。关于使用方法,根据震动传感器的工作状态,有以下说明:当产品未受到震动时,震动开关处于断开状态,输出端会输出高电平,绿色指示灯不亮。而当产品受到震动时,震动开关会瞬间导通,输出端输出低电平,绿色指示灯亮起。最后,输出端可以直接与单片机相连,通过单片机检测高低电平,以判断环境是否发生震动,起到报警作用。3.2.3压力传感器模块设计图3-4压力传感器模块原理图压力传感器是一种用于测量压力或压力变化的设备,能将压力转换为电信号或数字信号输出,测量精度由分辨率和准确性描述。传感器的工作原理是基于压力对内部敏感元件(如电阻、压电晶体、微机械系统等)的物理变化。该变化转化为电信号或数字信号后经放大、处理和输出。在实际应用中,压力传感器通常安装在被测压力的周围或内部,将压力转化为相应的信号输出。根据应用不同,可分为绝对压力传感器、相对压力传感器和差压传感器。测量精度受以下因素影响:分辨率:高分辨率使其能捕捉更小的压力变化,提高测量精度。灵敏度:高灵敏度使其对压力变化响应更迅速和准确,提高测量精度。线性度:与被测压力呈线性关系越强,测量精度越高。零点漂移:小的零点漂移表示在无压力加载下输出的偏移量小,提高测量精度。温度稳定性:在不同温度下输出变化小,对温度的影响小,提高测量精度。3.2.4蓝牙模块设计图3-5蓝牙模块原理图HC-05蓝牙模块是一种常见的蓝牙串口通信设备,可通过串口与其他设备进行无线通信,例如与Arduino或其他微控制器进行数据传输。该模块具有低功耗、稳定性好、易于使用等优点,因此在物联网、智能家居和智能车辆等领域得到广泛应用。HC-05蓝牙模块提供了两种工作模式:主模式和从模式。在主模式下,模块可以主动搜索其他蓝牙设备并与其建立连接。而在从模式下,模块会等待其他蓝牙设备的连接请求并进行通信。此外,HC-05蓝牙模块还支持通过AT命令进行配置,以满足不同应用场景的需求。在使用HC-05蓝牙模块与其他蓝牙设备进行通信时,需要确保它们的蓝牙协议版本相同,以避免出现兼容性问题导致通信失败。此外,为了保证通信的稳定性和安全性,还应考虑采取适当的加密和认证措施,以防止未经授权的设备接入。3.2.5心率检测模块设计图3-6心率检测模块原理图MAX30102是一种高度集成的心率传感器,集成了红外LED、光电传感器和数字信号处理电路。它广泛应用于医疗、健身和智能穿戴设备等领域,可用于测量心率、血氧饱和度和其他生物信号。MAX30102采用专利的采样技术和数字信号处理算法,实现了高精度和低功耗的生物信号采集。它支持SPI接口和I2C接口,可与各种微处理器和嵌入式系统方便地进行通信。该传感器的工作原理是通过红外光和可见光穿过皮肤组织,被光电传感器接收后转换为电信号,并通过数字信号处理获得心率和血氧饱和度等生物参数。在测量过程中,需要注意皮肤颜色对测量结果的影响,因为光的吸收与颜色相关。3.2.6显示模块设计图3-7显示模块原理图OLED(有机发光二极管)是一种显示技术,由有机材料制成的发光二极管组成。OLED显示屏采用自发光原理,每个像素点可以发光和关闭,这种显示技术可以提供高对比度和更加鲜艳的色彩,同时也具有更快的响应速度和更低的功耗。相比之下,液晶显示屏则使用液晶材料和背光源来显示图像。液晶显示屏需要背光源来照亮像素点,这意味着黑色并不是真正的黑色,而且背光源的亮度也会影响整个屏幕的对比度。总体来说,OLED显示屏比液晶显示屏具有更好的图像质量,但是液晶显示屏仍然在某些方面具有优势,比如价格更加亲民,适合用于大屏幕显示等。3.2.7蜂鸣器模块设计图3-8蜂鸣器模块原理图蜂鸣器是一种常见的发声元件,它采用直流电压供电,被广泛应用于各种无线产品中作为发声装置。蜂鸣器主要分为压电式和电磁式两种类型,并可以进一步区分为有源和无源蜂鸣器。其中,电磁式蜂鸣器的工作原理基于电磁感应,通过在通电导体周围产生磁场,并利用永久磁铁与通电导体之间的相互作用,推动鼓膜发声。由于蜂鸣器的工作电流较大,而单片机的I/O口输出电流较小,因此无法直接驱动蜂鸣器。为了解决这个问题,本设计采用了由PNP三极管(型号C9012)构成的放大电路来驱动蜂鸣器发声。值得注意的是,本设计所选用的蜂鸣器为有源蜂鸣器。

第4章系统的软件设计4.1软件主流程图当全部系统软件通电时,整个系统以单片机为核心,上位机端可接收显示下位机数据并记录;当接收到下位机发来的未睡着信号,发送播放助眠音乐指令。下位机实时监测用户翻身状况和心率状况,通过显示模块显示出来,并将数据发送上位机;系统根据心率和翻身判断用户是否已睡着,若未睡着发送上位机信号,播放助眠音乐。图4-14.2声音检测模块的软件设计接通电源后,传感器采集的数据经过单片机处理后,判断用户是否已睡着,若未睡着则播报助眠音乐。图4-2声音检测模块设计流程图4.3震动传感器模块的软件设计采用震动传感器来判断用户是否翻身,从而判断用户是否睡着。图4-3震动传感器模块设计原理图4.4心率检测模块的软件设计采用心率传感器采集用户心率信息,来判断用户是否已睡着。MAX30102心率传感器支持SPI和I2C两种通信协议,并且可以通过这两种协议与MCU或其他设备进行通信。SPI通信协议:MAX30102支持SPI接口通信,通过4根线(SCLK、SDO、SDI、CS)与MCU进行连接。I2C通信协议:MAX30102也支持I2C接口通信,通过两根线(SCL、SDA)与MCU进行连接。串口通信:除了SPI和I2C接口,MAX30102还可以通过UART串口进行通信。可以通过UART发送指令和接收传感器数据。详细的UART通信协议可以在MAX30102数据手册中找到。图4-4心率检测模块设计原理图4.5蓝牙模块的软件设计蓝牙模块接收手机发送的信号,将信号通过串口发送给单片机,单片机接收到信号后,执行相应的操作。蓝牙模块的软件设计需要考虑以下几个方面:蓝牙协议栈:蓝牙模块的软件设计需要包括蓝牙协议栈,以支持蓝牙连接和数据传输。数据传输:蓝牙模块通常用于无线数据传输,因此需要设计数据传输协议。可以使用标准的串口协议(如UART)或自定义协议。需要考虑到数据的可靠性和传输速度等因素。配置和控制:蓝牙模块的软件设计需要支持配置和控制。通常通过AT命令或类似的接口进行配置和控制。应用程序接口:蓝牙模块的软件设计需要提供应用程序接口(API),以便应用程序可以与蓝牙模块进行交互。例如,应用程序可以使用API连接到其他蓝牙设备并进行数据传输。图4-5蓝牙模块流程图

第5章系统测试5.1系统实物图图5-1系统完整实物图5.2测试原理图5-2如图5-2为显示模块,实时压力、声音、翻身次数及心率等数值,并且显示压力值、声音和翻身次数的设定的阈值。图5-3如图5-3为MP3模块,当检测到用户没睡着时,播放助眠音乐。图5-4如图5-4为震动传感器,模拟检测用户翻身次数。当翻身次数超过设置阈值范围内时,检测到用户还没睡着,通过MP3模块来播放助眠音乐帮助用户入睡。图5-5如图5-5为声音传感器,检测是否有鼾声。图5-6如图5-6为心率传感器,实时检测用户心率。图5-7如图5-7为蓝牙模块,实现上位机与下位机通信。图5-8如图5-8为压力传感器,当压力值超过设定阈值时,MP3模块播放助眠音乐帮助用户入睡。图5-9如图5-9为上位机端,通过蓝牙模块将下位机与手机APP连接。实时显示当前系统时间、震动值、声音及心率值。可设置压力阈值、翻身次数阈值及声音阈值。当检测的压力、翻身次数或声音超过阈值时,MP3播报助眠音乐帮助用户入睡。点击查询记录可查询检测的数据历史记录。图5-10

第6章总结与展望6.1总结本文基于ARM平台设计了一款睡眠监测蓝牙耳机系统,旨在提供一种舒适、便捷、高效的睡眠监测方式。该系统主要包括三个部分:硬件设计、软件设计和蓝牙通信。在硬件设计方面,本文采用了低功耗的STM32单片机作为系统的核心,结合多种传感器模块来检测用户的睡眠状态和环境参数。同时,本文还针对蓝牙通信部分进行了优化设计,采用了低功耗蓝牙芯片和优化的数据传输协议,以保证系统在睡眠期间稳定、高效地传输数据。在软件设计方面,本文采用了嵌入式C语言作为主要开发语言,利用ARM提供的CMSIS库和HAL库来简化开发流程。在软件设计过程中,本文还使用了多种算法来对传感器数据进行处理和分析,以提高系统的准确性和可靠性。在蓝牙通信方面,本文采用了基于BLE协议的蓝牙通信方式,将睡眠监测数据传输到用户的移动设备上。同时,本文还设计了一款基于移动端的应用程序,用户可以通过该应用程序实时查看自己的睡眠状态和环境参数,并根据数据分析得到相应的建议和改进措施。6.2展望未来,本文还将对该系统进行更多的优化和改进。例如,增加更多的传感器模块来提高数据的准确性和可靠性;引入人工智能算法来对睡眠数据进行更深入的分析和研究;利用云计算技术来实现多用户数据的存储和分析。预计这些优化和改进措施将进一步提高该系统的实用性和可靠性,为用户提供更好的睡眠监测服务。

参考文献张萍淑,徐斌,马倩,赵营,马英,李鑫,苗铁军,元小冬.睡眠健康云平台智能监测分析系统的构建与评价[J].中国健康心理学杂志,2022,30(10):1481-1488.DOI:10.13342/ki.cjhp.2022.10.008.黄梦盈,焦学军,姜劲,杨捷鸿,楚洪祚,潘津津,曹勇.基于功能性近红外光谱的睡眠研究综述[J].生物医学工程学杂志,2021,38(06):1211-1218.杨树淋.基于信道状态信息的睡眠状态监测技术研究[D].合肥工业大学,2021.DOI:10.27101/ki.ghfgu.2021.001070.傅国强,邬伟峰.智能睡眠监测系统的设计与实现[J].现代信息科技,2020,4(23):126-129.DOI:10.19850/ki.2096-4706.2020.23.035.朱宇璇.人体睡眠状况监测与评估系统的开发[D].天津科技大学,2020.DOI:10.27359/ki.gtqgu.2020.000839.安在秋.基于网络协议的便携式无线远程睡眠监测系统[D].河北科技大学,2020.DOI:10.27107/ki.ghbku.2020.000162.张雷.基于压电陶瓷智能床垫的睡眠信息研究[D].合肥工业大学,2020.DOI:10.27101/ki.ghfgu.2020.000176.周钦河,黄诚,李儒杰.基于NXMCD的蓝牙耳机充电盒装配自动线数字孪生体设计研究[J].科技创新与应用,2022,12(35):36-39.DOI:10.19981/j.CN23-1581/G3.2022.35.009.周钦河,黄诚,李儒杰.基于NXMCD的蓝牙耳机充电盒装配自动线数字孪生体设计研究[J].科技创新与应用,2022,12(35):36-39.DOI:10.19981/j.CN23-1581/G3.2022.35.009.何淼,安强,王琳霞,刘容平,寻瑞平.一款蓝牙耳机用高密度互连刚挠结合印制板制作技术研究[J].印制电路信息,2022,30(05):44-49.张嘉,郑皓天,刘昌瑜,张雪莹,王晓晨.基于线控和无线蓝牙连接的耳机[J].现代信息科技,2022,6(06):62-64+68.DOI:10.19850/ki.2096-4706.2022.06.015.袁春.安卓蓝牙耳机音质或将再进化[J].计算机与网络,2021,47(21):11.刘荣亮.应用于蓝牙耳机智能充电仓芯片的关键技术研究[D].北方工业大学,2021.DOI:10.26926/ki.gbfgu.2021.000203.曹高帅.基于商业耳机的实时高精度动作追踪研究[D].中国科学技术大学,2021.DOI:10.27517/ki.gzkju.2021.001582.袁泉.基于RSSI的蓝牙散射网调度算法研究[D].南京大学,2021.DOI:10.27235/ki.gnjiu.2021.001176.林俊盛,黄悦.TWS蓝牙耳机多功能充电仓的综合设计[J].单片机与嵌入式系统应用,2021,21(04):88-91.灵念无线蓝牙耳机操作控制系统V1.0.山西省,山西王子仪电子科技有限公司,2021-03-02.蒋倩.声阔LibertyAir2Pro真无线蓝牙耳机全方面表现都很“Pro”[J].计算机与网络,2021,47(02):20-21.PlekhanovaTatiana,RowlandsAlexV,DaviesMelanieJ,HallAndrewP,YatesTom,EdwardsonCharlotteL.Validationofanautomatedsleepdetectionalgorithmusingdatafrommultipleaccelerometerbrands.[J].Journalofsleepresearch,2022.LawlerDanielE.,AlbrechtDirkR..Monitoringneuralactivityduringsleep/wakeeventsinadultC.

elegansbyautomatedsleepdetectionandstimulation[J].STARProtocols,2022,3(3).ChaoKevin,FryBryan,RajputKuldeepSingh,SelvarajNandakumar.InfluenceofStudyCompositionontheEfficacyofSleepDetectionUsingActigraphy.[J].AnnualInternationalConferenceoftheIEEEEngineeringinMedicineandBiologySociety.IEEEEngineeringinMedicineandBiologySociety.AnnualInternationalConference,2021,2021.

附录电路图源程序#include"delay.h"#include"sys.h"#include"oled.h"#include"bmp.h"#include"key.h"#include"usart2.h"#include"usart3.h"#include"led.h"#include"max30102.h"#include"myiic.h"#include"adc.h"#include"algorithm.h"#include"DHT11.h"uint32_taun_ir_buffer[500];int32_tn_ir_buffer_length;uint32_taun_red_buffer[500];uint32_taun_green_buffer[500]; int32_tn_sp02;//SPO2valueint8_tch_spo2_valid;int32_tn_heart_rate=0;int8_tch_hr_valid;uint8_tuch_dummy;#defineMAX_BRIGHTNESS255 u8dis_hr=0,dis_spo2=0;u8temperature; u8humidity;u8shidu[15];u8tem[15];u8temperatureyu=28; u8humidityyu=60;u8shiduyu[15];u8temyu[15];u8xin[15];u8xue[15];u8sys[15];u16sy;unsignedintsyyu=300; u8syyus[15];u16ya;u8yas[15];u8yayus[15];unsignedintyayu=300;u16fs;u8fss[15];u8fsyus[15];unsignedintfsyu=10;u8send[30];intbeepnum=0;intbiaozhi=0;intbiaozhi1=0;intbiaozhi2=0;intbiaozhi3=0;intbiaozhi4=0;voidUSART1_Puts(char*str){while(*str){USART1->DR=*str++;while((USART1->SR&0X40)==0);}}voidUSART3_Puts(char*str){while(*str){USART3->DR=*str++;while((USART3->SR&0X40)==0);}}voidUSART2_Puts(char*str){while(*str){USART2->DR=*str++;while((USART2->SR&0X40)==0);}}intmain(void){ uint32_tun_min,un_max,un_prev_data; u8temp[9]; inti,j; int32_tn_brightness; floatf_temp; delay_init(); NVIC_Configuration(); OLED_Init(); OLED_ColorTurn(0);OLED_DisplayTurn(1); OLED_Refresh(); OLED_Clear(); KEY_Init(); LED_Init(); beep_Init(); beep=0; Adc_Init(); usart2_init(9600);usart3_init(9600);max30102_init(); maxim_max30102_read_reg(REG_REV_ID,temp);OLED_ShowChinese(0,0,0,16);//ϵ OLED_ShowChinese(18,0,1,16);//ͳ OLED_ShowString(36,0,":",16);OLED_ShowChinese(0,16,2,16);//ϵ OLED_ShowChinese(18,16,3,16);//ͳ OLED_ShowString(36,16,":",16);OLED_ShowChinese(0,32,4,16);//ϵ OLED_ShowChinese(18,32,5,16);//ͳ OLED_ShowString(36,32,":",16); OLED_ShowChinese(0,48,6,16);//ϵ OLED_ShowChinese(18,48,7,16);//ͳ OLED_ShowString(36,48,":",16); syyus[0]=syyu/100+'0'; syyus[1]=syyu%100/10+'0'; syyus[2]=syyu%10+'0'; OLED_ShowString(85,16,syyus,16); yayus[0]=yayu%1000/100+'0'; yayus[1]=yayu%100/10+'0';yayus[2]=yayu%10+'0'; OLED_ShowString(85,0,yayus,16); fsyus[0]=fsyu%1000/100+'0'; fsyus[1]=fsyu%100/10+'0';fsyus[2]=fsyu%10+'0'; OLED_ShowString(85,32,fsyus,16); OLED_Refresh(); LED0=1; LED1=1; LED2=0; un_min=0x3FFFF;un_max=0; n_ir_buffer_length=500;//bufferlengthof100stores5secondsofsamplesrunningat100spsfor(i=0;i<n_ir_buffer_length;i++){while(MAX30102_INT==1); max30102_FIFO_ReadBytes(REG_FIFO_DATA,temp); aun_red_buffer[i]=(long)((long)((long)temp[0]&0x03)<<16)|(long)temp[1]<<8|(long)temp[2]; aun_ir_buffer[i]=(long)((long)((long)temp[3]&0x03)<<16)|(long)temp[4]<<8|(long)temp[5]; aun_green_buffer[i]=(long)((long)((long)temp[6]&0x03)<<16)|(long)temp[7]<<8|(long)temp[8];if(un_min>aun_red_buffer[i])un_min=aun_red_buffer[i];if(un_max<aun_red_buffer[i])un_max=aun_red_buffer[i];} un_prev_data=aun_red_buffer[i];maxim_heart_rate_and_oxygen_saturation(aun_ir_buffer,n_ir_buffer_length,aun_red_buffer,&n_sp02,&ch_spo2_valid,&n_heart_rate,&ch_hr_valid); while(1) { sy=Get_Adc_Average(ADC_Channel_1,10)/10; ya=Get_Adc_Average(ADC_Channel_0,10)/10;sys[0]=sy%1000/100+'0';sys[1]=sy%100/10+'0'; sys[2]=sy%10+'0';sys[3]=0; OLED_ShowString(54,16,sys,16);yas[0]=ya%1000/100+'0';yas[1]=ya%100/10+'0'; yas[2]=ya%10+'0';yas[3]=0;OLED_ShowString(54,0,yas,16); syyus[0]=syyu/100+'0'; syyus[1]=syyu%100/10+'0'; syyus[2]=syyu%10+'0'; OLED_ShowString(85,16,syyus,16); yayus[0]=yayu%1000/100+'0'; yayus[1]=yayu%100/10+'0';yayus[2]=yayu%10+'0'; OLED_ShowString(85,0,yayus,16); fsyus[0]=fsyu%1000/100+'0'; fsyus[1]=fsyu%100/10+'0';fsyus[2]=fsyu%10+'0'; OLED_ShowString(85,32,fsyus,16); if(zhen==0){ if(biaozhi1==0){ biaozhi1=1; fs++; } }else{ biaozhi1=0; } fss[0]=fs%1000/100+'0';fss[1]=fs%100/10+'0'; fss[2]=fs%10+'0';fss[3]=0;OLED_ShowString(54,32,fss,16); OLED_Refresh(); if(biaozhi4==1){ un_min=0x3FFFF;un_max=0;for(i=100;i<500;i++){aun_red_buffer[i-100]=aun_red_buffer[i];aun_ir_buffer[i-100]=aun_ir_buffer[i]; aun_green_buffer[i-100]=aun_green_buffer[i];//updatethesignalminandmaxif(un_min>aun_red_buffer[i])un_min=aun_red_buffer[i];if(un_max<aun_red_buffer[i])un_max=aun_red_buffer[i];}for(i=400;i<500;i++){un_prev_data=aun_red_buffer[i-1];while(MAX30102_INT==1);max30102_FIFO_ReadBytes(REG_FIFO_DATA,temp); aun_red_buffer[i]=(long)((long)((long)temp[0]&0x03)<<16)|(long)temp[1]<<8|(long)temp[2]; aun_ir_buffer[i]=(long)((long)((long)temp[3]&0x03)<<16)|(long)temp[4]<<8|(long)temp[5];aun_green_buffer[i]=(long)((long)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论