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