基于STM32单片机的智能视力保护台灯设计

news2024/11/28 4:30:30

硬件方案

智能台灯以专门感应人体红外信号的红外传感器为基础,这意味着仅当有人的时候,红外传感器才输出一个信号,经放大处理后达到单片机的输入门限电压,单片机开始运行,台灯自动点亮。当人离开的时候,单片机控制台灯自动关闭,以达到节约用电的目的。此外,通过功能按键可以设置台灯的工作模式分为自动和手动,在此之前如果检测到人坐姿不正确可以通过红外光电进行检查,台灯上的蜂鸣器将会响起,提醒使用者应该注意坐姿,这个功能可以帮助保护使用者的视力。
整体电路主要由stm32单片机最小系统,光敏电阻检测电路,红外人体检测电路,OLED显示电路,DS1302时钟电路,LED台灯模块,蜂鸣器报警电路;原理图如图:
在这里插入图片描述
PCB图如下:
在这里插入图片描述

设计功能

1.通过光敏采集当前光线强度,通过单片机内部AD进行模数转换,通过人体红外检测当前是否有人。
2.采用OLED液晶显示屏来显示,用于显示当前的时间、光强度、控制模式、姿势提醒等。
3.通过单片机的PWM引脚,根据不同光线情况下来调整PWM的占空比,以达到调节当前灯光亮度。
4.通过DS1302时钟芯片显示当前的时间,并可以通过按键设置提示时间。
5.通过光电传感器检测坐姿,当坐姿不正导致红外光电开关被遮挡时被判断坐姿不正确。如果坐姿不正或者是定时时间到后蜂鸣器会进行提醒。

主程序源码

int main(void)
{
	char i=0;
	
	DelayInit();
	I2C_Configuration(); //IIC初始化
	OLED_Init(); //OLED初始化
	KEY_Init(); //按键初始化
	BEEP_AND_GD_RTHW_GPIO_Config();
    OLED_CLS();//清屏
	DS1302_Init(&SysDate);
	DelayMs(100); 
	DS1302_DateRead(&SysDate);//读时间 
	OLED_CLS();//清屏
	for(i=0;i<4;i++)OLED_ShowCN(i*16,2,i+8,0);//测试显示中文:亮度等级
	OLED_ShowStr(62,2,": ",2);//显示冒号
	for(i=0;i<4;i++)OLED_ShowCN(i*16,4,i,0);//测试显示中文:提醒时间
	DisplayMode();
	Adc_Init();
    TIM2_Init(49,71);     //定时器初始化,定时50us
	TIM3_Init(499,7199);  //定时器初始化,定时50ms
	//Tout = ((arr+1)*(psc+1))/Tclk ;  
	//Tclk:定时器输入频率(单位MHZ)
	//Tout:定时器溢出时间(单位us)
	while(1)
	{
		  KeySettings();
	    DisplayTime();
		  DisplayTiXingTime();
		  AutoHandle();
		  LedGearHandle(GearTemp);
		  if(GD == 0)//检测坐姿不正确
			{
					if(PostureFlag==0)
					{
							PostureFlag=1;
						  BEEP=1;//蜂鸣器提醒
						  OLED_CLS();//清屏
						  for(i=0;i<6;i++)OLED_ShowCN(i*16+16,2,i+16,0);//测试显示中文:请注意坐姿!
						  DelayMs(1000); 
						  OLED_CLS();//清屏
						  for(i=0;i<4;i++)OLED_ShowCN(i*16,2,i+8,0);//测试显示中文:亮度等级
							OLED_ShowStr(62,2,": ",2);//显示冒号
							for(i=0;i<4;i++)OLED_ShowCN(i*16,4,i,0);//测试显示中文:提醒时间
						  DisplayMode();
					}
			}
			else
			{
					PostureFlag=0;
			}
	}
}

资料链接:https://pan.baidu.com/s/1h609T4krQL4XSxzR2Nubpw?pwd=39pq

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSRF漏洞

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 CSRF漏洞原理 CSRF常见分类 GET型 POST型…

GIT版本控制常规性操作演示汇总

文章目录 GIT基本操作GIT配置个人信息配置&#xff1a;GIT查看个人信息配置&#xff1a;GIT的三大区域GIT回滚&#xff1a;git resetGIT恢复日志&#xff1a;git reflogGIT三大区域转换GIT新建分支GIT合并分支GIT删除分支码云上创建项目GIT变基&#xff1a;git rebase合并提交记…

轮询-实时调用接口

https://www.cnblogs.com/zhangliang88/p/16254460.htmlhttps://www.cnblogs.com/zhangliang88/p/16254460.html

软件测试 | Selenium对多浏览器处理

在执行自动化测试过程中&#xff0c;我们往往会针对不同的浏览器做兼容性测试&#xff0c;可以通过对测试用例代码的改造&#xff0c;实现对不同浏览器的自动化兼容性测试。 注&#xff1a;实现对不同浏览器的自动化兼容性测试&#xff0c;需要先将各个浏览器的驱动在PC端配置…

基于PyQt5的桌面图像调试仿真平台开发(15)图像融合

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

AMEYA360:尼得科nidec恩布拉科变频压缩机介绍

能源安全、能源价格方面的挑战与气候危机交织 提高能源效率比以往任何时候都更为紧迫。 能源效率是应对当今全球能源危机的核心 也是能源价值创造的重要体现。 尼得科恩布拉科大金 带来制冷方面的节能研究 LMSEY系列冷库一体机使用变频调速可 节能约14%! 全球制冷技术供应商、尼…

浅谈配电能效平台在城市地下综合管廊的应用

摘要:电气设计是综合管廊设计的重要组成部分&#xff0c;文章对综合管廊的断面设计、供配电系统和缆线设计进行了分析阐述&#xff0c;并结合设计案例&#xff0c;简要总结了综合管廊电气设计要点。 关键词:综合管廊&#xff1b;断面设计&#xff1b;供配电系统&#xff1b;缆…

微信小程序如何进行开发?

文章目录 0.引言1.注册微信公众平台账号2.准备微信开发者工具3.创建微信小程序并预览 0.引言 笔者编程一般编得较多的是桌面软件&#xff0c;有时也会编手机软件&#xff0c;这些软件都必须安装才能使用&#xff0c;这限制了软件的推广。而现有社交软件如微信使用得较广泛&…

使用GitHub Actions 来进行项目远程服务器部署

由于项目源码是托管在github的&#xff0c;而部署是放在远程服务器上&#xff0c;并且使用nginx部署。 现在的部署流程时&#xff0c;需要更新时&#xff0c;在本地切换到master分支&#xff0c;执行构建操作&#xff0c;拿到构建出的dist目录&#xff0c;将其上传到远程服务的…

从GitLab拉取并运行项目

从GitLab拉取并运行项目 序Git项目运行运行报错 总结教训 序 搭建好前端基础环境后&#xff0c;开始尝试从单位项目组拉取项目尝试本地运行。 Git Git相关配置&#xff1a;一篇学会Git版本管理 先申请Git账号&#xff0c;随后由上级分配权限拉入该项目组。 通过git clone ……

年终奖大幅缩水,是去还是留?

一、年终奖的历史和意义 互联网行业是中国经济发展的一个重要支柱&#xff0c;这也使得互联网公司的年终奖一直是许多从业者最为关注的话题之一。随着行业的不断发展&#xff0c;互联网公司的年终奖也在不断提高&#xff0c;逐渐成为了企业吸引和留住人才的重要手段。在互联网…

基于archlinux的mabox-linux桌面系统,内存资源消耗只有278M!

今天安装了基于archlinux的mabox-linux桌面系统&#xff0c;内存资源消耗只有278M&#xff01;实在是惊到我了。先上图&#xff0c;改天有空再深入体验一下。 安装后发现没有1920X1080这个分辨率&#xff0c;设置的命令如下&#xff1a; 一&#xff0c;xrandr #查看本机支持的…

短期面试突击攻略大全!2023最全Java面试题目合集

这两年的面试难度确实要比往年高处很多。很多小伙伴投递了上千份简历&#xff0c;只有几家公司约面试。排除个人简历的因素&#xff0c;这在往年都是不太常见的。 大厂缩招&#xff0c;于是很多往年能进大厂的人只能去卷中小厂&#xff0c;搞得层层内卷。 比如往年能有一万个人…

旅游卡分销小程序开发

旅游业的不断发展&#xff0c;旅游卡分销小程序成为了越来越多旅游公司的选择。旅游卡分销小程序是一种在线分销平台&#xff0c;它允许游客购买旅游卡并分销给其他人&#xff0c;从而获得佣金。本文将探讨旅游卡分销小程序的开发。 一、确定旅游卡分销小程序的需求 在…

低代码平台能友好的融入到toB项目中吗?

低代码平台通常可以友好地融入现有toB的交付项目中。虽然低代码平台和传统的高代码开发具有不同的开发方式和工具集&#xff0c;但它们可以在同一个项目中协同工作&#xff0c;互相补充&#xff0c;那么实现能配置的尽可能配置化&#xff0c;配置不出来的就手写。 对于普通IT项…

.Hex文件直接解析的实现_PIC芯片

1.问题 bootloader写成后&#xff0c;需要处理传送过来的.Hex&#xff0c;或者等价的文件的烧录。MicroChip官方并未给出一个.Hex转为.Bin的处理策略。在它的Bootloader代码中&#xff0c;我们可以大致看到它的实现机制&#xff0c;它定义了一组命令。上位机在处理升级时&#…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习六重要)

差分升级算法研究及改进 文件差分算法通过对不同文件的片段进行对比查找差异&#xff0c;将差异描述输出为差分文件。 差分算法是差分升级的关键技术&#xff0c;因此&#xff0c;差分算法的性能决定着整个升级系统的性能。 差分算法研究 差分更新又称为增量编码&#xff0…

yarn介绍与说明

1.介绍 说明&#xff1a;Yarn 是一个由 Facebook、Google、Exponent 和 Tilde 公司联合推出的新一代 JavaScript 包管理工具&#xff0c;用于取代 npm。与 npm 相比&#xff0c;Yarn 可以更快地下载依赖&#xff0c;更好地管理依赖版本&#xff0c;更稳定地构建依赖关系。 2.…

AWVS扫描工具使用教程

AWVS是一款Web漏洞扫描工具&#xff0c;通过网络爬虫测试网站安全&#xff0c;检测流行的Web应用攻击&#xff0c;如跨站脚本、sql 注入等。据统计&#xff0c;75% 的互联网攻击目标是基于Web的应用程序。 AWVS的主要功能模块 Blind SQL Injector&#xff1a;盲注工具 HTTP E…

单元测试报错 No tests found for given includes: [StudyApplicationTests.contextLoads]

当你运行单元测试报错No tests found for given includes: [StudyApplicationTests.contextLoads] 如下&#xff1a; 可能是因为你的gradle测试默认使用的是以gradle启动,改成以IDEA启动即可