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.mzph.cn/bicheng/80359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

44.辐射发射整改简易摸底测试方法

辐射发射整改简易摸底测试方法 1. 正式摸底预测试2. 简易方法预测试3. 分析频谱4. 探查传播路径5. 施加措施6. 与简易方法预测试效果对比 1. 正式摸底预测试 去正式实验室做一次预测试,取得频谱图;确定超标频点和超标量(备用)。 …

OpenCV中适用华为昇腾(Ascend)后端的逐元素操作(Per-element Operations)

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 针对华为昇腾(Ascend)后端的逐元素操作(Per-element Operations),这些操作通常用于图…

Web前端VSCode如何解决打开html页面中文乱码的问题(方法2)

Web前端—VSCode如何解决打开html页面中文乱码的问题(方法2) 1.打开VScode后,依次点击 文件 >> 首选项 >> 设置 2.打开设置后,依次点击 文本编辑器 >> 文件(或在搜索框直接搜索“files.autoGuessEnc…

【UltralyticsYolo11图像分类完整项目-04】代码重构

经过上一篇博客,我们实现 了一个cpp文件,可以预测单个图像和多个图像。为了更加简化代码,方便部署,我们需要对代码进行重构:将功能模块化到头文件中。 完整代码下载链接:点击这里 重构的优点 模块化设计:将不同功能分离到不同的类中,每个类有明确的职责更好的可维护性:…

Debezium RelationalSnapshotChangeEventSource详解

Debezium RelationalSnapshotChangeEventSource详解 1. 类的作用与功能 1.1 核心功能 RelationalSnapshotChangeEventSource是Debezium中用于关系型数据库快照的核心抽象类,主要负责: 数据快照:对数据库表进行全量数据快照模式捕获:捕获数据库表结构事务管理:确保快照过…

DeepInjectSQL - 基于 AI 生成对抗网络(GAN)的下一代 SQL 注入自动化漏洞猎手

概述 SQLMap本身是一个成熟的自动化SQL注入工具,可以与GAN结合起来,让GAN生成的Payload替代传统的手工或规则生成的测试用例,从而提高检测的覆盖率和效率。 分析可行性 GAN通常用于生成类似真实数据分布的数据,例如图片、文本等。…

Python 爬虫之 XPath 元素定位

XPath 简介 XPath (XML Path Language) 最初是为了在 XML 文档中进行导航而设计的语言,后来被广泛应用于 HTML 文档的解析。与 BeautifulSoup 相比,XPath 有以下特点: 语法强大:可以通过简洁的表达式精确定位元素跨平台性&#…

聊聊自动化办公未来趋势

1. 自动化办公未来趋势 1.1 智能化与AI融合加深 随着人工智能技术的不断成熟,其在自动化办公中的应用将更加广泛和深入。未来,办公软件将具备更强的智能交互能力,能够理解自然语言指令,自动完成复杂的任务,如文档编辑…

智慧工会服务平台建设方案Word(23页)

1. 引言 随着信息技术的快速发展,传统工会服务模式面临挑战,智慧工会服务平台应运而生。该平台旨在通过数字化手段,整合工会资源,优化服务流程,提高工作效率,为会员提供更加便捷、高效、个性化的服务体验。…

React Hooks 深入浅出

目录 引言:React Hooks 的革命基础 Hooks useState:状态管理的新方式useEffect:组件生命周期的替代方案useContext:简化 Context API 额外的 Hooks useReducer:复杂状态逻辑的管理useCallback 与 useMemo:…

【应急响应】- 日志流量如何分析?

【应急响应】- 日志流量如何下手?https://mp.weixin.qq.com/s/dKl8ZLZ0wjuqUezKo4eUSQ

stm32 debug卡在0x1FFFxxxx

自己画的一个四轴飞机电路板,之前还能debug,改了一下mos管两端的电阻,还能正常下载,蓝牙接收也正常,但是debug出问题了,刚下载就自动运行,然后程序就在0x1FFFxxxx附近循环运行,这一块…

java-----------------多态

多态,当前指的是 java 所呈现出来的一个对象 多态 定义 多态是指同一个行为具有多个不同表现形式或形态的能力。在面向对象编程中,多态通过方法重载和方法重写来实现。 强弱类型语言 javascript 或者python 是弱类型语言 C 语言,或者 C…

Java 23种设计模式 - 结构型模式7种

Java 23种设计模式 - 结构型模式7种 1 适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 优点 将目标类和适配者类解耦增加了类的透明性和复用性,将具体的实现封…

Git clone时出现SSL certificate problem unable to get local issuer certificate

正确解决方法 git config --global http.sslVerify false错误解决方法:(主要是看错了嘿嘿,但是如果是 OpenSSL SSL_read: Connection was reset, errno 10054 Failed to connect to github.com port 443: Timed out 原…

DevExpressWinForms-AlertControl-使用教程

文章目录 AlertControl-使用教程一、将 AlertControl 添加到 Form二、编辑 AlertControl 的 HtmlTemplateHTML Template Editor介绍编辑HTML Template 三、使用AlertControl弹出AlertAlert中的按钮事件获取 Alert 标题等信息向Alert传递参数 总结源码 AlertControl-使用教程 一…

制作项目进度表常用的 8 款项目管理工具分享

在数字化管理和高效协作的今天,项目进度表软件已经成为企业管理不可或缺的工具。无论是中小型企业还是大型机构,都需要通过精准的项目计划和实时的进度跟踪来确保业务目标的顺利达成。这篇文章将聚焦项目进度表软件,深入探讨市场上8款主流产品…

SecureCRT网络穿透/代理

场景 公司的办公VPN软件只有Windows系统版本,没有Macos系统版本,而日常开发过程中需要先登录VPN后,然后才能登录应用服务器。 目的:Macos系统在使用SecureCRT时,登录服务器,需要走Parallels Desktop进行网络…

【计算机网络-传输层】传输层协议-TCP核心机制与可靠性保障

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:传输层协议-UDP 下篇文章: 网络层 我们的讲解顺序是&…

OpenMagnetic的介绍与使用

1. Background OM(OpenMagnetic)OpenMagnetics,能涵盖气隙磁阻,磁导率,铁芯损耗、磁滞损耗、涡流电流损耗、涡流效应、漏感、温升的计算与仿真[1]。 铁损计算模型:改进的Steinmetz方程[2] 气隙阻抗计算&…