安 森,張彥航,崔文華
(哈爾濱工業大學計算機科學與技術學院,哈爾濱 150001)
隨著微電子技術、自動控制、計算機網絡技術及通信技術的飛速發展,面向各種復雜應用背景的多傳感器系統大量涌現,人類開始步入物聯網時代。融合了自動化控制、計算機網絡系統和無線通訊技術于一體的智能化家居控制系統作為其中的一個典型應用越來越成為人們關注的熱點[1-4]。以往人們對居室環境的要求僅僅是簡單的居住功能,隨著技術的進步和時代的變遷,人們對居住環境提出了更新和更高的要求,而功能化和智能化已成為其中不可或缺的選擇。作為智能家居的一個重要組成部分,智能窗簾控制系統在家居、大型會議室等領域具有廣泛的應用前景。設計實現的智能窗簾系統以凌陽61 單片機[5]為主控核心,采用模擬、數字式傳感器應用技術,具有自動模式和手動模式兩種工作方式供用戶選擇,還更為人性化地設置了自動模式、手動模式指示燈,光照度等級指示燈、數字式溫度、濕度計。在自動模式下,可以通過對室內溫度、濕度及光照度的實時綜合檢測,實現窗簾開合程度的自動調節。手動模式下,通過人工操作遙控器對窗簾實現任意開度的控制。根據面板上設置的指示燈,用戶可以很方便地獲取當前系統的工作模式以及系統所測得的周圍環境的參數。該系統克服了傳統窗簾功能單一、缺少智能化的缺點,能滿足不同程度的多種應用需求,為人們提供更方便、更快捷和更舒適的生活環境,有助于提高生活質量。
為方便用戶的使用,智能窗簾控制系統設置了自動模式和手動模式兩種工作方式,方便用戶進行選擇。并且設置了人性化的人機面板,設置指示燈方便用戶操作,面板上顯示的溫度、濕度值還可以作為數字式溫度、濕度計供用戶使用。在自動模式下,通過對室內溫度、濕度及光照度強弱的實時綜合檢測,實現窗簾開合程度的自動調節。調整的原則是,白天,隨著室內溫度相比正常值(可設定)不同程度的下降或升高,窗簾可以有不同程度的開、合,即通過增加或減少室內的光照,避免室內過冷或過熱,同時,測得的溫度值顯示在顯示屏上供用戶讀取;同理,也可以利用對室內濕度的檢測自動調整窗簾開度,通過加快或減少室內水蒸氣的蒸發,使室內濕度保持相對穩定,檢測到的濕度值也顯示在面板上。另一方面,智能窗簾系統還能通過對室內光照度的檢測,控制窗簾的開合程度,以保證室內的光照始終處于一個適宜的范圍,用戶可以通過光照度等級指示燈讀取當前室內光照度的等級。需要說明的是,在溫度、濕度和光照度三者中,光照度的優先級最高。若溫度、濕度和光照度均不滿足要求,則首先保證光照度,其次考慮溫度,最后考慮濕度問題。如果傳感器檢測到的光照度低于設定的黑夜值,則窗簾將完全閉合并不再自動調整。此外,自動方式下用戶還可以通過預約方式設定定時時間,使窗簾在指定時間實現開啟和閉合。預約時間通過數碼管顯示,便于查看。如果用戶對智能窗簾的自動調整效果不滿意,或者遇到特殊情況需要人工干預和調整,則用戶可以選擇手動模式,通過對遙控器的按鍵操作能夠方便地控制窗簾實現任意開度。一旦用戶選擇手動方式進行操控后,窗簾將保持用戶調整的結果,直到用戶再次手工調整或重新切換到自動方式為止。
系統由單片機、紅外接收、光敏檢測、溫度檢測、濕度檢測、電機驅動、數碼顯示以及鳴響提示模塊組成。主要模塊所需的關鍵芯片及器件包括:凌陽61單片機、通用紅外遙控器、VS1838B 紅外接收頭、光敏電阻、DS18B20 溫度傳感器、DHT11 溫濕度傳感器、窗簾用交流管狀電動機、數碼管、發光二極管及蜂鳴器。系統總體框圖如圖1 所示。

圖1 硬件結構框架圖
系統I/O 引腳如表1 所示。

表1 系統I/O 引腳
紅外線是一種低成本、高速的無線傳輸形式,本系統中紅外發射裝置選用通用紅外遙控器,使用紐扣電池,比較省電。紅外遙控器發射編碼選擇最為通用的NEC 編碼,從而有利于查閱資料和解碼,同時也能滿足可學習型紅外遙控器進行學習的需要。紅外接收頭接口電路如圖2 所示。
光照度檢測采用光敏電阻及凌陽61 單片機A/D轉換通道,具有靈敏度高、操作簡單、價格低廉的特點。接口電路參數設置如圖3 所示。
繼電器選用FANGKE JZC-23F,用以驅動交流管狀電機,該電機力矩大,能帶動3 ×3(m2)以上的窗簾。此外,電機具有過熱保護、正反轉保護功能,當通電時間過長、電機過熱時,電機可自動斷電進行冷卻;當正轉、反轉接頭同時接通時,電機內部的機電裝置可進行報警。

圖2 VS1838B 紅外接收頭接口電路
溫度傳感器和濕度傳感器分別采用美國Dallas公司的DS18B20 數字式溫度傳感器及國產DHT11數字式溫濕度傳感器。兩種傳感器均采用單總線時序,能有效減少對I/O 口的占用數量。

圖3 光敏電阻接口電路
系統的軟件設計主要針對凌陽61 單片機的中斷系統,其中用到了定時器中斷IRQ1 及外部中斷IRQ3。定時器中斷IRQ1的優先級要高于外部中斷IRQ3的優先級。
主程序首先進行中斷的初始化操作,設定定時器中斷IRQ1的初值、控制字,在開中斷后進入循環等待,等待IRQ1 定時器中斷或者IRQ3 外部中斷的發生。主程序流程圖如圖4 所示。

圖4 主程序流程圖
系統通過IRQ1 定時器中斷每隔固定的時間(可由用戶設定)對室內環境參數值(溫度、濕度、光照度)進行自動檢測,并對獲取的參數進行分析和推算,進而得出窗簾位置的調整判斷,確保窗簾系統可以實時地對周圍環境的變化做出相應的反應。在IRQ1 定時器中斷的設計中對窗簾位置的調整加入了反饋控制。如圖5 所示,根據當前測得的溫度、濕度值,經過程序的分析和推算獲得一個理想的光照度值,將當前時刻的光照度檢測值L 作為反饋量,根據理想光照度和當前光照度的差值調整窗簾的位置,直到室內光照度值接近理想的光照度值,窗簾保持穩定,體現了以光照度為中心,即光照度優先級最高的原則。

圖5 IRQ1 定時器中斷設計思想
圖6 中過程A、B、C、D 分別對應于溫度低于或高于20℃,濕度低于或高于30%的四種情況,這四個過程模塊的處理流程類似,只是參數設置不同。以過程A為例,根據溫度、濕度以及光照度的檢測值對窗簾位置實現自動調節的過程如圖7 所示。


IRQ3 外部中斷用于紅外遙控的控制,當用戶對遙控器有按鍵操作,則紅外遙控器發射NEC 碼,此時檢測外部中斷的I/O 端口將檢測到低電平,這個低電平將會觸發IRQ3 外部中斷,對紅外遙控器發射的NEC 編碼進行解碼。根據不同的解碼值系統做出相應的反應。例如若用戶按下的鍵是“開啟”或“閉合”,則系統發出開啟窗簾或閉合窗簾的電機驅動信號,并在退出IRQ3 外部中斷之前,關閉IRQ1定時器中斷,以確保窗簾不再自動開合。若用戶按下的是“自動模式”按鍵,則在退出IRQ3 外部中斷之前,系統重新設定定時器初值,并開啟IRQ1 定時器中斷,以確保系統可以實時進行檢測,實現自動控制。需要特別說明的是:由于單總線時序以及A/D轉換通道的需要,在主程序中需要將系統時鐘調整到一個適合的值。
以凌陽61 單片機為控制核心,設計實現了集溫度控制、濕度控制、光照度控制、紅外遙控、電機驅動及數碼顯示為一體的智能窗簾系統。該系統靈敏度高、穩定性強、使用方便、可擴展性強,具有多種功能,不僅可以應用在大眾家居領域,還可以應用在如醫院、學校、商場等諸多場合。具有廣闊的市場發展前景和應用價值。
[1]錢云,鄭舒予,秦雷.基于ATMEGA16 單片機的智能窗簾控制系統設計[J].微計算機信息,2009(25):24-25.
[2]王春武,劉春玲,姜文龍,等.基于單片機的無線智能窗簾控制器的設計[J].吉林師范大學學報,2010(1):93-95.
[3]孫勇,楊文月,趙宇新.自動窗簾控制系統設計[J].微型機與應用,2010(13):15-17.
[4]周敬.基于單片機的窗簾智能控制系統設計[J].信息時代,2010(2):58-60.
[5]羅亞非.凌陽16 位單片機應用基礎[M].北京:北京航空航天大學出版社,2004.