基于单片机的超声波视力保护器设计
一、设计背景与意义
随着电子产品的普及与学习压力的增大,青少年近视率呈逐年攀升趋势,不良用眼习惯(如读写距离过近、用眼时间过长、环境光线不适)是导致近视的主要诱因。传统视力保护产品多依赖人工提醒或单一光线检测,存在监测不全面、响应不及时、干预效果有限等问题,难以形成全方位的用眼保护闭环。
单片机凭借体积小、功耗低、成本低廉等优势,成为便携式智能设备的核心控制单元。本设计基于STM32单片机开发超声波视力保护器,集成距离监测、光线检测、定时提醒、声光报警四大核心功能,通过超声波传感器实时监测读写距离,光线传感器检测环境光照强度,结合定时用眼提醒机制,及时纠正不良用眼习惯。该设备体积小巧、操作便捷、适配学习与办公场景,可有效预防近视发生与发展,对保护青少年视力健康、推动智能护眼设备的普及具有重要的实用价值与社会意义。
二、系统硬件选型与架构设计
(一)硬件架构设计
系统硬件以STM32F103C8T6单片机为控制核心,采用“主控-监测-交互-报警-电源”的模块化架构,确保各功能协同高效运行,硬件整体功耗低、体积小,适配便携使用场景。
(二)核心模块选型与电路设计
距离监测模块:
- 选用HC-SR04超声波传感器,测量范围2cm~400cm,测量精度±0.5cm,响应时间≤30ms,通过发射与接收超声波信号计算目标距离;
- 传感器安装于设备前端,朝向读写平面(书本、屏幕),监测用户眼部与目标的距离,当距离<30cm(科学护眼安全距离)时触发预警。
- 电路设计:超声波传感器的Trig(触发端)与Echo(接收端)分别连接STM32的GPIO引脚(PA0、PA1),通过单片机输出10μs高电平触发测距,接收端反馈的脉冲宽度对应距离值。
光线监测模块:
- 选用BH1750数字光强传感器,测量范围1lx~65535lx,精度±20%,支持I2C总线通信,无需额外信号调理,直接输出数字光强值;
- 监测环境光照强度,当光照强度<300lx(过暗)或>10000lx(过强)时,触发光线异常报警,提醒用户调整环境光线。
- 电路设计:BH1750的SDA与SCL引脚连接STM32的I2C接口(PB6、PB7),串联4.7KΩ上拉电阻,确保通信稳定,电源端并联100nF滤波电容减少干扰。
主控模块:
- 选用STM32F103C8T6单片机(ARM Cortex-M3内核,主频72MHz),内置定时器、GPIO、I2C等外设,满足多传感器数据采集与控制需求;
- 配置8MHz外部晶振,提升时钟稳定性,保障测距与检测的实时性。
人机交互模块:
- 显示模块:选用0.96寸OLED液晶屏(分辨率128×64),低功耗(工作电流≤10mA)、可视性强,实时显示读写距离、光照强度、剩余用眼时间、报警状态;
- 输入模块:配置2个独立按键(K1、K2),K1用于开启/关闭设备、切换模式(手动/自动),K2用于设置用眼定时时长(默认20分钟,可在10~60分钟间调节)。
报警模块:
- 采用“蜂鸣器+振动马达”双重报警,适配不同场景需求:
- 距离过近/光线异常时:蜂鸣器发出间歇提示音(音量50~70dB可调),振动马达轻微振动(频率2Hz),提醒用户调整;
- 用眼超时后:蜂鸣器持续发声,振动马达增强振动,强制提醒用户休息;
- 电路设计:蜂鸣器与振动马达通过NPN三极管(S8050)驱动,由STM32 GPIO引脚(PB0、PB1)控制开关,避免直接驱动损坏单片机。
- 采用“蜂鸣器+振动马达”双重报警,适配不同场景需求:
电源模块:
- 采用3.7V锂电池(容量800mAh)供电,搭配TP4056充电管理芯片,支持USB充电(充电电流500mA),充满电后自动断电;
- 通过AMS1117-3.3V稳压芯片输出稳定3.3V电压,供单片机、传感器、显示屏等模块工作,设备续航≥12小时(连续使用)。
(三)关键电路设计要点
- 超声波模块:在传感器电源端并联电解电容(10μF)与陶瓷电容(100nF),滤除电源噪声,减少测距误差;
- 电源模块:加入自恢复保险丝(额定电流0.5A),防止过流损坏电池与芯片;
- 抗干扰设计:所有数字信号线采用地线包围布局,减少电磁干扰,确保传感器数据采集准确。
三、系统软件设计与实现
(一)软件开发环境
基于Keil MDK5开发环境,采用C语言编程,结合STM32标准库函数进行模块化开发,通过I2C协议驱动BH1750传感器,GPIO模拟超声波测距时序,OLED屏采用I2C协议通信。
(二)核心软件模块设计
主程序:完成系统初始化(GPIO、I2C、定时器、OLED屏等)后,进入循环状态,按“监测-判断-反馈-报警”流程运行,响应按键操作,实时更新显示信息。
距离监测与处理模块:
- 定时测距:通过定时器中断触发,每500ms执行一次测距流程,单片机向Trig引脚输出10μs高电平,读取Echo引脚脉冲宽度,按公式距离 ( c m ) = 脉冲宽度 ( μ s ) × 340 m / s ÷ 2 ÷ 10000 距离(cm) = 脉冲宽度(μs) × 340m/s ÷ 2 ÷ 10000距离(cm)=脉冲宽度(μs)×340m/s÷2÷10000计算距离;
- 数据滤波:采用中位数滤波算法(取5次测距结果的中位数)去除偶然误差,提升测距精度,滤波后误差≤±0.3cm。
光线监测模块:
- 每1秒读取一次BH1750传感器的光强数据,通过I2C协议发送读取指令,接收传感器返回的16位光强值,转换为实际光照强度(lx);
- 光线判断:设定光照强度安全范围300~10000lx,超出范围则标记为光线异常。
定时提醒模块:
- 采用定时器计时,默认用眼时长20分钟(遵循“20-20-20”护眼原则:每20分钟看20英尺外物体20秒),用户可通过K2按键调整时长;
- 计时过程中,若用户距离过近或光线异常,计时暂停,直至恢复正常后继续计时;时长结束后触发超时报警。
人机交互与报警模块:
- 显示控制:OLED屏分区域显示:上半区显示距离(如“距离:35cm”)与光照强度(如“光照:500lx”),下半区显示剩余时间(如“剩余:15min”)与工作状态(正常/异常);
- 按键处理:短按K1切换手动/自动模式(手动模式关闭报警功能),长按K1(≥3秒)开启/关闭设备;短按K2增加定时时长(每次+5分钟),长按K2(≥3秒)重置定时;
- 报警逻辑:
- 一级报警(距离30~25cm/光线轻微异常):蜂鸣器间歇发声(1秒响1秒停),振动马达轻微振动,OLED屏高亮显示异常项;
- 二级报警(距离<25cm/光线严重异常/用眼超时):蜂鸣器持续发声,振动马达强振动,OLED屏闪烁显示“请调整距离/改善光线/立即休息”。
(三)软件流程图
四、系统性能测试与应用价值分析
(一)性能测试
搭建测试平台,对设备的测距精度、光线检测精度、报警响应、续航能力等指标进行测试,结果如下:
- 测距精度测试:在20~50cm范围(核心护眼距离)内选取5个测试点,设备测量值与标准距离误差≤±0.3cm,满足设计要求;
- 光线检测测试:在100~15000lx范围选取6个标准光强点,测量误差≤±5%,光线异常判断准确;
- 报警响应测试:距离过近(<30cm)、光线异常、用眼超时后,报警响应时间≤0.2秒,报警方式切换正常;
- 续航测试:锂电池充满电后,连续使用13.5小时,电量耗尽,满足日常使用需求;
- 稳定性测试:连续运行24小时,无死机或数据漂移现象,传感器采集稳定。
(二)应用价值与展望
应用价值:本设计的超声波视力保护器具有三大核心优势:一是多维度监测(距离+光线+时间),全面覆盖不良用眼诱因;二是便携性强(体积5cm×3cm×1cm,重量≤20g),可夹装在书本、眼镜或桌面,适配学习、办公等场景;三是操作简单,无需复杂设置,青少年可独立使用。该设备可有效纠正“低头看书、近距离看屏”等不良习惯,降低近视发生风险,也可作为学校、家庭的视力保护辅助工具,具有广泛的应用场景与市场潜力。
展望:后续可从三方面优化:一是加入蓝牙通信模块,与手机APP联动,记录用眼数据,生成护眼报告,供家长或医生参考;二是升级光线传感器为RGB传感器,精准识别环境光色温,提供更科学的光照建议;三是采用太阳能充电模块,延长续航时间,提升环保性。该设计为智能护眼设备的研发提供了切实可行的技术路径,对推动视力保护智能化、个性化发展具有重要参考价值。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。