Python模拟智能开关设备MQTT接入阿里云物联网平台 - PyCharm paho.mqtt

该博客介绍了使用Python脚本接入阿里云物联网平台的Demo。利用阿里云设备证书,以MQTT协议接入平台,模拟智能开关设备上报消息。说明了脚本使用说明、运行现象及异常处理,代码运行环境推荐PyCharm,需安装paho.mqtt,还指出改动的关键项要与个人设备匹配。

概要

Python 使用 paho.mqtt 库,利用阿里云物联网平台的设备证书:productKey、deviceName、deviceSecret,自动合成 userName、passWord。以MQTT通信协议接入阿里云物联网平台,并模拟智能开关设备上报开关消息。

非常适合作为MQTT物联网设备的客户端模拟。在此Demo基础上可非常方便进行二次开发。

MQTT.fx做客户端固然方便,但如果想对流程或任务进行定制、让其模拟物联网设备的功能、或者多开自动化脚本,应该没什么比Python更方便了吧。


Python脚本使用说明

  • MQTT接入阿里云物联网平台Demo,使用一机一密的方式。
  • 我的代码运行环境为PyCharm,运行时,需安装 paho.mqtt。
  • 在 PyCharm 的 File - Settings - Projectxxx - Python Interpreter 中,搜索并安装 paho.mqtt。
  • Demo中需要根据个人设备进行改动的仅5项:productKeydeviceNamedeviceSecretregionIdmodelName
  • 代码运行后,会使用设备证书的信息,自动连接阿里云物联网平台。并以5s为间隔,自动上报开关的状态消息。
  • 在阿里云在线调试界面,下发消息,可在客户端收到对应的json报文。

阿里云设备注册 的过程,请参照链接:阿里云MQTT物联网设备注册


Demo源码(IDE推荐用 PyCharm)

  • Demo中需要根据个人设备进行改动的仅5项:productKeydeviceNamedeviceSecretregionIdmodelName。一定要保证这5项与个人注册的设备相匹配。
import hmac
from hashlib import sha1
import time
from paho.mqtt.client import MQTT_LOG_INFO, MQTT_LOG_NOTICE, MQTT_LOG_WARNING, MQTT_LOG_ERR, MQTT_LOG_DEBUG
from paho.mqtt import client as mqtt
import json
import random
import threading

'''
# 原文链接 - 我的博客,更多内容可查看我的主页。
# MQTT接入阿里云物联网平台Demo,使用一机一密的方式
# 运行时,需安装 paho.mqtt
# 在PyCharm 的 File - Settings - Projectxxx - Python Interpreter 中,搜索并安装 paho.mqtt
# 需要根据个人设备进行改动的仅5项:productKey、deviceName、deviceSecret、regionId、modelName
'''

# 设备证书(ProductKey、DeviceName和DeviceSecret),三元组
productKey = 'a1wFylTxYeD'
deviceName = 'co_0001'
deviceSecret = '7ab0c4b3532b5783df5fdc58a2895d7a'

# ClientId Username和 Password 签名模式下的设置方法,参考文档 https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.6.614.c92e3d45d80aqG
# MQTT - 合成connect报文中使用的 ClientID、Username、Password
mqttClientId = deviceName + '|securemode=3,signmethod=hmacsha1|'
mqttUsername = deviceName + '&' + productKey
content = 'clientId' + deviceName + 'deviceName' + deviceName + 'productKey' + productKey
mqttPassword = hmac.new
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值