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