万能遥控器小制作(五)

1.物联网云平台

为了先树立物联网平台通信过程的意识,为之后自己编写物联网云平台提供借鉴,我们该篇教程中使用的物联网云平台是阿里云的物联网套件(现已更名物联网平台)。阿里云收费规则是每月前100万条消息数免费赠送,所以这对于我们个人使用已绰绰有余。

如何开启阿里云物联网平台服务以及基础配置可参见产品手册

这里我们使用的协议为MQTT,关于MQTT协议,可参见博主的另一篇科普文MQTT初探。阿里云在MQTT消息发送接收的基本流程如下:

阿里云物联网平台架构.jpg

  • 在设备上报发布数据时,需要在阿里云开启MNS(消息中间件服务),上报的数据将暂存在消息队列中,用户需要自己去取出数据,或添加规则引擎,触发消息转发;

  • 在控制端发布数据到设备端时,控制端不需要运行MQTT客户端,可以通过云端API请求到阿里云MQTT服务器代理,由代理将消息下发至设备端。

  • 如果控制端在发送数据后希望得到设备端的返回消息,整个流程只需要在设备接收到消息后发布一则消息即可(阿里云已封装该topic,不需用户自己去消息队列中取设备返回的数据)。

2.实战

准备:这里设备端就是我们前几篇文章中的树莓派红外遥控系统,控制端是我们的手机安卓客户端,我们需要实现由安卓手机远程控制红外发射。

注意:本以为安卓客户端直接使用物联网云平台的云端API java库,直接调用就可以实现消息发布,但是too naive了,这个java库中的HttpClient版本与安卓系统的HttpClient版本冲突,无法运行或者编译(貌似Android Studio可以配置使用哪个库,博主使用的是eclipse就不便尝试了)。所以下文中博主将通过自己的VPS运行PHP做代理,来调用云端API。

(1)树莓派运行阿里云平台SDK

首先,我们需要对mqtt运行的示例代码进行修改,文件为:iotkit-embedded-master/sample/mqtt/mqtt-example.c,修改两处。

  • 订阅的主题,先在阿里云管理平台处新增主题air_condition;

  • 再在代码中修改主题为"/"PRODUCT_KEY"/"DEVICE_NAME"/air_condition",如下:

     32 /* These are pre-defined topics */
     33 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值