查看: 249|回复: 2

[教程] MQTT之阿里云物联网通信

[复制链接]
本帖最后由 ZeroQin 于 2019-4-26 15:47 编辑

掌控MQTT的Easy IoT和OneNet平台的物联网通信我在另外两篇帖子里已经介绍过了,这里来介绍MQTT的最后一个平台——阿里云。


mqtt在阿里云平台的实现:手机app控制小灯的亮灭。

首先,要在阿里云IoT平台上建立LED灯与手机App的联系。这一部分要特别特别提到一位小伙伴,感谢@wuji 分享的阿里云IoT灯光控制前面的app部分基本上是跟着她的流程来的(连名字都一样绝对不是因为我不!想!截!图!)。

准备工作
1. 注册并登录阿里云账号
打开谷歌浏览器,输入网址,点击该界面右上角的【登录】按钮,再点击【密码登录】框的“免费注册”选项,如果已有账号直接登录即可。
截图201904261518191458.png

2.进入阿里云IoT的物联网平台页面
登录完成后,会进入上图1所示的阿里云IoT主界面,点击【设备接入】”按钮,会跳转到“物联网设备接入”界面,如果是第一次进入,这个按钮应该是【立即开通】,根据要求开通就好了,是免费的。
果你此前没有创建任何产品,其产品列表处会显示“没有找到产品”,用户可以在该界面完成产品,设备的创建,以及开发相应的开发服务
截图201904261519051697.png 截图201904261519452622.png 截图201904261520008894.png
以上均为准备工作,主要目的是能成功进入【物联网平台】界面,接下来就是在该界面实现产品的创建,设备的创建,以及开发移动App项目。

创建产品
该步骤主要分为2部分:
创建并完善产品信息;
定义产品的功能。

1.创建名为“智能灯光系统”的产品
登录阿里云账号后,直接进入阿里云IoT的物联网平台界面,具体进入方法参考“进入阿里云IoT管理控制台界面”小节;选择物联网平台页面左侧导航栏上的设备管理>产品,在产品管理页面,单击创建产品;选择高级版,单击下一步。
截图201904261520463662.png

2.定义产品功能
“智能灯光系统”产品添加一个功能名为“工作状态”,产品标识符为“LightStatus”的属性。在产品列表中,找到名为“智能灯光系统”的产品,单击查看,进入产品详情页;在产品详情页中单击功能定义;在自定义功能栏,单击添加功能;设置属性,将LED灯的工作状态定义为产品属性,0表示灯灭,1表示灯亮。单击确定。功能添加完成后,将自动出现在自定义功能列表中,用户可在该处查看产品的标识符“LightStatus”。
截图201904261521142716.png


如此,一个名为“智能灯光系统”的产品就创建好了,此步骤中,用户要留意产品的标识符“LightStatus”。

为产品添加设备
该步骤主要是为已经创建的产品添加设备,即将一个或多个设备挂载在某个产品上。
1. 挂载名为“Family_Light”的设备
“智能灯光系统”产品下挂载名称为“Family_Light”的设备。选中左侧导航栏的设备管理>设备,进入设备管理页面;单击添加设备,选中之前创建的产品,并输入设备名称“Family_Light”,单击确认。记录设备证书内容。设备证书包含的ProductKey、DeviceName和DeviceSecret ,是设备后续与物联网平台交流的重要凭证,请妥善保管。设备挂载完成后,将自动出现在设备列表中。
截图201904261522161132.png


至此,产品“智能灯光系统”下就挂载了一个设备名为“Family_Light”的设备。

手机App开发服务
如今,设备灯已经创建完毕,接下来就该准备一个App来控制设备了,该步骤主要分为3部分:
新建项目;
导入产品与设备;
创建移动应用开发。

1.新建项目
新建一个项目名为“智能灯光管理”的项目。选中“物联网平台”页面左侧导航栏的开发服务,进入物联网开发页面,单击右侧项目列表的新建项目,填写完成后,单击确定后,新建的“智能灯光管理”项目会自动出现在项目列表中。
截图201904261522497681.png

2.导入产品和设备
将刚才创建的“智能灯光系统”产品和“Family_Light”设备导入新建的“智能灯光管理”项目中。单击“智能灯光管理”项目的查看按钮,进入“智能灯光管理”项目管理页面;单击右上角的导入产品,选中“智能灯光系统”产品,单击导入,导入成功后,关联设备和关联产品的数字会发生变化。
截图201904261523105777.png

3.创建移动应用开发
该步骤主要分为5部分:App的UI界面拖建;关联设备与UI控件;App首页路由配置;账号用户添加;手机App发布。
      
搭建App名为“家庭灯控制”App的UI界面
选中“智能灯光管理”项目左侧导航栏的移动应用开发,单击新增移动应用,选择可视化搭建,新建一个应用名为“家庭灯控制”的App,单击完成,选中弹出的模板Link Develop公版应用,进入“家庭灯控制”移动应用页面。


选中左侧导航栏的自定义页面>自定义新增页,编辑,将其修改为“家庭灯控制页面”,接下来就是用鼠标将左侧导航栏的可视化组件拖动到中间的“家庭灯控制页面”中去,组件的具体用法,可自行浏览帮助里的内容

增加可视化应用
截图201904261523351088.png
截图201904261523488648.png
具体设计出的UI界面
截图201904261524014964.png

关联产品设备与UI控件
此步骤主要是将旨在“家庭灯控制页面”所示的“指示灯”,“开关”等控件与“Family_Light”设备关联起来,达到通过UI界面监测和控制 “Family_Light”设备的工作状态。
选中的“家庭灯控制页面”的指示灯控件,再单击右侧栏的数据选项;点击链接,选中“Family_Light”设备选项,点击确定,选中展示数据框里的“工作状态”选项,保存,及成功将“指示灯”控件与“Family_Light”设备关联“开关”控件的关联方式同“指示灯”控件一致。
截图201904261532105841.png

App首页路由配置
该步骤主要是配置App的跳转页面,设置了后,就可以通过它跳转到上述的“家庭灯控制页面”界面。
选中“家庭灯控制”移动应用页面左侧导航栏的模板页面>首页,单击右侧栏的新增页面路由,根据要求填写,这里的标题相当于App的导航栏。
截图201904261532261111.png

账号用户添加
该步骤添加用户的账户和密码,主要是为“家庭灯控制”App首次登录时所用。
选中“家庭灯控制”移动应用页面左侧导航栏的账号,单击添加用户,按要求填写信息,记住账号(手机号)和密码。
截图201904261532406425.png


手机App发布
“家庭灯管理”App开发完成后,点击发布后,用户即可将其下载到手机上。
点击右上角的构建选项,根据你的手机系统选择Android构建或iOS构建,单击我只想自己使用,单击随机生成,单击下一步,然后耐心等待打包,最终会形成如二维码,此时用户可通过手机微信扫描该二维码,即可下载安装该App。
截图201904261532551673.png


手机App安装后完成后,如图所示:
截图201904261533183370.png
截图201904261533332430.png

由此,一个名为“家庭灯控制”的App即开发完成,可投入使用,首次安装,需登录,账号和密码就是刚才设置的账号和密码,具体参考“账户用户添加”小节。接下来,就是修改mind+程序,并将程序下载到掌控板主控上,即可打开手机App实现对LED灯的控制了。

(1) 初始化MQTT
截图201904261533547591.png
ClientId是自定义的,ProductKey,DeviceName,DeviceSecret如下图所示:
截图201904261534071830.png
接下来配置TOPIC信息
截图201904261534242355.png
选择一个发布和一个订阅(注意一定要在设备里面去找topic,产品里面是topic类的列表)复制到配置模块里
    发布Topic:通过它,掌控可以上报某个设备的属性(即更新阿里云IoT上某个设备的功能状态)到阿里云平台上。
    订阅Topic:通过它,会检测并接收到阿里云IoT向掌控发送的指令,再通过数据格式解析从而操作ESP32上的某个设备。
[size=12.0000pt](2)编写程序并上传到掌控,掌控通过扩展板在P0引脚连接一个LED
通过串口打印的MQTT接收消息,可以看到接收到的实际上是一个包含了小灯状态信息(LightStatus)的json字符串,而目前Mind+还没有专门处理json字符串的block(PS:我猜马上就要有了^_^),所以我这里采用了一个比较笨的方法╮(╯▽╰)╭
截图201904261535047737.png
在手机端操作灯的开关,可以控制连接的LED灯的亮灭。
    打开开关,Mind+接收到【"LightStatus":1】,点亮P0连接的LED
截图201904261535241349.png
    关闭开关,Mind+接收到【"LightStatus":0】,熄灭P0连接的LED
截图201904261535377692.png
我们可以在日志服务里查看到消息记录(由于Mind+消息格式的问题,并不能直接在阿里云上查询消息内容)
截图201904261535562378.png
截图201904261536153363.png




截图201904261517239660.png

阿里云iot控制小灯.rar

45.38 KB, 下载次数: 9, 下载积分: 创造力 -1

rzyzzxw  版主

发表于 2019-4-27 08:16:29

好人啊,正搞不定呢,教程就来了。
回复 支持 反对

使用道具 举报

韦应  见习技师

发表于 3 天前

厉害,学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail