各位同学在用树莓派做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就可以实现真正的远程控制。 缺点: 其实没有什么缺点,如果一定要有的话,就是依赖于第三方平台的服务不是百分百受控 |
小黑屋|手机版|Archiver|树莓派论坛 ( 粤ICP备15075382号-1 )
GMT+8, 2024-11-23 07:02 , Processed in 1.140625 second(s), 31 queries , Gzip On.
Powered by Shumeipai.net! X3.2