涂桂根,黃思慶,熊馮瑞,張敬軒,劉紫君,藍宗錦,張穩祺
(廣東海洋大學,廣東 湛江 524000)
科技發展是人民生活質量的重要保障,我國居民的生活節奏日益加快,快節奏與高質量的生活隨之成為人們追求的目標,智能家居的誕生旨在解決這一問題。近年來,結合物聯網技術的智能家居產品越來越豐富,已經走入了大城市居民的生活當中。在晾曬衣服方面,傳統的晾衣方式是自然風干,這種方法操作簡單,但是需要一直關注天氣狀況,當雨天突發時收衣就會顯得十分倉促,而在外出工作、學習時遇到下雨更是無奈。雖然目前已經有了烘干機,可以快速烘干衣服,但是它價格較高,耗能大,同時還容易燙壞衣物,不符合低碳生活的主題。顯然,人們需要一種智能、廉價、可靠、可遠程控制的晾衣系統。在已有對自動晾衣系統的研究中,許多作品已經達到一定的智能化,但是仍然有許多產品存在不能遠距離控制、結構過大、晾曬不均勻、成本高等問題。基于這些問題,本文設計了一種有結構小巧、智能化、可遠程遙控等優點的智能晾衣系統[1]。
本文設計的晾衣系統中,為保證足夠的上升力和壓縮力,采用了絲桿螺母傳動機構。結構如圖1、圖2所示。

圖1 機械結構示意圖

圖2 機械結構示意圖
機械結構包括活動部分和固定部分,活動部分包括伸縮架、限位開關、MG996R舵機、42BYGH34步進電機(下稱42 電機)、伸縮絲桿、直流電機、防雨布等;固定部分包括安裝背板、控制箱(內含MCU、電源系統等)、57BYG250H步進電機(下稱57電機)、限位開關、升降絲桿等[2]。
在初始狀態,STM32 驅動57 電機使升降絲桿轉動讓活動部分自動位于升降絲桿行程的最下端;同時驅動42 電機使收縮絲桿轉動讓收縮架處于縮回狀態,并且控制舵機自動調節掛環,使掛環平面與伸縮架伸出方向平行,伸縮架處于縮回狀態,以便放置衣物。當系統收到曬衣指令,STM32驅動57 電機使升降絲桿轉動,活動部分上升,為了使結構運行平穩,伸縮架仍保持縮回,直到活動部分到達升降絲桿行程最上方后,STM32 驅動42 電機使收縮架伸出。當系統收到收衣指令時,電機反向旋轉,先使收縮架縮回,后使活動部分下降。由于陽臺的特殊結構,越低的位置越容易被雨淋,所以當系統收到防雨指令時,STM32 驅動42 電機轉動收縮絲桿,使收縮架收回,同時驅動直流電機降下防雨布。天氣正常后恢復晾曬。
電氣控制系統包括MCU、傳感器模塊、電動機模塊、通信模塊、電源模塊。為了使系統穩定可靠,采用了模塊化的設計方法,控制系統的結構框圖如圖3所示。

圖3 硬件結構框圖
為了滿足本設計中的要求,MCU 需要有時鐘快、信號處理能力強、低碳節能、成本低等特點。STM32 是一款基于ARM Cortex M 架構的微控制器,與51單片機相比,擁有強大的時鐘系統,其具有性能高、功耗低、資源豐富、信號處理快且準確、通信能力強、I/O 接口多、運算速度快等優點。本文研究的晾衣系統中,使用了眾多的傳感器,以及電機、舵機的控制,需要MCU擁有許多I/O接口進行信號的輸入和輸出,并且能夠準確識別傳感器的反饋信號,并輸出相應的信號進行控制,同時在APP 遠程控制模塊,需要MCU有良好的通信能力,低功耗也是本次設計的要求之一,所以選擇STM32作為MCU能夠很好地滿足要求。本設計選擇STM32F103C8T6 芯片,它在滿足系統工作要求的前提下,成本更低,并且能夠節約更多的空間。
步進電機是本系統電壓需求最大的模塊,57 電機需要供電DC16 V~48 V,42 電機需要供電DC9 V~24 V,舵機和電機供電為DC3 V~6 V,選擇DC5 V;STM32 單片機選擇DC3.3 V 供電;傳感器都為DC3.3 V/5 V 供電,因為數量較多,所以要增加多個DC5 V供電口;通信模塊要與STM32連接,通過STM32 板載電源供電;考慮到以上因素,選擇AC220 V轉DC24 V3.5 A的開關電源,和LM2596S模塊完成DC24 V轉DC5 V,即可滿足系統供電。
雨滴檢測使用面積5×4 cm2的雨滴傳感器,當檢測到有雨時,DO 口發送低電平給STM32 表示有雨,AO 口發送模擬信號表示雨量大小;為了檢測光度,使用光敏電阻傳感器,向STM32發送模擬信號;為了防止運動超程,在兩個絲桿的行程初末位置安裝按鍵式開關,反饋數字信號;為了檢測溫度和濕度,選擇DHT11溫濕度傳感器反饋模擬信號。單片機對數字信號的讀取通過檢測GPIO口高低電位的方式進行,對模擬信號的讀取則是通過ADC模數轉換的方式進行。
為了保證用戶能夠實時準確地對系統進行控制,通信模塊需要滿足可控距離遠、功耗低、響應速度快的要求。在本文的設計中,采用ESP8266作為通信模塊,它是一款性價比高、功耗低的微控制器,在滿足長時間工作的同時符合綠色低碳的設計要求。
設備端的軟件設計主要是STM32 芯片和ESP8266 兩部分,這兩部分都要進行相關代碼的編寫。為了使ESP8266能夠達到使用要求,需要通過USB 轉TTL 模塊連接電腦對ESP8266 進行初設置,ESP8266 總共有三種模式,分別是STA模式,AP模式以及STA+AP模式[3]。STA模式下可以將ESP8266 連接到用戶家庭WiFi,通過連接云服務器等中轉站進行遠程控制。首先要給模塊設置一個MAC 地址,將用戶家庭WiFi 以及云服務器的地址傳送給模塊,使模塊連接上服務器,同時手機通過軟件連接上服務器,就可以通過手機APP 進行遠程遙控。AP 模式下,ESP8266 將會自己產生一個WiFi,手機連接這個WiFi 后,就可以對ESP8266 進行指令傳輸。ESP8266 不能自動連接沒有連接過的WiFi,需要重新輸入ssid賬號和psw密碼,這時候可以通過ESP8266的AP 模式將ssid 賬號和psw 密碼傳輸給ESP8266,就可以切換到STA 模式中,即STA+AP 模式,本設計采用STA+AP模式,這樣就可以解決不同用戶有不同WiFi的問題。
STM32上的程序使用Keil uVision5 MDK版開發,使用C語言進行程序設計。系統有三個情況可以觸發電機的動作,各部分的中斷優先級從高到低分別是:按鍵模塊、無線通信模塊、傳感器模塊。系統開始運行后,無線通信模塊連接服務器,首先檢測行程開關,控制電機使活動部分置于最低位后,收到指令開始晾衣。當傳感器、按鍵模塊、無線通信模塊傳來信號,系統判斷信號是否有效,再執行動作。為了使衣物晾曬均勻,改善通風情況,用戶可以通過按鍵決定系統是否會定時旋轉舵機。到了晚上,光線傳感器響應,系統自動收衣。程序流程圖如圖4所示。

圖4 程序流程圖
本設計使用的手機端APP 是 基 于Android 系 統開發的,使用Java 語言開發進行開發[4],能夠適用于大多數安卓手機,軟件的功能包括天氣檢測和指令發送。在軟件界面中,一共有6 個可控按鈕,分別是ssid、psw、一鍵晾衣、一鍵收衣、防雨模式、取消防雨,還有一個天氣顯示界面,用于顯示實時天氣狀況。其中“ssid”按鈕指的是用戶WiFi網絡的名稱,“psw”是指用戶WiFi的密碼,在首次使用晾衣架時,用戶應先連接系統通信模塊所發出的WiFi,然后將家庭WiFi 名稱輸入到“ssid”中,密碼輸入到“psw”中,稍等片刻便可以激活遠程控制功能。假如更改了家庭WiFi,按照同樣的方法輸入新WiFi的名稱和密碼即可,APP界面如圖5所示。

圖5 APP 界面圖
本文設計了一種基于STM32 單片機控制的智能晾衣系統,結合傳感器和物聯網以及手機APP應用,將傳統的晾衣模式融入智能化。相比市場上的智能晾衣架,有占用體積小、成本低、工作穩定、可控距離遠、低碳節能等優點,解決了人們外出不能應對突發情況及時收衣服的問題。