加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的智能窗簾控制系統(tǒng)設(shè)計

10/30 09:29
1037
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

主要內(nèi)容和基本要求 采用51單片機(jī)作為系統(tǒng)的控制芯片,設(shè)計一個窗簾升降器,并采用步進(jìn)電機(jī)控制窗簾的升降,控制平穩(wěn),精度高。 基本要求:

1.系統(tǒng)設(shè)置窗簾升、降變速功能,可設(shè)置三種不同的速度,分別為快速、中速、慢速。

2.能夠通過鍵盤設(shè)定窗簾上升或者下降的任意定點(diǎn)位置,通過光感應(yīng),還能夠自動控制選擇窗簾的升降,設(shè)置有全開、半開、全關(guān)三個位置。

3.能夠?qū)υO(shè)置的狀態(tài)發(fā)出語音提示,并用數(shù)碼管顯示電機(jī)轉(zhuǎn)速與窗簾位置值,用點(diǎn)陣顯示器顯示上升“↑”、下降“↓”停止“Ⅱ”三個狀態(tài)。

4.系統(tǒng)具有手動、紅外線遙控、光感自控等功能。

一、 概述

1.1 引言

在我國智能家居也成為近年來一個最熱門的話題之一,作為“居室眼睛”的窗戶也成為了其中必不可少的一部分,引發(fā)了不少研究。

智能家居控制系統(tǒng)的應(yīng)用讓人們在家中能夠享受到更安全、更舒適、更方便的生活,并且使生活更具有人性化,而現(xiàn)代家居中,窗戶具有良好的裝飾、采光和阻擋灰塵空氣循環(huán)的主要途徑,但同時也是盜竊非法進(jìn)屋的一個重要途徑。

雖然現(xiàn)在很多家庭為了防盜通常采用鋼筋結(jié)構(gòu)的防盜網(wǎng)加固在窗戶外,這樣是起到了防盜功能,但一旦發(fā)生火災(zāi)等緊急情況,窗外的防盜網(wǎng)大大的降低了人們求生或逃生的機(jī)會,所以智能窗戶的基本要求不能降低。

但是當(dāng)前大部分窗戶控制系統(tǒng)在一定程度上不是很完善,而且沒有安防檢測功能,在發(fā)生意外時只是開窗或關(guān)窗,而使用者完全沒有發(fā)現(xiàn)的意識。

有的產(chǎn)品沒有換風(fēng)系統(tǒng),如果當(dāng)一氧化碳或煙霧超標(biāo)時,不能以最快的速度排出室內(nèi)的一氧化碳或煙霧;有的產(chǎn)品沒有紅外感應(yīng)安防的功能,不能盡快的通知主人可能有小偷進(jìn)家。

所以“居室眼睛”智能窗戶控制系統(tǒng)它能在下雨且家中無人時,自動關(guān)閉以防止雨水進(jìn)入損壞室內(nèi)財物,室內(nèi)有害氣體超標(biāo)則自動開窗,有盜賊入內(nèi)則自動報警,當(dāng)室內(nèi)溫濕度過高或過低時,自動監(jiān)測調(diào)節(jié)環(huán)境,使窗戶真正的智能起來,就會給人們的居家生活帶來諸多方便,從而進(jìn)一步提高人們的生活質(zhì)量。

關(guān)鍵詞STC89C52、居室眼睛、定時、1602液晶、遙控、智能

二、市場分析

?2.1窗戶分析

當(dāng)前大部分窗戶在有煙霧過大時,或者在下雨天有雨水濺入時都要通過手動去開窗或關(guān)窗。在空氣比較悶熱時(超過26°C),不能自動進(jìn)行開窗以及通風(fēng)換風(fēng),而且現(xiàn)在很多城市(揭陽、清遠(yuǎn)、韶關(guān)、廣州,深圳等等)PM 2.5(可入肺顆粒物)季均濃度都超過了國家空氣新標(biāo)準(zhǔn)規(guī)定的二級限值35微克/立方米,嚴(yán)重危害人體健康,而現(xiàn)在大部分窗戶都沒有過濾裝置,為了提高人們的生活質(zhì)量,我們可以通過在窗戶上的換風(fēng)裝置上裝一個PM 2.5過濾器,而且這個過濾器可以手動卸掉,進(jìn)行定時清潔。現(xiàn)在大多數(shù)的窗戶系統(tǒng)都沒有安防的功能,當(dāng)有小偷想從窗戶進(jìn)入偷竊,不能及時發(fā)現(xiàn),造成很大的損失,所以在窗戶上裝紅外檢測防盜系統(tǒng),能夠及時報警,盡量避免不必要的損失等等。

?2.2 市場需求

目前市場上智能家居雖然集成了家居生活有關(guān)的設(shè)施,但是對于各部分不能做到細(xì)致具體的設(shè)計,常常忽略了一些必要的功能(如煙霧檢測功能、溫濕度檢測功能、紅外檢測報警功能、自動換氣功能)或者不夠人性化。而窗戶是智能家居的一個重要的組成部分,因此更好地實(shí)現(xiàn)窗戶的智能控制和安全防護(hù)提升家居安全性、便利性、舒適性、藝術(shù)性顯得尤為重要。

三、系統(tǒng)設(shè)計方案

?3.1功能概述

“居室眼睛”智能窗戶控制系統(tǒng)分為兩部分設(shè)計即電子自動控制部分和機(jī)械傳動部分,電子控制部分使用STC89C52單片機(jī)為核CPU,集成多種傳感器實(shí)現(xiàn)監(jiān)測控制;機(jī)械傳動部分設(shè)計在窗戶上安裝步進(jìn)

電機(jī),實(shí)現(xiàn)精確控制窗戶和窗簾的開啟。

設(shè)計實(shí)現(xiàn)如下功能:

1.顯示溫濕度、煙霧值 、亮度值 、系統(tǒng)時間

2.設(shè)定濕度、亮度值、煙霧上下限值功能

3.手動、紅外遙控自動開|關(guān)窗戶功能

4.定時開|關(guān)窗戶功能

5.下雨時通過溫濕度傳感器窗戶自動關(guān)窗功能

6.當(dāng)室內(nèi)亮度值達(dá)到設(shè)定值時自動開|關(guān)窗戶

7.當(dāng)室內(nèi)煙霧|可燃?xì)怏w達(dá)到設(shè)定值時,窗戶自動開啟并且報警和啟動換風(fēng)功能

3.1.1設(shè)計原理以及組成結(jié)構(gòu):

智能窗戶控制系統(tǒng)使用機(jī)械傳動控制窗戶的開關(guān)與窗簾的開合,機(jī)械部分由步進(jìn)電機(jī)提供動力,通過設(shè)計動滑輪組在運(yùn)動部件和窗架間進(jìn)行傳動。電子自動控制系統(tǒng)部分包含濕度溫度探測傳感器模塊、光敏電阻傳感器模塊、煙霧探測傳感器模塊、紅外檢測防盜模塊、換風(fēng)控制模塊。各傳感器將探測到的變化反映到單片機(jī)口,由單片機(jī)根據(jù)信號的變化(即電平的高低)判斷外界環(huán)境的變化,然后根據(jù)內(nèi)部設(shè)定的程序發(fā)出命令,控制機(jī)械傳動部分實(shí)現(xiàn)相應(yīng)的動作。

#include <reg52.h>//庫函數(shù)
#include <dht11.h> //庫函數(shù)//如果 實(shí)物 打開
#include <adc0832.h> //AD轉(zhuǎn)換庫函數(shù)

#define uchar unsigned char//宏定意
#define uint  unsigned int//宏定意
#define ulong unsigned long	//宏定意

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;// 手動 關(guān)	
sbit IR=P3^5; //紅外感 應(yīng)
sbit BEEP=P3^1;// 報警



#define MOTORSTEP P1 			//宏定義,定義P1口為步進(jìn)電機(jī)驅(qū)動端口

uchar  dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;// 各種變量標(biāo)記 正返轉(zhuǎn)標(biāo)記
uint sudu,dwbrigfl,humfl;  //電機(jī)速度 //光度下限/濕度標(biāo)記
uchar count0,second,zhenzhuan,fanzhuan,timeflg,opensw,closesw,keysw;//時鐘變量 正反轉(zhuǎn) 變量	
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; // 關(guān)窗時間變量
uchar   U8T_data_H,U8RH_data_H;


#define Imax 14000    //此處為晶振為11.0592時的取值, 
#define Imin 8000    //如用其它頻率的晶振時,沒
#define Inum1 1450    //要改變相應(yīng)的取值。
#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(); // 顯示函數(shù)
//**************以下是各種字幕提示語數(shù)組************************
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[]="ONtime  12:00:00";
uchar code logo14[]="OFtime  12:00:00";
uchar code logo15[]="UP-SMO=         ";
uchar code logo16[]="KWbrig=    LUX  ";



void delaymoto() 					//步進(jìn)電機(jī)每一步間延遲函數(shù)
{  	
	uint y=sudu;
	while(y--);
}



uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步進(jìn)電機(jī)驅(qū)動值數(shù)組

uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //步進(jìn)電機(jī)驅(qū)動值數(shù)組



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轉(zhuǎn)換變量組組
xdata num5 [4] =    {0x00,0x00,0x00,0x00,};	// AD轉(zhuǎn)換變量組組




void delaylog(uint z)//延時函數(shù)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=500;y>0;y--);
}




void delay(uint z)//延時函數(shù)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=10;y>0;y--);
}






  void SETP_MOTOR_FFW()	 //反轉(zhuǎn)
{
 		   uint i=0;

		for(i=0;i<8;i++) //8步一個循環(huán)
			{
				MOTORSTEP=FFW[i]; //取值賦給P1驅(qū)動口
				delaymoto(); 
			}

 }

void SETP_MOTOR_REV()  //正轉(zhuǎn)
{
 

    uint i=0;

		for(i=0;i<8;i++) //8步一個循環(huán)
			{
				MOTORSTEP=REV[i]; //取值賦給P1驅(qū)動口
				delaymoto(); 
			}

}

void write_com(uchar com) //LCD 1602 寫指令
{
	rs=0;
	lcden=0;
	P0=com;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;	
}

 

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜