陳峰
(江蘇商貿(mào)職業(yè)學(xué)院,江蘇南通,226011)
目前家庭居住環(huán)境的采光及避光問題主要采用的是手動開閉窗簾,手動開閉不僅費力而且很多方面不夠人性化,會對用戶造成一定的困擾。為了解決這些問題,本文設(shè)計了基于單片機的自動窗簾控制系統(tǒng),具有以下特點:可以實現(xiàn)光照控制、定時控制和藍牙控制三種工作模式,光照控制模式下根據(jù)光照強度實現(xiàn)窗簾自動開閉,定時控制模式下能根據(jù)設(shè)定的時間實現(xiàn)窗簾自動開閉,藍牙控制模式下可利用手機遠程遙控功能實現(xiàn)窗簾開閉,給用戶帶來很大的方便。
自動窗簾控制系統(tǒng)的總體設(shè)計框圖如圖1所示,由單片機最小系統(tǒng)、光照強度檢測電路、模數(shù)轉(zhuǎn)換電路、實時時鐘電路、LCD1602液晶顯示電路、按鍵模塊和藍牙模塊等共同組成。
圖1 自動窗簾控制設(shè)計框圖
自動窗簾控制系統(tǒng)的電路原理圖如圖2所示。該系統(tǒng)以STC89C52單片機為核心,單片機根據(jù)系統(tǒng)的工作模式,通過獲取光照強度、當(dāng)前時間來控制電機正反轉(zhuǎn)實現(xiàn)窗簾的開閉,按鍵模塊用于設(shè)置窗簾開閉時間和光照強度上下限閾值,手機APP通過藍牙模塊與單片機進行通信,實現(xiàn)系統(tǒng)工作模式的切換和藍牙控制模式下窗簾的開閉。
圖2 自動窗簾控制系統(tǒng)電路原理圖
設(shè)計中采用STC89C52RC單片機作為系統(tǒng)核心,由電源、時鐘電路、按鍵復(fù)位電路構(gòu)成單片機最小系統(tǒng),控制協(xié)調(diào)整個控制系統(tǒng)的運行。
光照采集模塊主要由光敏電阻、ADC0831芯片組成。光照采集模塊利用光敏電阻采集光照強度,光敏電阻檢測到光照強度的變化,將電阻變化值轉(zhuǎn)化為電壓變化值,并通過模數(shù)轉(zhuǎn)換芯片ADC0831將電壓值轉(zhuǎn)換為數(shù)字信號傳輸?shù)絾纹瑱C進行處理,從而實現(xiàn)光照控制模式下窗簾開閉的控制。
實時時鐘電路主要用于定時工作模式,DS1302是單片機系統(tǒng)中常用的日歷時鐘芯片。該芯片可提供秒、分、時、日、月、星期和年信息。DS1302與單片機之間能方便地采用同步串行的方式進行通信。通過時鐘電路計時,系統(tǒng)根據(jù)計時時間和設(shè)置定時時間進行比較控制窗簾的開閉。
采用1602液晶顯示器實時顯示系統(tǒng)的工作狀態(tài)和設(shè)置狀態(tài)信息,系統(tǒng)工作時液晶實時顯示系統(tǒng)工作模式和當(dāng)前光照強度、當(dāng)前時間;設(shè)置狀態(tài)時液晶顯示如圖3和圖4所示,實時顯示相應(yīng)的設(shè)置參數(shù)信息。
圖3 設(shè)置定時時間液晶顯示界面
圖4 設(shè)置光照上下限液晶顯示界面
采用3個獨立按鍵來設(shè)置窗簾開閉時間和光照強度上下限閾值,其中設(shè)置按鍵K1用于工作狀態(tài)、時間設(shè)置、光照設(shè)置的切換,按鍵K2用于在設(shè)置狀態(tài)下,對應(yīng)設(shè)置的參數(shù)加1。按鍵K3用于在設(shè)置狀態(tài)下,對應(yīng)設(shè)置的參數(shù)減1。
單片機根據(jù)光照強度、設(shè)定時間或者遠程遙控調(diào)節(jié)直流電機的正反轉(zhuǎn),從而實現(xiàn)窗簾的自動開閉。采用8個晶體管接成復(fù)合管構(gòu)成電機的驅(qū)動電路。當(dāng)A=0,C=1時,VT1、VT2及VT7、VT8導(dǎo)通,電機正轉(zhuǎn);當(dāng)A=1,C=0時,VT3、VT4及VT5、VT6導(dǎo)通,電機反轉(zhuǎn)。
采用HC-06藍牙模塊,可方便地與手機等智能終端的藍牙設(shè)備相連,實現(xiàn)兩個模塊之間通信。由于HC-06模塊支持UART接口,因此將HC-06的TX、RX分別和單片機的RXD、TXD,通電后即可進行二者之間的串口通信。通過手機藍牙串口APP的手機發(fā)出相應(yīng)的指令來實現(xiàn)光控模式、定時模式和藍牙模式切換以及藍牙模式下遠程遙控電機正反轉(zhuǎn)實現(xiàn)窗簾開閉。
利用兩個限位開關(guān)實現(xiàn)全開點、全關(guān)點電機自動停止來防止窗簾電機過度轉(zhuǎn)動而造成窗簾損壞。
根據(jù)自動窗簾控制系統(tǒng)的功能,軟件設(shè)計主要的工作是采集當(dāng)前光照強度和時間,并根據(jù)工作模式實現(xiàn)窗簾打開和關(guān)閉的智能化控制。
系統(tǒng)的軟件設(shè)計流程圖如圖5所示,先進行串行口和LCD1602液晶初始化,然后讀取當(dāng)前時間和光照強度,通過掃描按鍵執(zhí)行相關(guān)參數(shù)的設(shè)置功能,根據(jù)不同工作模式,對窗簾進行控制,并通過LCD1602液晶實時顯示相關(guān)信息。
圖5 主程序流程圖
串行口中斷服務(wù)程序流程圖如圖6所示,主要用于接收手機藍牙APP發(fā)送的數(shù)據(jù)SBUF,并根據(jù)SBUF的內(nèi)容設(shè)置系統(tǒng)的工作模式、藍牙模式下電機正反轉(zhuǎn)和停止。藍牙串口APP界面如圖7所示,通過按鍵編輯器設(shè)置每個按鈕發(fā)送的字符。6個按鈕對應(yīng)的字符如表1所示。
圖6 串行口中斷服務(wù)程序流程圖
圖7 藍牙APP界面
表1 按鈕對應(yīng)發(fā)送字符
主要由讀取當(dāng)前時間和光照強度組成。系統(tǒng)啟動后,單片機從DS1302時鐘芯片獲取時間,通過A/D轉(zhuǎn)換、數(shù)據(jù)處理進行光照強度的采集。
按鍵檢測控制程序主要進行窗簾開啟、關(guān)閉時間和光照上下限閾值的設(shè)置,其流程圖如圖8所示。變量flag用于表示系統(tǒng)設(shè)置的參數(shù),變量flag對應(yīng)的設(shè)置狀態(tài)如表2所示。
圖8 按鍵檢測子程序流程
表2 變量flag對應(yīng)的設(shè)置狀態(tài)
顯示子程序主要根據(jù)變量flag值顯示系統(tǒng)的工作或設(shè)置狀態(tài)的信息。當(dāng)flag=0時為工作狀態(tài)顯示界面,實時顯示系統(tǒng)的工作模式、光照強度和當(dāng)前時間;當(dāng)flag <5時顯示設(shè)置時間顯示界面;當(dāng)flag<7時顯示設(shè)置光照強度界面。
當(dāng)MODE=0時為光照控制模式,當(dāng)光照強度低于光照下限閾值時,電機正轉(zhuǎn),窗簾開啟到開限位時電機停止;當(dāng)光照強度高于光照上限閾值時,電機反轉(zhuǎn),窗簾關(guān)閉到關(guān)限位時電機停止。
當(dāng)MODE=1時為定時控制模式,當(dāng)前時間大于窗簾開啟時間時,電機正轉(zhuǎn),窗簾開啟到開限位時電機停止;當(dāng)前時間大于窗簾關(guān)閉時間時,電機反轉(zhuǎn),窗簾關(guān)閉到關(guān)限位時電機停止。
利用KEIL軟件與PROTEUS軟件進行聯(lián)合仿真調(diào)試,使用AT89C51代替STC89C52。仿真時通過串口模擬藍牙,系統(tǒng)仿真效果如圖9所示,LCD1602液晶第一行顯示當(dāng)前工作模式為光照模式,當(dāng)前光照為60%;第二行實時顯示時間。通過改變光敏電阻(LDR1)中燈的位置改變光強,觀察電機是否轉(zhuǎn)動。采用串口調(diào)試助手發(fā)送相應(yīng)控制字符觀察能否進行工作模式的切換,并測試定時模式和藍牙模式系統(tǒng)是否正常工作。
圖9 系統(tǒng)仿真結(jié)果圖
自動窗簾控制系統(tǒng)有光照控制、定時控制和藍牙控制三種工作模式,通過手機藍牙串口APP來實現(xiàn)工作模式切換。在光照控制模式下,窗簾開閉由當(dāng)前光照強度控制,高于設(shè)定上限閾值就關(guān)窗簾,低于設(shè)定下限閾值則開窗簾系統(tǒng);在定時控制模式下,當(dāng)計時時間和預(yù)設(shè)的定時時間一致時進行控制窗簾開閉;在藍牙控制模式下,系統(tǒng)通過HC-06藍牙模塊接收數(shù)據(jù),來控制窗簾開閉。該系統(tǒng)能夠取代傳統(tǒng)窗簾,能夠一定程度上滿足了人們對于智能家居的需求,方便人們的生活,具有一定的應(yīng)用價值。