xiangstudio 发表于 2017-1-17 09:47:04

通过手机远程控制树莓派的几种方式比较

各位同学在用树莓派做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就可以实现真正的远程控制。

缺点:
其实没有什么缺点,如果一定要有的话,就是依赖于第三方平台的服务不是百分百受控






musi 发表于 2017-2-18 18:38:03

我当初做小车的时候,加装了微信远程控制,楼主也可以试试

chris_dong 发表于 2018-11-15 16:10:07

长连接方式(物联网平台):就是让树莓派不停地调用某个service 扫描 某个值的变化。。。。?
页: [1]
查看完整版本: 通过手机远程控制树莓派的几种方式比较