当前位置: 首页 > ai >正文

QuecPython+腾讯云:快速连接腾讯云l0T平台

该模块提供腾讯 IoT 平台物联网套件客户端功能,目前的产品节点类型仅支持“设备”,设备认证方式支持“一机一密”和“动态注册认证”。

BC25PA系列不支持该功能。

初始化腾讯 IoT 平台 

 TXyun 

TXyun(productID, devicename, devicePsk, ProductSecret)

配置腾讯 IoT 平台物联网套件的产品信息和设备信息。

参数描述:

  • productID - 产品标识(唯一ID) ,字符串类型
  • devicename - 设备名称 ,字符串类型
  • devicePsk - 设备密钥(一型一密认证方案时此参数传入None),字符串类型,可选参数,默认为None
  • ProductSecret - 产品密钥,字符串类型,一机一密认证方案时,此参数传入None
    一型一密认证方案时,此参数传入真实的产品密钥

返回值描述:

返回TXyun连接对象。

设置相关功能和回调 

 TXyun.setMqtt 

TXyun.setMqtt(clean_session, keepAlive=300,reconn=True)

设置MQTT数据通道的参数

参数描述:

  • clean_session - 产品标识(唯一ID),布尔值类型,如果为True,
    那么代理将在其断开连接时删除有关此客户端的所有信息。 如果为False,则客户端是持久客户端,当客户端断开连接时,订阅信息和排队消息将被保留。默认为False
  • keepAlive - 通信之间允许的最长时间段(以秒为单位),整型类型,默认为300,范围(60-1000),建议300以上
  • reconn - (可选)控制是否使用内部重连的标志,布尔值类型,默认开启为True

返回值描述:

成功返回整型值0,失败返回整型值-1。

 TXyun.setCallback 

TXyun.setCallback(callback)

注册回调函数。

参数描述:

  • callback - 设置消息回调函数,function类型,当服务端响应时触发该方法

回调函数参数

  • topic - mqtt topic主题,字符串类型
  • msg - 需要发送的数据,字符串类型

返回值描述:

 TXyun.error_register_cb 

TXyun.error_register_cb(callback)

设置异常回调函数,腾讯 IoT 平台以及umqtt内部线程异常时通过回调返回error信息,该方法在设置不使用内部重连的情况下才可触发回调

参数描述:

  • callback - 设置异常回调函数,function类型

回调函数参数

  • msg - 异常信息,字符串类型

返回值描述:

示例:

from TenCentYun import TXyundef err_cb(err):print("thread err:")print(err)tenxun = TXyun(productID, devicename, devicePsk, ProductSecret)
tenxun.error_register_cb(err_cb)

订阅发布功能 

 TXyun.subscribe 

TXyun.subscribe(topic,qos)

订阅mqtt主题。

参数描述:

  • topic - mqtt topic主题,字符串类型
  • qos - MQTT消息服务质量(默认0,可选择0或1),整型类型
    0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker

返回值描述:

成功返回整型值0,失败返回整型值-1。

 TXyun.publish 

TXyun.publish(topic,msg, qos=0)

发布消息。

参数描述:

  • topic - mqtt topic主题,字符串类型
  • msg - 需要发送的数据,字符串类型
  • qos - MQTT消息服务质量(默认0,可选择0或1),整型类型
    0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker

返回值描述:

成功返回整型值0,失败返回整型值-1。

启停服务相关功能

 TXyun.start 

TXyun.start()

运行连接。

参数描述:

返回值描述:

 TXyun.disconnect 

TXyun.disconnect()

关闭连接。

参数描述:

返回值描述:

 TXyun.ping 

TXyun.ping()

发送心跳包

参数描述:

返回值描述:

 TXyun.getTXyunsta 

TXyun.getTXyunsta()

获取腾讯 IoT 平台连接状态

注意:BG95平台不支持该功能。

参数描述:

返回值描述:

  • 0 :连接成功

  • 1:连接中

  • 2:服务端连接关闭

  • -1:连接异常

示例:

from TenCentYun import TXyun
import log
import utime
import checkNet'''
下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
'''
PROJECT_NAME = "QuecPython_TencentYun_example"
PROJECT_VERSION = "1.0.0"checknet = checkNet.CheckNetwork(PROJECT_NAME, PROJECT_VERSION)# 设置日志输出级别
log.basicConfig(level=log.INFO)
txyun_log = log.getLogger("TenCentYun")'''
腾讯 IoT 平台物联网套件客户端功能
'''
productID = ""  # 产品标识(参照接入腾讯 IoT 平台应用开发指导)
devicename = ""   # 设备名称(参照接入腾讯 IoT 平台应用开发指导)
devicePsk = ""   # 设备密钥(一型一密认证此参数传入None, 参照接入腾讯 IoT 平台应用开发指导)
ProductSecret = None   # 产品密钥(一机一密认证此参数传入None,参照接入腾讯 IoT 平台应用开发指导)tenxun = TXyun(productID, devicename, devicePsk, ProductSecret)  # 创建连接对象
state = 5def sub_cb(topic, msg):   # IoT 平台消息响应回调函数global statetxyun_log.info("Subscribe Recv: Topic={},Msg={}".format(topic.decode(), msg.decode()))state -= 1if __name__ == '__main__':stagecode, subcode = checknet.wait_network_connected(30)if stagecode == 3 and subcode == 1:txyun_log.info('Network connection successful!')tenxun.setMqtt()  # 设置mqtttenxun.setCallback(sub_cb)   # 设置消息回调函数topic = ""  # 输入自定义的Topictenxun.subscribe(topic)   # 订阅Topictenxun.start()tenxun.publish(topic, "hello world")   # 发布消息while 1:if state:passelse:tenxun.disconnect()breakelse:txyun_log.info('Network connection failed! stagecode = {}, subcode = {}'.format(stagecode, subcode))

http://www.xdnf.cn/news/4042.html

相关文章:

  • 巧记英语四级单词 Unit7-中【晓艳老师版】
  • 基于Jaccard算法的用户浏览历史推荐商品系统实战+springboot+vue源码实现
  • 【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
  • [Survey]Remote Sensing Temporal Vision-Language Models: A Comprehensive Survey
  • C++【继承】
  • 1688平台商品详情接口开发指南(含Python代码示例)
  • 【东枫科技】代理英伟达产品:智能网卡
  • DTU_DTU厂家_5G/4G DTU终端_DTU模块_厦门计讯物联科技有限公司
  • 为什么Transformer推理需要做KV缓存
  • 2025年游戏行业DDoS攻防指南:智能防御体系构建与实战策略
  • 【C++】类和对象(一)
  • 【FreeRTOS-时间管理】
  • 0-1背包问题基础概念
  • 家政平台派单系统设计与实现详解
  • transformer读后感
  • Linux系统编程--基础指令(!!详细讲解+知识拓展)
  • 位运算题目:按位与为零的三元组
  • 代码训练营day56图论岛屿数量与面积
  • LIO-SAM笔记(三)适配Livox 激光雷达
  • CSS兼容性:挑战与策略
  • 新Blue引擎启动M2提示该授权文件已经到期怎么解决?
  • 第五节:图像基本操作-图像读取、显示与保存
  • 拆解GCN(Graph Convolutional Network)单层迭代公式
  • 基于MicroPython的ESP32开发
  • YOLOv8 标签透明化与可视化优化指南
  • 两次解析格式化字符串 + 使用SQLAlchemy的relationship执行任意命令 -- link-shortener b01lersCTF 2025
  • C语言|函数的递归调用
  • 智算中心建设方案和前景分析
  • RHCE 第二次作业
  • LeetCode 热题 100 118. 杨辉三角