stm32毕设分享 智能窗户系统(源码+硬件+论文)


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 基于单片机的智能窗户系统(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 项目分享:

https://gitee.com/sinonfin/sharing

在这里插入图片描述

1 主要功能

主要功能:一款基于单片机的智能窗户设计,主要可以实现烟雾、光照、温湿度采集。当烟雾超标、温湿度超标时,会自动打开窗户、风扇通风。当光线过暗(晚上)会自动关闭窗户,光线过亮时(白天)会自动打开窗户。还可以进行手动开关窗户。

  • 1.使用STC89C52RC单片机做主控制器。

  • 2.使用LCD1602显示温湿度、烟雾、光照值。

  • 3.使用MQ-2检测烟雾值。

  • 4.使用DHT11检测温湿度。

  • 5.使用光敏电阻检测光照值。

  • 6.使用E18-D80NK检测人体触发情况。

  • 7.使用继电器带动风扇通风。

  • 8.当在手动打开窗户的时候,人体传感器检测到人时,会自动报警且关窗。

  • 9.按键具有手动开关窗、阀值设定灯作用。

在这里插入图片描述

2 硬件设计(原理图)

在这里插入图片描述

PCB图

在这里插入图片描述

仿真效果

在这里插入图片描述

3 核心软件设计

控制程序,根据解码得到的结果去执行需要的操作,开窗户、关窗户、停止移动、调节实时时间、调节开窗户时间、调节关窗户时间、时间增加、时间减少、显示电路、实时时间显示。主程序流程如图

在这里插入图片描述

关键代码

#include <reg52.h>//库函数
#include <dht11.h> //库函数//#include <adc0832.h> //AD转换库函数
#define uchar unsigned char//宏定意
#define uint  unsigned int//宏定意
#define ulong unsigned long//宏定意
bit s=1;
sbit rs=P2^0;//LCD 1602引脚定意		
sbit rd=P2^1;//LCD 1602引脚定意		
sbit lcden=P2^2;//LCD 1602引脚定意
sbit menu=P2^5;	//主功能键	
sbit add=P2^4;//加键		
sbit dec=P2^3;//减键
sbit open=P2^6;//手动 开
sbit close=P2^7;//手动 关	 
sbit IR=P3^5; //红外感 应
sbit BEEP=P3^1;// 报警
sbit pf=P3^0;//排风
#define MOTORSTEP P1 //宏定义,定义P1口为步进电机驱动端口
uchar  dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;// 各种变量标记 正返转标记
uint sudu,dwbrigfl,humfl; //电机速度 //光度下限/湿度标记
uchar count0,second,zhenzhuan,fanzhuan,timeflg,opensw,closesw,keysw;//时钟变量 正反转 变量	
uint adc0,adc1;
uint upbrig,dwbrig,kwbrig,uphum,uptemp,upsmo; // 下限 亮度 上限湿度// 上限温度
uint hour,minit,secon,DSdat,VAldat ,time;//时钟变量
uint ONhour,ONminit,ONsecon; //开窗时间变量
uint OFhour,OFminit,OFsecon; //关窗时间变量
uchar   U8T_data_H,U8RH_data_H;
#define Imax 14000 //此处为晶振为11.0592时的取值, 
#define Imin 8000 //如用其它频率的晶振时,
#define Inum1 1450 //要改变相应的取值。
#define Inum2 700 
#define Inum3 3000 

uchar f=0;
uchar Im[4]={0x00,0x00,0x00,0x00}; //遥控码存储空间
uchar show[2]={0,0}; //变量申明
ulong m,Tc;	//变量申明
uchar IrOK;	//变量申明
void delay(uint z);//开窗时间变量
void write_rvalue(); //显示函数
//以下是各种字幕提示语数组
uchar code logo1[]= "Welcome to use ";
uchar code logo2[]="window system ";
uchar code logo3[]="S=253T=85oCU=85%";
uchar code logo4[]="Br= 12:00:00 ";
uchar code logo5[]="window open ";
uchar code logo6[]="window close ";
uchar code logo7[]="GWbrig= LUX ";
uchar code logo8[]="UP-Hum= % ";
uchar code logo9[]="Please input... ";
uchar code logo10[]="Please wait... ";
uchar code logo11[]="UP-TEM= oC ";
uchar code logo12[]="SEtime 12:00:00";
uchar code logo13[]="ONtime12:00:00";
uchar code logo14[]="OFtime 12:00:00";
uchar code logo15[]="UP-SMO= ";
uchar code logo16[]="KWbrig= LUX ";
void delaymoto() //步进电机每一步间延迟函数
{  	
	uint y=sudu;
	while(y--);
}
uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步进电机驱动值数组
uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //步进电机驱动值数组
xdata num1 [4] = {0x00,0x00,0x00,0x00,};				
xdata num2 [4] = {0x00,0x00,0x00,0x00,};			 
xdata num3 [4] = {0x00,0x00,0x00,0x00,};		   
xdata num4 [4] = {0x00,0x00,0x00,0x00,};	// AD转换变量组组
xdata num5 [4] = {0x00,0x00,0x00,0x00,};	// AD转换变量组组
void delaylog(uint z)//延时函数
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=500;y>0;y--);
}
void delay(uint z)//延时函数
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=10;y>0;y--);
}
void SETP_MOTOR_FFW() //反转
{
 	uint i=0;
	for(i=0;i<8;i++) //8步一个循环
	{
		MOTORSTEP=FFW[i]; //取值赋给P1驱动口
		delaymoto(); 
	}
 }
void SETP_MOTOR_REV() //正转
{
    uint i=0;
	for(i=0;i<8;i++) //8步一个循环
	{
		MOTORSTEP=REV[i]; //取值赋给P1驱动口
		delaymoto(); 
	}
}
void write_com(uchar com) //LCD 1602写指令
{
	rs=0;
	lcden=0;
	P0=com;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;	
}
void write_date(uchar date)//LCD 1602写数据
{
	rs=1;
	lcden=0;
	P0=date;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;	
}
void init1602()//LCD 1602初始化
{
	uchar num;
	rd=0;
	lcden=0;
	write_com(0x38);
	write_com(0x0c);
	write_com(0x06);
	write_com(0x01);
	write_com(0x80);
	for(num=0;num<16;num++)
		{
			write_date(logo1[num]);//开机字幕
			delay(2);
		}
	write_com(0x80+0x40);
	for(num=0;num<16;num++)
		{
	write_date(logo2[num]);//开机字幕
	delay(2);
		}

	delaylog(200);

    write_com(0x80);
   for(num=0;num<16;num++)//开机字幕
		{
			write_date(logo6[num]);
			delay(2);
		}
	write_com(0x80+0x40);
	for(num=0;num<16;num++)
		{
			write_date(logo10[num]);//开机字幕
			delay(2);
		}
}
void write_sfm() // 拆分个位十位显示
{	
	uchar shi ,ge;
	shi=DSdat/10;
	ge=DSdat%10;
	write_date(0x30+shi);
	write_date(0x30+ge);	
}

4 实现效果

在这里插入图片描述

5 最后

包含内容

在这里插入图片描述

🧿 项目分享:

https://gitee.com/sinonfin/sharing

  • 1
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于STM32的多功能智能手环是一款集健康管理、运动监测、消息提醒、智能配对等功能于一体的手环产品。 首先,基于STM32的多功能智能手环具备健康管理功能。通过手环内置的心率传感器,能够实时监测用户的心率变化,并将数据传输至APP端,让用户了解自己的心率状况,从而更好地控制身体健康。此外,手环还支持睡眠监测功能,通过感应用户的睡眠状态,提供睡眠质量评估,帮助用户改善睡眠习惯。 其次,手环还具备运动监测功能。内置的加速度传感器和陀螺仪能够精准地记录用户的运动数据,如步数、消耗的卡路里、运动距离等,并通过APP实时统计和展示,帮助用户掌握运动情况,调整运动强度,达到更好的健身效果。 除此之外,手环还有智能消息提醒功能。当用户收到短信、电话、社交媒体等消息时,手环能够及时震动提醒,用户不用频繁看手机,避免错过重要信息。 同时,手环还支持智能配对功能。通过蓝牙技术连接用户的手机和手环,实现数据的同步和共享,用户可以随时随地查看自己的健康数据和运动记录。 综上所述,基于STM32的多功能智能手环不仅具备基本的健康管理和运动监测功能,还能提供智能化的消息提醒和智能配对,带给用户更便捷的生活体验。 ### 回答2: 基于STM32的多功能智能手环是一款集合了多项功能的智能设备,它采用了STM32微控制器作为主控芯片,具有丰富的外设接口和强大的计算能力,可以实现多种功能。 首先,多功能智能手环具备运动追踪功能。它内置了加速度计和陀螺仪传感器,可以准确地监测用户的步数、距离、卡路里消耗等运动数据,并通过与手机的连接,将数据同步到手机APP上,让用户可以了解自己的运动情况。 其次,智能手环还提供了心率监测功能。它使用了心率传感器模块,可以实时监测用户的心率变化,并将结果显示在手环屏幕上或者与手机同步展示。这对于健身爱好者或者需要监测心率的人群来说十分有用。 另外,多功能智能手环还具备睡眠监测功能。通过内置的睡眠检测算法和光传感器,它可以准确地分析用户的睡眠状态,包括深睡眠、浅睡眠和醒来时间。用户可以通过手环或手机APP查看睡眠报告,提高睡眠质量。 此外,智能手环还支持消息提醒功能。它通过蓝牙与手机连接,可以实时地接收来自手机的短信、电话、社交媒体等各类通知,避免错过重要信息。 最后,智能手环还具备防丢功能。通过与手机的连接,它可以提供手机防丢、手环防丢功能,当手机或手环超过一定距离时,双方将会自动报警,提醒用户。这样,用户就不用担心遗忘手机或手环。 综上所述,基于STM32的多功能智能手环通过丰富的功能和强大的性能,为用户提供了方便、实用的使用体验,可以满足用户对健康、运动和通信的需求。 ### 回答3: 基于STM32的多功能智能手环是一种集健康监测、运动记录、智能提醒和互联网通信等功能于一体的智能设备。它采用先进的STM32微控制器作为核心处理器,具有高性能、低功耗和丰富的接口资源。 一方面,多功能智能手环可实现健康监测功能。通过内置的高精度传感器,可以实时监测心率、血压、血氧和睡眠状态等生理参数。用户只需佩戴手环,就能够方便、准确地了解自身的健康状况,并根据数据分析调整生活习惯和锻炼计划。 另一方面,多功能智能手环还具备运动记录功能。它能够监测和记录运动轨迹、步数、卡路里消耗等运动数据,帮助用户全面了解自己的运动情况。并且,基于STM32智能手环还可连接手机APP,通过蓝牙传输数据,方便用户随时查看和管理运动数据。 智能提醒是多功能智能手环的又一重要功能。它可以通过振动、闪光和屏幕显示等方式提醒用户接听来电、短信和社交软件消息,还可以设定闹钟提醒和久坐提醒等功能,提高生活和工作的效率。 此外,基于STM32的多功能智能手环还支持互联网通信。它可以连接到手机上的网络,实现实时同步数据和远程控制的功能。用户可以通过手环直接接听来电、发送短信,并且可以通过手环控制智能家居设备,实现智能化生活的便利和舒适。 综上所述,基于STM32的多功能智能手环集健康监测、运动记录、智能提醒和互联网通信等功能于一体,为人们提供了个性化、便捷的智能生活体验。它将在应对健康问题、提高运动效果、提升生活品质等方面发挥积极的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值