袁婧,吳宇
(江西理工大學(xué)電氣工程與自動(dòng)化學(xué)院,江西贛州,341000)
隨著經(jīng)濟(jì)的發(fā)展,人民生活會(huì)水平的提高,人民可支配的收入逐漸增多,對(duì)家居環(huán)境的要求也越來(lái)越高,因此智能家居的發(fā)展就顯得尤為重要[1]。20 世紀(jì)80 年代出現(xiàn)智能家居開(kāi)始,有許多智能化的居家電器慢慢地出現(xiàn)并且變得常見(jiàn)起來(lái),其中就包括智能晾衣桿。由于無(wú)法受到陽(yáng)光的正常照射的陽(yáng)臺(tái)在45%左右,因此可以設(shè)計(jì)一種智能晾衣桿根據(jù)天氣自動(dòng)控制晾衣桿收回,防止衣物淋濕的晾衣桿,解決了雨天不能及時(shí)收衣物的困擾;在陰天的時(shí)候收回晾衣桿,晴天的時(shí)候?qū)⒁挛锪莱鋈ィ沟昧罆褚挛锔臃奖愫?jiǎn)潔,提高晾衣桿操作的可靠性、穩(wěn)定性。多功能環(huán)保智能晾衣系統(tǒng)設(shè)計(jì)成功,不僅解決人們?nèi)粘I畹碾y題,而且極大的方便居民的生活,具有良好的社會(huì)效益和經(jīng)濟(jì)效益[2]。
本次設(shè)計(jì)使用了機(jī)智云平臺(tái),機(jī)智云平臺(tái)是廣州杰升信息科技有限公司旗下品牌,是一款由機(jī)智云物聯(lián)網(wǎng)公司推出的。相對(duì)于市場(chǎng)上同類(lèi)的管理系統(tǒng),其具有獨(dú)一無(wú)二的優(yōu)點(diǎn):一是借助機(jī)智云平臺(tái),可以根據(jù)服務(wù)的場(chǎng)景布置不同的傳感器,在云平臺(tái)經(jīng)過(guò)處理后反饋給用戶(hù);二是系統(tǒng)基于機(jī)智云平臺(tái),方便二次開(kāi)發(fā),可以根據(jù)功能需求屬性等關(guān)聯(lián)查詢(xún)和上傳圖片檢測(cè)對(duì)應(yīng)目標(biāo)[3]。
本次設(shè)計(jì)的智能晾衣桿系統(tǒng)使用了機(jī)智云平臺(tái)、雨滴傳感器、光敏傳感器和電機(jī)等部分。用到了 L298N 電機(jī)驅(qū)動(dòng)模塊、ATK_ESP8266 的超高性?xún)r(jià)比的串口-無(wú)線模塊和穩(wěn)壓芯片等。
系統(tǒng)的電源模塊是為了給整個(gè)系統(tǒng)提供一個(gè)電源使得系統(tǒng)可以正常穩(wěn)定地運(yùn)行所以電源在整個(gè)設(shè)計(jì)中也是非常重要的一部分。電源電路一般采用LDO 電源芯片為系統(tǒng)供電,可以供3.3V、5V 等電源[4]。本次設(shè)計(jì)中電源有兩個(gè),3.3V 的電源接單片機(jī),12V 的電源就接 L298N。電源模塊的 VCC 接口接電源,GND 接口接地,3.3V 輸出接單片機(jī),12V 輸出接 L298N 驅(qū)動(dòng)模塊。接線需要將VCC 接口接電源,GND 接口接地,3.3V 輸出電壓接單片機(jī),12V電壓輸出接L298N 驅(qū)動(dòng)模塊。

圖1 智能晾衣桿系統(tǒng)框圖
芯片的選擇:STC89C51 芯片可以使用其他開(kāi)發(fā)者已經(jīng)編寫(xiě)好的程序代碼,不需要自己編寫(xiě),非常的方便,但是直接引用可能會(huì)導(dǎo)致自己不理解程序的編寫(xiě)規(guī)則,沒(méi)有親自體驗(yàn)設(shè)計(jì)的詳細(xì)過(guò)程,最終結(jié)果可能達(dá)不到預(yù)期的效果。而STC8A8K64S4A12 芯片需要自己編寫(xiě)程序代碼,雖然有些復(fù)雜,但是我們也可以在編寫(xiě)過(guò)程中學(xué)習(xí)到很多,發(fā)現(xiàn)一些自己平時(shí)不太注意的問(wèn)題,及時(shí)的進(jìn)行改進(jìn),從而讓自己得到提升。由于STC8A8K64S4A12 芯片的代碼與STC15F2K60S2 芯片一致,所以在設(shè)計(jì)的過(guò)程中使用STC15F2K60S2 芯片。

圖2 L298N 原理圖
通過(guò)比較STC8A8K64S4A12 和STC89C5 兩種芯片的優(yōu)點(diǎn)以及缺點(diǎn),選擇STC8A8K64S4A12 芯片。STC8A8K64S4A12芯片的內(nèi)部是自帶晶振的,所以不需要再外接晶振,只需要電源和復(fù)位電路即可。其原理圖如圖3 所示。

圖3 STC8A8K64S4A12 芯片原理圖
雨滴傳感器的主要功能是檢測(cè),它檢測(cè)是否下雨及雨量的多少,廣泛運(yùn)用在智能燈光系統(tǒng)、汽車(chē)的自動(dòng)刮水系統(tǒng)及智能天窗系統(tǒng)中。雨滴傳感器的工作原理是當(dāng)傳感器檢測(cè)到有雨水時(shí),可以自動(dòng)發(fā)生電平的轉(zhuǎn)換,從而操控電機(jī)運(yùn)行,帶動(dòng)晾衣桿及時(shí)將晾曬的衣物收回屋內(nèi),這樣就可以避免衣物被雨水淋濕而給人們帶來(lái)的二次清洗的麻煩。

圖4 雨滴傳感器電路圖
光敏傳感器的工作原理是當(dāng)光敏傳感器檢測(cè)到日照充足時(shí),其阻值就會(huì)相應(yīng)地變換。經(jīng)過(guò)測(cè)試,在室外光照強(qiáng)的照射下和光照弱的照射下,光敏電阻分別為小于320Ω 和大于15.6kΩ,知道光敏電阻在兩種情況下的電阻值,就可以判斷光照的強(qiáng)弱[5]。當(dāng)光敏傳感器檢測(cè)到日照充足的時(shí)候,控制電動(dòng)機(jī)操控晾衣桿伸出窗外,對(duì)衣物進(jìn)行晾曬,而當(dāng)光敏傳感器檢測(cè)到日照不足的時(shí)候,其阻值也會(huì)相應(yīng)的做出改變,來(lái)控制電動(dòng)機(jī)操控晾衣桿收回屋內(nèi),這樣就可以在人們忘記收回衣物時(shí)幫助人們自動(dòng)收回所晾曬衣物。
在本次設(shè)計(jì)中使用了直流電機(jī),各個(gè)部分都通過(guò)不同的方式來(lái)最終目的是操控電機(jī)運(yùn)作的,結(jié)果就是改變電機(jī)正反轉(zhuǎn)從而帶動(dòng)晾衣桿動(dòng)作,而不需要人為的提拉晾衣桿,可以說(shuō)電機(jī)在本次研究中是十分重要的部件。其參數(shù)為電壓12V,電流 2A,額定功率24W。
使用ATK_ESP8266 模塊,采用串口與 MCU 進(jìn)行通信,內(nèi)置 TCP/IP 協(xié)議線,可以實(shí)現(xiàn)串口與無(wú)線的直接轉(zhuǎn)換,其兼容 3.3V 和5V 單片機(jī)系統(tǒng),可以很方便地與產(chǎn)品連接。該模塊支持STA/AP/STA+AP 三種工作模式,可以實(shí)現(xiàn)遠(yuǎn)程控制和局域網(wǎng)絡(luò)無(wú)線控制,方便設(shè)備操作。

圖5 光敏傳感器電路圖
USB 轉(zhuǎn) ESP8266 模塊的作用是把ESP8266 無(wú)線模塊通過(guò)串口連接 PC 機(jī)的一種設(shè)備,它可以讓調(diào)試 ESP8266無(wú)線模塊變得更加方便。
穩(wěn)壓模塊使用了AMS1117 芯片進(jìn)行穩(wěn)壓,設(shè)計(jì)用于提供1A 輸出電流且工作壓差可低至1V。該穩(wěn)壓器是一個(gè)正向低壓降穩(wěn)壓器,內(nèi)部具有過(guò)熱保護(hù)和限流電路,可以在過(guò)度受熱時(shí)切斷操作。
驅(qū)動(dòng)模塊使用L298N 電機(jī)驅(qū)動(dòng)模塊。L298N 驅(qū)動(dòng)板可以驅(qū)動(dòng)兩路直流電機(jī),但本次設(shè)計(jì)只需要控制一個(gè)電機(jī)即可,所以只使能一個(gè)通道即可,使能端ENA 高電平有效,需要設(shè)置IN1 和IN2,確定電機(jī)的轉(zhuǎn)動(dòng)方向。
穩(wěn)壓模塊接12V 輸入電壓,3.3V 輸出電壓接單片機(jī),12V 電壓輸出接L298N 驅(qū)動(dòng)模塊。
本次設(shè)計(jì)使用了獨(dú)立 MCU 的方式,創(chuàng)建了四個(gè)數(shù)據(jù)點(diǎn),分別為兩個(gè)只讀數(shù)據(jù)點(diǎn)和兩個(gè)可寫(xiě)數(shù)據(jù)點(diǎn),分別代表著電機(jī)的正反轉(zhuǎn)和光敏傳感器和雨滴傳感器的信息。
機(jī)智云平臺(tái)主要目的是為了給開(kāi)發(fā)者們提供物聯(lián)網(wǎng)設(shè)備的自助開(kāi)發(fā)工具、后臺(tái)技術(shù)支持服務(wù)、設(shè)備遠(yuǎn)程操控管理、數(shù)據(jù)存儲(chǔ)分析、第三方數(shù)據(jù)整合、硬件社交化等技術(shù) 服務(wù),它不僅面向企業(yè)開(kāi)發(fā)者,同時(shí)也面向個(gè)人開(kāi)發(fā)者。
本次設(shè)計(jì)使用了手機(jī) APP 來(lái)調(diào)試,對(duì)于機(jī)智云的調(diào)試,需要在有無(wú)線路由器有信號(hào)并能連接到網(wǎng)絡(luò)時(shí),將 USB 轉(zhuǎn)ESP8266 模塊和ESP8266 連接,也就是電源和串口的四根線相連接,ESP8266 通過(guò)調(diào)試工具供給穩(wěn)定電源,再進(jìn)行APP 的設(shè)置。在手機(jī) APP 上需要單獨(dú)再注冊(cè)和登陸,并將設(shè)備進(jìn)行配置,然后就可以和電腦上的數(shù)據(jù)點(diǎn)配合使用完成相應(yīng)的功能。
我們需要進(jìn)入機(jī)智云官網(wǎng)進(jìn)行數(shù)據(jù)點(diǎn)修改。本次設(shè)計(jì)使用了四個(gè)數(shù)據(jù)點(diǎn),其中,兩個(gè)可寫(xiě)的數(shù)據(jù)點(diǎn)分別代表著電機(jī)的正轉(zhuǎn)和電機(jī)的反轉(zhuǎn),兩個(gè)只讀的數(shù)據(jù)點(diǎn)分別代表光敏傳感器和雨滴傳感器接受的數(shù)據(jù),數(shù)據(jù)點(diǎn)fout01 代表電機(jī)的正轉(zhuǎn),數(shù)據(jù)點(diǎn)fout02 代表電機(jī)的反轉(zhuǎn),數(shù)據(jù)點(diǎn)fin01 是讀取光敏傳感器的數(shù)據(jù),數(shù)據(jù)點(diǎn)fin02 是讀取雨滴傳感器的數(shù)據(jù)的。
創(chuàng)建數(shù)據(jù)點(diǎn)時(shí),需要填寫(xiě)數(shù)據(jù)的標(biāo)識(shí)名,并選擇數(shù)據(jù)的讀寫(xiě)類(lèi)型和數(shù)據(jù)類(lèi)型。需要注意的是在MCU 硬件方案選擇處需要填寫(xiě)一個(gè)產(chǎn)品密碼,這個(gè)密碼我們可以在“基本信息”選項(xiàng)中查看完整密碼,填寫(xiě)產(chǎn)品密碼之后點(diǎn)擊“生成代碼包”,這樣就完成了機(jī)智云的創(chuàng)建。
對(duì)于機(jī)智云的調(diào)試,需要在有無(wú)線路由器有信號(hào)并能連接到網(wǎng)絡(luò)時(shí),將USB 轉(zhuǎn)ESP8266 模塊和ESP8266 連接,也就是電源和串口的四根線相連接,ESP8266 通過(guò)調(diào)試工具供給穩(wěn)定電源,再進(jìn)行APP 的設(shè)置。
本設(shè)計(jì)的系統(tǒng)流程圖如圖6 所示。

圖6 程序流程圖
本設(shè)計(jì)的程序流程是首先對(duì)單片機(jī)進(jìn)行初始化,這里用電腦模擬代替單片機(jī);其次讀取雨滴傳感器的狀態(tài);再次讀取光敏傳感器的狀態(tài);然后讀取云消息狀態(tài)并設(shè)置反饋狀態(tài);接下來(lái)由兩個(gè)傳感器狀態(tài)和 云消息狀態(tài)決定電機(jī)運(yùn)行狀態(tài),最后由串口中斷函數(shù)完成云消息的接收和反饋。
由于使用了機(jī)智云平臺(tái),我們不需要自己編寫(xiě)程序,只需要在機(jī)智云平臺(tái)下載然后在Keil 中打開(kāi),并修改頭文件即可。
可以知道,如果需要修改內(nèi)容則需要在串口驅(qū)動(dòng)程序中修改底層串口,串口通信在工作時(shí)一般需要設(shè)置數(shù)據(jù)格式,波特率和工作方式。但是對(duì)STC15 芯片和STC8A8K64 S4A12 串口相關(guān)寄存器進(jìn)行比較可發(fā)現(xiàn),這兩款芯片的寄存器設(shè)置都是相同的,STC8A8K64S4A12 完全可以應(yīng)用STC15 的程序,兩者的功能與地址一致,所以在這里不需要修改底層串口。
頭文件的更改也是很簡(jiǎn)單的,只需要在工具欄的搜索那里填寫(xiě)“STC15F2K60S2”并搜索,然后將其改為“STC8.h”就可以了。
同時(shí),我們需要更改程序的對(duì)象,在左邊工程列表中找到文件夾“MCU_STC15F2K60S2_source”并點(diǎn)擊右鍵,然后在“Device”中選擇需要的“STC8A8K64S4A12”即可。
本次設(shè)計(jì)IO 口的配置需要用到P4 口,所以需要對(duì)P4口進(jìn)行設(shè)置。將P4.2 和P4.3 設(shè)置為輸入,輸入的是傳感器狀態(tài);P4.0 和P4.1 為輸出,輸出高3.3V 電平和低電平;外接傳感器作為電源的輸出。
還需要進(jìn)行兩處修改。第一處的修改是打開(kāi)Keil 軟件,找到gizwits_prodct.c 程序,搜索“user handle”,并對(duì)這幾處進(jìn)行修改,第一個(gè)“user handle”處改為 P20=0,第二個(gè)“user handle”處改為 P20=1,第三個(gè)“user handle”處改為 P21=0,第四個(gè)“user handle”處改為P21=1。
第二處修改是搜索“userHandle”程序并對(duì)P4 口和P2 口進(jìn)行相關(guān)的設(shè)置。添加如下程序:“P4M0=0x33;P4M1=0x00;P2M0=0x33;P2M1=0x00;P4=0xfe;”這些程序設(shè)置了P4 的輸入輸出狀態(tài)。還需添加“currentDataPoint.valuefin01=P42;currentDataPoint.valuefin02=P43;”這兩句程序是為了將P4 高6 位設(shè)置為準(zhǔn)雙向輸入I/O 口。
針對(duì)智能晾衣桿的設(shè)計(jì)主要是以51 單片機(jī)為基礎(chǔ),使用了機(jī)智云、雨滴傳感器和光敏傳感器,并使用了電機(jī)來(lái)操控晾衣桿。智能晾衣系統(tǒng)最大的特點(diǎn)就是操作簡(jiǎn)單、價(jià)格低、占地面積小、省時(shí)省力,達(dá)到了節(jié)約時(shí)間、便捷的目的。[5]該設(shè)計(jì)中用到了遙控系統(tǒng),可以遠(yuǎn)程操控晾衣桿,同時(shí)也實(shí)用了傳感器,可以在天氣不適合晾曬衣物時(shí)自動(dòng)檢測(cè)并使晾衣桿回到屋內(nèi),防止衣物被雨淋濕,通過(guò)遙控的方式或者通過(guò)傳感器來(lái)控制,不需要人們親自在現(xiàn)場(chǎng)操控,極大地節(jié)省了人們的時(shí)間和精力,使得晾衣桿的實(shí)用性增強(qiáng),并且變得更加的方便簡(jiǎn)潔。