Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
合宙720开发板连接阿里云MQTT
720
mqtt
mqtt发布
物联网
合宙720开发板连接阿里云MQTT步骤说明
> 今天来给大家分享一下720开发板通过AT命令连接阿里云物联网平台的方法,阿里云物联网平台支持很多种连接协议,后台非常强大,可以清楚、直观的了解当前设备的连接状况。 本文主要介绍的是连接、发送部分,阿里云物联网平台还可以实现规则引擎、边缘计算、设备影子等非常强大的功能,感兴趣的小伙伴自行研究下。 ------------ > 首先,我们先来了解一下阿里云物联网平台,这里是官方介绍链接: https://www.aliyun.com/product/iot-deviceconnect 这是关于设备端开发协议的官方文档: https://help.aliyun.com/document_detail/30540.html ------------ > 本教程对应阿里云中“MQTT客户端域名直连”部分,主要是讲解连接域名、设备ID、用户名、密码的计算步骤 # 一、阿里云平台设备创建 ## 1、登陆阿里云,进入控制台->物联网平台 ![](/static/editormd/php/../uploads/5_38353.png) 2、进入设备管理-产品 ![](/static/editormd/php/../uploads/5_63872.png) ## 3、创建产品 ![](/static/editormd/php/../uploads/5_19354.png) ![](/static/editormd/php/../uploads/5_63566.png) ![](/static/editormd/php/../uploads/5_15335.png) > 关于基础版和高级版可以参考阿里云文档,这里以创建基础版为例 ## 4、添加设备 ![](/static/editormd/php/../uploads/5_73190.png) ![](/static/editormd/php/../uploads/5_38825.png) ![](/static/editormd/php/../uploads/5_84761.png) > 此处DeviceName建议填写IMEI号,也可填写其他可以保证唯一的号码(比如SN、MAC等) ## 5、得到设备证书(三元组数据) ![](/static/editormd/php/../uploads/5_26003.png) > 这个设备证书里面有三个参数,稍后计算请求信息会用到,非常重要 ## 6、配置Topic类 回到刚刚创建的产品,在消息和通信选项卡下,创建Topic类 ![](/static/editormd/php/../uploads/5_26229.png) ![](/static/editormd/php/../uploads/5_61826.png) Topic类分为发布、订阅、发布和订阅,发布是指可以向平台发送消息,订阅是指可以从平台接收消息,发布和订阅是指发送消息到平台并从平台接收消息(设备发布的消息平台会返回相同信息) > 阿里云Topic规则如下: Topic格式必须以“/”进行分层,区分每个类目。其中前两个类目已经规定好,第一个代表产品标识productKey,第二个${deviceName}通配deviceName。简单来说,Topic类:/pk/${deviceName}/update是具体Topic: /pkTopic格式必须以“/”进行分层,区分每个类目。其中前两个类目已经规定好,第一个代表产品标识productKey,第二个${deviceName}通配deviceName。简单来说,Topic类:/pk/${deviceName}/update是具体Topic: /pk/mydevice/update 或者 /pk/yourdevice/update 的集合 这里我们先添加一个发布和订阅的test Topic类 # 二、计算请求信息 > 本教程示范步骤采用的是“MQTT客户端域名直连”方法,如采用“使用HTTPS认证再连接模式”需要先调用HTTP请求获取设备iotId和密钥iotToken,其余步骤基本相同 这里假设我的设备三元组信息如下: ProductKey: a1hahpgAs3s DeviceName: test DeviceSecret: qIpssQEfjxuGoiDHCiQ6PZb1vUJ7SsAM ## 1、请求域名 > ${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883 ${YourProductKey}请替换为您的产品key。 ${YourRegionId}请参考地域和可用区替换为您的Region ID。 目前阿里云物联网平台在国内只有华东2(上海)节点是开放的,对应的Region ID 为 cn-shanghai > 因此我的请求域名为:a1hahpgAs3s.iot-as-mqtt.cn-shanghai.aliyuncs.com ## 2、请求端口 阿里云物联网平台请求端口都为1883,与地域、产品、设备无关 ## 3、请求ID > 我的请求ID:test|securemode=3,signmethod=hmacsha1,timestamp=1544257319| 其中test为DeviceName;securemode可选值有2 (TLS直连模式)和3(TCP直连模式)我们这里采用TCP直连模式因此选3;signmethod是加密方法,我们这里采用哈希SHA1加密,官方支持的还有hmacmd5、hmacsha256;timestamp是时间戳,代表当前时间 ## 4、请求username用户名 > 我的请求用户名:test&a1hahpgAs3s 其中test为DeviceName;a1hahpgAs3s为我的产品ProductKey ## 5、请求password密码 > 我的请求密码:c65de7069643b59fc972e8884fede9aaffeada38 请求密码计算方法如下: ### (1)拼接签名原文 > 此处{{}}中表示对应变量 clientId{{DeviceName}}deviceName{{DeviceName}}productKey{{ProductKey}}timestamp{{time}} 例如,我的签名原文为:clientIdtestdeviceNametestproductKeya1hahpgAs3stimestamp1544257319 ### (2)计算签名 签名密钥为DeviceSecret 根据哈希SHA1方法计算得出签名值为c65de7069643b59fc972e8884fede9aaffeada38 > 签名计算部分比较复杂,因此我用JS开发了一个签名计算工具,地址: http://lhb.ink/mqtt 工具采用JS计算签名值,所有信息在本地计算不会经过网络,可放心使用 # 三、合宙720连接MQTT > 连接之前,建议将固件版本升级为最新版本 ## 1、连接MQTT `AT+CGREG?` 查询注册状态 `AT+CGATT?` 查看当前GPRS附着状态 `AT+CSTT="3GWAP"` 设置APN 我这里用的是联通卡,如果是电信卡换成`AT+CSTT="CMNET"` `AT+CIICR` 激活移动场景 `AT+CIFSR` 查询当前IP `AT+MCONFIG="test|securemode=3,signmethod=hmacsha1,timestamp=1544257319|","test&a1hahpgAs3s","c65de7069643b59fc972e8884fede9aaffeada38"` 设置当前连接参数,包括请求客户端ID、用户名、密码,**此处请根据实际设备参数填写** `AT+MIPSTART="a1hahpgAs3s.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883"`设置当前连接参数,包括请求地址、端口,**此处请根据实际设备参数填写** `AT+MCONNECT=1,600` 建立连接会话,此处600为MQTT保活时间 > 设备端在保活时间间隔内,至少需要发送一次报文,包括ping请求。 如果服务端在保活时间内无法收到任何报文,物联网平台会断开连接,设备端需要进行重连。 设置保活时间的取值,取值范围为30至1200秒,建议取值300秒以上。 `AT+MSUB="/a1hahpgAs3s/test/test",0` 订阅消息,第一个test为设备DeviceName,第二个test为消息路径(在一、6中创建的,可在物联网平台配置) `AT+MPUB="/a1hahpgAs3s/test/test",0,0,"helloworld"`发布消息`helloworld`到test路径中 `AT+MDISCONNECT` 关闭MQTT连接 此部分前后关联较强,附我测试的AT命令交互: > 16:39:24.390]发→◇AT+CGREG? [16:39:24.391]收←◆AT+CGREG? +CGREG: 2,1,"2317","0a541706" OK [16:39:25.590]发→◇AT+CGATT? [16:39:25.592]收←◆AT+CGATT? +CGATT: 1 OK [16:39:27.048]发→◇AT+CSTT="3GWAP" [16:39:27.050]收←◆AT+CSTT="3GWAP" OK [16:39:27.844]发→◇AT+CIICR [16:39:27.847]收←◆AT+CIICR [16:39:28.137]收←◆ +CGEV: ME PDN ACT 7 OK [16:39:29.510]发→◇AT+CIFSR [16:39:29.513]收←◆ AT+CIFSR 10.69.48.127 [16:39:48.025]收←◆+UPGRADEIND: 0 [16:39:54.611]收←◆+UPGRADEIND: -1002 [16:39:56.309]收←◆ +CGEV: NW MODIFY 5,2 [16:39:56.339]收←◆ +CGEV: NW MODIFY 7,2 [16:41:35.502]发→◇AT+MCONFIG="test|securemode=3,signmethod=hmacsha1,timestamp=1544257319|","test&a1hahpgAs3s","c65de7069643b59fc972e8884fede9aaffeada38" [16:41:35.505]收←◆ AT+MCONFIG="test|securemode=3,signmethod=hmacsha1,timestamp=1544257319|","test&a1hahpgAs3s","c65de7069643b59fc972e8884fede9aaffeada38" OK [16:41:36.960]发→◇AT+MIPSTART="a1hahpgAs3s.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883" [16:41:36.962]收←◆AT+MIPSTART="a1hahpgAs3s.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883" OK [16:41:37.271]收←◆ CONNECT OK [16:41:38.519]发→◇AT+MCONNECT=1,600 [16:41:38.522]收←◆AT+MCONNECT=1,600 OK [16:41:38.720]收←◆ CONNACK OK [16:41:58.578]发→◇AT+MSUB="/a1hahpgAs3s/test/test",0 [16:41:58.582]收←◆AT+MSUB="/a1hahpgAs3s/test/test",0 OK [16:41:58.791]收←◆ SUBACK [16:42:06.912]发→◇AT+MPUB="/a1hahpgAs3s/test/test",0,0,"helloworld" [16:42:06.915]收←◆AT+MPUB="/a1hahpgAs3s/test/test",0,0,"helloworld" OK [16:42:07.073]收←◆ +MSUB: "/a1hahpgAs3s/test/test",10 byte,helloworld [16:42:17.258]发→◇AT+MDISCONNECT [16:42:17.261]收←◆ AT+MDISCONNECT OK [16:42:19.824]收←◆ CLOSED 注:实际请求请使用根据设备计算的参数进行连接 ## 2、在阿里云后台查看设备连接情况 ![](/static/editormd/php/../uploads/5_44673.png) 激活设备:首次连接连接后设备由未激活变为激活状态 ## 3、查看设备日志 ![](/static/editormd/php/../uploads/5_61952.png) *内容较长难免出现纰漏,如有错误欢迎批评指正*
发表于 2018-12-08 17:02
阅读 ( 6716 )
分类:
默认分类
6 推荐
收藏
你可能感兴趣的文章
11、RDA8910CSDK二次开发:新鲜出炉的MQTT库
7853 浏览
11、合宙Air模块Luat开发:通过http协议获取天气信息
2434 浏览
6、合宙Air模块Luat开发:又是一种新的外设之ADC模数转换,现在我们可以采集模拟量数据了
2225 浏览
5、合宙Air模块Luat开发:GPIO输入常见的两种使用方法及其优劣性
2314 浏览
4、合宙Air模块Luat开发:用GPIO输出功能实现一个简单的LED灯闪烁
2544 浏览
3、合宙Air模块Luat开发:实现用"Printf"把文字格式化以后直接输出
2114 浏览
相关问题
2G模块连接阿里云每隔3s上发一次数据,但是会报错出现连接重置,日志打出来是ssl连接被关闭,请问这是信号差的原因还是什么其他的原因?
0 回答
Air202模块连接阿里云MQTT,如何用Lua计算password?
0 回答
us级脉冲信号采集计数
1 回答
请问我用720模块的GPIO-55管脚作为IO口时,模块一直重启,启动不了,怎么回事。
1 回答
怎么在MQTT SSL连接时的添加自己ca证书验证
1 回答
air202,用mqtt协议连接onenet平台(lua)。
1 回答
0 条评论
请先
登录
后评论
Mr.li
4 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!