劉波
(巢湖學(xué)院 信息工程學(xué)院,安徽 巢湖 238000)
基于yeelink開放云平臺的智能家居研究與實現(xiàn)
劉波
(巢湖學(xué)院 信息工程學(xué)院,安徽 巢湖 238000)
為減少智能家居系統(tǒng)設(shè)計和搭建的時間成本和資金成本,降低智能家居的推廣和使用的門檻,將目前日趨成熟和完善的物聯(lián)網(wǎng)公共云平臺應(yīng)用于智能家居系統(tǒng)中,研究并實現(xiàn)了一套簡單易實現(xiàn)且成本低廉的智能家居系統(tǒng),涉及到的關(guān)鍵技術(shù)包括硬件中間層及其與物聯(lián)網(wǎng)云平臺yeelink的通信,以及應(yīng)用層更加人性化的改進.
物聯(lián)網(wǎng)云平臺;yeelink;智能家居;Arduino
智能家居是以住宅為平臺,以網(wǎng)絡(luò)通信技術(shù)、自動控制技術(shù)和計算機軟件技術(shù)等為手段,將家居生活有關(guān)的設(shè)施和設(shè)備集成,搭建成的智能高效的住宅設(shè)施與家居生活的管理系統(tǒng).智能家居從最初的雛形誕生到今天,已經(jīng)有數(shù)十年歷史,至今仍然沒有進入大規(guī)模的市場應(yīng)用階段,高昂的成本和糟糕的用戶體驗是最大原因.
本課題擬研究并搭建出一個真正的成本低廉和使用起來足夠方便的智能家居系統(tǒng),使其能夠真正地進入尋常百姓家庭.為此,本系統(tǒng)選用應(yīng)用廣泛且價格低廉的Arduino為硬件中間層,將免費的開源云平臺yeelink應(yīng)用在系統(tǒng)中作為應(yīng)用層,并且基于yeelink平臺更便捷地實現(xiàn)從手機端對家居系統(tǒng)的監(jiān)控.整體架構(gòu)如圖1所示.
圖1 整體架構(gòu)
智能家居的感知層又分為硬件層和硬件中間層.硬件層包括兩類硬件,即傳感器(如溫濕度傳感器等)和執(zhí)行部件(如電機和開關(guān)等),這些所有硬件都需要一個統(tǒng)一的接口與上層交換數(shù)據(jù),這個統(tǒng)一接口就是硬件中間層,本系統(tǒng)選用使用方便且價格低廉的Arduino套件作為硬件中間層.
Arduino是一個開源的單片機系統(tǒng),包含硬件及開發(fā)環(huán)境,其接口豐富,編程簡單,可以連接市場上幾乎所有的標準傳感器和執(zhí)行部件.本系統(tǒng)采用Arduino UNO這一Arduino系列中功能齊全的版本.Arduino UNO通過Arduino傳感器擴展板即可簡單地與各種傳感器和執(zhí)行部件硬件連接.
Arduino軟件開發(fā)工具(即Arduino IDE)使用極其簡單,可在Arduino官網(wǎng)很方便的下載到,安裝也很簡單.此外,Arduino編程簡單,使用類似于Java和C語言的編程語言,Arduino IDE會自動將寫好的代碼轉(zhuǎn)化為C語言.
物聯(lián)網(wǎng)云平臺作為軟件中間層負責(zé)對下接收感知層的數(shù)據(jù),并對數(shù)據(jù)分類存儲和管理,對上則可向應(yīng)用層提供統(tǒng)一的接口.整個架構(gòu)的數(shù)據(jù)流向有兩個方向.正向是數(shù)據(jù)從硬件傳感器收集數(shù)據(jù)到硬件中間層,上傳到物聯(lián)網(wǎng)云平臺,再通過統(tǒng)一的接口提供給應(yīng)用層展示給用戶;反向為數(shù)據(jù)從用戶下達命令,通過物聯(lián)網(wǎng)云平臺再發(fā)送給硬件中間層,最后到達執(zhí)行部件.
應(yīng)用層作為與用戶直接交互的接口層,是整個物聯(lián)網(wǎng)體系中極為重要的一層,深刻影響著一款智能家居產(chǎn)品的推廣前景,因為用戶不關(guān)心底層是如何實現(xiàn)的,所有的信息都是通過應(yīng)用層展示給用戶的,而用戶的各種反饋也是通過應(yīng)用層告訴系統(tǒng)的.而從智能家居開發(fā)者的角度來看,如何省時省力地開發(fā)出應(yīng)用層的應(yīng)用,也決定著一款智能家居產(chǎn)品的命運.
目前,物聯(lián)網(wǎng)應(yīng)用方案提供商也都提出了各種各樣的平臺方案,使用到了云計算和云存儲的理念,但是遺憾的是,到目前為止,這些方案和解決思路都是封閉的,是為了解決特定問題營運而生的,他們并未向社會開放使用,這些企業(yè)大都自建云平臺,建設(shè)成本高且費時費力.
將物聯(lián)網(wǎng)公共云平臺應(yīng)用于智能家居系統(tǒng)后,對于云平臺的開發(fā)和維護、服務(wù)器集群的架設(shè)和維護、移動終端的開發(fā)和售后以及軟硬件等內(nèi)部通信的實現(xiàn)這些工作都會由物聯(lián)網(wǎng)公共云平臺來完成,因此將大大提高智能家居的設(shè)計和搭建效率,成本也將大幅降低.
yeelink作為國內(nèi)領(lǐng)先的物聯(lián)網(wǎng)公共云平臺,不僅結(jié)構(gòu)清晰,功能齊全,而且簡單易用.yeelink允許人們把各類設(shè)備的數(shù)據(jù)儲存到云服務(wù)器,并開放API允許人們通過各種方式利用這些數(shù)據(jù).注冊之后,即可通過簡單的操作將真實的傳感器數(shù)據(jù)接入云平臺中.
Arduino UNO作為硬件中間層起著上傳下達的作用,所以需要一種便捷的與云平臺的通信方式.通常Arduino硬件接入網(wǎng)絡(luò)有兩種方式,一種是給Arduino添加以太網(wǎng)模塊,通過插網(wǎng)線的方式聯(lián)網(wǎng);另一種是給Arduino添加一個Wifi模塊,通過Wifi聯(lián)網(wǎng).顯然后者的聯(lián)網(wǎng)方式更加方便易用.而支持Arduino的Wifi模塊很多,效果也不錯,比如Aduino官方的WifiShield模塊就是一個理想的選擇.
WifiShield與Arduino UNO的硬件方式連接非常簡單,只需將WifiShield插入Arduino UNO上即可.而在軟件層面,Arduino官方有現(xiàn)成的Wifi函數(shù)庫可供調(diào)用.
在軟件層面,用之前注冊的yeelink賬戶登錄yeelink平臺,即可方便地在yeelink平臺上通過圖形界面添加自己的設(shè)備及傳感器,在“用戶中心”中可查到添加的設(shè)備編號和傳感器編號以及自己打API key,這些數(shù)據(jù)在Arduino的通信程序編寫中會用到,運行這個程序即可實現(xiàn)Arduino與云平臺的通信.
圖2 手機APP上的控制界面
目前傳感器越來越多地被用到物聯(lián)網(wǎng)項目中,其原因主要是傳感器的性能更趨穩(wěn)定,精確度更高,價格也從早先的幾百塊降低到現(xiàn)在的幾元錢甚至幾毛錢,而且對于物聯(lián)網(wǎng)開發(fā)者來說使用起來也更加方便,Arduino提供有專門的傳感器擴展板,因此基于Arduino可以很方便地與各種標準傳感器在硬件上連接.搭建好傳感器節(jié)點的硬件之后,軟件方面基于Arduino IDE編寫代碼也是非常簡單,Arduino代碼會自動生成固定的代碼格式,絕大多數(shù)的傳感器節(jié)點軟件的代碼量也很少,都是幾行到幾十行代碼.至此,在軟硬件層面已搭建好傳感器節(jié)點.
在本課題的所搭建的智能家居系統(tǒng)中,每個傳感器節(jié)點與上層應(yīng)用層的通信方式采用Wifi通信,每個傳感器節(jié)點通過Arduino WifiShield模塊實現(xiàn)Wifi通信,已在本文的第3小節(jié)闡明.
應(yīng)用層完全基于yeelink平臺進行研究和實現(xiàn),而通常家居生活中,應(yīng)用層使用的終端設(shè)備主要有兩個,一個是PC端,一個是手機端.故只需在PC端或手機端登錄yeelink平臺,即可便捷的實現(xiàn)對家居狀態(tài)的數(shù)據(jù)查看和設(shè)備控制.具體地,在PC端,登錄yeelink平臺后,即可看到各種上傳到平臺的家居狀態(tài)數(shù)據(jù)并進行控制,而在手機端,則有專門的yeelink APP提供給用戶更加方便的數(shù)據(jù)展示和控制體驗,如圖2和圖3所示.
圖3 手機APP上的溫度展示
僅僅把數(shù)據(jù)發(fā)送到y(tǒng)eelink,從web頁面或APP上看到數(shù)據(jù)并控制,這還遠遠達不到我們設(shè)想的便捷的用戶體驗.因此,基于yeelink強大的事件觸發(fā)引擎,還做到了數(shù)據(jù)自動推送和自動控制,在本課題的實驗系統(tǒng)中就實現(xiàn)了如下的人性化體驗.比如:溫度傳感器達到50度的時候,發(fā)送短信給你的手機號,顏色傳感器檢測到熱水器燒水開的綠燈亮后,發(fā)布微博到所有實驗室同學(xué)微博上,這兩例就是數(shù)據(jù)自動推送;PM2.5傳感器達到100的時候,自動給驅(qū)動窗戶的電機發(fā)送控制包關(guān)閉窗戶,這是自動控制.實現(xiàn)方式即為簡單地使用yeelink事件觸發(fā)引擎,其被設(shè)計用來當某個傳感器數(shù)據(jù)達到預(yù)設(shè)閾值的時候,觸發(fā)由用戶指定的動作.
關(guān)于智能家居的用戶體驗,設(shè)想不再另外的開發(fā)和安裝手機APP,而是直接使用目前最為流行的微信實現(xiàn)更為簡便的智能家居體驗.
微信是騰訊公司于2011年推出的一款手機聊天APP,使用簡單方便,也非常流行,幾乎每個人的手機上都安裝有微信,并且有微信賬號.微信公眾平臺是微信的一個功能模塊,個人和企業(yè)都能打造自己的微信公眾號,從而實現(xiàn)和特定群體的文字、圖片、語言的全方位溝通和互動.通過微信公眾平臺和yeelink物聯(lián)網(wǎng)云平臺可實現(xiàn)智能家居更好的用戶體驗.
由于微信公眾平臺的開發(fā)模式使用的語言是PHP,并通過網(wǎng)絡(luò)服務(wù)器來調(diào)用數(shù)據(jù),可注冊新浪公司的SAE免費服務(wù)器作為微信公眾平臺調(diào)用數(shù)據(jù)所需要的服務(wù)器,進而開發(fā)者可通過微信公眾平臺的開發(fā)模式連接微信公眾平臺與yeelink物聯(lián)網(wǎng)云平臺,經(jīng)過簡單的代碼編寫后,即可實現(xiàn)類似于微信聊天界面的更為友好的人性化控制界面,這就相當于讓每一個硬件設(shè)備變成用戶的微信好友.圖4所示為用微信控制開關(guān)的界面,可以發(fā)現(xiàn)用yeelink云平臺連上微信平臺后,對于開發(fā)者來說,省去了開發(fā)APP的任務(wù),而對于用戶來說,不用再安裝別的APP,直接使用已有的微信APP即可,而且使用微信控制也更加的人性化.
圖4 用微信控制開關(guān)的界面
快速發(fā)展的物聯(lián)網(wǎng)技術(shù)為智能家居的進一步優(yōu)化和普及奠定了基礎(chǔ),硬件層可用簡單易用和廉價的Arduino及標準傳感器實現(xiàn),而服務(wù)器及應(yīng)用層可基于愈發(fā)成熟和方便易用的物聯(lián)網(wǎng)公共云平臺yeelink或同類型的其他云平臺實現(xiàn),這些技術(shù)的使用又進一步優(yōu)化了用戶的用戶體驗.
〔1〕溫江濤,張煜.物聯(lián)網(wǎng)智能家居DIY[M].北京:科學(xué)出版社,2014.10.
〔2〕張春梅.基于云服務(wù)的智能家居系統(tǒng)的研究[J].中國新通信,2014(21).
〔3〕裴超.基于云計算的智能家居系統(tǒng)架構(gòu)研究[J].軟件導(dǎo)刊,2014(3).
〔4〕王恒心,陳銳,等.邊做邊學(xué)物聯(lián)網(wǎng)技術(shù)[M].北京:人民郵電出版社,2016.2.
〔5〕yeelink官網(wǎng).http://www.yeelink.net/.
〔6〕孫駿榮,蘇海永,等.用Arduino全面打造物聯(lián)網(wǎng)[M].北京:清華大學(xué)出版社,2016.10.
〔7〕劉修文.物聯(lián)網(wǎng)技術(shù)應(yīng)用[M].北京:機械工業(yè)出版社,2015.8.
〔8〕Jorge R.Castro.Arduino家居安全系統(tǒng)構(gòu)建實戰(zhàn)[M].北京:人民郵電出版社,2016.9.
TU855;TP391.44
A
1673-260X(2017)03-0041-03
2016-11-17
安徽省高校省級科學(xué)研究重點項目(KJ2014A172);巢湖學(xué)院自然科學(xué)一般項目(XLY-201514)
赤峰學(xué)院學(xué)報·自然科學(xué)版2017年6期