貝佳豪 沈茜
摘 要: 追求方便快捷的生活方式已經(jīng)成為當(dāng)代人的目標(biāo),設(shè)計一種基于環(huán)境自感知的智能衣架,實現(xiàn)對晾曬衣物的智能控制,將進一步方便人們的生活。以物聯(lián)網(wǎng)技術(shù)為核心,采用Arduino作為主控系統(tǒng),結(jié)合Arduino豐富的傳感器探測周圍天氣環(huán)境,利用ESP8266 WIFI模塊實現(xiàn)Arduino與Android之間的數(shù)據(jù)傳輸。Android客戶端接入中國氣象局?jǐn)?shù)據(jù)中心,以JSON格式獲取當(dāng)?shù)匚磥?4小時內(nèi)的實時天氣數(shù)據(jù),達(dá)到預(yù)知降雨概率、風(fēng)力指數(shù)等信息,從而達(dá)到定時自動控制衣架的功能。
關(guān)鍵詞:智能衣架;物聯(lián)網(wǎng);傳感器;無線控制
中圖分類號:TP311 文獻標(biāo)識碼:A
Abstract:The pursuit of a convenient and fast life style has become the goal of contemporary people.We design an intelligent clothes hanger based on environmental self-detection to achieve intelligent control of clothing,which will further facilitate people's lives.Taking the Internet of things technology as the core,using Arduino as the main control system,combining with Arduino sensors to detect the surrounding weather conditions,we use ESP8266 WIFI module to achieve data transmission between Arduino and Android.The Android terminal connects with the data center of the China Meteorological Bureau and obtains simultaneously the local weather data in JSON format to achieve the automatic control of the hangers.
Keywords:intelligent hanger;Internet of things;sensor;wireless control
1 引言(Introduction)
隨著我國經(jīng)濟實力的迅速發(fā)展,人們對于生活水平的要求也隨之越來越高,方便快捷和簡單易行的生活方式已經(jīng)成為當(dāng)代人的追求。如今市面上的傳統(tǒng)衣架面對突發(fā)性氣象變化并不具備實時快捷和簡單易行的特點,當(dāng)天氣不利于衣服的晾曬時,如果人們不能及時從晾衣架收回衣物,晾曬效果就會受到影響,甚至衣物會受到損害。而智能衣架則可以解決在不同環(huán)境下衣物的晾曬問題。智能衣架通過Arduino主控板與其附帶的多種傳感器及時了解周邊環(huán)境,來應(yīng)對復(fù)雜多變的天氣環(huán)境[1]。再通過wifi等方式將數(shù)據(jù)推送至Android等移動設(shè)備上,使用戶能及時了解到衣物的情況。
2 智能衣架的設(shè)計(Design of the intelligent hanger)
2.1 總體設(shè)計
智能衣架總體設(shè)計分為硬件和軟件兩大方面。通過Arduino單片機和傳感器模塊使傳統(tǒng)衣架變得智能化,衣架重點放在軟件設(shè)計上。通過Arduino單片機,使其擁有如本地控制、遙控控制、手機遠(yuǎn)程控制、感應(yīng)控制、網(wǎng)絡(luò)控制、定時控制等功能。軟件部分有Android客戶端和Arduino控制程序。通過Android客戶端連接中國氣象局氣象數(shù)據(jù)中心,來獲取衣架所在地的天氣信息,使得智能衣架具有天氣預(yù)測功能,提前對其做出預(yù)設(shè)操作,能更好地去應(yīng)對各種天氣環(huán)境[1]。智能衣架總體設(shè)計如圖1所示。
2.2 硬件設(shè)計與選型
衣架硬件部分分為主控板、傳感器模塊、WIFI無線模塊、電機模塊、電源等五個模塊。電源連接主控板為其供電,其余模塊與主控板連接并通過主控板獲得供電。主控板通過傳感器獲取外部數(shù)據(jù),將數(shù)據(jù)通過無線模塊發(fā)送至服務(wù)器并獲取指令,從而控制電機驅(qū)動衣架的伸縮[2]。智能衣架硬件框架如圖2所示。
(1)主控板
采用Arduino MEGA2560型號主控板當(dāng)作衣架的主控板,使用Arduino官方提供的IDE進行開發(fā)。智能衣架主控板主要負(fù)責(zé)接收并處理傳感器傳輸過來的數(shù)據(jù),經(jīng)過板內(nèi)預(yù)先編寫的程序邏輯進行判斷,并最終輸出是否驅(qū)動電機模塊運行的動作命令。
(2)WIFI模塊
WIFI模塊是智能衣架與外界進行信息傳遞的模塊。如今每個家庭基本都配備有WIFI,衣架通過WIFI模塊,接入網(wǎng)絡(luò),與外界進行信息交互。
(3)電機
由于衣架需要在一定范圍內(nèi)進行伸縮移動、衣桿升降、風(fēng)扇烘干,所以需要多種電機進行工作。由于伸縮移動需要較高精度,所以采用步進電機來控制衣架伸縮。衣桿升降及風(fēng)扇無特殊精度要求,則采用直流電機。
(4)傳感器
衣架使用溫濕度傳感器獲取室外的溫度和濕度數(shù)據(jù),光敏傳感器負(fù)責(zé)獲取環(huán)境光的亮度。經(jīng)實驗,當(dāng)光敏傳感器獲取的亮度低于200時,室外基本為陰天或夜晚;室外濕度高于50時,則為潮濕天氣。主控板將獲取到的數(shù)據(jù)進行處理來判斷室外的天氣情況,在晴天時啟動步進電機驅(qū)動晾衣桿將衣架伸出室外,陰雨天氣則回收晾衣桿并啟動風(fēng)扇對衣物進行烘干。
2.3 軟件設(shè)計
由于室外天氣環(huán)境復(fù)雜,有時候衣架無法迅速做出反應(yīng),所以智能衣架的工作還會接收來自客戶端的天氣預(yù)報,結(jié)合其數(shù)據(jù)進行判定。智能衣架的軟件設(shè)計分布在衣架的主控板、WIFI模塊和衣架配對的APP三端上。三端配合使智能衣架具有了本地控制、遙控控制、手機遠(yuǎn)程控制、感應(yīng)控制、網(wǎng)絡(luò)控制、定時控制等功能。各路傳感器是衣架的感官器官,程序則是大腦,通過程序才能使衣架真正智能化起來。endprint
(1)Android客戶端軟件設(shè)計
軟件采用圖形化操作界面,既簡潔美觀,又便于操作,有利于減少用戶的學(xué)習(xí)成本,界面如圖3所示。客戶端接入中國氣象局氣象數(shù)據(jù)中心,以JSON格式獲取智能衣架所在地天氣數(shù)據(jù),并將指令通過socket通訊以字符串形式回傳給智能衣架,使衣架做出判定。考慮到有時我們需要手動操作智能衣架,我們將為衣架設(shè)計自動模式及手動模式。在自動模式下,衣架就會依據(jù)數(shù)據(jù)自行運行。在我們需要收衣物等情況下,我們可以切換至手動模式,自由控制衣架伸縮及晾曬,方便收取衣物。
(2)WIFI模塊設(shè)計
WIFI模塊與主控板通過TCP/IP串口連接在一起。主控板的數(shù)據(jù)通過串口發(fā)送至ESP8266 WIFI模塊上,ESP8266則將通過socket通訊將串口數(shù)據(jù)以字符串形式發(fā)送至客戶端,同時等待客戶端的數(shù)據(jù)返回,最終再通過串口將數(shù)據(jù)發(fā)還至主控板。
(3)主控板設(shè)計
為使主控板能應(yīng)對復(fù)雜的天氣環(huán)境并迅速對突發(fā)天氣做出判斷,需要對衣架定制一套完整的判斷條件。主控板通過Arduino的傳感器獲取到室外的天氣環(huán)境,與所制定的命令進行比對,進而決定是否進行衣服的晾曬。如在下雨天,空氣濕度會高于晴天,這時溫濕度傳感器捕捉到室外濕度過高,則會執(zhí)行回收衣架的動作并打開風(fēng)扇對衣物進行烘干。如出現(xiàn)復(fù)雜天氣,如既下雨又是霧霾的天氣,衣架則會合并兩步操作,將衣架收回并同時開啟烘干功能和紫外線殺菌功能。衣架動作判定條件如圖4所示。
3 系統(tǒng)功能的實現(xiàn)(Realization of system functions)
3.1 硬件系統(tǒng)的實現(xiàn)
智能衣架的硬件結(jié)構(gòu)是在普通拉桿式晾衣架兩支撐桿改成導(dǎo)軌并裝上滑塊,再穿入同步帶。同步帶與下方的晾衣桿固定連接。鋼絲繩的另一端連接到與步進電機相連的轉(zhuǎn)軸上,通過電動機的正反轉(zhuǎn)達(dá)到晾衣架的伸縮效果[3]。智能衣架配備有太陽能采集板,轉(zhuǎn)化陽光為太陽能后,為各個智能化子系統(tǒng)提供動力,不需要外部電源。當(dāng)陰天或者霧霾天時,紫外燈管和風(fēng)扇開啟,提供殺菌和晾干功能,保證產(chǎn)品正常工作。
智能衣架系統(tǒng)的接口設(shè)計依照國家和地區(qū)的相關(guān)標(biāo)準(zhǔn)進行,確保系統(tǒng)的擴充性和擴展性。在系統(tǒng)傳輸上采用標(biāo)準(zhǔn)的TCP/IP協(xié)議,保證不同產(chǎn)商之間系統(tǒng)可以兼容與互聯(lián)。系統(tǒng)的前端設(shè)備是多功能的、開放的、可以擴展的設(shè)備,系統(tǒng)主機、終端與模塊之間的通訊采用標(biāo)準(zhǔn)化接口設(shè)計,為外部系統(tǒng)廠商提供集成化平臺。系統(tǒng)功能可以無縫擴展,當(dāng)需要增加功能時,不必再開挖管網(wǎng),簡單可靠、方便節(jié)約。設(shè)計全部選用標(biāo)準(zhǔn)化產(chǎn)品或模塊,未來新的第三方受控設(shè)備接入時,只需要遵守規(guī)定的接口和協(xié)議。
3.2 主控板功能實現(xiàn)
主控板主要通過獲取來自傳感器的數(shù)據(jù),起到感知周圍環(huán)境的效果,通過Mack block官方給的MeAuriga庫來驅(qū)動硬件。在MeStepper類中封裝有run()、move()、moveTO()等方法,通過這些方法達(dá)到驅(qū)動步進電機轉(zhuǎn)動的效果。通過run()方法啟動步進電機,move()讓電機按一定的速度轉(zhuǎn)動。當(dāng)需要限定電機轉(zhuǎn)動的距離時,則可以調(diào)用moveTo()方法,進行精確轉(zhuǎn)動。如在陰雨天氣需要讓衣架回收至屋內(nèi)時,通過stepper.run();stepper.moveTo(0);驅(qū)動電機并讓電機回至原點就能達(dá)到回收衣架的效果。在晴天時則調(diào)用stepper.run();stepper.move(200);讓步進電機按一定速度向外伸出。MeHumiture中g(shù)etHumidity()用來獲取環(huán)境濕度[4],通過感知濕度來判斷是否需要驅(qū)動電機工作。如當(dāng)空氣濕度過高時,驅(qū)動電機回收衣架[5]。關(guān)鍵代碼如下:
3.3 WIFI功能實現(xiàn)
WIFI模塊負(fù)責(zé)收發(fā)數(shù)據(jù),為主控板和客戶端進行數(shù)據(jù)傳輸。WIFI模塊在上電工作后,會持續(xù)通過Serial.available()確認(rèn)是否有來自主控版的數(shù)據(jù)發(fā)送過來,再通過clients.write(data,len)將獲取到的數(shù)據(jù)通過socket發(fā)送至客戶端,同時通過server.available()監(jiān)聽客戶端回傳的數(shù)據(jù),最終通過Serial.write(clients.read())將數(shù)據(jù)通過串口返回至主控板[6]。WIFI通訊關(guān)鍵代碼如下:
3.4 Android客戶端實現(xiàn)
Android客戶端主要通過連接中國氣象局獲取天氣數(shù)據(jù),達(dá)到預(yù)測天氣。結(jié)合氣象局的數(shù)據(jù)及通過WIFI模塊獲取到的實際數(shù)據(jù)進行判斷,將指令通過socket通訊回傳至WIFI模塊[7],關(guān)鍵代碼如下:
4 結(jié)論(Conclusion)
使用Arduino等小型嵌入式控制芯片作為衣架設(shè)備的中央控制器,結(jié)合光電、溫濕度等傳感器感知周邊環(huán)境,將傳感器采集到的信息輸入嵌入式控制芯片后進行分析,并驅(qū)動電機實現(xiàn)自動化晾曬,使用Android等移動設(shè)備遠(yuǎn)程控制和管理衣架,達(dá)到了實時掌握衣架及其衣物當(dāng)前狀況的目的。該智能衣架系統(tǒng)綜合運用物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)等無線通訊技術(shù),使用嵌入式開發(fā)及移動應(yīng)用開發(fā)技術(shù),經(jīng)實驗證明設(shè)計方案安全可靠,運行穩(wěn)定。
參考文獻(References)
[1] 陸興華,吳恩燊,黃冠華.基于Android的智能家居控制系統(tǒng)軟件設(shè)計研究 [J].物聯(lián)網(wǎng)技術(shù),2015,5(11):14-16
[2] 焦建兵.智能遙控晾衣架系統(tǒng)設(shè)計[J].中國新通信,2016,18
(12):160.
[3] 林舜杰.晾衣架智能控制的研究與實現(xiàn)[J].電子技術(shù)與軟件工程,2016(13):149.
[4] 程晨.Arduino開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2012:
34-35.
[5] 小五義.利用ProtoThreads實現(xiàn)Arduino多線程處理[EB/OL].http://www.cnblogs.com/xiaowuyi/p/4355161.html,2017-08-16.
[6] 孫瀟楠.C#實現(xiàn)串口監(jiān)聽[EB/OL].http://www.cnblogs.com/
sunxiaonan/archive/2010/10/23/1609449.html,2017-08-15.
[7] 郭霖.第一行代碼Android[M].北京:人民郵電出版社,2014.
作者簡介:
貝佳豪(1996-),男,大專生.研究領(lǐng)域:軟件技術(shù),計算機應(yīng)用.
沈 茜(1976-),女,碩士,講師.研究領(lǐng)域:人工智能,計算機視覺.endprint