阿里云物联网平台MQTT通道的动态注册(Python)

简介: 目前阿里云物联网平台MQTT通道的动态注册,仅提供了Java的示例代码。本文基于开源的Paho MQTT库,使用Python进行接入。

一、概述

阿里云物联网平台设备的动态注册分为一型一密预注册一型一密免预注册,具体说明与限制请参考官方文档:https://help.aliyun.com/document_detail/132111.html


二、前提条件

控制台前置操作

产品详情页开启“动态注册”

image.png

预注册:表示需要提前在物联网平台控制台上添加好设备。

image.png

免预注册:无需在控制台提前添加设备。


安装开源paho mqtt库

pip install paho-mqtt


下载根证书

目前,动态注册只支持使用TLS建立连接,不支持TCP直连。因此需要下载根证书。

https://aliyun-iot.oss-cn-hangzhou.aliyuncs.com/cert_pub/root.crt


三、代码示例

预注册(上海公共实例)

importhmacfromhashlibimportsha1importpaho.mqtt.clientasmqttdefon_message(client, userdata, msg):
print(str(msg.payload))
defon_connect(client, userdata, flags, rc):
#物联网平台返回的结果码,0表示动态注册成功,其他错误码参考文档排查:https://help.aliyun.com/document_detail/132111.htmlprint('rc:'+str(rc))
client=mqtt.Client(client_id='12345|securemode=2,authType=register,random=123,signmethod=hmacsha1|')
productKey='***'productSecret='***'deviceName='register_device'content='deviceName'+deviceName+'productKey'+productKey+'random'+'123'username=deviceName+'&'+productKeypassword=hmac.new(productSecret.encode(),content.encode(),sha1).hexdigest()
client.username_pw_set(username=username, password=password)
client.on_connect=on_connectclient.on_message=on_message#设置TLS连接证书路径client.tls_set('root.crt')
client.connect(host="${productKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com", port=1883)
client.loop_start()
whileTrue:
1;


运行结果image.png


免预注册(上海公共实例)

importhmacfromhashlibimportsha1importpaho.mqtt.clientasmqttdefon_message(client, userdata, msg):
print(str(msg.payload))
defon_connect(client, userdata, flags, rc):
# 物联网平台返回的结果码,0表示动态注册成功,其他错误码参考文档排查:https://help.aliyun.com/document_detail/132111.htmlprint('rc:'+str(rc))
client=mqtt.Client(client_id='12345|securemode=-2,authType=regnwl,random=123,signmethod=hmacsha1|')
productKey='***'productSecret='***'deviceName='regnwl_device'content='deviceName'+deviceName+'productKey'+productKey+'random'+'123'username=deviceName+'&'+productKeypassword=hmac.new(productSecret.encode(),content.encode(),sha1).hexdigest()
client.username_pw_set(username=username, password=password)
client.on_connect=on_connectclient.on_message=on_message#设置TLS连接证书路径client.tls_set('root.crt')
client.connect(host="${productKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com", port=1883)
client.loop_start()
whileTrue:
1;


运行结果

image.png

image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
3月前
|
消息中间件 存储 Serverless
【实践】快速学会使用阿里云消息队列RabbitMQ版
云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
128 2
|
5月前
|
消息中间件 存储 缓存
Python之RabbitMQ操作
Python之RabbitMQ操作
|
2月前
|
存储 算法 安全
FreeMQTT:一款Python语言实现的开源MQTT Server
FreeMQTT 是一款用 Python 语言并基于 Tornado 开发的开源 MQTT 服务器,支持 MQTT3.1.1 和 MQTT5.0 协议,提供多租户安全隔离、高效 Topic 匹配算法及实时上下线通知等功能,适用于 IoT 场景。快速启动仅需克隆仓库、安装依赖并运行服务。
|
3月前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
85 5
|
3月前
|
机器学习/深度学习 物联网 数据处理
C语言用于物联网更合适还是python
选择 C 语言还是 Python 作为物联网(IoT)开发的语言取决于多个因素,包括项目的性质、资源限制、性能需求以及开发团队的技能水平。C 语言性能优越,适合资源受限的嵌入式设备,能直接访问硬件,广泛应用于底层开发,但开发复杂且容易出错。Python 则以其简单的语法和丰富的库支持快速开发和原型制作,适合跨平台应用和数据处理,但性能较低,资源占用较大。根据项目需求,性能和资源要求高时选择 C 语言,需快速开发和易于维护时选择 Python。
|
4月前
|
消息中间件 弹性计算 运维
阿里云云消息队列RabbitMQ实践解决方案评测报告
阿里云云消息队列RabbitMQ实践解决方案评测报告
84 9
|
4月前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【9月更文挑战第3天】物联网(IoT)的兴起催生了多种通信协议,如MQTT、CoAP、RESTful/HTTP和XMPP,各自适用于不同场景。本文将对比这些协议的特点、优缺点,并提供示例代码。MQTT轻量级且支持QoS,适合大规模部署;CoAP基于UDP,适用于低功耗网络;RESTful/HTTP易于集成但不适合资源受限设备;XMPP支持双向通信,适合复杂交互应用。通过本文,开发者可更好地选择合适的物联网通信协议。
54 2
|
5月前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【8月更文挑战第14天】本文概览了MQTT、CoAP、RESTful/HTTP及XMPP四种物联网通信协议。MQTT采用发布/订阅模式,轻量高效;CoAP针对资源受限设备,基于UDP,低延迟;RESTful/HTTP易于集成现有Web基础设施;XMPP支持双向通信,扩展性强。每种协议均附有示例代码,助您根据不同场景和设备特性作出最佳选择。
45 5
|
5月前
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
172 0
|
5月前
|
物联网 网络性能优化 Python
"掌握MQTT协议,开启物联网通信新篇章——揭秘轻量级消息传输背后的力量!"
【8月更文挑战第21天】MQTT是一种轻量级的消息传输协议,以其低功耗、低带宽的特点在物联网和移动应用领域广泛应用。基于发布/订阅模型,MQTT支持三种服务质量级别,非常适合受限网络环境。本文详细阐述了MQTT的工作原理及特点,并提供了使用Python `paho-mqtt`库实现的发布与订阅示例代码,帮助读者快速掌握MQTT的应用技巧。
102 0

热门文章

最新文章

相关产品

  • 物联网平台