|
1緒論1.1研究背景及意義
現(xiàn)今人們的工作越來(lái)越忙碌,時(shí)間觀念備受人們關(guān)注,各種日程安排越來(lái)越多,一些生活瑣事不應(yīng)該再過(guò)多的占據(jù)人們的時(shí)間和精力。由此智能家居迅速進(jìn)入人們的生活,它無(wú)疑為人們的起居帶來(lái)了諸多方便。在這個(gè)智能化的時(shí)代,我選擇了基于物聯(lián)網(wǎng)的智能晾衣架研發(fā)。
大多數(shù)情況下,人們喜歡把洗好的衣服掛在陽(yáng)光明媚的天氣下晾曬干,可是當(dāng)我們出去的時(shí)候,天氣突然下雨,本來(lái)將要曬干的衣服又被雨水淋濕,這讓人感到十分惱火。隨著智能化科技的發(fā)展進(jìn)步,我希望有一個(gè)“活”的晾衣桿,當(dāng)天氣變暗或者下雨時(shí),它能自動(dòng)將衣服收起來(lái)。
1.2國(guó)內(nèi)外研究現(xiàn)狀
大約十年前晾衣架首次作為晾曬衣服的工具出現(xiàn)在人們的生活中,剛出來(lái)時(shí)只有手搖晾衣架,慢慢的手搖晾衣架被遠(yuǎn)距離遙控晾衣架代替。這種遠(yuǎn)距離遙控晾衣架剛出來(lái)時(shí),大多數(shù)是使用不銹鋼做成的且晾衣架的款式比較單一。隨著晾衣架在家居方面所占的經(jīng)濟(jì)比例越來(lái)越高,各大廠商開始各處奇謀,爭(zhēng)相在晾衣架上創(chuàng)新,晾衣架的款式變得越來(lái)越多,外觀也變得越來(lái)越漂亮。如今,晾衣架以不單單作為晾曬衣物的工具了,它漸漸變成了裝飾陽(yáng)臺(tái)的一道風(fēng)景線。
由于城市化經(jīng)濟(jì)的快速發(fā)展,人們?cè)谧》糠矫娴男枨笠苍絹?lái)越多,有房就會(huì)有陽(yáng)臺(tái),自動(dòng)升降晾衣架則是裝飾陽(yáng)臺(tái)的一道美麗的風(fēng)景線。而且由據(jù)權(quán)威媒體調(diào)查統(tǒng)計(jì):“自動(dòng)升降晾衣架是現(xiàn)代家庭必需品,有房就有晾衣架,需求量越來(lái)越大,自動(dòng)升降晾衣架將是家裝建材行業(yè)的最后一塊經(jīng)濟(jì)蛋糕”。
由此雅美娜公司最先致力于智能晾衣架方面的研發(fā),作為智能晾衣架研發(fā)方面的領(lǐng)頭羊,該公司近兩年陸續(xù)推出幾款智能晾衣架,填補(bǔ)其在智能家居方面的不足。不同于傳統(tǒng)的手工晾衣架,智能晾衣架在外觀方面具有獨(dú)特的金屬質(zhì)感,給用戶在視覺和觸覺上不同以往的高貴體驗(yàn),滿足了用戶追求時(shí)尚的浪潮。智能化的晾衣架不僅僅能滿足用戶的需求,也是智能家居行業(yè)的一大亮點(diǎn)。
在國(guó)內(nèi),智能家居產(chǎn)品方面已經(jīng)取得一定成果。但總體而言,晾衣架的研發(fā)卻不很理想,尤其是在行業(yè)中沒有統(tǒng)一的標(biāo)準(zhǔn)和權(quán)威性的產(chǎn)品,這阻礙了智能家居的發(fā)展。智能晾衣架是智能家居的一個(gè)產(chǎn)品,也是組成智能化生活的重要部分。估算每套智能晾衣架的成本價(jià)格不是很高,但隨著智能晾衣架的大規(guī)模的生產(chǎn)與投入使用,以及各種元件的降價(jià),智能晾衣架的經(jīng)濟(jì)效益將不斷的上升。盡管傳統(tǒng)的手搖晾衣架還在被在大規(guī)模使用,但是手搖晾衣架存在款式單一、結(jié)構(gòu)簡(jiǎn)單、操作麻煩、使用壽命短、易老化等一系列缺點(diǎn),不能滿足用戶的增益需求。由此智能晾衣架的出現(xiàn)很好的滿足了用戶的需求,它不僅具有操作簡(jiǎn)單、使用方便、外觀獨(dú)特等優(yōu)點(diǎn),還能根據(jù)環(huán)境因素的不同來(lái)自動(dòng)控制衣物的晾曬,使得忙碌的上班族的家居生活更加舒適安心,也滿足家居老人和孩子“即觸即用、方便省心、安全舒適”的后顧之憂。
1.3主要研究?jī)?nèi)容
本文以STC89C52單片機(jī)作為智能晾衣架的主控芯片,其硬件部分由單片機(jī)最小電路模塊、限位開關(guān)電路模塊、藍(lán)牙無(wú)線傳輸模塊、光敏感知模塊、雨滴采集模塊以及步進(jìn)電機(jī)模塊組成;軟件部分由程序主函數(shù)、初始化程序、工作狀態(tài)子函數(shù)以及藍(lán)牙連接程序組成。智能晾衣架能夠監(jiān)測(cè)環(huán)境中光線的強(qiáng)弱以及濕度的變化,從而控制步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)功能,實(shí)現(xiàn)晾衣架升起與下降的轉(zhuǎn)換,本文的主要功能包括:
(1)天氣濕度監(jiān)測(cè),天氣下雨時(shí)自動(dòng)收起晾衣架;
(2)光線強(qiáng)度監(jiān)測(cè),天色變暗時(shí)自動(dòng)收起晾衣架;
(3)通過(guò)手機(jī)終端控制晾衣架的升起與下落。
1.4本文的組織結(jié)構(gòu)
本文一共由六個(gè)章節(jié)組成,分別描述了智能晾衣架的研究背景及意義、總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、系統(tǒng)測(cè)試,在本文的最后一章對(duì)全文進(jìn)行了總結(jié)與展望。本文具體的組織結(jié)構(gòu)如下:
第一章緒論:闡述了智能晾衣架的研究背景及意義、國(guó)內(nèi)外研究現(xiàn)狀、主要研究?jī)?nèi)容以及本文的組織結(jié)構(gòu)。
第二章總體設(shè)計(jì),介紹了本文中主要使用的技術(shù)、系統(tǒng)設(shè)計(jì)方案、系統(tǒng)架構(gòu)設(shè)計(jì)、系統(tǒng)功能設(shè)計(jì)以及運(yùn)行環(huán)境。
第三章硬件設(shè)計(jì),對(duì)系統(tǒng)中各個(gè)部分的硬件進(jìn)行了詳細(xì)介紹。
第四章軟件設(shè)計(jì),闡述了軟件開發(fā)環(huán)境、App開發(fā)環(huán)境、設(shè)計(jì)的功能模塊流程圖以及部分核心代碼。
第五章系統(tǒng)測(cè)試:闡述系統(tǒng)的實(shí)現(xiàn)、硬件測(cè)試、軟件測(cè)試以及測(cè)試小結(jié)。
第六章總結(jié)與展望:對(duì)基于物聯(lián)網(wǎng)的智能晾衣架的設(shè)計(jì)進(jìn)行了總結(jié)并提出改進(jìn)方案。
2總體設(shè)計(jì)
2.1技術(shù)簡(jiǎn)介
2.1.1藍(lán)牙無(wú)線傳輸技術(shù)
藍(lán)牙( Bluetooth ):是最近幾年出現(xiàn)的一種無(wú)線傳輸方式,它能使個(gè)人移動(dòng)設(shè)備在局域網(wǎng)之間進(jìn)行短距離數(shù)據(jù)傳輸。藍(lán)牙無(wú)線傳輸技術(shù)是基于設(shè)備低成本的收發(fā)器芯片,主要特征表現(xiàn)為傳輸距離近、消耗功率低,并且以光學(xué)無(wú)線信號(hào)為傳播路徑,傳播的射程范圍大小由功率大小和類別的不同而有所區(qū)別,在本文中主要用藍(lán)牙模塊實(shí)現(xiàn)數(shù)據(jù)之間的傳輸。
2.1.2物聯(lián)網(wǎng)技術(shù)
物聯(lián)網(wǎng)從表面意思理解為物體與物體之間通過(guò)互聯(lián)網(wǎng)相連的技術(shù),物聯(lián)網(wǎng)技術(shù)由六個(gè)部分組成,分別是網(wǎng)絡(luò)節(jié)點(diǎn)、網(wǎng)關(guān)、接入網(wǎng)絡(luò)、傳輸網(wǎng)絡(luò)、數(shù)據(jù)服務(wù)中心、信息客戶中心。物聯(lián)網(wǎng)技術(shù)就是在約定好使用的協(xié)議后,利用各感知設(shè)備把我們感興趣的內(nèi)容獲得,并通過(guò)網(wǎng)絡(luò)將信息輸出,并進(jìn)行相應(yīng)的處理。物聯(lián)網(wǎng)技術(shù)可以實(shí)時(shí)數(shù)據(jù)的采集、實(shí)時(shí)數(shù)據(jù)的傳輸、實(shí)時(shí)數(shù)據(jù)的處理、實(shí)時(shí)數(shù)據(jù)的控制 以及實(shí)時(shí)信息服務(wù)。物聯(lián)網(wǎng)技術(shù)的組成如圖2-1所示:
圖2-1物聯(lián)網(wǎng)信息組成圖
2.2設(shè)計(jì)方案
本文的系統(tǒng)設(shè)計(jì)方案主要由三個(gè)部分組成,分別是應(yīng)用服務(wù)層、網(wǎng)絡(luò)傳輸層、感知控制層。其中應(yīng)用服務(wù)層,包括手機(jī)及手機(jī)端的應(yīng)用軟件;網(wǎng)絡(luò)傳輸層由藍(lán)牙模塊與各硬件之間的通信組成,這部分是整個(gè)設(shè)計(jì)方案控制區(qū)域的核心;感知控制層包括對(duì)天氣環(huán)境濕度監(jiān)控,光照強(qiáng)度監(jiān)控。網(wǎng)絡(luò)傳輸層和感知控制層通過(guò)設(shè)計(jì)藍(lán)牙模塊與采集模塊之間的電路實(shí)現(xiàn),應(yīng)用服務(wù)層使用Android設(shè)計(jì)的軟件控制各個(gè)模塊的運(yùn)轉(zhuǎn)。感知層的設(shè)計(jì)中運(yùn)用到了光敏傳感器和雨滴傳感器,使得晾衣架能夠在晴朗的天氣中自動(dòng)將晾衣架升起,使衣服能夠自然晾干,而在陰天或雨天能夠?qū)⒘酪录茏詣?dòng)收回。本系統(tǒng)的設(shè)計(jì)思路如下:
(1)為了方便用戶使用晾衣架,不能在墻上設(shè)計(jì)開關(guān),因此需要設(shè)計(jì)一個(gè)遙控設(shè)備實(shí)現(xiàn)對(duì)晾衣架的遠(yuǎn)程操控;
(2)為了滿足用戶對(duì)智能化生活的需求,晾衣架要設(shè)計(jì)成根據(jù)天氣因素來(lái)控制其升起與收回的功能;
2.3系統(tǒng)架構(gòu)設(shè)計(jì)
基于物聯(lián)網(wǎng)技術(shù)的智能晾衣架的架構(gòu)設(shè)計(jì)由感知監(jiān)測(cè)設(shè)備、網(wǎng)絡(luò)傳輸模塊和手機(jī)端APP三部分組成。
感知監(jiān)測(cè)設(shè)備主要由光敏傳感器、雨滴傳感器組成。感知模塊利用各種傳感器采集數(shù)據(jù),將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸協(xié)議發(fā)送到主控芯片上,藍(lán)牙模塊利用藍(lán)牙串口將數(shù)據(jù)處理更新到應(yīng)用層服務(wù)端上,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)的實(shí)時(shí)監(jiān)控。用戶操作應(yīng)用服務(wù)層軟件就可以很方便的控制晾衣架,系統(tǒng)架構(gòu)圖如2-2所示:
圖2-2 系統(tǒng)架構(gòu)圖
2.4系統(tǒng)功能設(shè)計(jì)
基于物聯(lián)網(wǎng)技術(shù)的智能晾衣架可以分為四個(gè)功能模塊,分別是感知模塊、用戶控制模塊、自動(dòng)控制模塊以及限位開關(guān)模塊。本文的系統(tǒng)功能圖如2-3所示:
圖2-3系統(tǒng)功能圖
2.4.1感知模塊
基于物聯(lián)網(wǎng)的智能晾衣架的感知模塊是用于監(jiān)測(cè)環(huán)境因素變化的,通過(guò)監(jiān)測(cè)到的數(shù)據(jù)控制晾衣架的升起與收縮;當(dāng)監(jiān)測(cè)到環(huán)境中光線變暗不足已達(dá)到晾曬衣服時(shí),步進(jìn)電機(jī)反轉(zhuǎn)控制衣架收縮下降;當(dāng)檢測(cè)到天氣下雨時(shí),監(jiān)測(cè)到的數(shù)據(jù)發(fā)送給主控芯片,主控芯片控制步進(jìn)電機(jī)進(jìn)行晾衣架下降操作。
2.4.2用戶控制模塊
用戶根據(jù)當(dāng)前環(huán)境以及自身的使用情況,使用手機(jī)軟件控制智能晾衣架的升起與下降以及步進(jìn)電機(jī)停止運(yùn)轉(zhuǎn)操作。
2.4.3自動(dòng)控制模塊
應(yīng)用服務(wù)層接收到感知層發(fā)送的數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行分析處理,當(dāng)環(huán)境因素不滿足曬衣服的條件時(shí),自動(dòng)控制步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)方向,從而實(shí)現(xiàn)晾衣架的升降控制。
2.4.4 限位開關(guān)模塊
限位開關(guān)模塊主要是為了當(dāng)晾衣架升起并達(dá)到最大高度時(shí),觸碰此模塊可以實(shí)現(xiàn)步進(jìn)電機(jī)的自動(dòng)停止轉(zhuǎn)動(dòng)功能。
2.5運(yùn)行環(huán)境
2.5.1系統(tǒng)開發(fā)環(huán)境
本文的開發(fā)環(huán)境是基于Window 7操作系統(tǒng),開發(fā)時(shí)所用到的開發(fā)工具主要包括Eclipse、Android IDE 、Keil C51 單片機(jī)編程軟件、AD繪圖軟件、proteus仿真軟件,使用JAVAEE、Android編程技術(shù)進(jìn)行軟件開發(fā),開發(fā)環(huán)境如表2-1:
表2-1開發(fā)環(huán)境表
分類
名稱
版本
語(yǔ)種
編程系統(tǒng)
Window7系統(tǒng)
2013 Microsoft
中文
編譯器
Java Development kit
Jdk1.7.0
英文
設(shè)計(jì)開發(fā)工具
Eclipse
10
英文
Android
Eclipse
Android 1.0.5
英文
單片機(jī)編程工具
Keil C51
V8.16
英文
2.5.2系統(tǒng)運(yùn)行環(huán)境
設(shè)計(jì)主要采用Eclipse編寫Android程序?yàn)閼?yīng)用端界面,網(wǎng)絡(luò)傳輸數(shù)據(jù)采用藍(lán)牙無(wú)線傳輸技術(shù),根據(jù)感知層傳輸?shù)臋z測(cè)數(shù)據(jù)對(duì)晾衣架的步進(jìn)電機(jī)進(jìn)行正轉(zhuǎn)與反轉(zhuǎn)操作,系統(tǒng)實(shí)現(xiàn)的運(yùn)行環(huán)境如表2-2:
表2-2系統(tǒng)運(yùn)行環(huán)境表
名稱
配置
操作系統(tǒng)
Window系列
Android系統(tǒng)
可以使用的Android的手機(jī)
無(wú)線傳輸模塊
藍(lán)牙模塊
數(shù)據(jù)感知模塊
傳感器模塊
3硬件設(shè)計(jì)3.1硬件總體設(shè)計(jì)
硬件的設(shè)計(jì)部分必須充分把握每個(gè)芯片的傳輸特性以及引腳排布特點(diǎn),在電路的設(shè)計(jì)時(shí)需要針對(duì)不同的芯片進(jìn)行特殊的設(shè)計(jì)。本文采用STC89C52單片機(jī)做中央處理器,利用其自帶的8位雙向I/O口與藍(lán)牙串口模塊進(jìn)行數(shù)據(jù)交互,并通過(guò)控制引腳的高低電平控制步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)狀態(tài),其硬件整體設(shè)計(jì)圖如下圖3-1所示。
圖3-1硬件總體設(shè)計(jì)
智能晾衣架設(shè)計(jì)主要由主控芯片、藍(lán)牙模塊、雨滴模塊、光敏感知模塊、電源模塊、步進(jìn)電機(jī)以及限位開關(guān)組成硬件系統(tǒng),STC89C52主控芯片為整個(gè)硬件系統(tǒng)供電。
3.2單片機(jī)選取
本文中使用STC89C52作為中央處理器,它是一種8k閃存可擦除只讀存儲(chǔ)的芯片,其特點(diǎn)為低功耗、高性能、價(jià)格低廉、功能強(qiáng)大。整個(gè)系統(tǒng)以STC89C52單片機(jī)為主控核心的硬件控制原理圖如3-2所示:
圖3-2單片機(jī)總控制原理圖
STC89C52有P0、P1、P2、P3四個(gè)數(shù)據(jù)輸出口,其中P1、P2為8位雙向I/O口,可以滿足正常的數(shù)據(jù)計(jì)算和交互需求。P0為8位漏極電路,在本文中為了穩(wěn)定整體的電路供電設(shè)計(jì),將P0口與上拉電阻相連。同時(shí)將P3口與藍(lán)牙模塊連接實(shí)現(xiàn)數(shù)據(jù)的處理,將P2作為數(shù)據(jù)輸出連接步進(jìn)電機(jī)實(shí)現(xiàn)對(duì)電機(jī)的控制,實(shí)物圖如3-3所示:
圖3-3 STC89C52實(shí)物圖
3.3光敏電阻傳感器模塊
光敏傳感器負(fù)責(zé)監(jiān)測(cè)晾衣架周圍的光照強(qiáng)度變化,將檢測(cè)數(shù)據(jù)以數(shù)字形式發(fā)送到串口監(jiān)視器,然后由主控芯片來(lái)控制步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)功能。其光敏傳感器原理圖3-4所示:
圖3-4 光敏傳感器原理圖
光敏電阻傳感器通過(guò)數(shù)字量與模擬量之間的數(shù)模轉(zhuǎn)換,控制輸出口的高低電平變化來(lái)感應(yīng)環(huán)境中的光線強(qiáng)弱變化,當(dāng)天氣中光線強(qiáng)時(shí),控制輸出口輸出高電平;光線變暗時(shí),控制輸出口輸出低電平,此模塊的實(shí)物圖如3-5所示:
圖3-5光敏電阻傳感器實(shí)物圖
3.4藍(lán)牙模塊
本文中使用藍(lán)牙傳輸模塊將感知層采集的數(shù)據(jù)發(fā)送到主控芯片,主控芯片執(zhí)行對(duì)采集數(shù)據(jù)的處理,并將處理的數(shù)據(jù)通過(guò)藍(lán)牙短距離傳輸?shù)綉?yīng)用層軟件。藍(lán)牙模塊內(nèi)部結(jié)構(gòu)的原理圖如3-6所示:
圖3-6藍(lán)牙模塊原理圖
此模塊用于接收和發(fā)送數(shù)據(jù)的引腳分別是RXD和TXD,其數(shù)據(jù)的交互也是由這兩個(gè)引腳決定,其還擁有無(wú)線射頻的觸發(fā)方案,當(dāng)STC89C52單片機(jī)的P3.0和P3.1口與其TXD和RXD相連時(shí),其接收的手機(jī)APP控制指令即可通過(guò)TXD接口發(fā)送給單片機(jī),以此來(lái)實(shí)現(xiàn)對(duì)的步進(jìn)電機(jī)控制,其實(shí)物圖如3-7所示:
圖3-7藍(lán)牙模塊實(shí)物圖
3.5雨滴模塊
雨滴模塊用于對(duì)天氣是否下雨進(jìn)行監(jiān)測(cè),并將監(jiān)測(cè)的數(shù)據(jù)轉(zhuǎn)換成數(shù)字信號(hào)和AO輸出。給硬件系統(tǒng)供電,電源指示燈亮,雨滴感應(yīng)板上沒監(jiān)測(cè)到水滴時(shí),輸出為低電平,顯示指示燈滅;給雨滴感應(yīng)板滴上水滴時(shí),控制輸出口輸出高電平,顯示指示燈亮;經(jīng)過(guò)一段時(shí)間后,將雨滴感應(yīng)板上的水滴擦拭干凈,控制輸出口恢復(fù)到輸出低電平狀態(tài),顯示指示燈又一次熄滅。利用雨滴輸出口輸出高低電平變化可以控制步進(jìn)電機(jī)的工作狀態(tài),雨滴模塊的實(shí)物圖如3-8所示:
圖3-8雨滴傳感器實(shí)物圖
3.6步進(jìn)電機(jī)模塊
本文中的步進(jìn)電機(jī)模塊,主要用于實(shí)現(xiàn)對(duì)智能晾衣架的升起與下落控制,主控芯片接收到用戶發(fā)送的指令時(shí),將相應(yīng)的指令轉(zhuǎn)化成單片機(jī)輸出的高低電平,從而控制步進(jìn)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)狀態(tài),該模塊的實(shí)物圖如3-9所示:
圖3-9步進(jìn)電機(jī)實(shí)物圖
4軟件設(shè)計(jì)4.1軟件開發(fā)環(huán)境
4.1.1單片機(jī)開發(fā)環(huán)境
隨著單片機(jī)技術(shù)的快速發(fā)展,機(jī)器的編譯語(yǔ)言與環(huán)境也逐漸向人性化發(fā)展,從最初的匯編語(yǔ)言開始轉(zhuǎn)向較為高級(jí)的C語(yǔ)言來(lái)開發(fā),Keil是目前最適合也是最流行開發(fā)8052內(nèi)核單片機(jī)的開發(fā)軟件,各大單片機(jī)制造商也開始向Keil方向靠攏。該軟件是美國(guó)的Keil Softwaere公司研發(fā)的一項(xiàng)軟件開發(fā)系統(tǒng),其最大的突破是允許用戶自定義最舒服的編譯方式來(lái)進(jìn)行編譯,其允許用戶使用匯編或C語(yǔ)言進(jìn)行編譯,MCS-51單片機(jī)全系列都可以用Keil進(jìn)行編譯,下面是Keil的使用優(yōu)勢(shì)。
1.Keil 針對(duì)8052內(nèi)核的單片機(jī)進(jìn)行了優(yōu)化,附帶了很多常用的函數(shù)和編譯快捷鍵,功能十分強(qiáng)大。
2.Keil提供了良好的編譯環(huán)境以及強(qiáng)大的仿真調(diào)試系統(tǒng)。
3.外觀采用Windows界面使用簡(jiǎn)潔方便,并可以支持用戶自定義界面,深受人們的喜愛。
其編程界面如下4-1所示:
圖4-1 Keil編輯界面
4.2.2 App開發(fā)環(huán)境
APP的開發(fā)采用JDK10.0版本為JAVA編寫的運(yùn)行環(huán)境,利用Eclipse開發(fā)環(huán)境對(duì)代碼進(jìn)行編譯開發(fā)。Eclispe是一款高效的、跨平臺(tái)的集成開發(fā)工具,相對(duì)于以前的開發(fā)工具,Eclipse將人性化的窗口設(shè)計(jì)融入到軟件中,方便快捷的工具欄和導(dǎo)入導(dǎo)數(shù)工具使其成為現(xiàn)如今最熱門的編譯工具,其編譯界面如下4-2所示:
圖4-2 Eclipse編輯界面
4.2軟件整體功能流程
根據(jù)對(duì)系統(tǒng)的需求分析的總結(jié),對(duì)基于物聯(lián)網(wǎng)的智能晾衣架的設(shè)計(jì)分為用戶操作模塊、自動(dòng)模塊兩大部分。其中自動(dòng)控制模塊包含的部分主要有步進(jìn)電機(jī)運(yùn)轉(zhuǎn)模塊、光敏電阻采集模塊以及雨滴傳感模塊。本系統(tǒng)的總體功能流程圖如圖4-3所示:
圖4-3 系統(tǒng)流程圖
本文中STC89C52單片機(jī)控制步進(jìn)電機(jī)的工作狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn))、雨滴傳感器監(jiān)測(cè)環(huán)境中是否下雨、光敏傳感器監(jiān)測(cè)環(huán)境中光線的強(qiáng)弱變化以及觸碰限位開光停止工作的部分核心代碼如下:
void main(){
init(); //執(zhí)行初始化函數(shù)
while(1){
motor_ffz();
if(Key_Value==1){
motor_ffw(); //執(zhí)行步進(jìn)電機(jī)正轉(zhuǎn)功能
}
if(Key_Value==2){
motor_ffz();//執(zhí)行步進(jìn)電機(jī)反轉(zhuǎn)功能
}
if(Key_Value==3){
P2=0xff; //電機(jī)停止運(yùn)轉(zhuǎn)
}
if(Key_Value==4){
guangkong(); //執(zhí)行光敏控制函數(shù)
}
if(xianwei1==0||xianwei2==0){ //判斷是否觸碰限位開關(guān)
Key_Value=3;
}
硬件通電時(shí),此代碼執(zhí)行初始化操作,步進(jìn)電機(jī)正常轉(zhuǎn)動(dòng),用判斷語(yǔ)句來(lái)是實(shí)現(xiàn)在不同環(huán)境中是否監(jiān)測(cè)到下雨、光線強(qiáng)弱變化、是否觸碰限位開關(guān)等情況,來(lái)執(zhí)行當(dāng)前情況下的程序。
4.3用戶模塊
用戶模塊是用戶根據(jù)環(huán)境因素的變化情況及自身使用情況來(lái)手動(dòng)改變步進(jìn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)的工作狀態(tài),用戶使用手機(jī)App人為的控制智能晾衣架的升起與下落以及停止運(yùn)轉(zhuǎn)等操作,該功能模塊的流程圖如下4-4所示:
圖4-4 用戶模塊流程圖
本文中使用switch語(yǔ)句編寫實(shí)現(xiàn)用戶根據(jù)不同環(huán)境因素控制步進(jìn)電機(jī)的工作狀態(tài)以及用戶停止步進(jìn)電機(jī)工作的部分核心代碼如下:
void time() interrupt {
if(RI){
RI=0;
switch(SBUF){ //使用switch語(yǔ)句判斷用戶對(duì)功能按鈕的控制
case 'a':Key_Value=1;break;
case 'b':Key_Value=2;break;
case 'c':Key_Value=3;break;
case 'd':Key_Value=4;break;
case 'e':guangbiaozhiwei=1; P2=0xff; break; //回到最初工作狀態(tài)
}
4.4自動(dòng)模塊
用戶開啟自動(dòng)模式時(shí),該模塊根據(jù)天氣環(huán)境的變化情況控制步進(jìn)電機(jī)的正、反轉(zhuǎn)操作,當(dāng)天色變暗時(shí)或者下雨時(shí),主控芯片通過(guò)雨滴傳感器、光敏傳感器采集的數(shù)據(jù)判斷是否滿足對(duì)衣物的晾曬情況,由此來(lái)控制晾衣架的升起與下降操作,該模塊流程圖如4-5所示:
圖4-5自動(dòng)模塊
4.4.1雨滴控制模塊
雨滴控制模塊的功能是采集晾衣架周圍是否有下雨的信息,如果沒有下雨,雨滴控制模塊就輸出高電平,下雨了就輸出低電平,當(dāng)天氣突然下雨的時(shí)候,主控芯片就會(huì)控制步進(jìn)電機(jī)反轉(zhuǎn)。實(shí)現(xiàn)功能的代碼如下:
if(tpList != null && tpList.size() != 0){ //判斷數(shù)據(jù)是否寫入成功
for(Object obj : tpList){ //遍歷獲得的數(shù)據(jù)
TempCount temp =new TempCount();
temp.setRainDrop(Integer.parseInt(arrObj[0].toString()));//設(shè)置環(huán)境是否下雨信息
temp.setCount(Integer.parseInt(arrObj[1].toString()));//設(shè)置雨滴量的數(shù)據(jù)
}
public static byte[] stringAsHex(String str){//將數(shù)據(jù)轉(zhuǎn)化成稱16進(jìn)制格式
int n=0;String ss=str;
while(ss.contains(" ")){
ss=ss.substring(ss.indexOf(" ")+1);n++
byte[] txData = new byte[(str.length()-n)/2];//將獲得的數(shù)據(jù)進(jìn)一步處理
str+=(sbyte&0xff)<16?"0"+Integer.toHexString(sbyte&0xff).toUpperCase()+insterStr:Integer.toHexString(sbyte&0xff).toUpperCase() + insterStr;
4.4.2光敏傳感模塊
手機(jī)終端App通過(guò)光敏傳感器感知到外界天氣環(huán)境中光線強(qiáng)度是否變暗(不足以滿足晾曬衣服的情況),輸出高低電平控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),其高低電平由主控芯片處理后,執(zhí)行該功能模塊的代碼如下:
try{
JSONArray jsonArray = JSONArray.fromObject(tlist);//將數(shù)據(jù)存儲(chǔ)起來(lái)
HttpServletResponse response = ServletActionContent.getResponse();//將數(shù)據(jù)發(fā)送
try{
response.setContentType("application/json;charset-UTF-8");//設(shè)置數(shù)據(jù)格式
response.getWriter().print(jsonArray.toString());//獲取相關(guān)數(shù)據(jù)
此程序模擬天色光線變化時(shí),將數(shù)據(jù)通過(guò) Json格式以及Http請(qǐng)求編寫到主程序中,當(dāng)滿足天色變暗達(dá)不到晾曬衣服時(shí),執(zhí)行程序控制步進(jìn)電機(jī)反轉(zhuǎn),將晾衣架下落。
4.4.3步進(jìn)電機(jī)控制模塊
當(dāng)天氣晴朗或者不能滿足晾曬衣服時(shí),用戶使用手機(jī)終端可以控制步進(jìn)電機(jī)正、反轉(zhuǎn)以及停止運(yùn)轉(zhuǎn)功能,實(shí)現(xiàn)對(duì)智能晾衣架的遠(yuǎn)程控制,其實(shí)現(xiàn)此模塊功能的部分程序代碼如下:
If(digitalRead(13) == DROP_HAVE){//將光照數(shù)據(jù)與寫入數(shù)據(jù)對(duì)比判斷
Counterlockwise; //步進(jìn)電機(jī)工作程序
}else{
If(lux > LUX_LIME){
If(DHT11.temperature >= TEMP_LIMIT){//濕度達(dá)到預(yù)定值,電機(jī)反轉(zhuǎn)工作
Counterlockwise
}else{
Clockwise;
}else{
Counterclockwise;
}
4.5藍(lán)牙連接模塊
手機(jī)終端與藍(lán)牙模塊進(jìn)行通信時(shí),首先要建立藍(lán)牙設(shè)備的線程,連接藍(lán)牙設(shè)備的線程類構(gòu)造函數(shù),并生成一個(gè)BluetoothSocket接口,并且成功到連接手機(jī)終端時(shí),部分核心代碼如下:
private class ConnectThread extends Thread {//連接藍(lán)牙設(shè)備的線程
private final BluetoothSocket mmSocket; //定義socket藍(lán)牙接口
private final BluetoothDevice mmDevice; //定義藍(lán)牙服務(wù)變量
public ConnectThread(BluetoothDevice device) {//連接藍(lán)牙設(shè)備的線程類的構(gòu)造函數(shù)
mmSocket.connect();//BluetoothSocket連接
當(dāng)手機(jī)終端與藍(lán)牙模塊連接發(fā)生異常時(shí),BluetoothSocket接口關(guān)閉,并執(zhí)行藍(lán)牙連接失敗的處理函數(shù),此時(shí)用戶需要斷開與藍(lán)牙的連接,重新建立手機(jī)終端與藍(lán)牙設(shè)備之間的通信,部分核心代碼如下:
try {
mmSocket.close();//如果發(fā)生異常(連接失敗)則將BluetoothSocket關(guān)閉
} catch (IOException error) {//捕獲異常,并打印錯(cuò)誤信息
Log.e(TAG, "unable to close() " + " socket during connection failure", error);
}
connectionFailed();//藍(lán)牙連接失敗處理
5系統(tǒng)測(cè)試5.1系統(tǒng)功能實(shí)現(xiàn)
根據(jù)設(shè)計(jì)的總體架構(gòu),進(jìn)行了詳細(xì)的系統(tǒng)設(shè)計(jì),本文中的整體環(huán)境已經(jīng)搭建成功,實(shí)現(xiàn)了大部分預(yù)期目標(biāo)。硬件設(shè)備通過(guò)藍(lán)牙進(jìn)行數(shù)據(jù)傳輸,手機(jī)軟件采用Android語(yǔ)言開發(fā),整個(gè)系統(tǒng)的實(shí)物硬件如圖5-1所示:
圖5-1 硬件實(shí)物圖
經(jīng)過(guò)對(duì)手機(jī)APP程序的多方面調(diào)試,整合代碼編譯并最終在手機(jī)上運(yùn)行,基本功能已經(jīng)得到實(shí)現(xiàn)。整個(gè)界面簡(jiǎn)潔、操作簡(jiǎn)單、用戶上手即用,其軟件界面圖如5-2所示:
圖5-2軟件界面圖
5.2測(cè)試環(huán)境
運(yùn)行裝有windows 系統(tǒng)的電腦,要求最低配置操作系統(tǒng)32位,CPU內(nèi)存2GB,打開keil軟件能成功將程序燒錄到單片機(jī)中,打開Eclipse軟件運(yùn)行編寫好的代碼,并將代碼安裝到裝有Android系統(tǒng)的手機(jī)上。
5.3硬件測(cè)試
硬件測(cè)試主要測(cè)試步進(jìn)電機(jī)在不同環(huán)境中的工作狀態(tài)是否正常,將整個(gè)硬件實(shí)物放置在泡沫板上,使用USB數(shù)據(jù)線給硬件電路上電,檢測(cè)硬件電路各個(gè)模塊的電路連接是否正常,按下電源的復(fù)位開關(guān),測(cè)試步進(jìn)電機(jī)的工作狀態(tài),通電后步進(jìn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)功能;測(cè)試光感敏傳感器檢測(cè)光線強(qiáng)度有明顯變化時(shí),步進(jìn)電機(jī)的工作狀態(tài)是否有改變;測(cè)試雨滴傳感器檢測(cè)有雨滴落下時(shí),步進(jìn)電機(jī)的工作狀態(tài)是否有改變,測(cè)試結(jié)果如下表5-1所示:
表5-1硬件測(cè)試表
編號(hào)
Test1
測(cè)試目的
測(cè)試硬件設(shè)備能否正常工作
測(cè)試步驟
給硬件設(shè)備供電,測(cè)試不同天氣環(huán)境中電機(jī)的工作狀態(tài)
預(yù)期結(jié)果
步進(jìn)電機(jī)工作正常
測(cè)試結(jié)果
步進(jìn)電機(jī)工作正常
5.4軟件測(cè)試
軟件測(cè)試主要測(cè)試硬件設(shè)備在手機(jī)終端的控制下,各個(gè)模塊的工作是否正常。打開藍(lán)牙,搜索并匹配連接硬件設(shè)備,連接成功后,打開手機(jī)操作界面,點(diǎn)擊軟件界面中的正轉(zhuǎn)按鈕,步進(jìn)電機(jī)正常工作;點(diǎn)擊軟件界面中的反轉(zhuǎn)按鈕,步進(jìn)電機(jī)正常工作;點(diǎn)擊軟件界面中的停止按鈕,步進(jìn)電機(jī)正常工作;點(diǎn)擊軟件界面中的自動(dòng)模式按鈕,步進(jìn)電機(jī)根據(jù)環(huán)境因素的不同,實(shí)現(xiàn)不同狀態(tài)的轉(zhuǎn)動(dòng),測(cè)試結(jié)果如下表5-2所示:
表5-2軟件測(cè)試表
編號(hào)
Test2
測(cè)試目的
測(cè)試手機(jī)App功能模塊是否正常工作
測(cè)試步驟
打開界面操作不同功能按鈕,查看電機(jī)的工作狀態(tài)
預(yù)期結(jié)果
按鈕功能正常
測(cè)試結(jié)果
按鍵功能正常
5.5測(cè)試小結(jié)
通過(guò)對(duì)軟件系統(tǒng)和硬件系統(tǒng)的多次、多方面的測(cè)試可以得出結(jié)論,智能晾衣架的功能基本達(dá)到預(yù)期目標(biāo),不會(huì)發(fā)生晾衣機(jī)不工作的情況,且在不同外界環(huán)境中,步進(jìn)電機(jī)符合不同環(huán)境下的工作情況(電機(jī)正轉(zhuǎn)與反轉(zhuǎn)控制晾衣架的升起與下落)。
6總結(jié)與展望
本文運(yùn)用物聯(lián)網(wǎng)技術(shù)的感知控制層、網(wǎng)絡(luò)傳輸層、應(yīng)用服務(wù)層為框架,總結(jié)設(shè)計(jì)出智能晾衣架系統(tǒng)。感知控制層通過(guò)了解雨滴傳感器、光敏電阻傳感器的基本原理以及各個(gè)引腳的電路原理搭建一套完整的感知層服務(wù);網(wǎng)絡(luò)傳輸層通過(guò)了解藍(lán)牙模塊通信協(xié)議和工作原理實(shí)現(xiàn)數(shù)據(jù)的交互;應(yīng)用服務(wù)層通過(guò)學(xué)習(xí)Android編程語(yǔ)言、java編程語(yǔ)言設(shè)計(jì)一款簡(jiǎn)單實(shí)用的操作軟件。最后,對(duì)整個(gè)系統(tǒng)設(shè)計(jì)進(jìn)行到了測(cè)試和研究性工作總結(jié)。
智能晾衣架系統(tǒng)主要分為系統(tǒng)終端設(shè)計(jì)和硬件實(shí)現(xiàn)兩部分。系統(tǒng)終端設(shè)計(jì)是使用Android語(yǔ)言編寫的簡(jiǎn)易操作界面,用戶點(diǎn)擊界面中的功能按鈕可以實(shí)現(xiàn)對(duì)晾衣架工作狀態(tài)的控制,信息傳輸以藍(lán)牙設(shè)備為硬件基礎(chǔ),使用java語(yǔ)言編寫相應(yīng)的通信接口,實(shí)現(xiàn)感知控住層與中央處理器的數(shù)據(jù)交互;硬件實(shí)現(xiàn)以STC89C52單片機(jī)作為整個(gè)系統(tǒng)的控制核心,設(shè)計(jì)出雨滴、光敏傳感模塊的電路原理圖,實(shí)現(xiàn)輸出高低電平控制步進(jìn)電機(jī)的工作狀態(tài),設(shè)計(jì)簡(jiǎn)易限位開關(guān)模塊用于停止步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)工作。
本文中智能晾衣架設(shè)計(jì)也有需要改進(jìn)的地方,很多的設(shè)計(jì)理念是在一定理想狀態(tài)下進(jìn)行的。比如,該設(shè)計(jì)中的步進(jìn)電機(jī)不能長(zhǎng)時(shí)間在高溫環(huán)境下運(yùn)轉(zhuǎn),其自身產(chǎn)生的熱量會(huì)對(duì)步進(jìn)電機(jī)有一定的損耗;該智能晾衣架是一種簡(jiǎn)單實(shí)用的類型,在某些方面不能滿足用戶的需求;在軟件設(shè)計(jì)方面,由于開發(fā)經(jīng)驗(yàn)不足,模塊化編程思想運(yùn)用不夠熟練,導(dǎo)致頁(yè)面布局不夠美觀,人性化設(shè)計(jì)不很是完美。如果能解決這些不足之處,我相信此智能晾衣架一定會(huì)在智能控制方面達(dá)到更加完美的效果。
參考文獻(xiàn)
[1] 盧艷軍主編.單片機(jī)基本原理及應(yīng)用系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2005.
[2] 單成祥.傳感器的理論與設(shè)計(jì)基礎(chǔ)及其應(yīng)用[M] .北京:國(guó)防工業(yè)出版社, 1999.
[3] 孫育才, 孫華芳,王榮興編著.單片機(jī)原理及其應(yīng)用[M].北京:電子工業(yè)出版,2006.
[4] 唐穎.單片機(jī)原理與應(yīng)用及 C51 程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,2008.
[5] 趙亮,侯國(guó)銳.單片機(jī) C 語(yǔ)言編程與實(shí)例[M].北京:人民郵電出版社,2003.
[6] 薛小鈴,劉志群,賈俊榮.單片機(jī)接口模塊應(yīng)用與開發(fā)實(shí)例詳解[M].北京:北京航空航天大學(xué)出版社,2010.
[7] 白延敏.51 單片機(jī)典型系統(tǒng)開發(fā)實(shí)例精講[M].北京:電子工業(yè)出版社,2009.
[8] 周潤(rùn)景,徐宏偉,丁莉.單片機(jī)電路設(shè)計(jì)、分析與制作[M].北京:機(jī)械工業(yè)出版社,2010.
[9]王桂榮,李憲芝.傳感器原理及應(yīng)用[M].北京:中國(guó)電力出版社,2010.
[10] 郁亞男.基于Android平臺(tái)藍(lán)牙設(shè)備音頻應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.
[11]王港元.電工電子實(shí)踐指導(dǎo).江西:江西科學(xué)技術(shù)出版社,2005.
[12]Bing Liu,Tao Wu. Design and Application of Single Chip Microcomputer in SCR Light Regulation Circuit[J]. Applied Mechanics and Materials,2013,2754(431):.
[13]Hong Li,Si Qing Zhang. Design for Robot Control Board Based on AVR Single Chip Microcomputer[J]. Applied Mechanics and Materials,2014,2935(484):.
[14]Bing Liu,Tao Wu. Design and Application of Single Chip Microcomputer in SCR Light Regulation Circuit[J]. Applied Mechanics and Materials,2013,2754(431):.
[15]Yu P, Ji Y, Lee S, Luo H. Application of single crystalline PMN-PT and PIN-PMN-PT in high-performance pyroelectric detectors[J]. Applications of Ferroelectrics (ISA/PFM),2011,24-27.
[16]Efthymiou, S, Ozanyan K B. Advanced simulator of pyroelectric detector circuits and associated signal processing[J]. AFRICON, 2011,1-6.
致 謝
在大學(xué)度過(guò)了四年的緊張學(xué)習(xí)時(shí)光,系統(tǒng)地學(xué)習(xí)了物聯(lián)網(wǎng)工程各方面知識(shí),深深的佩服各位專業(yè)老師的學(xué)識(shí),從中我不僅僅
|
評(píng)分
-
查看全部評(píng)分
|