[AliOS-Things 之 MQTT] 接入阿里云物联网套件-阿里云开发者社区

开发者社区> 阿里云物联网> 正文
登录阅读全文

[AliOS-Things 之 MQTT] 接入阿里云物联网套件

简介:

阿里开发 AliOS-Things 的主要动机,应该就是让别的商家利用 AliOS-Things 快速接入阿里云平台,所以我们可以直接利用 AliOS-Things 提供的 mqttapp 示例进行快速接入。

关于 AliOS 的系列博客,请参考 AliOS-Things系列学习笔记-目录

云端操作

在云端的操作主要包括如下几步:

  1. 开通物联网套件
  2. 创建产品,拿到 ProductKey
  3. 创建设备,拿到 DeviceName 和 DeviceSecret
  4. 定义 Topic $(PRODUCT_KEY)/$(DEVICE_NAME)/data,并设置权限为”设备具有发布与订阅”

注意第 4 步不要漏掉了,我之前就是没有添加这个 Topic,在云端查看日志一直提示失败。

具体步骤在阿里云的官方写得比较清楚了,请移步 设备接入准备

修改参数

Demo 程序所在路径是 AliOS-Things/example/mqttapp。由于 AliOS-Things 直接支持作为 Linux 平台的应用程序,所以即使没有 MK3060 开发板的话,也可以直接在 Linux 下跑这个 Demo,亲测没问题。

我们在云端操作时获取的三个参数需要在这里排上用场,根据这三个参数修改文件 AliOS-Things/example/mqttapp/mqtt-example.c 的 38~40 行代码,例如我是:

1
2
3
#define PRODUCT_KEY             "sbYCVxN7htJ"// "BfKxBDSjWCH"
#define DEVICE_NAME "alios-test-device" //"aos_mqtt_test"
#define DEVICE_SECRET "cfety4D51cAaHiG9JORTn7vGpVeHBy5O" //"zcBZ5TB9cfAylUGo1flH0o47PxS8Mqu2"

在设备端运行

Linux 平台

如果是 Linux 平台,则直接可以编译并运行程序了。如果你之前操作无误的话,程序运行后会连上阿里云并向其推送消息。

下图是我的示例:

![](./mqtt.png)

可以看到,订阅和推送 Topic 都成功了。

MK3060 平台

如果是在开发板 MK3060 上运行,则将程序编译并烧写到开发板上后,还需要执行 shell 命令让其连接到 WiFi 热点。连接上热点后,MQTT 程序才会真正运行。

让设备连接到 WiFi 热点需要执行命令 sta,其具体格式是 sta 热点的名字 热点的密码,例如我的热点名是 “ABC”,热点密码是 “ABC8881033”,则我就执行命令:

1
# sta ABC ABC8881033

下图是连接连接热点时的日志截图:

![](./connect_ap.png)

下图是 MQTT 示例运行时的日志截图:

![](./publish_success.png)

学习资料

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云物联网
使用钉钉扫一扫加入圈子
+ 订阅

致力于实现万物互联的美好世界,为生态合作伙伴提供基于云计算、大数据、人工智能、云端一体化、安全的物联网基础平台和内容服务平台。

官方博客
官网链接
在线咨询