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.pswp.cn/bicheng/80359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80359.shtml
英文地址,請注明出處:http://en.pswp.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] 氣隙阻抗計算&…