劉波
(巢湖學院 信息工程學院,安徽 巢湖 238000)
基于yeelink開放云平臺的智能家居研究與實現
劉波
(巢湖學院 信息工程學院,安徽 巢湖 238000)
為減少智能家居系統設計和搭建的時間成本和資金成本,降低智能家居的推廣和使用的門檻,將目前日趨成熟和完善的物聯網公共云平臺應用于智能家居系統中,研究并實現了一套簡單易實現且成本低廉的智能家居系統,涉及到的關鍵技術包括硬件中間層及其與物聯網云平臺yeelink的通信,以及應用層更加人性化的改進.
物聯網云平臺;yeelink;智能家居;Arduino
智能家居是以住宅為平臺,以網絡通信技術、自動控制技術和計算機軟件技術等為手段,將家居生活有關的設施和設備集成,搭建成的智能高效的住宅設施與家居生活的管理系統.智能家居從最初的雛形誕生到今天,已經有數十年歷史,至今仍然沒有進入大規模的市場應用階段,高昂的成本和糟糕的用戶體驗是最大原因.
本課題擬研究并搭建出一個真正的成本低廉和使用起來足夠方便的智能家居系統,使其能夠真正地進入尋常百姓家庭.為此,本系統選用應用廣泛且價格低廉的Arduino為硬件中間層,將免費的開源云平臺yeelink應用在系統中作為應用層,并且基于yeelink平臺更便捷地實現從手機端對家居系統的監控.整體架構如圖1所示.

圖1 整體架構
智能家居的感知層又分為硬件層和硬件中間層.硬件層包括兩類硬件,即傳感器(如溫濕度傳感器等)和執行部件(如電機和開關等),這些所有硬件都需要一個統一的接口與上層交換數據,這個統一接口就是硬件中間層,本系統選用使用方便且價格低廉的Arduino套件作為硬件中間層.
Arduino是一個開源的單片機系統,包含硬件及開發環境,其接口豐富,編程簡單,可以連接市場上幾乎所有的標準傳感器和執行部件.本系統采用Arduino UNO這一Arduino系列中功能齊全的版本.Arduino UNO通過Arduino傳感器擴展板即可簡單地與各種傳感器和執行部件硬件連接.
Arduino軟件開發工具(即Arduino IDE)使用極其簡單,可在Arduino官網很方便的下載到,安裝也很簡單.此外,Arduino編程簡單,使用類似于Java和C語言的編程語言,Arduino IDE會自動將寫好的代碼轉化為C語言.
物聯網云平臺作為軟件中間層負責對下接收感知層的數據,并對數據分類存儲和管理,對上則可向應用層提供統一的接口.整個架構的數據流向有兩個方向.正向是數據從硬件傳感器收集數據到硬件中間層,上傳到物聯網云平臺,再通過統一的接口提供給應用層展示給用戶;反向為數據從用戶下達命令,通過物聯網云平臺再發送給硬件中間層,最后到達執行部件.
應用層作為與用戶直接交互的接口層,是整個物聯網體系中極為重要的一層,深刻影響著一款智能家居產品的推廣前景,因為用戶不關心底層是如何實現的,所有的信息都是通過應用層展示給用戶的,而用戶的各種反饋也是通過應用層告訴系統的.而從智能家居開發者的角度來看,如何省時省力地開發出應用層的應用,也決定著一款智能家居產品的命運.
目前,物聯網應用方案提供商也都提出了各種各樣的平臺方案,使用到了云計算和云存儲的理念,但是遺憾的是,到目前為止,這些方案和解決思路都是封閉的,是為了解決特定問題營運而生的,他們并未向社會開放使用,這些企業大都自建云平臺,建設成本高且費時費力.
將物聯網公共云平臺應用于智能家居系統后,對于云平臺的開發和維護、服務器集群的架設和維護、移動終端的開發和售后以及軟硬件等內部通信的實現這些工作都會由物聯網公共云平臺來完成,因此將大大提高智能家居的設計和搭建效率,成本也將大幅降低.
yeelink作為國內領先的物聯網公共云平臺,不僅結構清晰,功能齊全,而且簡單易用.yeelink允許人們把各類設備的數據儲存到云服務器,并開放API允許人們通過各種方式利用這些數據.注冊之后,即可通過簡單的操作將真實的傳感器數據接入云平臺中.
Arduino UNO作為硬件中間層起著上傳下達的作用,所以需要一種便捷的與云平臺的通信方式.通常Arduino硬件接入網絡有兩種方式,一種是給Arduino添加以太網模塊,通過插網線的方式聯網;另一種是給Arduino添加一個Wifi模塊,通過Wifi聯網.顯然后者的聯網方式更加方便易用.而支持Arduino的Wifi模塊很多,效果也不錯,比如Aduino官方的WifiShield模塊就是一個理想的選擇.
WifiShield與Arduino UNO的硬件方式連接非常簡單,只需將WifiShield插入Arduino UNO上即可.而在軟件層面,Arduino官方有現成的Wifi函數庫可供調用.
在軟件層面,用之前注冊的yeelink賬戶登錄yeelink平臺,即可方便地在yeelink平臺上通過圖形界面添加自己的設備及傳感器,在“用戶中心”中可查到添加的設備編號和傳感器編號以及自己打API key,這些數據在Arduino的通信程序編寫中會用到,運行這個程序即可實現Arduino與云平臺的通信.

圖2 手機APP上的控制界面
目前傳感器越來越多地被用到物聯網項目中,其原因主要是傳感器的性能更趨穩定,精確度更高,價格也從早先的幾百塊降低到現在的幾元錢甚至幾毛錢,而且對于物聯網開發者來說使用起來也更加方便,Arduino提供有專門的傳感器擴展板,因此基于Arduino可以很方便地與各種標準傳感器在硬件上連接.搭建好傳感器節點的硬件之后,軟件方面基于Arduino IDE編寫代碼也是非常簡單,Arduino代碼會自動生成固定的代碼格式,絕大多數的傳感器節點軟件的代碼量也很少,都是幾行到幾十行代碼.至此,在軟硬件層面已搭建好傳感器節點.
在本課題的所搭建的智能家居系統中,每個傳感器節點與上層應用層的通信方式采用Wifi通信,每個傳感器節點通過Arduino WifiShield模塊實現Wifi通信,已在本文的第3小節闡明.
應用層完全基于yeelink平臺進行研究和實現,而通常家居生活中,應用層使用的終端設備主要有兩個,一個是PC端,一個是手機端.故只需在PC端或手機端登錄yeelink平臺,即可便捷的實現對家居狀態的數據查看和設備控制.具體地,在PC端,登錄yeelink平臺后,即可看到各種上傳到平臺的家居狀態數據并進行控制,而在手機端,則有專門的yeelink APP提供給用戶更加方便的數據展示和控制體驗,如圖2和圖3所示.

圖3 手機APP上的溫度展示
僅僅把數據發送到yeelink,從web頁面或APP上看到數據并控制,這還遠遠達不到我們設想的便捷的用戶體驗.因此,基于yeelink強大的事件觸發引擎,還做到了數據自動推送和自動控制,在本課題的實驗系統中就實現了如下的人性化體驗.比如:溫度傳感器達到50度的時候,發送短信給你的手機號,顏色傳感器檢測到熱水器燒水開的綠燈亮后,發布微博到所有實驗室同學微博上,這兩例就是數據自動推送;PM2.5傳感器達到100的時候,自動給驅動窗戶的電機發送控制包關閉窗戶,這是自動控制.實現方式即為簡單地使用yeelink事件觸發引擎,其被設計用來當某個傳感器數據達到預設閾值的時候,觸發由用戶指定的動作.
關于智能家居的用戶體驗,設想不再另外的開發和安裝手機APP,而是直接使用目前最為流行的微信實現更為簡便的智能家居體驗.
微信是騰訊公司于2011年推出的一款手機聊天APP,使用簡單方便,也非常流行,幾乎每個人的手機上都安裝有微信,并且有微信賬號.微信公眾平臺是微信的一個功能模塊,個人和企業都能打造自己的微信公眾號,從而實現和特定群體的文字、圖片、語言的全方位溝通和互動.通過微信公眾平臺和yeelink物聯網云平臺可實現智能家居更好的用戶體驗.
由于微信公眾平臺的開發模式使用的語言是PHP,并通過網絡服務器來調用數據,可注冊新浪公司的SAE免費服務器作為微信公眾平臺調用數據所需要的服務器,進而開發者可通過微信公眾平臺的開發模式連接微信公眾平臺與yeelink物聯網云平臺,經過簡單的代碼編寫后,即可實現類似于微信聊天界面的更為友好的人性化控制界面,這就相當于讓每一個硬件設備變成用戶的微信好友.圖4所示為用微信控制開關的界面,可以發現用yeelink云平臺連上微信平臺后,對于開發者來說,省去了開發APP的任務,而對于用戶來說,不用再安裝別的APP,直接使用已有的微信APP即可,而且使用微信控制也更加的人性化.

圖4 用微信控制開關的界面
快速發展的物聯網技術為智能家居的進一步優化和普及奠定了基礎,硬件層可用簡單易用和廉價的Arduino及標準傳感器實現,而服務器及應用層可基于愈發成熟和方便易用的物聯網公共云平臺yeelink或同類型的其他云平臺實現,這些技術的使用又進一步優化了用戶的用戶體驗.
〔1〕溫江濤,張煜.物聯網智能家居DIY[M].北京:科學出版社,2014.10.
〔2〕張春梅.基于云服務的智能家居系統的研究[J].中國新通信,2014(21).
〔3〕裴超.基于云計算的智能家居系統架構研究[J].軟件導刊,2014(3).
〔4〕王恒心,陳銳,等.邊做邊學物聯網技術[M].北京:人民郵電出版社,2016.2.
〔5〕yeelink官網.http://www.yeelink.net/.
〔6〕孫駿榮,蘇海永,等.用Arduino全面打造物聯網[M].北京:清華大學出版社,2016.10.
〔7〕劉修文.物聯網技術應用[M].北京:機械工業出版社,2015.8.
〔8〕Jorge R.Castro.Arduino家居安全系統構建實戰[M].北京:人民郵電出版社,2016.9.
TU855;TP391.44
A
1673-260X(2017)03-0041-03
2016-11-17
安徽省高校省級科學研究重點項目(KJ2014A172);巢湖學院自然科學一般項目(XLY-201514)