張子龍,莫嘉琛,魏浩東,陳卓,雍振,高宏
(西安石油大學(xué)理學(xué)院,陜西西安,710065)
隨著人們對高質(zhì)量生活的向往和追求,智能安防、智能控制、智能空氣質(zhì)量檢測等一系列智能家居產(chǎn)品應(yīng)運(yùn)而生,而窗簾是生活中最常用的家居之一,其普及性決定了它必將成為家居智能化的先行軍。陳志棟等[1]基于CC1101進(jìn)行了主從多個(gè)窗簾智能控制系統(tǒng)的設(shè)計(jì),楊雅涵等[2]實(shí)現(xiàn)了帶有溫控光控功能智能窗簾的設(shè)計(jì),孫浩文[3]基于Android系統(tǒng)進(jìn)行了無線智能窗簾控制系統(tǒng)的設(shè)計(jì),羅偉等[4]提出了基于微軟Kinect的體感控制智能窗簾系統(tǒng),朱玉杰等[5]、連騰飛等[6]分別基于TRIZ理論和物聯(lián)網(wǎng)技術(shù)對智能汽車窗簾進(jìn)行了設(shè)計(jì)。
本文主要針對家庭、賓館中廣泛使用的羅馬桿式窗簾,采用單片機(jī)STC89C52為控制芯片,選用DS1302模塊進(jìn)行計(jì)時(shí)與定時(shí)工作,利用ZD-M42S驅(qū)動(dòng)器驅(qū)動(dòng)42步進(jìn)電機(jī)實(shí)現(xiàn)窗簾智能控制系統(tǒng)的設(shè)計(jì)。完成的控制系統(tǒng)的功能包括:月日時(shí)分的實(shí)時(shí)顯示,窗簾的定時(shí)開啟和關(guān)閉,手動(dòng)紅外遙控窗簾的開合,用戶自定義窗簾開合程度并一鍵到位,長時(shí)間不用下的低功耗睡眠模式等。
針對家中的窗簾樣式和大眾對智能窗簾選購的關(guān)注因素對人群進(jìn)行了調(diào)研,結(jié)果如圖1、圖2所示。
圖1 窗簾樣式調(diào)查圖
從圖1可以看出,家中的窗簾樣式是以羅馬桿窗簾為主,而圖2中可看出大家在選擇智能窗簾時(shí)主要關(guān)注的是價(jià)格,安裝方便和操作方便。本文針對羅馬桿式窗簾并結(jié)合用戶需求,完成了相應(yīng)的硬件及軟件設(shè)計(jì)。
圖2 窗簾購買考慮因素調(diào)查圖
圖3 為窗簾傳動(dòng)系統(tǒng)(窗簾機(jī))的結(jié)構(gòu)示意圖。窗簾采用同步齒形帶傳動(dòng),通過安裝窗簾機(jī)在用戶的羅馬桿上,將窗簾一端與同步帶進(jìn)行連接來實(shí)現(xiàn)開關(guān)窗簾的目的,從而解決市面上大部分智能窗簾需要拆除用戶原有導(dǎo)軌或羅馬桿的問題。同步帶兼有齒輪傳動(dòng)、鏈傳動(dòng)和平帶傳動(dòng)的各種特性和優(yōu)點(diǎn),使窗簾的可靠性得到很大提升。配合同步輪使用時(shí)主要靠嚙合傳動(dòng),傳送比可達(dá)10,工作時(shí)無相對滑動(dòng),傳動(dòng)效率可達(dá)0.98,節(jié)能效果好,且傳動(dòng)平穩(wěn),能吸收一定的振動(dòng),因此噪聲相對較小。所使用的PU同步帶具有一定彈性,過載時(shí)會(huì)打滑,故在系統(tǒng)異常時(shí)可保護(hù)系統(tǒng)和窗簾,減輕其受到的損傷。在系統(tǒng)一端設(shè)計(jì)有同步帶張緊器,另一端安裝有42步進(jìn)電機(jī),控制同步帶的雙向傳動(dòng)。同步帶的長度可以根據(jù)窗戶的大小由用戶自行裁剪,裁剪完畢后穿過同步帶張緊器和電機(jī)上的同步輪,并使用POM卡扣對開口同步帶進(jìn)行連接,最后再使用張緊器使同步帶繃緊,避免正常工作時(shí)打滑。這樣的設(shè)計(jì)結(jié)構(gòu)簡單,有效減低同步帶安裝難度,也可以滿足不同用戶的需求,為用戶個(gè)性化設(shè)計(jì)帶來便捷,使拆卸維護(hù)更方便,維護(hù)成本更低。且可使用戶體驗(yàn)到DIY的樂趣。
圖3 窗簾的系統(tǒng)結(jié)構(gòu)示意圖
單片機(jī)主控系統(tǒng)按模塊化進(jìn)行設(shè)計(jì),包括電源模塊、主控模塊、時(shí)鐘模塊、時(shí)間顯示模塊、電機(jī)驅(qū)動(dòng)模塊和紅外遙控模塊。
(1)電源模塊采用12V鋰電池作為電機(jī)及單片機(jī)的供電電源,輔以太陽能板增加續(xù)航。電池與單片機(jī)之間通過DC-DC可調(diào)降壓模塊進(jìn)行降壓處理。
(2)主控模塊采用STC89C52芯片,含有8k bytes的能夠重復(fù)進(jìn)行擦寫的Flash只讀程序存儲(chǔ)器,同時(shí)擁有256位的RAM,其內(nèi)部有通用8位中央處理器和Flash存儲(chǔ)單元[5]。支持2種軟件開發(fā),可選擇節(jié)電模式。
(3)時(shí)鐘模塊采用DS1302芯片,DS1302實(shí)時(shí)時(shí)鐘具有對秒、分、時(shí)、日、月、年進(jìn)行計(jì)算的功能,可進(jìn)行閏年調(diào)整。通過三線接口與CPU同步通信,可進(jìn)行單字節(jié)傳送和多字節(jié)傳送兩種數(shù)據(jù)傳送方式。DS1302有著眾多寄存器,同時(shí)還擁有一些 RAM 單元,在需要的時(shí)候這些RAM單元可以擴(kuò)展使用,以增強(qiáng)DS1302的相關(guān)功能[6]。本設(shè)計(jì)時(shí)鐘模塊采用此芯片的作用在于實(shí)現(xiàn)計(jì)時(shí)與定時(shí)功能,同時(shí)在共陰數(shù)碼管中實(shí)時(shí)顯示時(shí)間。DS1302的VCC接+5V電源,引腳SCLK、I/O、CE分別接STC89C52的P3口,如圖4所示。
圖4 DS1302與單片機(jī)接口電路
(4)時(shí)間顯示模塊采用74HC245外部驅(qū)動(dòng)芯片驅(qū)動(dòng)2個(gè)四位一體共陰數(shù)碼管,只需單片機(jī)3個(gè)I/O口就可以實(shí)現(xiàn)8個(gè)位選管腳的控制,節(jié)省芯片的I/O資源。本設(shè)計(jì)使用P0口控制數(shù)碼管段選,使用P22、P23、P24管腳控制74HC138譯碼器輸入從而控制數(shù)碼管位選,如圖5所示??紤]到用戶實(shí)際應(yīng)用,本設(shè)計(jì)選用共陰數(shù)碼管進(jìn)行時(shí)間、定時(shí)等數(shù)據(jù)的實(shí)時(shí)顯示,數(shù)碼管顯示相較于LCD液晶屏顯示成本更低,數(shù)據(jù)顯示清晰直觀。
圖5 74HC245與單片機(jī)接口電路
(5)控制窗簾的電機(jī)采用的是42步進(jìn)電機(jī),輸入電流為1.5A。由于42步進(jìn)電機(jī)的步距角為1.8°±0.09°,電機(jī)能精確運(yùn)行到指定位置。且42步進(jìn)電機(jī)保持的轉(zhuǎn)矩為48N·cm,能提供足夠的扭矩帶動(dòng)一般用戶窗簾的開合,滿足本設(shè)計(jì)對電機(jī)的要求。電機(jī)驅(qū)動(dòng)模塊采用的是型號為ZDM42S的電機(jī)驅(qū)動(dòng)器。該電機(jī)驅(qū)動(dòng)輸出電流可在0A-1.8A內(nèi)調(diào)節(jié),滿足電機(jī)運(yùn)行的條件,高集成度,高可靠性,減少了智能窗簾的體積,并保證智能窗簾的安全性。驅(qū)動(dòng)器可供細(xì)分的脈沖能調(diào)節(jié)電機(jī)轉(zhuǎn)速,使之達(dá)到合適的速度。
(6)紅外遙控模塊由紅外發(fā)射裝置和紅外接收裝置組成,本設(shè)計(jì)采用紅外接收頭HS0038作為紅外接收裝置。如圖6所示,紅外接收頭的輸出管腳接至單片機(jī)P32管腳。紅外遙控是一種非接觸、無線控制技術(shù),信息傳輸可靠,功耗低,成本低。
圖6 HS0038與單片機(jī)接口電路
系統(tǒng)中紅外遙控的作用是實(shí)現(xiàn)用戶遠(yuǎn)程控制窗簾,智能窗簾控制系統(tǒng)設(shè)計(jì)的按鍵功能如表1所示。
表1 紅外遙控器按鍵功能
程序主要功能可分為三個(gè)部分:
(1)用戶自定義。用戶自定義主要實(shí)現(xiàn)了兩個(gè)功能。一是智能窗簾的位置自定義。用戶通過紅外遙控按鍵控制窗簾到達(dá)自定義位置并進(jìn)行記錄,此后自定義按鍵后,即可一鍵控制窗簾到達(dá)該位置。二是用戶自定義智能窗簾的休眠。當(dāng)用戶不在家且又有需求智能窗簾操作(定時(shí)開或關(guān)窗簾)時(shí),可設(shè)置控制系統(tǒng)進(jìn)入休眠模式,以節(jié)省電能。
(2)紅外遙控功能。通過紅外遙控器來手動(dòng)控制窗簾的開合、對時(shí)鐘進(jìn)行校準(zhǔn)及進(jìn)行用戶自定義的設(shè)置。
(3)實(shí)時(shí)時(shí)鐘功能。時(shí)鐘模塊部分采用的是DS1302芯片,在DS1302初始化后,可調(diào)用時(shí)鐘數(shù)據(jù)處理函數(shù)來讀取時(shí)鐘數(shù)據(jù),然后取出各位對應(yīng)的數(shù)碼管段碼數(shù)據(jù)保存到數(shù)組中,最后將處理好的時(shí)間進(jìn)行顯示。
軟件開發(fā)基于Keil軟件,采用C語言編寫。程序總體可分為三部分:
(1)主程序構(gòu)成一個(gè)循環(huán)。主程序最開始進(jìn)行程序的頭文件、I/O端口、變量以及外部中斷0、1和定時(shí)器中斷0、1初始化,然后根據(jù)用戶家庭窗簾需要,在單片機(jī)內(nèi)部程序中設(shè)定智能窗簾的參數(shù)(包括適合用戶的窗簾電機(jī)轉(zhuǎn)速),通過用戶確定智能窗簾的初始位置,如左端或右端。初始化完成后,程序進(jìn)入循環(huán)等待并顯示實(shí)時(shí)時(shí)間,如到達(dá)設(shè)定時(shí)間,則執(zhí)行定時(shí)操作,打開或關(guān)閉窗簾,操作結(jié)束后再次進(jìn)入循環(huán)等待。具體流程如圖7所示。
圖7 主程序流程圖
圖8 外部中斷0流程圖
圖9 外部中斷1服務(wù)程序圖
(2)紅外按鍵按下后會(huì)進(jìn)入外部中斷0服務(wù)程序。進(jìn)入外部中斷0后,首先會(huì)判斷當(dāng)前是否為休眠模式,如果是,則喚醒。再判斷是否接收到了正確的紅外信號,在接收到正確的紅外信號后,會(huì)對應(yīng)三種情況:一是電機(jī)的控制,包括正轉(zhuǎn)、反轉(zhuǎn)及停止;二是定時(shí)設(shè)置,即設(shè)置定時(shí)部分中的時(shí)間參數(shù);三是用戶自定義,完成自定義窗簾位置的設(shè)置、一鍵窗簾到達(dá)自定義位置和進(jìn)入休眠模式。外部中斷0的程序流程如圖8所示。
(3)當(dāng)窗簾到達(dá)端點(diǎn)時(shí)會(huì)觸發(fā)中斷服務(wù)程序1。外部中斷1服務(wù)程序的主要目的是當(dāng)電機(jī)到達(dá)端點(diǎn)時(shí),通過限位開關(guān)提供反饋信號然后停止電機(jī)轉(zhuǎn)到,防止硬件損壞。其具體流程如圖9所示。
本智能窗簾控制系統(tǒng)的設(shè)計(jì)采用STC89C52單片機(jī)為核心控制元件,并集定時(shí)、遙控控制于一體。為保護(hù)電機(jī),特別對窗簾的極限位置通過限位開關(guān)來進(jìn)行標(biāo)定,大大提高了系統(tǒng)的可靠性與安全性。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①具有定時(shí)功能,根據(jù)用戶設(shè)置時(shí)間自動(dòng)開合窗簾或休眠;②具有時(shí)間顯示功能;③具有用戶自定義功能,此功能是用戶根據(jù)需要通過調(diào)整步進(jìn)電機(jī)驅(qū)動(dòng)時(shí)間調(diào)整窗簾位置,實(shí)現(xiàn)窗簾半開或到達(dá)用戶設(shè)定位置;④采用鋰電池供電,輔以太陽能板增加續(xù)航;⑤通過紅外遙控器實(shí)現(xiàn)窗簾的實(shí)時(shí)開合。