陳峰
(江蘇商貿職業學院,江蘇南通,226011)
目前家庭居住環境的采光及避光問題主要采用的是手動開閉窗簾,手動開閉不僅費力而且很多方面不夠人性化,會對用戶造成一定的困擾。為了解決這些問題,本文設計了基于單片機的自動窗簾控制系統,具有以下特點:可以實現光照控制、定時控制和藍牙控制三種工作模式,光照控制模式下根據光照強度實現窗簾自動開閉,定時控制模式下能根據設定的時間實現窗簾自動開閉,藍牙控制模式下可利用手機遠程遙控功能實現窗簾開閉,給用戶帶來很大的方便。
自動窗簾控制系統的總體設計框圖如圖1所示,由單片機最小系統、光照強度檢測電路、模數轉換電路、實時時鐘電路、LCD1602液晶顯示電路、按鍵模塊和藍牙模塊等共同組成。

圖1 自動窗簾控制設計框圖
自動窗簾控制系統的電路原理圖如圖2所示。該系統以STC89C52單片機為核心,單片機根據系統的工作模式,通過獲取光照強度、當前時間來控制電機正反轉實現窗簾的開閉,按鍵模塊用于設置窗簾開閉時間和光照強度上下限閾值,手機APP通過藍牙模塊與單片機進行通信,實現系統工作模式的切換和藍牙控制模式下窗簾的開閉。

圖2 自動窗簾控制系統電路原理圖
設計中采用STC89C52RC單片機作為系統核心,由電源、時鐘電路、按鍵復位電路構成單片機最小系統,控制協調整個控制系統的運行。
光照采集模塊主要由光敏電阻、ADC0831芯片組成。光照采集模塊利用光敏電阻采集光照強度,光敏電阻檢測到光照強度的變化,將電阻變化值轉化為電壓變化值,并通過模數轉換芯片ADC0831將電壓值轉換為數字信號傳輸到單片機進行處理,從而實現光照控制模式下窗簾開閉的控制。
實時時鐘電路主要用于定時工作模式,DS1302是單片機系統中常用的日歷時鐘芯片。該芯片可提供秒、分、時、日、月、星期和年信息。DS1302與單片機之間能方便地采用同步串行的方式進行通信。通過時鐘電路計時,系統根據計時時間和設置定時時間進行比較控制窗簾的開閉。
采用1602液晶顯示器實時顯示系統的工作狀態和設置狀態信息,系統工作時液晶實時顯示系統工作模式和當前光照強度、當前時間;設置狀態時液晶顯示如圖3和圖4所示,實時顯示相應的設置參數信息。

圖3 設置定時時間液晶顯示界面

圖4 設置光照上下限液晶顯示界面
采用3個獨立按鍵來設置窗簾開閉時間和光照強度上下限閾值,其中設置按鍵K1用于工作狀態、時間設置、光照設置的切換,按鍵K2用于在設置狀態下,對應設置的參數加1。按鍵K3用于在設置狀態下,對應設置的參數減1。
單片機根據光照強度、設定時間或者遠程遙控調節直流電機的正反轉,從而實現窗簾的自動開閉。采用8個晶體管接成復合管構成電機的驅動電路。當A=0,C=1時,VT1、VT2及VT7、VT8導通,電機正轉;當A=1,C=0時,VT3、VT4及VT5、VT6導通,電機反轉。
采用HC-06藍牙模塊,可方便地與手機等智能終端的藍牙設備相連,實現兩個模塊之間通信。由于HC-06模塊支持UART接口,因此將HC-06的TX、RX分別和單片機的RXD、TXD,通電后即可進行二者之間的串口通信。通過手機藍牙串口APP的手機發出相應的指令來實現光控模式、定時模式和藍牙模式切換以及藍牙模式下遠程遙控電機正反轉實現窗簾開閉。
利用兩個限位開關實現全開點、全關點電機自動停止來防止窗簾電機過度轉動而造成窗簾損壞。
根據自動窗簾控制系統的功能,軟件設計主要的工作是采集當前光照強度和時間,并根據工作模式實現窗簾打開和關閉的智能化控制。
系統的軟件設計流程圖如圖5所示,先進行串行口和LCD1602液晶初始化,然后讀取當前時間和光照強度,通過掃描按鍵執行相關參數的設置功能,根據不同工作模式,對窗簾進行控制,并通過LCD1602液晶實時顯示相關信息。

圖5 主程序流程圖
串行口中斷服務程序流程圖如圖6所示,主要用于接收手機藍牙APP發送的數據SBUF,并根據SBUF的內容設置系統的工作模式、藍牙模式下電機正反轉和停止。藍牙串口APP界面如圖7所示,通過按鍵編輯器設置每個按鈕發送的字符。6個按鈕對應的字符如表1所示。

圖6 串行口中斷服務程序流程圖

圖7 藍牙APP界面

表1 按鈕對應發送字符
主要由讀取當前時間和光照強度組成。系統啟動后,單片機從DS1302時鐘芯片獲取時間,通過A/D轉換、數據處理進行光照強度的采集。
按鍵檢測控制程序主要進行窗簾開啟、關閉時間和光照上下限閾值的設置,其流程圖如圖8所示。變量flag用于表示系統設置的參數,變量flag對應的設置狀態如表2所示。

圖8 按鍵檢測子程序流程

表2 變量flag對應的設置狀態
顯示子程序主要根據變量flag值顯示系統的工作或設置狀態的信息。當flag=0時為工作狀態顯示界面,實時顯示系統的工作模式、光照強度和當前時間;當flag <5時顯示設置時間顯示界面;當flag<7時顯示設置光照強度界面。
當MODE=0時為光照控制模式,當光照強度低于光照下限閾值時,電機正轉,窗簾開啟到開限位時電機停止;當光照強度高于光照上限閾值時,電機反轉,窗簾關閉到關限位時電機停止。
當MODE=1時為定時控制模式,當前時間大于窗簾開啟時間時,電機正轉,窗簾開啟到開限位時電機停止;當前時間大于窗簾關閉時間時,電機反轉,窗簾關閉到關限位時電機停止。
利用KEIL軟件與PROTEUS軟件進行聯合仿真調試,使用AT89C51代替STC89C52。仿真時通過串口模擬藍牙,系統仿真效果如圖9所示,LCD1602液晶第一行顯示當前工作模式為光照模式,當前光照為60%;第二行實時顯示時間。通過改變光敏電阻(LDR1)中燈的位置改變光強,觀察電機是否轉動。采用串口調試助手發送相應控制字符觀察能否進行工作模式的切換,并測試定時模式和藍牙模式系統是否正常工作。

圖9 系統仿真結果圖
自動窗簾控制系統有光照控制、定時控制和藍牙控制三種工作模式,通過手機藍牙串口APP來實現工作模式切換。在光照控制模式下,窗簾開閉由當前光照強度控制,高于設定上限閾值就關窗簾,低于設定下限閾值則開窗簾系統;在定時控制模式下,當計時時間和預設的定時時間一致時進行控制窗簾開閉;在藍牙控制模式下,系統通過HC-06藍牙模塊接收數據,來控制窗簾開閉。該系統能夠取代傳統窗簾,能夠一定程度上滿足了人們對于智能家居的需求,方便人們的生活,具有一定的應用價值。