东莞免费做网站,电商类网站建设需要多少钱,马尾建设局网站,网站换程序简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式#xff0c;其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具#xff1a; AT固件获取在线加/解密工具阿里云平台 准备工作
Air780EP_全IO开发板一套#xff0c;包括天线SIM卡#xff0…简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具 AT固件获取在线加/解密工具阿里云平台 准备工作
Air780EP_全IO开发板一套包括天线SIM卡USB线并烧录AT固件 PC电脑串口工具 准备设备证书及产品证书 注意下方证书信息仅为本教程使用用户需要使用自己的证书信息
--设备证书
{ProductKey: k1hipglLdjU,DeviceName: 868488076506128,DeviceSecret: fef32adf6dad46c2c7cbf335d3a7b021
}
--产品证书
{ProductSecret: 8LQwOYSZMwp3DFBd,ProductKey: k1hipglLdjU
}阿里云操作
产品操作
打开阿里云平台找到物联网平台开通业务后进入控制台。
点开设备管理的产品页面点击新建产品。根据需求和图示说明创建产品。
具体详细介绍见阿里云页面 设备操作
创建产品完成后就可以进入设备页面添加设备在对应产品页面进入设备管理按照提示添加设备
在做正式产品时建议使用imei为devicename方便后期维护
阿里云设备创建
连接阿里云
一机一密AT HTTP鉴权连接
首先需要使用HmacMD5计算哈希值用于签名使用网址在线加/解密工具(https://encode.chahuo.com/)
明文 clientId868488076506128deviceName868488076506128productKeyk1hipglLdjU
秘钥 fef32adf6dad46c2c7cbf335d3a7b021
结果 0f655b12adf519b9a7a2b0a990f398b6拼接DOWNLOAD参数
productKeyk1hipglLdjUsign0f655b12adf519b9a7a2b0a990f398b6clientId868488076506128deviceName868488076506128AT交互流程如下所示
激活网络
[03:09:17.105]发→◇ATCGATT?
□
[03:09:17.106]收←◆ATCGATT?CGATT: 1OK[03:09:24.575]发→◇ATSAPBR3,1,CONTYPE,GPRS
□
[03:09:24.579]收←◆ATSAPBR3,1,CONTYPE,GPRSOK[03:09:32.363]发→◇ATSAPBR3,1,APN,CMIOT
□
[03:09:32.365]收←◆ATSAPBR3,1,APN,CMIOTOK[03:09:38.899]发→◇ATSAPBR1,1
□
[03:09:38.901]收←◆ATSAPBR1,1OK初始化HTTP
[03:09:43.901]发→◇ATHTTPINIT
□
[03:09:43.903]收←◆ATHTTPINITOK写入网址URL
[03:09:50.783]发→◇ATHTTPPARAURL,https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicename
□
[03:09:50.786]收←◆ATHTTPPARAURL,https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicenameOK设置本次请求的hearder注意Content-type: 后面有一个空格
[03:09:57.667]发→◇ATHTTPPARAUSER_DEFINED,Content-type: application/x-www-form-urlencoded
□
[03:09:57.671]收←◆ATHTTPPARAUSER_DEFINED,Content-type: application/x-www-form-urlencodedOK配置写入DOWNLOAD参数指令注意这个112是DOWNLOAD参数的数据长度以字节为单位实际使用时要根据自己的数据长度进行修改切记 待出现DOWNLOAD后发送通过前文计算拼接出来的DOWNLOAD参数
[03:10:05.246]发→◇ATHTTPDATA112,20000
□
[03:10:05.249]收←◆ATHTTPDATA112,20000DOWNLOAD写入DOWNLOAD参数注意最好自己复制这串数据然后修改具体的值不要全部手动输入否则很容易出问题切记
[03:10:10.735]发→◇productKeyk1hipglLdjUsign0f655b12adf519b9a7a2b0a990f398b6clientId868488076506128deviceName868488076506128
□
[03:10:10.740]收←◆
OKHTTPACTION的信息上报正常的话会回复状态码200
[03:10:16.378]发→◇ATHTTPACTION1
□
[03:10:16.381]收←◆ATHTTPACTION1OK收到信息上报正常回复状态码200收到返回数据长度为124
[03:10:18.025]收←◆
HTTPACTION: 1,200,124读取请求结果注意HTTPREAD返回的数据中有iotId和iotToken其中iotId的值为MQTT client的用户名iotToken的值为MQTT client的密码
[03:10:51.867]发→◇ATHTTPREAD
□
[03:10:51.870]收←◆ATHTTPREADHTTPREAD: 124
{code:200,data:{iotId:2BGmgWFvoXlbi1Er9sk4k1hip0,iotToken:137eb0759ca248b79383a60c0b0e0f80},message:success}
OK配置连接阿里云注意第一个值为clientId第二个值为iotId第三个值为iotToken
[03:13:32.942]发→◇ATMCONFIG868488076506128,2BGmgWFvoXlbi1Er9sk4k1hip0,137eb0759ca248b79383a60c0b0e0f80
□
[03:13:32.945]收←◆ATMCONFIG868488076506128,2BGmgWFvoXlbi1Er9sk4k1hip0,137eb0759ca248b79383a60c0b0e0f80OK建立连接注意收到CONNECT OK后立刻发送指令建立会话不然会被踢一定注意
[03:13:51.493]发→◇ATSSLMIPSTARTa1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com,1883
□
[03:13:51.496]收←◆ATSSLMIPSTARTa1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com,1883OK[03:13:52.911]收←◆
CONNECT OK[03:13:53.182]发→◇ATMCONNECT1,120
□
[03:13:53.185]收←◆ATMCONNECT1,120OK[03:13:53.434]收←◆
CONNACK OK连接成功 一机一密AT直连MQTT
当设备属于公共实例使用一型一密预注册认证方式时动态注册参数如下
mqttClientId: clientId|securemode3,signmethodhmacsha1,timestamp132323232|
mqttUsername: deviceNameproductKey
mqttPassword: sign_hmac(deviceSecret,content)参数说明clientId客户端ID长度在64个字符内建议使用IMEI或SN码方便区分不同客户端securemode安全模式 2 (TLS直连模式3 (TCP直连模式)signmethod表示签名算法类型。支持hmacmd5hmacsha1hmacsha256。默认为hmacmd5timestamp表示当前时间毫秒值可以不传递mqttPassword前文计算的签名值
AT交互流程如下所示
配置MQTT参数
[03:51:26.001]发→◇ATMCONFIG868488076506128|securemode3,signmethodhmacmd5|,868488076506128k1hipglLdjU,0f655b12adf519b9a7a2b0a990f398b6
□
[03:51:26.004]收←◆ATMCONFIG868488076506128|securemode3,signmethodhmacmd5|,868488076506128k1hipglLdjU,0f655b12adf519b9a7a2b0a990f398b6OK建立连接注意第一个参数需要根据实际项目productKey修改
[03:51:43.546]发→◇ATSSLMIPSTARTk1hipglLdjU.iot-as-mqtt.cn-shanghai.aliyuncs.com,1883
□
[03:51:43.549]收←◆ATSSLMIPSTARTk1hipglLdjU.iot-as-mqtt.cn-shanghai.aliyuncs.com,1883OK建立会话注意收到 CONNECT OK 后立刻发送指令建立会话不然会被踢一定注意
[03:51:45.836]收←◆
CONNECT OK[03:51:48.961]发→◇ATMCONNECT1,120
□
[03:51:48.964]收←◆ATMCONNECT1,120OK[03:51:49.179]收←◆
CONNACK OK一型一密AT方式连接
一型一密与一机一密的主要区别在于第一次连接的时候需要根据协议请求秘钥首先需要在阿里云打开动态注册开关如下图所示 使用到的参数如下所示
{ProductSecret: 8LQwOYSZMwp3DFBd,ProductKey: k1hipglLdjUDeviceName 868488076506128
}明文deviceName868488076506128productKeyk1hipglLdjUrandom123456
秘钥8LQwOYSZMwp3DFBd
HmacMD5计算结果20558baadb2a0b04847767980f0ee67bDOWNLOAD参数
--random 为随机数长度不定
productKeyk1hipglLdjUdeviceName868488076506128random123456sign20558baadb2a0b04847767980f0ee67bsignMethodHmacMD5当设备属于公共实例使用一型一密预注册认证方式时动态注册参数如下
mqttClientId: clientId|securemode2,authTypexxxx,randomxxxx,signmethodxxxx|
mqttUserName: deviceNameproductKey
mqttPassword: sign_hmac(productSecret,content) AT交互流程如下所示
激活网络注意先发送ATCGATT?查询是否附着上GPRS数据网络返回CGATT: 1后才能执行下面的三个 AT指令。
[04:07:13.901]发→◇ATCGATT?
□
[04:07:13.902]收←◆ATCGATT?CGATT: 1OK[04:07:23.900]发→◇ATSAPBR3,1,CONTYPE,GPRS
□
[04:07:23.902]收←◆ATSAPBR3,1,CONTYPE,GPRSOK[04:07:31.245]发→◇ATSAPBR3,1,APN,CMIOT
□
[04:07:31.248]收←◆ATSAPBR3,1,APN,CMIOTOK[04:07:38.659]发→◇ATSAPBR1,1
□
[04:07:38.661]收←◆ATSAPBR1,1OK初始化HTTP
[04:08:35.329]发→◇ATHTTPINIT
□
[04:08:35.332]收←◆ATHTTPINITOK写入网址URL
[04:08:44.056]发→◇ATHTTPPARAURL,https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
□
[04:08:44.061]收←◆ATHTTPPARAURL,https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/deviceOK设置本次请求的hearder注意Content-type: 后面有一个空格
[04:08:54.671]发→◇ATHTTPPARAUSER_DEFINED,Content-Type: application/x-www-form-urlencoded
□
[04:08:54.674]收←◆ATHTTPPARAUSER_DEFINED,Content-Type: application/x-www-form-urlencodedOK配置写入DOWNLOAD参数指令注意这个120是DOWNLOAD参数的数据长度以字节为单位实际使用时要根据自己的数据长度进行修改切记 待出现DOWNLOAD后发送通过前文计算拼接出来的DOWNLOAD参数
[04:09:11.437]发→◇ATHTTPDATA120,20000
□
[04:09:11.439]收←◆ATHTTPDATA120,20000DOWNLOAD写入DOWNLOAD参数注意最好自己复制这串数据然后修改具体的值不要全部手动输入否则很容易出问题切记
[04:09:16.944]发→◇productKeyk1hipglLdjUdeviceName868488076506128random123456sign20558baadb2a0b04847767980f0ee67bsignMethodHmacMD5
□
[04:09:16.947]收←◆
OKHTTPACTION的信息上报正常的话会回复状态码200
[04:09:26.653]发→◇ATHTTPACTION1
□
[04:09:26.656]收←◆ATHTTPACTION1OK收到信息上报正常回复状态码200收到返回数据长度为149
[04:09:28.828]收←◆
HTTPACTION: 1,200,149读取请求结果
[04:09:43.709]发→◇ATHTTPREAD
□
[04:09:43.711]收←◆ATHTTPREADHTTPREAD: 149
{code:200,data:{deviceName:868488076506128,deviceSecret:fef32adf6dad46c2c7cbf335d3a7b021,productKey:k1hipglLdjU},message:success}
OK发布与订阅消息
发布消息
发布Qos0消息
[04:58:06.798]发→◇ATMPUB/k1hipglLdjU/868488076506128/user/update,0,0,HelloWorld
□
[04:58:06.802]收←◆ATMPUB/k1hipglLdjU/868488076506128/user/update,0,0,HelloWorldOK发布Qos1消息注意Qos1 消息必须等到PUBACK返回才能发下一条消息
[04:58:43.408]发→◇ATMPUB/k1hipglLdjU/868488076506128/user/update,1,0,HelloWorld
□
[04:58:43.412]收←◆ATMPUB/k1hipglLdjU/868488076506128/user/update,1,0,HelloWorldOK[04:58:43.709]收←◆
PUBACK通过物联网平台-监控运维-日志服务可以直接查看日志信息 订阅消息
订阅主题
[05:01:58.568]发→◇ATMSUB/k1hipglLdjU/868488076506128/user/get,0
□
[05:01:58.572]收←◆ATMSUB/k1hipglLdjU/868488076506128/user/get,0OK[05:01:58.887]收←◆
SUBACK设置收到数据时的打印方式 配置为0时主动上报到串口上报的 URC 为MSUBtopic,len,message 配置为1时为缓存模式。有新订阅消息时上报的URC为 MSUBstore_addr
[05:02:05.102]发→◇ATMQTTMSGSET0
□
[05:02:05.105]收←◆ATMQTTMSGSET0OK通过阿里云平台发布消息
外链图片转存中…(img-YxMoe4AE-1721627349846)]
订阅消息
订阅主题
[05:01:58.568]发→◇ATMSUB/k1hipglLdjU/868488076506128/user/get,0
□
[05:01:58.572]收←◆ATMSUB/k1hipglLdjU/868488076506128/user/get,0OK[05:01:58.887]收←◆
SUBACK设置收到数据时的打印方式 配置为0时主动上报到串口上报的 URC 为MSUBtopic,len,message 配置为1时为缓存模式。有新订阅消息时上报的URC为 MSUBstore_addr
[05:02:05.102]发→◇ATMQTTMSGSET0
□
[05:02:05.105]收←◆ATMQTTMSGSET0OK通过阿里云平台发布消息