阿里云IOT平台设备的接入与交互(Python)

阿里云IOT平台设备的接入与交互(Python)
菜鸟
菜鸟
58
阅读
0
评论
2021年10月09日21:40:36 0 58

使用阿里云物联网平台(有免费模式可以用),实现任务一:注册设备、认证烧录设备、最终上线设备。实现任务二:可用Python(或其他语言也行)实现设备的接入,并使用MQTT协议实现与设备的交互~

一、注册阿里云物联网平台

有两种注册方式,第一种是个人注册,第二种公司注册,依自身情况选择。

二、 注册设备

第一步,需要先注册产品,物联网的产品种类繁多,各式各样,产品里面可以选择设备的具体类型,如停车定位卡、烟雾感应器等。

第二步,根据注册的产品选择新建设备,并起个名字如device1,这样就有了一个该类产品的具体设备,设备名device1。

建立和注册设备之后,就有了关于这个设备的,四大基础信息,如下所示:

ProductKey = "..."

ClientId = "12345"  # 自定义clientId

DeviceName = "device1"

DeviceSecret = "..."

除了ClientId和DeviceName可以自己定义之外,其他二项都是系统提供的设备标识(具有唯一性)

三、认证及烧录设备

由于阿里云物联网套件关于设备认证的文档不够详细,微微老师摸索了很久才搞清楚,需要用到以下参数:

参数说明

参数  描述

ProductKey  产品Key。从iot套件控制台获取

DeviceName  设备名称。从iot套件控制台获取

DeviceSecret  设别密码,从iot套件控制台获取

signmethod  算法类型,hmacmd5或hmacsha1

clientId  客户端自表示id,建议mac地址或sn

timestamp  当前时间毫秒值,可选

securemode  目前安全模式,可选值有2 (TLS直连模式)、3(TCP直连模式)

根据以上参数,生成用户名和密码(过程有点复杂,建议大家看文档),据此,设备就可以上线运行了,大家可以使用万物互联的MQTT连接设备,就可以与设备进行交互了。

三、MQTT连接Connect地址和端口

<ProductKey>.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

四、MQTT 连接Connect报文参数

1. mqttClientId

mqttClientId = "<ClientId>"+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"

2.mqttUsername

使用&拼接<DeviceName>和<ProductKey>。

mqttUsername = "<DeviceName>&<ProductKey>"

3.mqttPassword

把以下参数按字典键名排序,再把键名都拼接起来(没有分隔符)生成content,然后以DeviceSecret,对content进行hma_sha1加密,最后二进制转为十六进制字符串表示。

mqttPassword = hmac_sha1(DeviceSecret, content).toHexString();

五、代码示例

运行代码,显示连接成功之后,程序开始向阿里云设备循环发送订阅消息,如下图所示:

六、最终效果

如图显示,阿里云上的设备已收到了Python程序发来的订阅消息,大家可在设备上设置订阅消息的返回内容,自动回复给Python客户端程序。


余额充值 点赞(0)
weinxin
账号+金额发此微信
充值后请把会员账号/用户名+充值金额发送到此微信:tourism52
历史上的今天
01月
20
XForms,属性,XForms,属性,可定义,数据,限定,类型, 菜鸟教程

XForms 属性

XForms 属性 XForms 属性可定义数据限定,类型和行为。 XForms 属性 XForms 使用属性来定义可影响 XForms 控件的行为的限定(或其他属性)。 例子: ...
lo,ation ,对象 菜鸟教程

Location 对象

Location 对象Location 对象包含有关当前 URL 的信息。Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问...
html,入门,笔记 菜鸟教程

《HTML入门笔记1》

1、HTML发明者:李爵士英文全称:Hyper Text Markup Language时间:1990年2、单词HTML5 有许多语义元素,过一下单词有助于理解单词 意义 单词 意...
Document,对象,描述,Document,对象,描述,HTMLDocument, 菜鸟教程

Document 对象描述

Document 对象描述 HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法。 很多属性和方法都是 HTMLCollec...
SpringMVC,运行,原理,详解,SpringMVC,运行,原理, 菜鸟教程

SpringMVC运行原理详解

SpringMVC运行原理详解 Spring MVC是Spring框架的一部分,主要用于支持WEB应用程序的开发。从MVC组合的三个单词也可以看出,MVC是一种设计模型,它使用控制...
谈谈,jvm,内部,升级,过程 菜鸟教程

谈谈JVM内部锁升级过程

一  为什么讲这个?总结AQS之后,对这方面顺带的复习一下。本文从以下几个高频问题出发:对象在内存中的内存布局是什么样的?描述synchronized和Reentrant...
go,语言,赋值 菜鸟教程

Go语言之赋值

简单赋值赋值语句用来更新变量所指的值,它最简单的形式由赋值符=,以及符号左边的变量和右边的表达式组成。x = 1  //有名称的变量*p = true  // ...
php, 5 string ,函数 菜鸟教程

PHP 5 String 函数

PHP 5 String 函数PHP 字符串函数是 PHP 核心的组成部分。无需安装即可使用这些函数。函数描述addcslashes()返回在指定的字符前添加反斜杠的字符串。add...

Comment list 共有 0 条评论

暂无评论