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

QuecPython+Aws:快速连接亚马逊 IoT 平台

提供一个可接入亚马逊 Iot 平台的客户端,用于管理亚马逊 MQTT 连接和影子设备。

初始化客户端 

 Aws

class Aws(client_id,server,port,keep_alive,ssl,ssl_params)

参数:

  • client_id (str) - 客户端唯一标识。
  • server (str) - 亚马逊 Iot 平台服务器地址。
  • port (int) - MQTT 服务端口(默认端口为 1883,TLS 默认端口 为 8883)。
  • keep_alive (int) - 客户端 keep-alive 超时值,单位:秒(默认 60 秒)。
  • ssl (bool) - 是否使能 SSL/TLS(默认:False。如果设置为True,则必须设置 ssl_params 参数)。
  • ssl_params (dict) - SSL/TLS 连接参数。

示例:

>>> # Create Aws object
>>> import aws
>>> aws = aws.Aws(client_id, server, port, keep_alive=60,ssl=True,ssl_params={"cert": certificate_content,"key": private_content})

MQTT 接入 

使用 umqtt 模块接口来建立 AWS 云平台连接。

 aws.connect 

connect()

该方法用于建立 AWS 平台连接。

返回值:

None

 aws.disconnect 

disconnect()

改方法用于断开 AWS 平台连接。

返回值:

None

 aws.subscribe 

subscribe(topic) 

该方法用于订阅 mqtt 主题。

参数:

  • topic (str) - 订阅主题。

返回值:

None

 aws.publish 

publish(topic, payload)

该方法用于发布消息到对应topic。

参数:

  • topic (str) - 发布主题。
  • payload (dict) - 需要发送的数据。

返回值:

None

影子设备管理 

 aws.create_shadow 

create_shadow(shadow_name="", state="")

该方法用于创建影子设备。

参数:

  • shadow_name (str) - 影子设备名称(可选)。
  • state (dict) - 影子设备的初始状态参数(可选)。

返回值:

None

 aws.update_shadow 

update_shadow(shadow_name="", state="")

该方法用于更新影子设备名称和状态。

参数:

  • shadow_name (str) - 影子设备名称。
  • state (dict) - 影子设备的状态参数(可选)。

返回值:

None

 aws.get_shadow 

get_shadow(shadow_name="")

该方法用于获取影子设备状态。

参数:

  • shadow_name (str) - 影子设备名称。

返回值:

当前影子设备的状态数据。

 aws.delete_shadow 

delete_shadow(shadow_name="")

该方法用于删除一个影子设备。

参数:

  • shadow_name (str) - 影子设备的名称。

返回值:

None

 aws.connect_shadow 

connect_shadow(shadow_name="", topics=None)

该方法用于连接影子设备。

参数:

  • shadow_name (str) - 影子设备名称(可选)。
  • topics (list) - 关联 影子设备的 MQTT 主题列表(可选)。

返回值:

None

 aws.set_callback 

set_callback(topic_name, callback)

参数:

  • topic_name (str) - MQTT 主题。

  • callback (function) - topic_name 主题对应的回调函数。 函数原型:

      callback_function(msg)        
    
    • 回调函数参数:

      • msg : 字典类型,接收到的消息。

返回值:

None

Python Example 

import usr.aws as aws
import modem
import ujson
import sim  # Check if PIN verification is needed for your SIM card
import net# AWS IoT credentials
certificate_content = """
-----BEGIN CERTIFICATE----------END CERTIFICATE-----
"""private_content = """
-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----
"""client_id = 'qpthing'
server = 'abgka7vzgjoa0-ats.iot.eu-west-3.amazonaws.com'
port = 8883def aws_callback(data):print("HELLO from 1234 topic callback")def shadow_callback_get(data):print("HELLO from get accepted callback")def shadow_callback_update(data):print("HELLO from update accepted callback")def shadow_callback_delta(data):print("HELLO from update delta callback")# Create AWS object
aws_obj = aws.Aws(client_id, server, port, keep_alive=60, ssl=True,ssl_params={"cert": certificate_content, "key": private_content})
print("Created AWS object")# Connect to AWS IoT
aws_obj.connect()
print("Connected to AWS IoT")# Subscribe and publish
aws_obj.set_callback("1234", aws_callback)
aws_obj.subscribe("1234")
aws_obj.publish("7777", "Hello from QuecPython")
aws_obj.start()# Shadow operations
aws_obj.create_shadow()
aws_obj.connect_shadow()
aws_obj.set_callback("$aws/things/qpthing/shadow/get/accepted", shadow_callback_get)
aws_obj.set_callback("$aws/things/qpthing/shadow/update/accepted", shadow_callback_update)
aws_obj.set_callback("$aws/things/qpthing/shadow/update/delta", shadow_callback_delta)
aws_obj.get_shadow()
aws_obj.update_shadow(state={"state": {"reported": {"wel
http://www.dtcms.com/a/173959.html

相关文章:

  • STM32--GPIO
  • ffmpeg录音测试
  • k8s node soft lockup (内核软死锁) 优化方案
  • <论文>(字节跳动)使用大语言模型进行时间序列理解和推理
  • Nginx 安全防护与HTTPS部署
  • 2025 RSAC|大语言模型应用风险与厂商攻防新策略
  • 【coze】故事卡片(图片、音频、文字)
  • 游戏引擎学习第261天:切换到静态帧数组
  • 瑞克的CTF
  • MySQL中的约束
  • 赛灵思 XCZU11EG-2FFVC1760I XilinxFPGAZynq UltraScale+ MPSoC EG
  • 第一章-语言基础\3.STL
  • https://juejin.cn/editor/drafts/7262346366541070395
  • 高性能网络优化:深入解析忙轮询(Busy Polling)技术
  • HTTP 与 HTTPS 的深度剖析:差异、原理与应用场景
  • 第11次:用户注册(简要版)
  • Ubuntu打开中文文本乱码
  • 使用AI应用开发平台搭建夸奖机器人,玩转AI【COZE入门案例-第1课】
  • 说下RabbitMQ的整体架构
  • STM32教程:串口USART通讯协议原理及分析(基于STM32F103C8T6最小系统板标准库开发)*详细教程*
  • 爬虫技术-利用Python和Selenium批量下载动态渲染网页中的标准文本文件
  • CentOS配置了镜像源之后依旧下载元数据失败
  • 【MCP Node.js SDK 全栈进阶指南】专家篇(2):MCP多模型支持架构
  • CSS--图片链接垂直居中展示的方法
  • 用html+js+css实现的战略小游戏
  • tinyrenderer笔记(透视矫正)
  • 如何搭建spark yarn模式集群的集群
  • 树上背包学习笔记
  • 【mysql】常用命令
  • vue源代码采用的设计模式分解