陳玉青,洪連環(huán),胡 斌
(南昌航空大學(xué)航空制造工程學(xué)院,南昌 330063)
隨著當(dāng)今時(shí)代的發(fā)展和變化,人們對(duì)于生活的舒適度和便捷度要求越來(lái)越高,于是智能家居在近幾年成為熱議話題并且快速發(fā)展。對(duì)于上班族來(lái)說(shuō),晾曬衣物作為生活中重要部分,仍然普遍存在著衣物被淋濕或者被打濕的情況[1],故對(duì)晾衣架的智能性要求越來(lái)越高。目前已有的一些自動(dòng)升降晾衣架,用戶通過(guò)遙控裝置控制,僅僅是解決了傳統(tǒng)晾衣費(fèi)力的問(wèn)題,并且由于價(jià)格較高,真正使用的家庭比較少[2]。已經(jīng)研究的可自動(dòng)伸縮的防雨晾衣架,大多都是通過(guò)光傳感器或者光敏電阻識(shí)別白天和夜晚來(lái)實(shí)現(xiàn)晾衣架的伸縮。然而使用光敏傳感或光敏電阻識(shí)別存在一定的誤差,在晚上容易受到室內(nèi)燈光或者鄰居燈光的影響,從而導(dǎo)致錯(cuò)誤識(shí)別伸出衣架,造成弄濕衣物的后果。本文設(shè)計(jì)的智能防雨伸縮晾衣架系統(tǒng),通過(guò)DS1302定時(shí)芯片設(shè)定定時(shí)區(qū)間來(lái)精確定時(shí)區(qū)別白天與夜晚[3],不會(huì)受到外界光照的影響,很好地解決了這一問(wèn)題。
本系統(tǒng)以STC89C52單片機(jī)芯片作為主控元件,與外圍電路形成的單片機(jī)最小系統(tǒng)作為核心控制模塊。通過(guò)太陽(yáng)能電池板為系統(tǒng)供電,結(jié)合濕度檢測(cè)模塊和定時(shí)器定時(shí)模塊進(jìn)行大氣環(huán)境濕度信息的檢測(cè)以及晝夜變化的判定,通過(guò)液晶屏顯示模塊進(jìn)行檢測(cè)信息的顯示以及按鍵設(shè)定信息的顯示,單片機(jī)對(duì)這些信息進(jìn)行處理并輸出信號(hào)控制步進(jìn)電機(jī)驅(qū)動(dòng)模塊的動(dòng)作,并且聯(lián)合指示燈實(shí)時(shí)顯示系統(tǒng)狀態(tài)。系統(tǒng)各模塊構(gòu)成的總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)基本框圖
選用單片機(jī)最小系統(tǒng)作為整個(gè)晾衣架設(shè)計(jì)的控制中心,其中,控制芯片采用STC89C52,具有低功耗性和極強(qiáng)的穩(wěn)定性。采用內(nèi)部時(shí)鐘電路為整個(gè)系統(tǒng)協(xié)調(diào)各模塊運(yùn)行提供基準(zhǔn)脈沖,選用12 MHz的石英晶振。復(fù)位電路作為單片機(jī)系統(tǒng)的一種保護(hù)電路,能夠使單片機(jī)恢復(fù)到初始狀態(tài),重新開始運(yùn)行。本系統(tǒng)中采用按鍵復(fù)位方式。單片機(jī)最小系統(tǒng)電路如圖2所示。
整個(gè)晾衣架系統(tǒng)的供電通過(guò)太陽(yáng)能電池板吸收太陽(yáng)光來(lái)實(shí)現(xiàn)。本系統(tǒng)采用單晶硅太陽(yáng)能電池板吸收太陽(yáng)光轉(zhuǎn)換成電能,其轉(zhuǎn)換效率比其他類型的太陽(yáng)能電池板更高,并且使用壽命也較長(zhǎng),可以大大提高太陽(yáng)光的有效利用率和系統(tǒng)的穩(wěn)定性[4]。
圖2 系統(tǒng)最小系統(tǒng)電路圖
濕度檢測(cè)模塊采用DHT11 數(shù)字式溫濕度傳感器,通過(guò)內(nèi)部的感濕元件檢測(cè)大氣濕度,并經(jīng)過(guò)了數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù)的處理,輸出信號(hào)具有極高的精確性和可靠性[5]。其濕度測(cè)量范圍為20%~90%RH,測(cè)量精度達(dá)到±5%RH,滿足本系統(tǒng)中測(cè)量大氣環(huán)境濕度的要求。DHT11 與單片機(jī)之間的數(shù)據(jù)通信采用單總線通信的方式[6],設(shè)計(jì)電路中將DHT11 的雙向數(shù)據(jù)通信接口DATA 與單片機(jī)P2.4引腳相連,由于測(cè)量距離小于20 m,外接1 個(gè)4.7 kΩ 的 上 拉 電阻。具體電路原理圖如圖3所示。
圖3 DHT11濕度檢測(cè)電路圖
在本系統(tǒng)中,LCD1602 作為主要顯示部分,用于顯示實(shí)時(shí)感知的大氣濕度和預(yù)設(shè)濕度,以及實(shí)時(shí)時(shí)間和設(shè)定的定時(shí)區(qū)間。其能同時(shí)顯示32個(gè)字符,可以直接通過(guò)編程來(lái)實(shí)現(xiàn)讀/寫操作和光標(biāo)的定位,易于控制和使用。本系統(tǒng)選用帶背光含16 個(gè)引腳的LCD1602,其中D0~D7 作為數(shù)據(jù)通信引腳,與單片機(jī)的P0口相連;而主要的控制引腳,即寄存器選擇腳RS、讀寫信號(hào)腳R/W、使能端E,分別與單片機(jī)的P2.6、P2.5、P2.7 相連。為了調(diào)整背光亮度和去耦濾波,在LCD 中外接電阻和電容,該模塊電路設(shè)計(jì)原理圖如圖4所示。
圖4 LCD1602液晶顯示電路圖
為了使晾衣架能自動(dòng)識(shí)別白天與黑夜,且不受到燈光的影響而作出錯(cuò)誤判斷,系統(tǒng)采用定時(shí)模塊設(shè)定定時(shí)區(qū)間來(lái)區(qū)分白天與黑夜。由于定時(shí)器模塊是全天候工作的,選用DS1302 定時(shí)器芯片,可以為系統(tǒng)提供精確的定時(shí)時(shí)間。DS1302是一款涓流充電時(shí)鐘芯片,數(shù)據(jù)傳輸速度快且功耗較低。計(jì)時(shí)時(shí)間可以從年精確到秒,同時(shí)具有時(shí)間調(diào)整的功能。內(nèi)部采用雙電源供應(yīng)模式,備用電源可以在主電源斷電時(shí)供電繼續(xù)時(shí)鐘的運(yùn)行,從而實(shí)現(xiàn)掉電不丟失數(shù)據(jù)[7]。
DS1302的計(jì)時(shí)模式可以分為24 h和12 h制,本系統(tǒng)選用24 h 制計(jì)時(shí)模式。其與單片機(jī)之間的數(shù)據(jù)通信通過(guò)內(nèi)部的串行引腳來(lái)實(shí)現(xiàn),串行引腳主要有時(shí)鐘引腳SCLK、數(shù)據(jù)通信引腳I/O、復(fù)位引腳RST,將它們分別接至單片機(jī)P1.1、P1.2、P1.3引腳上。DS1302定時(shí)模塊電路如圖5所示。
圖5 DS1302定時(shí)模塊電路圖
為了實(shí)現(xiàn)晾衣架的自動(dòng)伸縮,本系統(tǒng)采用28BYJ48 四相八拍步進(jìn)電機(jī)作為驅(qū)動(dòng)器,其轉(zhuǎn)動(dòng)控制是通過(guò)單片機(jī)發(fā)出的電脈沖信號(hào)來(lái)實(shí)現(xiàn)的,具有噪聲低、轉(zhuǎn)動(dòng)平穩(wěn)的優(yōu)點(diǎn),適用于本系統(tǒng)中的家居晾衣架。
由于單片機(jī)的輸出信號(hào)較小,達(dá)不到控制晾衣架伸縮的要求,需要通過(guò)ULN2003 驅(qū)動(dòng)芯片將脈沖信號(hào)放大來(lái)實(shí)現(xiàn)[8]。該芯片包含7個(gè)輸入端口和7個(gè)輸出端口,由于選用的是四相八拍式步進(jìn)電機(jī),只需使用其中的4個(gè)輸入和4個(gè)輸出端口,驅(qū)動(dòng)模塊電路中,單片機(jī)通過(guò)P3.4、P3.5、P3.6、P3.7引腳連接驅(qū)動(dòng)芯片的4個(gè)輸入端口IN1-IN4,來(lái)實(shí)現(xiàn)控制脈沖信號(hào)的輸出。步進(jìn)電機(jī)驅(qū)動(dòng)模塊電路如圖6所示。
圖6 步進(jìn)電機(jī)驅(qū)動(dòng)模塊電路圖
本系統(tǒng)設(shè)置按鍵分別用于模式的切換,手動(dòng)模式下晾衣架的伸縮控制、預(yù)設(shè)濕度數(shù)值的加減以及定時(shí)區(qū)間的調(diào)整。按鍵指示燈模塊電路如圖7 所示,S1 為切換按鍵,初始狀態(tài)下為智能模式,LCD 顯示當(dāng)前時(shí)間以及定時(shí)區(qū)間,可以通過(guò)S3和S4分別改變定時(shí)區(qū)間的上下限。當(dāng)按一下S1時(shí),LCD顯示實(shí)時(shí)檢測(cè)濕度以及預(yù)設(shè)濕度數(shù)值,可通過(guò)按鍵S2和S3進(jìn)行預(yù)設(shè)濕度數(shù)值的改變。當(dāng)按兩下S1時(shí),模式切換為手動(dòng)模式,此時(shí)可以通過(guò)S2 和S3實(shí)現(xiàn)晾衣架的伸縮控制。
LED 指示燈用于指示當(dāng)前晾衣架狀態(tài),當(dāng)處于自動(dòng)模式下時(shí),LED1亮紅燈,手動(dòng)模式下熄滅。LED2 和LED3分別用于指示晾衣架的晾衣和收衣狀態(tài),當(dāng)處于晾衣狀態(tài)下時(shí),LED2 亮黃燈,LED3 不亮;處于收衣狀態(tài)下時(shí),LED3亮藍(lán)燈,LED2不亮。
圖7 按鍵指示燈模塊電路圖
本系統(tǒng)運(yùn)用C 語(yǔ)言進(jìn)行程序的編寫,主要運(yùn)用if、while語(yǔ)句進(jìn)行條件的判斷,采用模塊化程序設(shè)計(jì)的思想,設(shè)計(jì)主程序并對(duì)各個(gè)模塊子程序進(jìn)行調(diào)用,實(shí)現(xiàn)系統(tǒng)整個(gè)程序的編程控制。
DS1302定時(shí)模塊子程序首先定義了各個(gè)數(shù)據(jù)和寄存器的地址,然后進(jìn)行子模塊的初始化,通過(guò)將復(fù)位引腳RST 和時(shí)鐘引腳SCLK置于低電平來(lái)實(shí)現(xiàn)。該模塊的核心部分就是單片機(jī)和時(shí)鐘芯片之間數(shù)據(jù)的讀寫操作。在進(jìn)行寫操作時(shí),先將RST置于高電平使能啟動(dòng)DS1302總線,再依據(jù)單字節(jié)傳送方式,將8 位地址和數(shù)據(jù)先后寫入DS1302。在進(jìn)行讀操作時(shí),同樣先使能片選信號(hào)RST,再依次寫入目標(biāo)地址并讀出數(shù)據(jù)信息。在進(jìn)行讀和寫操作時(shí),都要將命令字節(jié)D7設(shè)置為邏輯1,否則處于寫保護(hù)狀態(tài)下無(wú)法進(jìn)行數(shù)據(jù)交換[9]。
程序從主程序開始執(zhí)行,主程序中首先進(jìn)行各個(gè)引腳的定義以及函數(shù)的聲明,然后對(duì)各個(gè)子程序模塊進(jìn)行初始化,依次進(jìn)行LCD液晶屏顯示模塊、DS1302定時(shí)模塊、濕度檢測(cè)模塊的初始化,之后系統(tǒng)對(duì)按鍵進(jìn)行不斷掃描,根據(jù)掃描的結(jié)果結(jié)合大氣環(huán)境進(jìn)行響應(yīng)的動(dòng)作。具體主程序流程圖如圖8所示。
圖8 主程序流程圖
本文設(shè)計(jì)的這個(gè)智能防雨晾衣架系統(tǒng)基于STC89C52單片機(jī)芯片,通過(guò)太陽(yáng)能板模塊供電,符合當(dāng)前的綠色節(jié)能理念。通過(guò)DS1302定時(shí)芯片區(qū)別晝夜,不易受到其他光源的影響。且設(shè)有2種工作模式,智能模式下可實(shí)現(xiàn)根據(jù)外界環(huán)境自動(dòng)晾收衣,手動(dòng)模式下可自己控制晾衣收衣,系統(tǒng)更具實(shí)際應(yīng)用性。設(shè)定的定時(shí)時(shí)間和預(yù)設(shè)濕度可調(diào),使系統(tǒng)具有一定的靈敏性和通用性,結(jié)構(gòu)簡(jiǎn)單、便于操作,造價(jià)更符合作為晾衣架的標(biāo)準(zhǔn),適合上班族和普通大眾家庭使用,具有一定的推廣價(jià)值。