初试连接阿里云IoT套件,教你一小时完成接入

  1. 云栖社区>
  2. 博客>
  3. 正文

初试连接阿里云IoT套件,教你一小时完成接入

传感云 2018-06-24 14:26:07 浏览6215
展开阅读全文

1. 创建设备。

e6a74c0330b8a9f9cc3afb19abe639a147d588a9

8d4b67c117d228e855761da31999e9fab77652ab

0ac48e66efb69991e069fd054c814f5d28abb92f

717d0f1f698a2dad7ae3423eacec26a7e179efea

点击“查看设备”,点击“前往管理”点击添加设备

8b3b8d2c2ac2b694e551339cd2abe55a9c412605

9920858dee891735300a387666f66d0af0fa0335



从平台上获取相关的信息:

ProductKey:a1BekCto7zj

主机,端口a1BekCto7zj.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

DeviceName:Norra_Device_000001

DeviceSecret:OQzK9z8XoWrnH9LeeO4kIMFHk1WEu5ov

clientID:自己随意定义为12345

timestamp:自己随意定义为10,给上发的消息打上标识

 

参考Ref[3],获取相关信息:

规则:

mqttClientId: 12345+"|securemode=3,signmethod=hmacsha1,timestamp=10|"

例子:

"12345|securemode=3,signmethod=hmacsha1,timestamp=10|

 

规则:

mqttUsername: deviceName+"&"+productKey

例子:

"Norra_Device_000001&a1BekCto7zj"

 

规则:

mqttPassword: sign_hmac(deviceSecret,content)sign签名需要把以下参数按字典序排序后,再根据signmethod加签。

举例:password=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString();  //最后是二进制转16制字符串,大小写不敏感。 这个例子结果为FAFD82A3D602B37FB0FA8B7892F24A477F851A14

 

hmacsha1工具:http://tool.oschina.net/encrypt?type=2

例子:

clientId12345deviceNameNorra_Device_000001productKeya1BekCto7zjtimestamp10

的密码:

72770e19f50540d4a17b376808630ecd5c9a0fc9

7599a61f53c46d667a892e168030e7137d70c8b3

最终生成Mqtt connect内容:

10 8b 01 00 04 4d 51 54 54 04 C2 00 78 00 34 31 32 33 34 35 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 2C 74 69 6D 65 73 74 61 6D 70 3D 31 30 7C 00 1F 4E 6F 72 72 61 5F 44 65 76 69 63 65 5F 30 30 30 30 30 31 26 61 31 42 65 6B 43 74 6F 37 7A 6A 00 28 37 32 37 37 30 65 31 39 66 35 30 35 34 30 64 34 61 31 37 62 33 37 36 38 30 38 36 33 30 65 63 64 35 63 39 61 30 66 63 39

 

注意红色字体:

1. 第二个字节有关的Remaining Length field需要特别注意,容易弄错。

2. Playload里面的每个子项都由长度开头。

 

使用python连接阿里云IoT,参考Ref[4]

83e4881ed4679ec3c87b87e8d52db39f5616eef4


使用Wireshark监测通信和MQTT协议,参考Ref[2]

3f0a518b8ab6c08414b2b1093f53383c904d2b6a

 

结果:

90c53adc7d37483bbec538f4e9241b8473c6bbdc

de60d0094ae0f5dc339a928b31d0607567ac8457

9e492b6c4a34dbc03a7741f755606b5e0c189382

Ref[1]. http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf

Ref[2].MQTT】使用Wireshark分析MQTT协议 - CSDN博客.pdfhttps://blog.csdn.net/yannanxiu/article/details/71310723

Ref[3]. MQTT-TCP连接通信_设备多协议连接_设备开发指南_阿里云物联网套件-阿里云.pdfhttps://help.aliyun.com/document_detail/30539.html?spm=a2c4g.11186623.6.592.fukmCQ

Ref[4]. Python】使用Python模拟设备接入阿里云物联网的MQTT服务器 - CSDN博客.pdfhttps://blog.csdn.net/yannanxiu/article/details/77185796



网友评论

登录后评论
0/500
评论
传感云
+ 关注