王俊童+劉艷艷+蘭旭婷
摘 要:"基于樹莓派通過java實遠程控制和接收數據的智能家居",采取以智能手機發送數據到服務器,在通過服務器返回數據到樹莓派使之做出相應的處理,本項目設計使智能家居突破傳統的地理位置和空間上的限制,無論用戶身處室內或室外都可以對家居進行控制,和實現對家庭內部設備的控制。如今我們僅僅需要一部智能手機,就可以對家里的家居完全的掌控,和對家里的情況完全的了解,如:當我們下班回家的路上,我們完全可以僅僅通過控制手機,就可以把家里的臺燈、風扇打開。
由西北民族大學電氣工程學院"雙E"項目資助(項目編號:20161823 )
1 緒論
近年來,隨著信息技術的更新換代,物聯網技術取得了長足的發展和進步,物聯網這一新興的信息革命產物受到了密切的關注,在智能化領域也得到了廣泛的應用,這一現象在貼近我們生活的智能家居行業更是尤為突出。針對當前智能家居系統結構復雜、成本高昂的問題,采用價格低廉的樹莓派作為家庭網關、開源硬件Arduino Uno作為微控制器、yeelink作為網絡服務平臺,并通過編程語言來搭建控制開關,從而有效的簡化了智能家居系統的控制結構,降低了開發成本。實驗結果驗證了此方法的有效性。
2 整體設計方案
具體設計方案如圖2-1所示,1和7分別代表是遠程控制的PC端和手機端,即為三級結構中的控制層,2代表以太網,即系統中的yeelink網絡服務平臺,3表示路由器,即連接以太網的網絡硬件設施,2、3共同組成控制信息的傳輸層,4代表以AVR為核心的Arduino Uno微控制器,5代表網絡信號,6代表搭載在Arduino Uno上的LED小燈,處于系統的被控制層。在這個設計中,用戶可以通過PC端或者手機終端訪問yeelink網絡服務平臺,在平臺上遠程查看小燈的開關情況,并可以通過同樣路徑對于小燈進行控制,當點擊開關按鈕時,yeelink網絡服務平臺會通過相應的轉換程序將開關小燈的指令信息發送給Arduino Uno微控制器,從而實現對于室內小燈的控制。
3系統開發設計
該部分主要介紹系統所采用的技術及開發工具,涉及采用的架構有:樹莓派、LINUX系統、Python和JAVA語言、Arduino Uno單片機、網絡服務平臺等。
3.1 Arduino Uno硬件設計
Arduino是一款基于AVR的微控制器的開源硬件,近年來,因其良好的開源性和以及高度的可擴展性,得到了迅速的發展,在帶有傳感器的系統設計領域得到了廣泛的應用。Arduino Uno的硬件設計所采用的協議是CC BY-SA3.0,UNO型號的Arduino具有1KB的EEPROM、32KB的Flash、14路數字輸入輸出口,其中6路為PWM輸出,6路為模擬輸入口,還有ICSP下載線接口,支持在線燒寫程序同時在UNO里,還預先設置了Bootloader程序,因此在給板子燒寫程序時,并不需要外部燒寫器,直接通過USB接口下載程序即可,同時該板子還帶有復位鍵、USB程序燒寫口和電源接口。
在本智能家居的控制開關的設計中,為了實現遠程控制功能,作為搭載底層傳感器的Arduino Uno也需要具備聯網功能,,此時我們需要借助一款具備聯網功能的擴展板Arduino Ethernet,它可以讓Arduino控制器連接網絡。
3.2 樹莓派的基本配置和開發
作為系統的控制中心,樹莓派上需要萬層控制功能的開發和配置,因此除了核心部件開發板以外,還需要針對樹莓派配備其他的硬件外設:連接網線、配備鼠標鍵盤,通過HDMI高清輸出線,將樹莓派與顯示器相連。然后就需要進行具體的配置的步驟:首先為樹莓派安裝操作系統,將Raspbian系統的鏡像文件通過Win32DiskImager解壓導入SD卡中,將SD卡插入樹莓派的SD卡槽,接通電源,然后就進入了樹莓派的內部配置界面 raspi-config,此時需要針對開關的功能需要進行配置,在本研究中,為了更充分的利用樹莓派的內部空間,選擇expand_rootfs這一項,將它的大小擴展到與SD卡大小相同;為了實現控制功能和其他應用軟件的安裝,需要使樹莓派具備網絡功能,因此選取 NG8508-GS無線網卡,將無線網卡插入后,重新啟動樹莓派,等開機以后,輸入sudo lsusb命令行。
3.3 網絡服務平臺的配置
作為針對物聯網開發應用的云端網絡服務平臺,要利用yeelink完成智能家居控制開關的設計,實現Arduino Uno與yeelink的數據傳遞和信息交互,就必須為所接入的設備申請yeelink所分配的ID號和API key,同時需要指明傳感器的類型和數據格式,然后通過HTTP POST請求為傳感器分配ID號。在yeelink平臺上,API key為設備操作的識別號,控制功能的實現。同時還需要根據硬件的實際連接情況,設置相應的端口,比如設置通信的波特率為9600,輸出為5號口。設置完基本的硬件連接,確定網絡連通后,程序就進入了主體的執行部分,此部分主要進行的功能是實現yeelink與Arduino Uno的網絡通信,以及實現對Arduino Uno的遠程控制,當用戶進入yeelink平臺的網絡界面,選擇關燈時,yeelink會向Arduino發送"turn off the LED"指令,給5號口所接的LED小燈輸出低電平實現關燈功能;當用戶選擇開燈時,點擊開燈按鈕,yeelink會向Arduino發送"turn on the LED"指令,給5號口所接的LED小燈輸出高電平實現開燈功能。
4 結論
本論文所研究的基于樹莓派通過java實遠程控制和接收數據的智能家居,不僅可以隨時隨地的查看控制照明設備的情況,還可以在此基礎上,增添其他類型的傳感器,完善平臺功能,實現人與物之間的信息交互,真正賦予物體以智慧和溝通能力,同時這種開發模式并不局限于智能家居,還可以應用在工業、農業的環境中,達到高效生產、節能減排的作用。
參考文獻:
[1] 李凡希.愛上Raspberry Pi.北京:科學出版社,2013.
[2] 郭天祥.新概念51單片機C語言教程.北京:電子工業出版社,2009.