用手機如何遠程控制樹莓派?

沒有屏幕,怎麼將樹莓派用手機遠程控制


各位同學在用樹莓派做DIY創意設計的時候,一定想像過類似的場景:


做了個自動澆花的裝置,當我在外面旅遊的時候,用手機給裝置發個指令,遠程去澆花;


我正在辦公室,想回到家就能洗上熱水澡,於是我用手機遠程開啟了熱水器;


為了實現上面的場景,我粗略的總結了一下目前可以使用的技術方案,並且做了比較,希望能夠幫到大家:


* WEB SERVER方式


將樹莓派作為一個WEB伺服器,手機瀏覽器作為客戶端去訪問,類似的實現有WebIOPi等等很多類似的方案,


當然稍加改造,也可以讓WEB伺服器提供REST API的介面,這樣手機端的界面展現就更加靈活。


優點:


對於手機開發非常方便,只要載入瀏覽器或是調用REST API即可展現複雜的用戶界面。


缺點:


在國內,樹莓派接入網路大多都是內網,也就是沒有一個公網的IP,因此手機也無法直接向樹莓派的IP發起請求,


也就是說無法直接訪問,當然通過路由器埠映射等方法也可以實現對內網IP的訪問,但是整個方案實現就比較複雜了,


需要熟悉網路的配置,並且有許可權去配置路由器等設備才行。

所以目前這種方案通常前提是在同一個網段里,也就是說手機和樹莓派要連接同一個熱點或路由器,並不能真正實現


跨網類似從辦公室去遠程控制家裡的樹莓派這樣的場景。


* 簡訊方式


樹莓派通過串口或USB連接一個收發簡訊的硬體模塊,通過收簡訊並解析成控制命令的方式達到遠程控制樹莓派的目的。


優點:


這種方式其實是挺可靠並且適應性很強的一種方案,甚至可以布置在戶外,只要有電話信號的地方就行。


缺點:


一個簡訊模塊大概有兩三百元,另外和簡訊模塊的通信目前好像沒有特別現成標準的實現代碼,所以調試的工作量是要考慮的,


對開發的技術還是有些要求的。


* 長連接方式(物聯網平台)


樹莓派和手機通過接入第三方的平台,間接的完成相互通信的目的,例如yeelink平台以及最近剛出現的marsiot平台(www.marsiot.com)。


yeelink平台為手機和多種設備包括樹莓派提供了REST方式的API介面,在平台註冊用戶獲取TOKEN之後,手機通過HTTP POST請求向樹莓派


發起控制命令,樹莓派通過HTTP GET輪詢方式獲取到發給自己的控制請求完成控制。


marsiot的接入則更為簡單些,甚至無須登錄註冊和編寫代碼,在樹莓派上運行一個JAR文件,在手機上安裝個APK就OK了,不過本質上也是


通過後台的伺服器完成了手機和樹莓派之間的通信轉發


優點:


無須對網路進行特殊配置,只要手機和樹莓派都能訪問INTERNET就可以實現真正的遠程控制。


缺點:

其實沒有什麼缺點,如果一定要有的話,就是依賴於第三方平台的服務不是百分百受控


手機上裝個ssh client,不過輸入太痛苦了

如果要run系統什麼的就太多、太簡單了:

掃二維碼,用手機遙控小車


在使用樹莓派DIY創意物品的時候,相信很多pi友都有外網連接樹莓派後台或者架設的應用的需求。路由器上有動態公網IP的情況下,多數人會用花生殼來實現。但現在公網IP資源稀缺,很多網路環境都是私網IP。有外網連接使用的需求的話,這裡建議使用蒲公英異地組網來實現,不需要公網IP。

值得一提的是,通過蒲公英異地組網方式,組建的是封閉的區域網,在一定程度上是可以保證內網數據的安全,而且操作相對簡單,不需要什麼網路知識,同時更是可以支持手機在內的移動設備進行遠程訪問。

這次就小試牛刀,直接用樹莓派搭建一個簡單的PT及BT下載機,演示如何與蒲公英異地組網完美結合。

一、安裝transmission服務

Transmission是Linux上的PT下載及BT下載軟體,再樹莓派已聯網的情況下,直接運行命令進行安裝:sudo apt-get install transmission-daemon

期間,系統會讓你確認這個操作會佔用一定的磁碟空間,輸入Y確認繼續運行。

二、創建目錄

在安裝好transmission服務之後,我們需要創建兩個目錄,分別是用來存放已下載好及未完成下載的文件的,具體命令如下:

mkdir -p /home/pi/incomplete ---- 存放未下載完成的文件

mkdir /home/pi/complete ----存放已下載好的文件

三、配置目錄的許可權

這裡要注意的是,如果不是切換到管理員用戶,運行的時候需要以管理員身份運行:

sudo usermod -a -G debian-transmission pi---- FAT格式的移動硬碟改動,mount的時候指定用戶和讀寫許可權就行

chgrp debian-transmission /home/pi/incomplete--這是對 SD 卡上的目錄而言的

chgrp debian-transmission /home/pi/complete

chmod 770 /home/pi/incomplete

chmod 770 /home/pi/complete

四、修改配置文件

在這一步需要修改配置文件: /etc/transmission-daemon/settings.json,用nano來編輯。裡面的配置項比較多(如有興趣參考鏈接 ),這裡主要改下面這3項:

"download-dir": "/home/pi/complete"----已完成的下載目錄

"incomplete-dir": "/home/pi/incomplete"----未完成的下載目錄

"rpc-whitelist": "192.168.1.*" 允許Web訪問的白名單地址

五、重啟transmission

修改好配置文件後,需要重啟服務,注意以管理員身份來運行。

sudo service transmission-daemon reload

sudo service transmission-daemon restart

六、訪問PT/BT下載器

使用transmission搭建的PT/BT下載機,是可以通過web方式訪問的,默認埠是9091,加上前面設置訪問白名單時,是指定區域網內的整個網段。所以同區域網內的電腦,在瀏覽器打開:http:// 192.168.1.199 :9091 並輸入用戶名和密碼就能登錄了。

進去後,通過輸入下載路徑,或選擇電腦上的Torrent文件來創建下載任務,就可以開始下載資源啦。就算是上班時,甚至晚上睡覺時都不用開著電腦了。直接讓樹莓派在線,在裡面創建若干下載任務,上班時或睡覺時專門來下載資源。

由於公司和家裡不在一個區域網內,當離開家時就無法通過web方式來查看PT/BT任務的下載進度,想修改應用服務裡面的配置文件也不行。這裡我們推薦使用花生殼出品的蒲公英異地組網來徹底解決區域網遠程訪問難題。

蒲公英異地組網包括硬體和軟體,可以輕鬆組建異地區域網,相較於現有的PPTP、L2tp、IpSec等類型的VPN要簡單得多。在使用樹莓派搭建各種服務應用時,蒲公英異地組網從中可以發揮很重要的作用。

下面來看詳細步驟:

1、創建異地區域網

為了不改變家中的網路結構,不替換現有路由器,本次使用了蒲公英路由器X1的旁路模式進行組網,現在只需要在蒲公英官網註冊賬號,登錄到管理頁面,點擊創建網路,並做旁路模式即可。

因為公司網路是已經固定的,無法外接路由器,而且有外網連接需求的暫時只有我一個人。這裡,只需添加一個客戶端成員,並輸入登錄密碼,點擊確定即可。

加完客戶端成員後,繼續添加路由器成員。輸入家裡蒲公英路由器的SN碼,點擊確定就可以了。

此時,組網已經基本完成。這裡可以看到客戶端成員有一個專屬的VPN ID,這個是用來登錄蒲公英客戶端的,還分配了一個172開頭的地址。

最後,點擊旁路設置,開啟蒲公英路由器的旁路模式即可,由於家中路由器使用的網段是192.168.1.*,因此,在旁路模式中填寫192.168.1.0/24 ~

2、安裝蒲公英異地組網軟體客戶端

在公司的電腦上,安裝蒲公英異地組網軟體客戶端,並輸入組網時分配的VPN ID和密碼登錄。

登錄成功後,在客戶端界面上可以看到家裡的路由器!

值得一提的是,除了電腦客戶端外,蒲公英異地組網還支持移動設備,擁有安卓和iOS客戶端。因此,出門在外,也可以通過手機瀏覽器來管理樹莓派中的下載任務。

3、實現外網連接

在前面修改配置文件時,我們針對訪問白名單,是加了192.168.1.* 這個網段的。而現在電腦在公司,本身IP地址是192.168.31.124,安裝蒲公英客戶端後,虛擬網卡分配的IP是 172. 2.173.198。均不在設置的白名單內。所以,我們需要打開transmission的配置文件,並且將我本機的IP地址寫進白名單。

目前已經組網完成並成員間能互通,在公司的電腦上,打開putty,輸入樹莓派的IP,就可以通過SSH方式登錄到樹莓派里。

登錄進去後切換到root用戶,然後修改配置文件,加上網段:"172.*.*.*",保存並重啟服務。

4、外網下載並存取文件

隨後在瀏覽器直接輸入http://192.168.1.199:9091 ,測試可以訪問到家裡樹莓派的PT/BT下載器~~

此外,如果有遠程存取文件的需求也能使用WinSCP等軟體搞定,輕鬆訪問樹莓派中的已下載文件~

至於Android手機則可以安裝Transmission Remote App來遠程管理下載任務,就算出門在外也可以輕鬆訪問家中的樹莓派~

整個過程下來非常簡單,也不需要其他複雜的操作,還能隨時隨地能遠程連接回去。

通過蒲公英異地組網,我們不僅可以訪問到樹莓派上搭建好的應用,還能通過SSH遠程登錄樹莓派,修改服務配置,甚至是遠程開發等等。


推薦閱讀:

Windows 10 IoT 上面可以安裝一般的windows軟體嗎?
如何評價AxiDraw畫圖機器?
在樹莓派3上用hostapd開wifi熱點時奇怪的問題?
沒有顯示器可以使用樹莓派么,初次安裝過程中呢?

TAG:樹莓派RaspberryPi |