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