劉天成,田學(xué)軍
(1.湛江幼兒師范??茖W(xué)校信息與科學(xué)系,廣東 湛江 524084;2.嶺南師范學(xué)院機(jī)電工程學(xué)院,廣東 湛江 524048)
智能家居就是利用現(xiàn)代物聯(lián)網(wǎng)技術(shù)將家中的不同房間的用電器和設(shè)備連接到一起[1]。晾衣桿是構(gòu)成智能家居的不可缺少的一部分,目前國內(nèi)大部分家庭使用的都是原始的固定晾衣架或者手搖式晾衣架。智能晾衣架也只能根據(jù)指令進(jìn)行動(dòng)作,沒有辦法根據(jù)太陽光的具體位置去自動(dòng)進(jìn)行調(diào)整。因此,需要設(shè)計(jì)出能充分地利用好陽光資源的智能晾衣架滿足人們需求。文獻(xiàn)[2]指出近幾年來我國房地產(chǎn)和智能家裝行業(yè)的發(fā)展比較快,因此隨著物聯(lián)網(wǎng)技術(shù)不斷的深入到人們的生活并得到越來越多人的認(rèn)可,智能晾衣桿行業(yè)將會(huì)迎來新一輪的發(fā)展浪潮。
智能晾衣桿系統(tǒng)的設(shè)計(jì)思路如下:晾衣桿首先要能根據(jù)陽光的不同位置自動(dòng)調(diào)整位置,同時(shí)在下雨或極端天氣時(shí),能通過手機(jī)APP隨時(shí)控制位置。另外在家時(shí)也需要能手動(dòng)的調(diào)節(jié)。為了實(shí)現(xiàn)以上功能,控制電路的輸入信號(hào)部分分別由按鍵、光照信號(hào)采集電路和手機(jī)指令接收電路ESP8266來完成。輸出信號(hào)則需要接驅(qū)動(dòng)電路驅(qū)動(dòng)步進(jìn)電機(jī)工作。
系統(tǒng)的硬件主要由光照檢測電路、電機(jī)驅(qū)動(dòng)電路、以及基于ESP8266的STM32控制電路和遠(yuǎn)程手機(jī)控制端組成。硬件整體框圖如圖1所示。
圖1 系統(tǒng)總體框架
STM32F103,是基于Coretex-M3內(nèi)核的32位ARM芯片系列,而ZET6屬于該系列的高容量芯片,片內(nèi)Flash為512 kB,片內(nèi)SRAM為64 kB,主頻72 MHz[3]。STM32F103系列有3個(gè)ADC,精度為12位,每個(gè)ADC最多有16個(gè)外部通道ADC電路可以對(duì)光照傳感器的數(shù)據(jù)進(jìn)行采集。
步進(jìn)電機(jī)驅(qū)動(dòng)A4988內(nèi)置了譯碼器,可以通過控制器的2個(gè)引腳來控制步進(jìn)電機(jī),一個(gè)控制旋轉(zhuǎn)方向,另一個(gè)控制步數(shù)。根據(jù)說明書查找管腳并將該兩管腳接到STM32單片機(jī)的相應(yīng)管腳即可。典型應(yīng)用如圖2所示。
圖2 A4988的典型用法
ESP8266系列模組是安信可公司采用樂鑫ESP8266芯片開發(fā)的一系列WiFi模組模塊,硬件接口豐富,可支持UART,IIC,PWM,GPIO,ADC等,非常適合做小量數(shù)據(jù)的無線傳輸。用戶既可以通過串口用AT指令來控制,也可以使用廠家的SDK來進(jìn)行開發(fā),或者直接使用ARDUINO IDE來編寫代碼進(jìn)行相應(yīng)操作并給予數(shù)據(jù)反饋。
光傳感器電路由光敏電阻和電阻串聯(lián)組成,光敏電阻的阻值會(huì)跟隨變化。文獻(xiàn)[4]詳細(xì)地描述了光強(qiáng)度和光敏電阻阻值的具體關(guān)系。光敏電阻隨光照的不同會(huì)在電路中產(chǎn)生不同的電壓值,這個(gè)電壓會(huì)被單片機(jī)采集到并轉(zhuǎn)換為數(shù)字信號(hào)。得出的電壓值能夠顯示在控制板的LED顯示模塊上,同時(shí)控制晾衣桿的智能升降。
電路設(shè)計(jì)以STM32控制器為核心,將無線模塊ESP8266S、驅(qū)動(dòng)A4988、光照傳感器等電路接到單片機(jī)的相應(yīng)接口,主要電路圖如圖3所示。
圖3 系統(tǒng)主要電路
本系統(tǒng)主要由ESP8266模塊、光敏傳感器、步進(jìn)電機(jī)、動(dòng)力升降桿等組成??梢酝ㄟ^日常實(shí)用的手機(jī)里的APP對(duì)本產(chǎn)品進(jìn)行遠(yuǎn)程智能操控。自動(dòng)控制系統(tǒng)則是采集光敏電阻的光強(qiáng)信息來實(shí)現(xiàn)。光的強(qiáng)弱通過光敏電阻的電壓反映出來,并被送到單片機(jī)中,單片機(jī)根據(jù)光照強(qiáng)弱情況判斷太陽光照射的位置,再通過步進(jìn)電機(jī)帶動(dòng)晾衣桿上升或下降,使衣服能夠持續(xù)接受太陽光的照射,達(dá)到充分晾干、殺菌的作用。整體結(jié)構(gòu)圖如圖4所示。
圖4 整體結(jié)構(gòu)圖
系統(tǒng)軟件設(shè)計(jì)采用的是結(jié)構(gòu)化和模塊化設(shè)計(jì)方法,便于程序的擴(kuò)展和調(diào)試,根據(jù)實(shí)際的具體情況,設(shè)計(jì)出不僅貼合用戶需求,而且還安全可靠的智能控制算法??刂葡到y(tǒng)程序結(jié)構(gòu)示意圖如圖5所示。
圖5 系統(tǒng)控制流程圖
程序算法控制過程為:當(dāng)控制板上電時(shí),先對(duì)系統(tǒng)進(jìn)行初始化,進(jìn)行串口,ADC,I/O口等相關(guān)外設(shè)的初始化。外設(shè)初始化后,延時(shí)一會(huì),等待系統(tǒng)穩(wěn)定,便開始正式進(jìn)入控制流程。進(jìn)行智能控制前,單片機(jī)通過ADC先對(duì)傳感器進(jìn)行數(shù)據(jù)采樣,檢測光照,再根據(jù)采樣轉(zhuǎn)換的數(shù)字信號(hào)進(jìn)行處理,判斷當(dāng)前陽光的具體位置,然后輸出PWM脈沖,控制步進(jìn)電機(jī)工作使晾衣桿升降,當(dāng)晾衣桿到達(dá)合適的位置后,MCU再次通過控制I/O口來控制步進(jìn)電機(jī)的停止,使晾衣桿停止在合適的位置上。這樣晾衣桿控制系統(tǒng)便可以智能地根據(jù)光照強(qiáng)度來決定晾衣桿的位置,充分利用陽光晾曬衣服。
APP程序是用戶直接控制設(shè)備的窗口,由HTML5+Javascript開發(fā),用戶可以在APP中對(duì)智能開關(guān)進(jìn)行配網(wǎng),管理和控制用戶所屬的智能開關(guān)設(shè)備,并可以根據(jù)用戶的個(gè)人習(xí)慣自定義相關(guān)操作等。APP提供了一系列人性化的交互界面,方便使用。
手機(jī)APP中定義了三個(gè)控制按鈕,當(dāng)用戶在APP上點(diǎn)擊了‘上’這個(gè)按鈕時(shí),手機(jī)APP便會(huì)通過網(wǎng)絡(luò)通訊協(xié)議將數(shù)據(jù)發(fā)送到云端,再由云端下發(fā)到控制設(shè)備,ESP8266模塊通過WiFi接入互聯(lián)網(wǎng),接收由云端下發(fā)的控制信號(hào),再根據(jù)接收到的控制信號(hào)進(jìn)行解識(shí),控制晾衣桿移動(dòng)到設(shè)定的最高的位置;當(dāng)用戶點(diǎn)擊‘中’這個(gè)按鈕時(shí),手機(jī)APP與單片機(jī)之間的通訊同上,當(dāng)單片機(jī)成功解識(shí)后,便會(huì)控制智能晾衣桿移動(dòng)到設(shè)定的中間位置;同理,當(dāng)用戶點(diǎn)擊‘下’這個(gè)按鈕時(shí),單片機(jī)便會(huì)控制智能晾衣桿移動(dòng)到設(shè)定好的最下的位置。
控制器會(huì)根據(jù)外部輸入的結(jié)果,判斷并輸出具體的信號(hào)驅(qū)動(dòng)步進(jìn)電機(jī)。輸入方式有三種:1) 手動(dòng)控制;2) 智能控制;3) 利用手機(jī)遠(yuǎn)程來控制,單片機(jī)先根據(jù)傳感器反饋的數(shù)據(jù)進(jìn)行判斷后再進(jìn)一步地控制判斷。
利用三個(gè)按鍵接入到單片機(jī)來實(shí)現(xiàn)手動(dòng)的控制。按鍵采用共陰極接法,當(dāng)按鍵被按下時(shí),電路導(dǎo)通,與之對(duì)應(yīng)的按鍵連接的單片機(jī)I/O口電平被拉低,該I/O口處于低電平狀態(tài),利用單片機(jī)讀取相應(yīng)的I/O口電平變化,即可檢測出相應(yīng)的按鍵狀態(tài)。當(dāng)檢測到相應(yīng)按鍵處于按下狀態(tài)時(shí),通過控制單片機(jī)內(nèi)部的定時(shí)器寄存器,設(shè)置為PWM輸出模式,輸出一定數(shù)量的PWM脈沖,當(dāng)步進(jìn)電機(jī)驅(qū)動(dòng)模塊接收到該P(yáng)WM脈沖時(shí),再根據(jù)PWM的脈沖數(shù)來控制步進(jìn)電機(jī)的步數(shù),進(jìn)而控制晾衣桿的位置。
由于光敏電阻的阻值會(huì)隨著光照強(qiáng)度的大小而變化,故只要測量得到光敏電阻兩端的電壓大小,便進(jìn)一步確定當(dāng)前光強(qiáng)強(qiáng)度的大小。通過設(shè)置單片機(jī)內(nèi)部的ADC寄存器,利用ADC轉(zhuǎn)換器,將光敏電阻的電壓模擬信號(hào)轉(zhuǎn)化成單片機(jī)可直接讀取的數(shù)字信號(hào)。單片機(jī)根據(jù)光敏電阻反饋的數(shù)據(jù)便可以確定陽光的位置,單片機(jī)再通過控制PWM的輸出來控制步進(jìn)電機(jī),自動(dòng)調(diào)節(jié)晾衣桿的位置。
手機(jī)與WiFi模塊ESP8266之間的數(shù)據(jù)通信是通過云服務(wù)器作為中轉(zhuǎn)站來進(jìn)行,云服務(wù)器可以用云平臺(tái)的,也可找免費(fèi)的。首先,ESP8266模塊通過家庭WiFi照某種協(xié)議與云服務(wù)器建立連接,協(xié)議類型多種多樣,本設(shè)計(jì)采用TCP長連接。然后手機(jī)也通過TCP協(xié)議與云服務(wù)器建立連接。則手機(jī)與WiFi模塊ESP8266之間便能通信。
手機(jī)作為系統(tǒng)控制的上位機(jī),向云服務(wù)器發(fā)送JSON格式數(shù)據(jù)。當(dāng)手機(jī)進(jìn)入控制的畫面,點(diǎn)擊了手機(jī)上的上、中、下按鍵三者的其中一個(gè),手機(jī)通過網(wǎng)絡(luò)通訊協(xié)議將控制指令發(fā)送到云服務(wù)器,云服務(wù)器接收到手機(jī)發(fā)的數(shù)據(jù)后,把手機(jī)發(fā)送過來數(shù)據(jù)轉(zhuǎn)發(fā)給ESP8266模塊。ESP8266模塊將接收到的數(shù)據(jù)進(jìn)行解析,轉(zhuǎn)換為相應(yīng)的指令信號(hào),控制PWM的輸出,驅(qū)動(dòng)步進(jìn)電機(jī)來進(jìn)行相應(yīng)的運(yùn)動(dòng),從而實(shí)現(xiàn)晾衣桿的遠(yuǎn)程控制。
ESP8266模塊采集到光傳感器的數(shù)據(jù)信息和桿的狀態(tài)信息后也以JSON的格式將數(shù)據(jù)發(fā)送到云服務(wù)器,云服務(wù)器接收到ESP8266模塊發(fā)過來的數(shù)據(jù)后,然后把數(shù)據(jù)推送給手機(jī)APP,則在手機(jī)上便可顯示光照的信息和晾衣桿的狀態(tài)信息。
主要是用光敏電阻進(jìn)行了光采集實(shí)驗(yàn),電路圖如圖6。
圖6 光采集電路圖
本設(shè)計(jì)中有三個(gè)光敏電阻,為了測試光敏電阻的可行性,特地進(jìn)行了光敏電阻變化實(shí)驗(yàn)。實(shí)驗(yàn)中利用手電筒來模擬太陽光線,液晶屏上會(huì)顯示ADC的值和電壓值。三次實(shí)驗(yàn)結(jié)果如表1、表2、表3所示。
表1 第一個(gè)光敏電阻ADC和電壓數(shù)值表
表2 第二個(gè)光敏電阻ADC和電壓數(shù)值表
表3 第三個(gè)光敏電阻ADC和電壓數(shù)值表
實(shí)驗(yàn)表明,當(dāng)三個(gè)光敏電阻接收到光線時(shí),照射前和照射后的ADC值變化較大,易于程序判斷,故能很好地應(yīng)用于系統(tǒng)的光照檢測中。觀察實(shí)驗(yàn)數(shù)據(jù)發(fā)現(xiàn),當(dāng)沒有陽光照射的時(shí)候,ADC的值都較大,一般大于300;當(dāng)有光照射到光敏電阻時(shí),ADC的數(shù)值都小于200。
實(shí)現(xiàn)了基于ESP8266的智能晾衣桿系統(tǒng)的設(shè)計(jì),多次的實(shí)驗(yàn)表明,當(dāng)光敏傳感器檢測到陽光時(shí),可以進(jìn)行位置檢測,通過讓單片機(jī)發(fā)送信號(hào)給電機(jī)使其實(shí)現(xiàn)升降,從而實(shí)現(xiàn)智能晾衣桿自動(dòng)工作。其次,能夠通過手動(dòng)的方式來實(shí)現(xiàn)晾衣桿的升降,讓其在合適的位置停留,從而更好地晾曬衣物。最后,利用WiFi模塊實(shí)現(xiàn)了用APP遠(yuǎn)程控制晾衣桿的升降。
雖然已經(jīng)實(shí)現(xiàn)了智能晾衣桿系統(tǒng)的設(shè)計(jì),但還不是很完美,還要根據(jù)消費(fèi)者的需要和市場調(diào)查進(jìn)一步完善。比如添加其它的檢測方式、增加衣桿的移動(dòng)方式、添加殺菌功能等等。這些都需要我們繼續(xù)研究,從而使之更貼和人們的生活需求,給客戶帶來更大的便利。