周棟梁+郭永安
摘 要: 隨著物聯(lián)網(wǎng)的發(fā)展,智能家居越來(lái)越被人們重視。為了解決智能家居中使用ZigBee高成本的問(wèn)題,本文介紹了以樹(shù)莓派為主的控制端,Arduino開(kāi)發(fā)板和無(wú)線模塊作為數(shù)據(jù)反饋端,實(shí)現(xiàn)了在WiFi環(huán)境下,對(duì)LED燈的開(kāi)關(guān)控制,并反饋LED燈真實(shí)亮滅情況。簡(jiǎn)化了智能家居的控制結(jié)構(gòu),并降低了成本。
關(guān)鍵詞: 智能家居;樹(shù)莓派;Arduino;WiFi;開(kāi)關(guān)控制
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):2095-2163(2017)02-0038-04
Abstract: With the development of the Internet of Things, smart home has attracted growing attention.In order to solve the problem of high cost of using ZigBee in smart home, this paper introduces Raspberry as the console, Arduino development board and wireless module as the data feedback terminal, which realizes the switch control of LED and the real situation feedback of LED in WiFi environment. The research simplifies the control structure of the smart home, and reduces the cost.
Keywords:smart home; Raspberry pie;Arduino; WiFi; switch control
0 引 言
隨著智能家居的普及發(fā)展,使用智能家居產(chǎn)品已然成為時(shí)尚自然首選。然而當(dāng)今市面上主要是使用ZigBee來(lái)設(shè)計(jì)實(shí)現(xiàn)智能家居的核心控制,ZigBee的使用不僅是成本有所增加,安裝也變得復(fù)雜,而且還不能直接連接用戶手機(jī)。WiFi控制即可有效避免這些問(wèn)題,WiFi的速度相對(duì)較快,無(wú)需網(wǎng)橋就可接入互聯(lián)網(wǎng),而且可以與手機(jī)進(jìn)行無(wú)縫通信,在如今智能手機(jī)提檔升級(jí)飛速變化的時(shí)代,以WiFi控制為主的智能家居已然成為研究設(shè)計(jì)主流。本文即對(duì)這一課題展開(kāi)如下論述。
1 硬件設(shè)計(jì)
1.1 樹(shù)莓派控制臺(tái)
樹(shù)莓派(Raspberry Pi)是一款基于ARM的微型電腦主板,以SD卡為內(nèi)存硬盤(pán),在卡片主板周圍有2個(gè)USB接口和一個(gè)網(wǎng)口,可連接鍵盤(pán)、鼠標(biāo)和網(wǎng)線,同時(shí)擁有視頻模擬信號(hào)的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能。在設(shè)計(jì)上,則基于Linux的操作系統(tǒng),Python的語(yǔ)言開(kāi)發(fā)環(huán)境,同時(shí)也支持C、JAVA等語(yǔ)言。
在此,研究給出系統(tǒng)環(huán)境搭建的過(guò)程步驟如下:
1)安裝Raspbian 官方鏡像
① 從官方下載最新Raspbian 鏡像,下載網(wǎng)址為:https://www.raspberrypi.org/downloads/;
② 使用SDFormatter格式化TF卡;
③ 使用Win32DiskImager把官方鏡像燒錄到TF 卡。
2)獲取LCD 驅(qū)動(dòng)
將 LCD-show-160701.tar.gz 驅(qū)動(dòng)復(fù)制到樹(shù)莓派系統(tǒng)根目錄下,執(zhí)行以下操作命令解壓驅(qū)動(dòng):
① cd /boot;
② sudo tar zxvf LCD-show-160701.tar.gz;
③ cd LCD-show/。
3)安裝LCD 驅(qū)動(dòng)
研究中,具體選用了7寸C款1024X600顯示屏,因此需執(zhí)行以下操作命令:
sudo ./LCD7C-show
樹(shù)莓派LCD屏界面顯示效果如圖1所示。在此基礎(chǔ)上,將樹(shù)莓派與電源連接,LCD屏的HDMI口與樹(shù)莓派HDMI口連接,因此即架構(gòu)形成了實(shí)際的樹(shù)莓派系統(tǒng)。
1.2 數(shù)據(jù)發(fā)送端
1.2.1 ESP8266 WiFi Shield
數(shù)據(jù)發(fā)送端的無(wú)線模塊主要采用ESP8266 WiFi Shield模塊,該模塊支持無(wú)線802.11b/g/n標(biāo)準(zhǔn),組建STA/AP兩種工作模式,內(nèi)設(shè)TCP/IP協(xié)議棧,可以附帶一個(gè)Socket,并且支持標(biāo)準(zhǔn)TCP/UDP Server和Client,還可以基于Web Server配置WiFi參數(shù)和串口參數(shù),是真正串口WiFi,在Arduino程序中無(wú)需任何配置。
1.2.2 Arduino Uno R3
Arduino是一款便捷靈活、操作明晰的開(kāi)源電子原型平臺(tái),包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE),由一個(gè)歐洲開(kāi)發(fā)團(tuán)隊(duì)于2005年冬季首創(chuàng)推出。該平臺(tái)構(gòu)建于開(kāi)放原始碼simple I/O介面版,并且具有使用類似Java、C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境。重點(diǎn)包含2個(gè)主要部分:硬件部分是可以用來(lái)做電路連接的Arduino電路板;另外一個(gè)則是Arduino IDE,也就是計(jì)算機(jī)中的程序開(kāi)發(fā)環(huán)境。
1.2.3 反饋電路設(shè)計(jì)
[JP+1]設(shè)計(jì)光敏電阻讀取LED燈的亮度值,通過(guò)光敏電阻讀取到的亮度值,判斷LED燈是否點(diǎn)亮,并通過(guò)LED燈反饋的數(shù)據(jù)直觀地看出LED的亮滅情況。反饋電路圖則如圖2所示。
2 軟件設(shè)計(jì)
[JP+1]設(shè)定光敏電阻的閾值n=850(850為L(zhǎng)ED燈亮?xí)r的亮度值),發(fā)送命令“1”時(shí),輸出“LED on”,由判斷語(yǔ)句根據(jù)光敏電阻讀取的數(shù)值判斷光亮強(qiáng)度,如果大于設(shè)定的閾值850,將輸出“really on”,如果不大于閾值850,則輸出“not really on”;發(fā)送命令“0”時(shí),輸出“LED off”。軟件設(shè)計(jì)流程即如圖3所示。
3 無(wú)線控制設(shè)計(jì)
首先使用外網(wǎng),基于BigIoT/Yeelink云平臺(tái)通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)對(duì)Arduino開(kāi)發(fā)板的遠(yuǎn)程控制;然后使用Socket tool客戶端,在局域網(wǎng)環(huán)境下,搭載ESP8266無(wú)線模塊,通過(guò)指令設(shè)計(jì)生成對(duì)Arduino開(kāi)發(fā)板的無(wú)線控制;最后使用樹(shù)莓派代替PC機(jī),通過(guò)樹(shù)莓派使用WiFi而實(shí)際獲得對(duì)下位機(jī)的遠(yuǎn)程控制。
3.1 BigIoT/Yeelink
該系統(tǒng)可以通過(guò)使用BigIoT、Yeelink等云智能平臺(tái),將數(shù)據(jù)上傳顯示到網(wǎng)站上,可以實(shí)現(xiàn)遠(yuǎn)程控制??刂平缑嫒鐖D4所示。
由圖4可知,其中每個(gè)設(shè)備擁有各自獨(dú)特的ID與APIKEY,通過(guò)在圖5的代碼中修改”DEVICEID”與”APIKEY”實(shí)現(xiàn)連接。
3.2 Socket tool電腦無(wú)線控制
該系統(tǒng)也設(shè)計(jì)并研發(fā)了通過(guò)Socket tool來(lái)提供并展開(kāi)電腦對(duì)Arduino系統(tǒng)的WiFi控制。其中的關(guān)鍵步驟可分做如下論述。
3.2.1 創(chuàng)建TCP Client
選中如圖6a)的TCP Client, 然后點(diǎn)擊”創(chuàng)建”按鈕, 軟件彈出輸入框:輸入ESP8266(無(wú)線模塊)的IP地址和監(jiān)聽(tīng)端口如圖6b)所示。
確認(rèn)后,由此軟件即成功創(chuàng)建了一個(gè)TCP Client Socket。
3.2.2 連接Socket
點(diǎn)擊最近創(chuàng)建的TCP Client,右方會(huì)出現(xiàn)其相關(guān)操作面板,點(diǎn)擊“連接”按鈕進(jìn)行Socket連接,如圖7所示。
這時(shí),TCP Client就建立了與TCP Server的連接。在TCP Server下面,自動(dòng)增加了一個(gè)與該連接對(duì)應(yīng)的Socket。
3.2.3 數(shù)據(jù)收發(fā)(LED燈亮演示)
在確保連接建立后,可以開(kāi)啟數(shù)據(jù)收發(fā)的測(cè)試:
當(dāng)鼠標(biāo)點(diǎn)中每個(gè)Socket時(shí), 軟件都會(huì)在右方呈現(xiàn)操作該Socket的面板。在面板里給出了數(shù)據(jù)收發(fā)的窗口。居于下方的即是數(shù)據(jù)發(fā)送窗口。
在Arduino代碼中,設(shè)置了發(fā)送數(shù)據(jù)1,LED燈亮,并輸出“LED on”;然后由光敏電阻判斷亮度,并輸出光敏電阻讀出的亮度值,準(zhǔn)確判斷LED是否已點(diǎn)亮,如果已點(diǎn)亮,輸出“LED really on”;如果LED并未點(diǎn)亮,輸出”LED not really on”。過(guò)程效果界面如圖8所示。
3.2.4 數(shù)據(jù)收發(fā)(LED燈滅演示)
相應(yīng)地,如圖9所示,發(fā)送數(shù)據(jù)“0”,LED燈滅,同時(shí)輸出“LED off”。
3.3 樹(shù)莓派WiFi控制
在此基礎(chǔ)上,即需針對(duì)樹(shù)莓派+Arduino的WiFi控制展開(kāi)研究。首先在樹(shù)莓派的Linux系統(tǒng)中下載netcat-0.7.1.tar.gz;然后輸入指令netcat 192.168.4.1(IP地址) 9000(端口號(hào))連接到無(wú)線模塊;輸入指令1,LED燈亮,輸出LED on,判斷光敏電阻讀取數(shù)值大于設(shè)定的閾值,輸出LED really on;輸入指令0,LED燈滅,輸出LED off。顯示效果如圖10a)、b)所示。
整體系統(tǒng)硬件包括:LCD顯示屏、無(wú)線鍵鼠、樹(shù)莓派開(kāi)發(fā)板、Arduino開(kāi)發(fā)板、ESP8266WiFi Shield無(wú)線模塊等。系統(tǒng)整體實(shí)物連接如圖11所示。
4 結(jié)束語(yǔ)
本文研究了通過(guò)WiFi傳輸數(shù)據(jù),并反饋信息。展開(kāi)來(lái)說(shuō),即通過(guò)控制臺(tái)無(wú)線控制LED燈的亮滅,同時(shí)接收數(shù)據(jù)發(fā)送端發(fā)送的反饋數(shù)據(jù)。而且,在使用BigIoT、yeelink等外部服務(wù)器重要處理的基礎(chǔ)上,首先在PC上設(shè)計(jì)使用socket tool軟件接收判斷數(shù)據(jù)信息,并反饋信息;然后使用樹(shù)莓派開(kāi)發(fā)提供了樹(shù)莓派對(duì)下行數(shù)據(jù)發(fā)送端的WiFi控制,并接收數(shù)據(jù)反饋;最終實(shí)現(xiàn)了在WiFi環(huán)境下,多種控制端對(duì)LED燈的開(kāi)關(guān)控制,以及對(duì)LED燈真實(shí)亮滅情況的反饋。
參考文獻(xiàn):
蔡睿妍. Arduino的原理及應(yīng)用[J]. 電子設(shè)計(jì)工程,2012,20(16):155-157.
[2] Michael McRoberts. Arduino從基礎(chǔ)到實(shí)踐[M]. 楊繼志,郭敬,譯. 北京:電子工業(yè)出版社,2006.
[3] 汪鑫,彭麗薇. 基于樹(shù)莓派的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J]. 硅谷,2014(14):25-26.
[4] 宋凱,姚嘉明,李靜,等. 基于樹(shù)莓派的智能家居控制開(kāi)關(guān)的研究[J]. 電子技術(shù)與軟件工程,2015(21):140-141.
[5] 李龍棋,方美發(fā),唐曉騰. 樹(shù)莓派平臺(tái)下的實(shí)時(shí)監(jiān)控系統(tǒng)開(kāi)發(fā)[J]. 閩江學(xué)院學(xué)報(bào),2014(5):67-72.
[6] LIU C, SU X. Research and design for mobile terminal-based on smart home system[J]. Open Automation and Control Systems Journal,2015,7(1):479-484.
[7] JAIN S, VAIBHAV A, GOYAL L. Raspberry Pi based interactive home automation system through E-mail[C]// Optimization, Reliabilty, and Information Technology (ICROIT), 2014 International Conference on. Faridabad, India:IEEE,2014:277-280.