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


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

  • 8
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能窗户 AT89S52 1602显示 步进电机转动模拟开窗关窗 (1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态; (2)光照自动控制:系统可以根据用户设定的光照强度值通过感光器采集光照自动开关窗帘; (3)时间控制:此功能是根据用户设定的时间一次性开关窗帘,并显示当前温度。 (4)温度报警系统:可以自行设置温度报警温度。 (5)时间显示及闹钟系统:可以自行设置闹钟时间。 (6)手动自动控制按键随时切换 所有资料,按照制作即可完成 目录构成: Altium Designer Sunner画图学习视频 AltiumDesignerSummer9 画图安装包 keil 软件安装视频 keil4软件安装包 LIST.TXT Protel 99 软件安装包 Protel 99画图软件学习视频 Proteus7.5软件安装包 PROTEUS仿真软件的安装方法 proteus入门到精通学习视频 STC开发工具程序下载软件 制作过程 单片机工程项目的建立视频 原理图 打开方式.txt 外文文献翻译.doc 开题报告.doc 智能窗帘原理图讲解视频 智能窗帘源程序讲解视频 智能窗户下载文件 智能窗户系统仿真图 智能窗户设计使用必读 智能窗户设计焊接介绍 智能窗户设计系统.txt 智能窗户设计系统元器件清单 智能窗户设计系统原理图 智能窗户设计系统参考论文 智能窗户设计系统开题报告 智能窗户设计系统源程序 智能窗户设计系统芯片资料 智能窗户设计高清照片 毕业论文查重不达标-修改过关技巧.doc 毕设答辩技巧 程序打开方法.txt 答辩常见问题解答 郝斌老师C语言学习视频 郭天祥单片机学习视频 雨滴传感器模块电路图.pdf
### 回答1: 基于STM32的智慧仓库管理系统源码实现了仓库的物品入库、出库、查询和统计等功能。该系统采用了模块化设计,使得系统的扩展性和维护性更为优秀。主要的硬件部分包括STM32单片机、数码管显示器、红外遥控器等。 该系统的主要功能包括管理员的权限管理、物品的入库和出库以及相关的操作记录、对物品状态的查询、物品的报废和损坏以及实时的库存统计等。系统还具备了一些额外的功能,如遇到非法操作时将会自动报警,同时还可以通过远程监控实时了解仓库的状态。 该系统的实现不仅提高了仓库管理的效率,还为公司的管理工作提供了更可靠和安全的保障。此外,该系统的开源代码也为后续的开发和拓展提供了重要的借鉴和参考。 基于STM32的智慧仓库管理系统源码将现代化智能技术应用于仓库管理这一传统行业,具有很大的商业前景和实际应用的价值。随着物联网和工业4.0时代的到来,该系统还可以为更高级别的智能制造和物流管理提供一个创新的方案。 ### 回答2: 基于STM32的智慧仓库管理系统源码是一种基于嵌入式系统的自动化仓储解决方案,具有智能化、自动化、高效性等特点。该系统源码是学生毕业设计的产物,可以帮助企业更好地管理其仓储业务,提高物料质量的控制,优化仓储物流,减少费用和减少人力资源的使用。 该系统源码结构对于初学者比较简单,在调试时也方便人们进行查找异常问题。整个系统分为硬件和软件两部分。硬件方面,该系统主要采用STM32系列单片机,具有强大的计算能力、大容量存储空间、高速数据传输、多种通信接口等优点。软件方面,该系统采用的是C语言编写的代码,拥有灵活性和可扩展性。 系统源码主要实现了智慧仓库的多项管理功能,例如货物的入库、出库、转移等操作,对数据的实时监测和记录,实现了多种数据交换方式。该系统的可视化操作页面,用户可以通过Web管理平台进行远程控制和监视,使仓库管理工作更简单、高效、精确。 总而言之,基于STM32的智慧仓库管理系统源码可以帮助企业实现更加智能化的仓储管理,有助于仓库管理工作的合理性和高效性,满足企业对于物流仓储的改进和高效化要求,是一款非常值得使用和深入研究的物流管理工具。 ### 回答3: 基于STM32的智慧仓库管理系统源码是一款基于STM32智能仓库管理软件,主要用于实现仓库内货物的管理、仓库设备的监控、货物的入库和出库等功能。 该仓库管理系统源码包含了主控程序以及各种驱动程序、界面程序和通讯程序。主控程序是整个系统的核心,它通过各个设备的驱动程序控制各个设备的运行,实现对整个仓库的监控和管理。驱动程序包括温湿度传感器驱动、RFID读卡器驱动、LCD显示屏驱动等。界面程序用于与人机交互,显示当前仓库的货物信息、设备运行状态等信息。通讯程序实现了与服务器之间的通讯,可以将仓库内的信息传输到服务器上进行分析和处理。 该仓库管理系统源码的开发需要具备一定的嵌入式开发和通信协议的基础。另外,开发人员需要具备一定的项目管理和编码规范的意识,以保证源码的可维护性和可扩展性。 综上所述,基于STM32的智慧仓库管理系统源码是一款实用的仓库管理软件,它的开发需要具备一定的专业技能和开发经验。在未来的自动化仓库管理中,该软件将有着广泛的应用前景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值