22475| 22
|
[教程] MQTT之阿里云物联网通信 |
掌控MQTT的Easy IoT和OneNet平台的物联网通信我在另外两篇帖子里已经介绍过了,这里来介绍MQTT的最后一个平台——阿里云。 mqtt在阿里云平台的实现:手机app控制小灯的亮灭。 首先,要在阿里云IoT平台上建立LED灯与手机App的联系。这一部分要特别特别提到一位小伙伴,感谢@wuji 分享的阿里云IoT灯光控制,前面的app部分基本上是跟着她的流程来的(连名字都一样绝对不是因为我不!想!截!图!)。 准备工作 1. 注册并登录阿里云账号 打开谷歌浏览器,输入网址,点击该界面右上角的【登录】按钮,再点击【密码登录】框的“免费注册”选项,如果已有账号直接登录即可。 2.进入阿里云IoT的物联网平台页面 登录完成后,会进入上图1所示的阿里云IoT主界面,点击【设备接入】”按钮,会跳转到“物联网设备接入”界面,如果是第一次进入,这个按钮应该是【立即开通】,根据要求开通就好了,是免费的。 果你此前没有创建任何产品,其产品列表处会显示“没有找到产品”,用户可以在该界面完成产品,设备的创建,以及开发相应的开发服务 以上均为准备工作,主要目的是能成功进入【物联网平台】界面,接下来就是在该界面实现产品的创建,设备的创建,以及开发移动App项目。 创建产品 该步骤主要分为2部分: 创建并完善产品信息; 定义产品的功能。 1.创建名为“智能灯光系统”的产品 登录阿里云账号后,直接进入阿里云IoT的物联网平台界面,具体进入方法参考“进入阿里云IoT管理控制台界面”小节;选择物联网平台页面左侧导航栏上的设备管理>产品,在产品管理页面,单击创建产品;选择高级版,单击下一步。 2.定义产品功能 为“智能灯光系统”产品添加一个功能名为“工作状态”,产品标识符为“LightStatus”的属性。在产品列表中,找到名为“智能灯光系统”的产品,单击查看,进入产品详情页;在产品详情页中单击功能定义;在自定义功能栏,单击添加功能;设置属性,将LED灯的工作状态定义为产品属性,0表示灯灭,1表示灯亮。单击确定。功能添加完成后,将自动出现在自定义功能列表中,用户可在该处查看产品的标识符“LightStatus”。 如此,一个名为“智能灯光系统”的产品就创建好了,此步骤中,用户要留意产品的标识符“LightStatus”。 为产品添加设备 该步骤主要是为已经创建的产品添加设备,即将一个或多个设备挂载在某个产品上。 1. 挂载名为“Family_Light”的设备 在“智能灯光系统”产品下挂载名称为“Family_Light”的设备。选中左侧导航栏的设备管理>设备,进入设备管理页面;单击添加设备,选中之前创建的产品,并输入设备名称“Family_Light”,单击确认。记录设备证书内容。设备证书包含的ProductKey、DeviceName和DeviceSecret ,是设备后续与物联网平台交流的重要凭证,请妥善保管。设备挂载完成后,将自动出现在设备列表中。 至此,产品“智能灯光系统”下就挂载了一个设备名为“Family_Light”的设备。 手机App开发服务 如今,设备灯已经创建完毕,接下来就该准备一个App来控制设备了,该步骤主要分为3部分: 新建项目; 导入产品与设备; 创建移动应用开发。 1.新建项目 新建一个项目名为“智能灯光管理”的项目。选中“物联网平台”页面左侧导航栏的开发服务,进入物联网开发页面,单击右侧项目列表的新建项目,填写完成后,单击确定后,新建的“智能灯光管理”项目会自动出现在项目列表中。 2.导入产品和设备 将刚才创建的“智能灯光系统”产品和“Family_Light”设备导入新建的“智能灯光管理”项目中。单击“智能灯光管理”项目的查看按钮,进入“智能灯光管理”项目管理页面;单击右上角的导入产品,选中“智能灯光系统”产品,单击导入,导入成功后,关联设备和关联产品的数字会发生变化。 3.创建移动应用开发 该步骤主要分为5部分:App的UI界面拖建;关联设备与UI控件;App首页路由配置;账号用户添加;手机App发布。 搭建App名为“家庭灯控制”App的UI界面 选中“智能灯光管理”项目左侧导航栏的移动应用开发,单击新增移动应用,选择可视化搭建,新建一个应用名为“家庭灯控制”的App,单击完成,选中弹出的模板Link Develop公版应用,进入“家庭灯控制”移动应用页面。 选中左侧导航栏的自定义页面>自定义新增页,编辑,将其修改为“家庭灯控制页面”,接下来就是用鼠标将左侧导航栏的可视化组件拖动到中间的“家庭灯控制页面”中去,组件的具体用法,可自行浏览帮助里的内容 增加可视化应用 具体设计出的UI界面 关联产品设备与UI控件 此步骤主要是将旨在“家庭灯控制页面”所示的“指示灯”,“开关”等控件与“Family_Light”设备关联起来,达到通过UI界面监测和控制 “Family_Light”设备的工作状态。 选中的“家庭灯控制页面”的指示灯控件,再单击右侧栏的数据选项;点击链接,选中“Family_Light”设备选项,点击确定,选中展示数据框里的“工作状态”选项,保存,及成功将“指示灯”控件与“Family_Light”设备关联。“开关”控件的关联方式同“指示灯”控件一致。 App首页路由配置 该步骤主要是配置App的跳转页面,设置了后,就可以通过它跳转到上述的“家庭灯控制页面”界面。 选中“家庭灯控制”移动应用页面左侧导航栏的模板页面>首页,单击右侧栏的新增页面路由,根据要求填写,这里的标题相当于App的导航栏。 账号用户添加 该步骤添加用户的账户和密码,主要是为“家庭灯控制”App首次登录时所用。 选中“家庭灯控制”移动应用页面左侧导航栏的账号,单击添加用户,按要求填写信息,记住账号(手机号)和密码。 手机App发布 “家庭灯管理”App开发完成后,点击发布后,用户即可将其下载到手机上。 点击右上角的构建选项,根据你的手机系统选择Android构建或iOS构建,单击我只想自己使用,单击随机生成,单击下一步,然后耐心等待打包,最终会形成如二维码,此时用户可通过手机微信扫描该二维码,即可下载安装该App。 手机App安装后完成后,如图所示: 由此,一个名为“家庭灯控制”的App即开发完成,可投入使用,首次安装,需登录,账号和密码就是刚才设置的账号和密码,具体参考“账户用户添加”小节。接下来,就是修改mind+程序,并将程序下载到掌控板主控上,即可打开手机App实现对LED灯的控制了。 (1) 初始化MQTT ClientId是自定义的,ProductKey,DeviceName,DeviceSecret如下图所示: 接下来配置TOPIC信息 选择一个发布和一个订阅(注意一定要在设备里面去找topic,产品里面是topic类的列表)复制到配置模块里 发布Topic:通过它,掌控可以上报某个设备的属性(即更新阿里云IoT上某个设备的功能状态)到阿里云平台上。 订阅Topic:通过它,会检测并接收到阿里云IoT向掌控发送的指令,再通过数据格式解析从而操作ESP32上的某个设备。 [size=12.0000pt](2)编写程序并上传到掌控,掌控通过扩展板在P0引脚连接一个LED 通过串口打印的MQTT接收消息,可以看到接收到的实际上是一个包含了小灯状态信息(LightStatus)的json字符串,而目前Mind+还没有专门处理json字符串的block(PS:我猜马上就要有了^_^),所以我这里采用了一个比较笨的方法╮(╯▽╰)╭ 在手机端操作灯的开关,可以控制连接的LED灯的亮灭。 打开开关,Mind+接收到【"LightStatus":1】,点亮P0连接的LED 关闭开关,Mind+接收到【"LightStatus":0】,熄灭P0连接的LED 我们可以在日志服务里查看到消息记录(由于Mind+消息格式的问题,并不能直接在阿里云上查询消息内容) |
45.38 KB, 下载次数: 4946
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed