作者/趙景豪,山東省聊城市外國語學校
基于Android手機遠程遙控家居窗戶系統(tǒng)的設計
作者/趙景豪,山東省聊城市外國語學校
窗戶是家的第二扇大門,人們卻經常一時疏忽,忘記緊鎖窗戶,從而給家里帶來了很多不必要的麻煩。針對此現(xiàn)象,本文設計了一款基于Android手機遠程遙控家居窗戶的系統(tǒng)。該系統(tǒng)采用樹莓派作為主控核心,搭配了L298N電機驅動模塊和直流電機。此外,該系統(tǒng)引入了具有外網IP的阿里云服務器作為中間橋梁,打破了內外網IP之間無法直接通信的壁壘。該系統(tǒng)可以讓主人隨時隨地在Android手機平臺遠程控制窗戶的開關,極大地方便了主人對于窗戶的管理控制,同時又讓家的安全性得到了充分的保證。
樹莓派;遠程遙控;智能窗戶;Android手機
窗戶是家的重要組成部分,同時也是家的第二個“門”,由于忘記關閉窗戶,驟起的沙塵暴或者狂風暴雨勢必將家里掃蕩了個遍,等你回來,家里早已一片狼藉。另一方面,人們經常出遠門忘記緊鎖窗戶,一回家發(fā)現(xiàn),家里早已被竊賊搜刮干凈了。因此,時刻關緊窗戶就顯得極其重要。
此外,隨著Andorid智能手機價格的走低和互聯(lián)網的普及,手機網民的規(guī)模增長迅猛,據(jù)艾媒網的報道,2016年中國智能手機用戶規(guī)模達6.24億,其中Android手機占比73.1%,IOS占比19.7%,幾乎每個家庭人員均手握一部智能手機(通常人們隨身攜帶手機)。因此,如何設計一款基于手機端遠程家居窗戶控制系統(tǒng)就顯得極其有意義。該系統(tǒng)能夠將手機與窗戶緊密聯(lián)系起來,實現(xiàn)遠程控制窗戶的功能,保證窗戶時刻處于緊閉狀態(tài),從而使得家的安全性得到充分的保障。另一方面,由于設備IP分為內網IP和外網IP,為了滿足所有用戶網絡的需求,該控制系統(tǒng)必須能夠解決內外網IP設備無法直接通信的問題。
基于上述的考慮,本文將設計一款基于Android手機遠程遙控家居窗戶的控制系統(tǒng)。
本文設計了一款基于Android手機遠程遙控家具窗戶的控制系統(tǒng),整個系統(tǒng)的總體框架如圖1所示。該系統(tǒng)選用樹莓派作為主控核心,樹莓派通過GPIO口控制L298N電機驅動模塊,從而驅動直流電機實現(xiàn)正反轉來關閉或開啟窗戶。其中,樹莓派控制系統(tǒng)采用Python語言進行編寫(Python是一款開源的語言,其具有豐富和強大的庫,可以更加便捷、靈活的實現(xiàn)控制模塊程序的編寫)。
同時,Android手機作為客戶端,通過SSH遠程訪問家居的控制設備(樹莓派)。SSH是專為遠程登錄會話和其他網絡服務提供安全性的協(xié)議。
此外,為了克服內外網IP設備無法直接傳輸數(shù)據(jù)的問題,本文引入了具有外網IP的服務器(該服務器為阿里云服務器),使其作為中介,并實現(xiàn)了從阿里云服務器(外面IP設備)到樹莓派(內網IP設備)之間的反向代理和端口轉發(fā)的功能。由于樹莓派和阿里云服務器之間實現(xiàn)了反向代理和端口轉發(fā)的聯(lián)系,因此,手機客戶端通過SSH訪問阿里云的IP地址,等價于訪問了樹莓派的IP地址。
樹莓派設計的初衷在于為學生計算機編程教育提供便捷式的服務,其大小與卡片的尺寸相當,功能類似于一臺微小型的電腦,可以搭載Linux操作系統(tǒng)。本文選用的樹莓派型號為樹莓派三代B型(即,Raspberry Pi 3 Model B)該控制設備主要包括以下部分:
◎ CPU:64 位、四核、 ARM、 Cortex–A53 、1.2GHz;
◎GPIO引腳數(shù):40個;
圖1 基于Android手機遠程遙控家居窗戶系統(tǒng)的總體框架圖
◎SD卡:可以裝載操作系統(tǒng);
◎以太網接口:連接外界因特網;
◎4個USB口:可以用來連接外部設備,如鍵盤或者鼠標等;
◎板載WiFi;
◎板載藍牙。
本文采用的電機為小型直流電機,又稱為“馬達”。該電機具有正負極之分,正極接正電壓,負極接負電壓,則電機正轉;反之,電機則反轉。此外,電機的轉速正比于正負極兩端電壓差值的絕對值,即兩端電壓差越大,電機轉速越快,反之則越慢。通常,可以采用PWM(Pulse Width Modulation)脈沖寬度調制來實現(xiàn)對電機轉速的控制。所謂脈沖寬度調制,即作用于直流電機兩端的電壓脈沖根據(jù)不同時刻的控制信號具有不同的占空比(高電平的持續(xù)時間占一個脈沖周期的百分比),電機兩端相同時間等效的有效電壓不同,使得直流電機的轉速跟著發(fā)生改變。
L298N電機驅動模塊可以同時驅動兩個直流電機。該模塊共有4根控制引腳,分別與樹莓派GPIO口的3號,4號,5號,6號引腳進行連接。其中,IN1和IN2控制電機motor1,IN3和IN4控制電機motro2。此外,L298N驅動需外接電源+12V ~+24V進行供電。
L298N驅動具有兩種工作模式,一方面,當使能A(控制電機motor1)、使能B(控制電機motor2)時,可以分別從IN1、IN2輸入PWM(Pulse Width Modulation)信號來控制電機motor1的轉速和方向。同時,可以分別從IN3、IN4輸入相同PWM脈沖信號來控制電機motor2的轉速和方向。另一方面,若禁止A和B使能時,即可通過樹莓派的GPIO口向IN1、IN2、IN3、IN4四個引腳輸入邏輯“1”(GPIO.HIGH)和邏輯“0”(GPIO.LOW)來控制電機motor1和電機motor2。
整個遠程控制系統(tǒng)的流程圖如圖2所示。首先,手機客戶端采用SSH協(xié)議,通過IP地址和端口號向具有外網IP的阿里云服務器發(fā)起連接請求;其次,阿里云服務器將數(shù)據(jù)包原封不動的發(fā)送給主控核心樹莓派;最后,樹莓派再通過GPIO口控制L298N電機驅動模塊,從而實現(xiàn)對直流電機進行正反轉的控制,達到開啟和關閉窗戶的目的。
圖2 基于Android手機遠程遙控家居窗戶系統(tǒng)的流程圖
SSH是一種網絡協(xié)議,用于計算機之間的加密登錄。如果一個用戶在自己的本地計算機使用SSH協(xié)議登錄另一臺遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。SSH主要用于遠程登錄,假定你要以用戶名user,登錄遠程主機host,只要一條簡單命令就可以了,即: ssh user@host 。
其中,SSH的工作流程如下:
(1)遠程主機收到用戶的登錄請求,把自己的公鑰發(fā)給用戶。
(2)用戶使用這個公鑰,將登錄密碼加密后,發(fā)送回來。
(3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。
本文采用遠程服務器與樹莓派之間進行反向代理和端口轉發(fā)的方法,解決了內外網IP設備無法直接進行通信的問題(內網IP設備可以直接訪問外網IP設備,外網IP設備卻無法直接訪問內網IP設備)。其中,阿里云服務器作為中介,一頭連接了Android手機客戶端,另外一頭連接了主控核心樹莓派。
反向代理和端口轉發(fā)的配置步驟如下:
步驟一、 建立A機器到B機器的反向代理【A機器上操作】,命令如下:
ssh –fCNR
其中,
步驟二、 建立 B 機器上的正向代理,用作本地轉發(fā)?!綛機器上操作】,命令如下:
ssh –fCNL * :
其中,
步驟三、在C機器上可以通過B機器ssh到A機器
ssh –p
其中,SSH 參數(shù)解釋如下:
◎ –f 后臺運行
◎–C 允許壓縮數(shù)據(jù)
◎–N 不執(zhí)行任何命令
◎–R 將端口綁定到遠程服務器,反向代理
◎–L 將端口綁定到本地客戶端,正向代理
本文圍繞家居窗戶安全性的考慮,設計了一款基于Android手機遠程遙控家居窗戶的控制系統(tǒng)。主人可以在android手機平臺上,隨時隨地遠程控制家里窗戶的關閉或者開啟。該系統(tǒng)極大地保證了主人因疏忽忘記關窗戶所可能帶來的潛在危險,同時克服了內外網IP之間無法直接通信的問題,使得該系統(tǒng)能夠更加廣泛為用戶提供遠程管理家居窗戶的服務。
* [1]劉子源, 鄭佳春, 陳惠濱,等. 基于Android手機遠程空調遙控系統(tǒng)的設計[J].集美大學學報:自然科學版,2014,19(4): 309-313.
* [2]曾慶磊.基于Android手機的家居服務遙控終端系統(tǒng)設計[D]西安工程大學,2015.
* [3]鹿曼. 基于Android的智能家居控制系統(tǒng)的設計與實現(xiàn)[D]濟南:山東建筑大學信息與電氣工程學院, 2013.
* [4]何海燕.基于樹莓派的智能家居系統(tǒng)設計與實現(xiàn)[J].中國高新技術企業(yè), 2016 (17): 11-12.
* [5]宋凱,姚嘉明,李靜,等.基于樹莓派的智能家居控制開關的研究[J].電子技術與軟件工程,2015 (21): 140-141.
* [6]高虎,白金平,簡蘭懿.基于Android智能陽臺系統(tǒng)設計與實現(xiàn)[J].
* [7]陳必東,譚美娟.基于Raspberry Pi+ Arduino智能家居雛形系統(tǒng)的探索與研究[J].智慧工廠,2016 (6): 49-54.
* [8]陳儒敏,侯思名,顏江.基于開源軟硬件的智能家居系統(tǒng)設計與實現(xiàn)[J].現(xiàn)代計算機:上下旬, 2013 (19): 71-73.
* [9]陳曦.智能家居控制系統(tǒng)的設計與實現(xiàn)[J].國外電子元器件,2003 (11): 5-7.
* [10]王朝華,陳德艷,黃國宏, 等.基于Android的智能家居系統(tǒng)的研究與實現(xiàn)[J].計算機技術與發(fā)展, 2012 (2012 年 06): 225 228+ 233.
* [11]邢波.基于Raspberry Pi, Zigbee技術的無線智能家居系統(tǒng)設計[J].數(shù)字技術與應用,2014 (6): 59-60.
* [12]鄭世玨,徐虹.基于Raspberry Pi的遠程監(jiān)測系統(tǒng)的設計與實現(xiàn)[J].微型機與應用, 2014, 33(19): 105-107.