周棟梁+郭永安



摘 要: 隨著物聯網的發展,智能家居越來越被人們重視。為了解決智能家居中使用ZigBee高成本的問題,本文介紹了以樹莓派為主的控制端,Arduino開發板和無線模塊作為數據反饋端,實現了在WiFi環境下,對LED燈的開關控制,并反饋LED燈真實亮滅情況。簡化了智能家居的控制結構,并降低了成本。
關鍵詞: 智能家居;樹莓派;Arduino;WiFi;開關控制
中圖分類號:TP391.9
文獻標志碼:A
文章編號: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 引 言
隨著智能家居的普及發展,使用智能家居產品已然成為時尚自然首選。然而當今市面上主要是使用ZigBee來設計實現智能家居的核心控制,ZigBee的使用不僅是成本有所增加,安裝也變得復雜,而且還不能直接連接用戶手機。WiFi控制即可有效避免這些問題,WiFi的速度相對較快,無需網橋就可接入互聯網,而且可以與手機進行無縫通信,在如今智能手機提檔升級飛速變化的時代,以WiFi控制為主的智能家居已然成為研究設計主流。本文即對這一課題展開如下論述。
1 硬件設計
1.1 樹莓派控制臺
樹莓派(Raspberry Pi)是一款基于ARM的微型電腦主板,以SD卡為內存硬盤,在卡片主板周圍有2個USB接口和一個網口,可連接鍵盤、鼠標和網線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能。在設計上,則基于Linux的操作系統,Python的語言開發環境,同時也支持C、JAVA等語言。
在此,研究給出系統環境搭建的過程步驟如下:
1)安裝Raspbian 官方鏡像
① 從官方下載最新Raspbian 鏡像,下載網址為:https://www.raspberrypi.org/downloads/;
② 使用SDFormatter格式化TF卡;
③ 使用Win32DiskImager把官方鏡像燒錄到TF 卡。
2)獲取LCD 驅動
將 LCD-show-160701.tar.gz 驅動復制到樹莓派系統根目錄下,執行以下操作命令解壓驅動:
① cd /boot;
② sudo tar zxvf LCD-show-160701.tar.gz;
③ cd LCD-show/。
3)安裝LCD 驅動
研究中,具體選用了7寸C款1024X600顯示屏,因此需執行以下操作命令:
sudo ./LCD7C-show
樹莓派LCD屏界面顯示效果如圖1所示。在此基礎上,將樹莓派與電源連接,LCD屏的HDMI口與樹莓派HDMI口連接,因此即架構形成了實際的樹莓派系統。
1.2 數據發送端
1.2.1 ESP8266 WiFi Shield
數據發送端的無線模塊主要采用ESP8266 WiFi Shield模塊,該模塊支持無線802.11b/g/n標準,組建STA/AP兩種工作模式,內設TCP/IP協議棧,可以附帶一個Socket,并且支持標準TCP/UDP Server和Client,還可以基于Web Server配置WiFi參數和串口參數,是真正串口WiFi,在Arduino程序中無需任何配置。
1.2.2 Arduino Uno R3
Arduino是一款便捷靈活、操作明晰的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE),由一個歐洲開發團隊于2005年冬季首創推出。該平臺構建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發環境。重點包含2個主要部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,也就是計算機中的程序開發環境。
1.2.3 反饋電路設計
[JP+1]設計光敏電阻讀取LED燈的亮度值,通過光敏電阻讀取到的亮度值,判斷LED燈是否點亮,并通過LED燈反饋的數據直觀地看出LED的亮滅情況。反饋電路圖則如圖2所示。
2 軟件設計
[JP+1]設定光敏電阻的閾值n=850(850為LED燈亮時的亮度值),發送命令“1”時,輸出“LED on”,由判斷語句根據光敏電阻讀取的數值判斷光亮強度,如果大于設定的閾值850,將輸出“really on”,如果不大于閾值850,則輸出“not really on”;發送命令“0”時,輸出“LED off”。軟件設計流程即如圖3所示。
3 無線控制設計
首先使用外網,基于BigIoT/Yeelink云平臺通過網頁實現對Arduino開發板的遠程控制;然后使用Socket tool客戶端,在局域網環境下,搭載ESP8266無線模塊,通過指令設計生成對Arduino開發板的無線控制;最后使用樹莓派代替PC機,通過樹莓派使用WiFi而實際獲得對下位機的遠程控制。
3.1 BigIoT/Yeelink
該系統可以通過使用BigIoT、Yeelink等云智能平臺,將數據上傳顯示到網站上,可以實現遠程控制。控制界面如圖4所示。
由圖4可知,其中每個設備擁有各自獨特的ID與APIKEY,通過在圖5的代碼中修改”DEVICEID”與”APIKEY”實現連接。
3.2 Socket tool電腦無線控制
該系統也設計并研發了通過Socket tool來提供并展開電腦對Arduino系統的WiFi控制。其中的關鍵步驟可分做如下論述。
3.2.1 創建TCP Client
選中如圖6a)的TCP Client, 然后點擊”創建”按鈕, 軟件彈出輸入框:輸入ESP8266(無線模塊)的IP地址和監聽端口如圖6b)所示。
確認后,由此軟件即成功創建了一個TCP Client Socket。
3.2.2 連接Socket
點擊最近創建的TCP Client,右方會出現其相關操作面板,點擊“連接”按鈕進行Socket連接,如圖7所示。
這時,TCP Client就建立了與TCP Server的連接。在TCP Server下面,自動增加了一個與該連接對應的Socket。
3.2.3 數據收發(LED燈亮演示)
在確保連接建立后,可以開啟數據收發的測試:
當鼠標點中每個Socket時, 軟件都會在右方呈現操作該Socket的面板。在面板里給出了數據收發的窗口。居于下方的即是數據發送窗口。
在Arduino代碼中,設置了發送數據1,LED燈亮,并輸出“LED on”;然后由光敏電阻判斷亮度,并輸出光敏電阻讀出的亮度值,準確判斷LED是否已點亮,如果已點亮,輸出“LED really on”;如果LED并未點亮,輸出”LED not really on”。過程效果界面如圖8所示。
3.2.4 數據收發(LED燈滅演示)
相應地,如圖9所示,發送數據“0”,LED燈滅,同時輸出“LED off”。
3.3 樹莓派WiFi控制
在此基礎上,即需針對樹莓派+Arduino的WiFi控制展開研究。首先在樹莓派的Linux系統中下載netcat-0.7.1.tar.gz;然后輸入指令netcat 192.168.4.1(IP地址) 9000(端口號)連接到無線模塊;輸入指令1,LED燈亮,輸出LED on,判斷光敏電阻讀取數值大于設定的閾值,輸出LED really on;輸入指令0,LED燈滅,輸出LED off。顯示效果如圖10a)、b)所示。
整體系統硬件包括:LCD顯示屏、無線鍵鼠、樹莓派開發板、Arduino開發板、ESP8266WiFi Shield無線模塊等。系統整體實物連接如圖11所示。
4 結束語
本文研究了通過WiFi傳輸數據,并反饋信息。展開來說,即通過控制臺無線控制LED燈的亮滅,同時接收數據發送端發送的反饋數據。而且,在使用BigIoT、yeelink等外部服務器重要處理的基礎上,首先在PC上設計使用socket tool軟件接收判斷數據信息,并反饋信息;然后使用樹莓派開發提供了樹莓派對下行數據發送端的WiFi控制,并接收數據反饋;最終實現了在WiFi環境下,多種控制端對LED燈的開關控制,以及對LED燈真實亮滅情況的反饋。
參考文獻:
蔡睿妍. Arduino的原理及應用[J]. 電子設計工程,2012,20(16):155-157.
[2] Michael McRoberts. Arduino從基礎到實踐[M]. 楊繼志,郭敬,譯. 北京:電子工業出版社,2006.
[3] 汪鑫,彭麗薇. 基于樹莓派的網絡監控系統的研究與實現[J]. 硅谷,2014(14):25-26.
[4] 宋凱,姚嘉明,李靜,等. 基于樹莓派的智能家居控制開關的研究[J]. 電子技術與軟件工程,2015(21):140-141.
[5] 李龍棋,方美發,唐曉騰. 樹莓派平臺下的實時監控系統開發[J]. 閩江學院學報,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.