在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>與Azure IoT Central的分布式網(wǎng)格集成

與Azure IoT Central的分布式網(wǎng)格集成

2022-12-20 | zip | 1.39 MB | 次下載 | 免費

資料介紹

描述

介紹

我們準備去;

將以下無線節(jié)點連接到 Azure Sphere;

  • 用于監(jiān)控門開/關(guān)狀態(tài)的無線霍爾效應傳感器
  • 3 個無線壓力、溫度和濕度傳感器
  • 無線追蹤器。
  • 以上任何一項也可用于通過 GPIO 或 UART 輸出進行控制。

我們將使用 GPIO 控制的 LED 來指示狀態(tài)并說明 Azure IoT Central 控制。

將 Azure Sphere 配置為 Azure IoT Central 和內(nèi)部節(jié)點網(wǎng)絡之間傳感器和控制數(shù)據(jù)的透明網(wǎng)關(guān)。

配置 IoT Central 儀表板以顯示傳感器數(shù)據(jù)并提供簡單的控制。

?

概述

分布式數(shù)據(jù)系統(tǒng)是任何通信節(jié)點的系統(tǒng),每個節(jié)點維護數(shù)據(jù)對象作為一個單一的、連貫的數(shù)據(jù)系統(tǒng)可訪問。我們的公司 Koliada 維護著一個分布式數(shù)據(jù)系統(tǒng) (EtherDATA),該系統(tǒng)旨在透明訪問和管理小型嵌入式設備上的分布式和復制數(shù)據(jù)對象。該項目使用 Azure Sphere 和 Azure IoT Central,借助 EtherDATA 有效地監(jiān)視和控制無線傳感器節(jié)點。

該系統(tǒng)由安全的 Azure 云平臺產(chǎn)品 Azure IoT Central、安全的物聯(lián)網(wǎng)網(wǎng)關(guān)設備 Azure Sphere 和分布式數(shù)據(jù)系統(tǒng) EtherDATA 組成,EtherDATA 將數(shù)據(jù)訪問抽象為一組布置為無線網(wǎng)格的無線傳感器節(jié)點。網(wǎng)格由 EtherMESH 管理,這是一種嵌入式網(wǎng)格協(xié)議,也由 Koliada 維護,用于小型、低功耗、嵌入式設備。

傳感器和控制數(shù)據(jù)使用 EtherDATA 通過無線網(wǎng)格進行分發(fā),包括使用 JSON over UART 連接到 Azure Sphere 的網(wǎng)格網(wǎng)關(guān)設備。Sphere 在網(wǎng)格和 Azure IoT Central 之間轉(zhuǎn)發(fā)數(shù)據(jù)以進行遠程監(jiān)控。

poYBAGOSfgOAcX0KAAFmWUCBkEw073.png
系統(tǒng)總覽
?

部分總結(jié)

本文檔末尾提供了指向所有組件的詳細信息的鏈接。

蔚藍

Azure 微軟的公共云計算平臺。它提供一系列云服務,包括計算、分析、存儲和網(wǎng)絡服務。用戶可以從這些服務中挑選,以在公共云中開發(fā)和擴展新應用程序,或運行現(xiàn)有應用程序。

本項目專門使用了 Azure IoT 中央服務。

Azure 物聯(lián)網(wǎng)中心

Azure IoT Central 是一種完全托管的 IoT 軟件即服務解決方案,可以輕松創(chuàng)建連接物理世界和數(shù)字世界的產(chǎn)品。您可以通過以下方式將互聯(lián)產(chǎn)品愿景變?yōu)楝F(xiàn)實:

? 從連接的設備中獲得新的見解,為您的客戶提供更好的產(chǎn)品和體驗。

? 為企業(yè)創(chuàng)造新的商機。

pYYBAGOSfgWAe09oAABDejTV3JM075.jpg
Azure IoT Central 概述
?

Azure IoT Central 有四個與 Azure IoT Central 應用程序交互的角色:

? 構(gòu)建者負責定義連接到應用程序的設備類型并為操作員定制應用程序。

? 操作員管理連接到應用程序的設備。

? 管理員負責管理任務,例如管理應用程序中的用戶和角色。

? 設備開發(fā)人員創(chuàng)建在連接到您的應用程序的設備上運行的代碼。

蔚藍球體

Azure Sphere 是一個安全的高級應用程序平臺,具有用于連接 Internet 的設備的內(nèi)置通信和安全功能。它包括一個安全、互聯(lián)、交叉的微控制器單元 (MCU)、一個定制的基于 Linux 的高級操作系統(tǒng) (OS),以及一個基于云的安全服務,可提供持續(xù)、可更新的安全性。

Azure Sphere 硬件、軟件和安全服務為設備維護、控制和安全提供了獨特的集成方法。硬件架構(gòu)為連接的設備提供了一個從根本上安全的計算基礎,讓您可以專注于您的產(chǎn)品。

該軟件架構(gòu)具有在 Microsoft 編寫的安全監(jiān)視器上運行的安全自定義操作系統(tǒng)內(nèi)核,同樣使您能夠?qū)④浖ぷ骷性谠鲋滴锫?lián)網(wǎng)和特定于設備的功能上。

poYBAGOSfgmAB2yWAADuz4xumoQ925.png
蔚藍架構(gòu)
?

將 Azure Sphere 用作該項目的一部分的優(yōu)勢在于,它為傳感器和控制器的內(nèi)部網(wǎng)絡提供了一個高度安全的網(wǎng)關(guān)。使用 Sphere 可以降低內(nèi)部網(wǎng)絡的復雜性、成本和功耗,而不會影響整個系統(tǒng)的安全性。

以太數(shù)據(jù)

EtherDATA 是一個數(shù)據(jù)定義、存儲和訪問系統(tǒng),它使用簡單的數(shù)據(jù)定義范例滿足小型分布式節(jié)點之間數(shù)據(jù)復制和通信的需求。EtherDATA 解決了以下架構(gòu)規(guī)則;

邏輯數(shù)據(jù)獨立性

EtherDATA 數(shù)據(jù)對象通過數(shù)據(jù)模式進行描述和訪問。

物理數(shù)據(jù)獨立性

EtherDATA 數(shù)據(jù)對象由系統(tǒng)定義的邏輯到物理映射存儲和引用,并作為系統(tǒng)服務提供給應用程序。

網(wǎng)絡透明度

EtherDATA 可以通過各種網(wǎng)絡技術(shù)實現(xiàn),包括但不限于 TCP/IP、以太網(wǎng)和使用各種節(jié)點架構(gòu)的無線技術(shù)。通信和節(jié)點架構(gòu)的細節(jié)對應用程序是隱藏的。

復制透明度

數(shù)據(jù)復制改善了引用的局部性,并在發(fā)生故障時提高了訪問的冗余性。EtherDATA 數(shù)據(jù)對象可以透明地在網(wǎng)絡中的節(jié)點或節(jié)點組之間進行復制。

碎片透明度

小型嵌入式系統(tǒng)沒有資源來存儲系統(tǒng)可訪問的所有數(shù)據(jù),并且任何數(shù)據(jù)庫都必須跨網(wǎng)絡節(jié)點分段。EtherDATA 向應用程序隱藏了這種碎片。

EtherDATA 不提供關(guān)系數(shù)據(jù)庫管理工具。它專門設計用于為小型異構(gòu)系統(tǒng)輕松抽象數(shù)據(jù)引用。在 8051 中,EtherDATA 可以部署在少至 5k 字節(jié)的 ROM 和可忽略不計的 RAM 占用空間(< 128 字節(jié))中。

在這個項目中,EtherDATA 使用 Koliada 的底層無線網(wǎng)狀網(wǎng)絡技術(shù) EtherMESH 來實現(xiàn)網(wǎng)狀網(wǎng)絡連接。

以太網(wǎng)狀網(wǎng)絡

網(wǎng)狀網(wǎng)絡是一種網(wǎng)絡拓撲結(jié)構(gòu),其中每個節(jié)點不僅要捕獲和傳播自己的數(shù)據(jù),還要充當其他節(jié)點的中繼。

poYBAGOSfhKAaKZ5AACYz7y8M2g236.png
EtherMESH 概述
?

以太網(wǎng);

是異質(zhì)節(jié)點的同質(zhì)網(wǎng)格

  • 所有幀都可以到達所有節(jié)點

使用優(yōu)化的洪水填充算法進行動態(tài)路由和傳播

  • 單個“廣播”傳輸?shù)竭_所有本地節(jié)點,減少 RF“顫動”。
  • 簡單的存儲轉(zhuǎn)發(fā)架構(gòu)。
  • 正在申請專利的流量管理優(yōu)化
  • 消除了對特定節(jié)點類型的需求

自同步通信

  • 顯著降低配置要求。
  • 消除了比溝通所需的時間更長的清醒時間。

就我們的項目而言,EtherMESH 提供以下主要功能;

1.低功耗

2. 易于部署,以及

3.便于管理。

KoliadaES

KoliadaES 是一個用于異構(gòu)嵌入式開發(fā)的同構(gòu)模塊化嵌入式系統(tǒng)。它既是嵌入式系統(tǒng)開發(fā)和實現(xiàn)的范例。

poYBAGOSfhaAEpN3AAFQyDJcpMs160.png
KoliadaES 堆棧
?

我們使用 E3 Embeddeds PIEP 板和 KoliadaES 來快速啟動數(shù)據(jù)節(jié)點。

PIEP

PIEP——處理器獨立嵌入式平臺——E3 Embedded 的模塊化硬件系統(tǒng)——利用了模塊化嵌入式系統(tǒng) KoliadaES 的潛力。

PIEP
?

PIEP 系統(tǒng)由多個不同種類的可堆疊板組成,無論是處理器還是外圍設備或可互換的分線板。

MCU 架構(gòu)的改變是通過簡單地更換處理器板來實現(xiàn)的,并且在使用 KoliadaES 時,利用相同的源代碼和相同的外圍設備。

硬件和軟件要求

為了設置這個項目,我們需要。

1. 設置終端網(wǎng)關(guān)——Azure sphere設備

硬件

  • Azure sphere MT3620套件
  • PIEP-KOLIADA 站棧 x 1

任何 PIEP 處理器板

接線板

USB

軟件

? Windows 10 版本 1607 或更高版本

? Azure 云服務(Azure IoT Central)

工具

? Visual Studio VS2017 15.9+ 或 VS 2019 16.04+

? 用于視覺工作室的 Azure Sphere SDK

? Azure sphere 開發(fā)人員命令提示符

2. 設置 KoliadaES 系統(tǒng)

硬件

? EtherDATA 壓力/溫度/濕度堆棧 x 3

任何 PIEP 處理器板

溫度/相對濕度/壓力板

USB板

電池板

? EtherDATA 跟蹤器堆棧 x 1

任何 PIEP 處理器板

電池板

USB板

? EtherDATA 磁力計堆棧 x 1

任何 PIEP 處理器板

接線板

電池板

USB板

? EtherDATA 站堆棧 x 1

任何 PIEP 處理器板

接線板

USB板

? 外部磁力計傳感器

軟件

? Windows 10 版本 1607 或更高版本

? KoliadaES SDK

? Visual Studio Code(或任何基于 make 的 IDE)

工具

? Visual Code 1.39 或更高版本(或任何基于 make 的 IDE)

? KoliadaES SDK

poYBAGOSfleAJQfJAAgcYOV8IBk859.png
整套組裝硬件
?

在我們的部署中,我們使用了 PIEP Mini TI CC2541 處理器板,但任何啟用無線、支持 KoliadaES 的 MCU 都可以與相同的應用程序代碼一起使用。

構(gòu)建系統(tǒng)

該系統(tǒng)由一組無線傳感器節(jié)點組成,這些節(jié)點使用 KoliadaES 的專有網(wǎng)狀協(xié)議 (EtherMESH) 和分布式數(shù)據(jù)系統(tǒng) (EtherDATA) 主動測量數(shù)據(jù)并相互通信。EtherDATA 與 Azure sphere 集成以將此數(shù)據(jù)轉(zhuǎn)發(fā)到 Azure IoT 中央數(shù)據(jù)庫。

pYYBAGOSfl2Ab53QAACgafumZ5E890.png
?

關(guān)鍵部件是

? 三個壓力/溫度/濕度節(jié)點,每 30 秒記錄一次 PHT 數(shù)據(jù)。

? 用于跟蹤資產(chǎn)或人員位置的跟蹤器節(jié)點。等等,每 10 秒記錄一次數(shù)據(jù)。

? 用于跟蹤門或大門狀態(tài)的磁力計(磁傳感器)。

注意:一旦有新的傳感器讀數(shù)或電池值,所有這些都會通過網(wǎng)狀網(wǎng)絡傳輸數(shù)據(jù)。

? 站點節(jié)點(網(wǎng)狀網(wǎng)絡的一部分)從上述節(jié)點收集所有傳感器和電池數(shù)據(jù),并將其傳送給

? Azure Sphere 設備(通過UART 或串行通信)。Azure Sphere 能夠?qū)?PIEP Koliada 站接收到的傳感器推送到 Azure IoT Central 數(shù)據(jù)庫。

? Azure IoT Central 提供對基于網(wǎng)絡的儀表板的訪問,該儀表板填充上述接收到的傳感器數(shù)據(jù),可以使用任何網(wǎng)絡瀏覽器遠程監(jiān)控這些數(shù)據(jù)。

構(gòu)建 PIEP-KoliadaES-Sphere-Azure 系統(tǒng)

步驟1

下載并安裝 KoliadaESDK(TM)。

按照 KoliadaESDK 說明進行安裝 ( https://docs.koliada.com )。

第2步

PIEP節(jié)點的組裝說明

在開始組裝 PIEP 板之前,請確保這些板中的每一個都堆疊在一起,并且排針引腳如下圖所示對齊。

poYBAGOSfmeAAf3-AAKjJaGxQgQ130.jpg
?

使用螺釘堆疊所有板以保持它們完好無損。

pYYBAGOhFxuAM4P0AANiJy9_gqE135.jpg
?

現(xiàn)在讓我們堆疊此項目所需的電路板。

  • PHT(壓力/溫度/濕度)堆棧
pYYBAGOhFx6AfJWwAADlaTdZX28387.jpg
PHT(壓力/溫度/濕度)堆棧
?
  • 跟蹤堆棧
poYBAGOhFyGAeQZnAACuD2ovcZM730.jpg
跟蹤堆棧
?
  • 磁力計堆棧
pYYBAGOhFy2AB2R-AAFBUsk0TFs852.jpg
?
  • 站棧
pYYBAGOhFzKAKp57AAC0CWqq43o490.jpg
站棧
?

將 KoliadaES下載構(gòu)建PIEP節(jié)點

您可以在我們的 KoliadaES 示例頁面 ( https://docs.koliada.com ) 上找到所有網(wǎng)格節(jié)點代碼。

構(gòu)建并刷新為每個節(jié)點提供的項目。請注意,不同的項目需要不同的二進制組件。加載程序使用項目清單來確定每個節(jié)點設備需要哪些二進制文件。

對每個 PIEP 堆棧進行編程后,打開節(jié)點——它們將形成一個運行 EtherDATA 的網(wǎng)格。

現(xiàn)在您需要在節(jié)點和 Azure Sphere 之間建立連接,然后 Azure Sphere 可以將數(shù)據(jù)推送到 Azure IoT Central 以進行遠程監(jiān)控。

第 3 步- 設置 Azure 帳戶

如果您還沒有,Microsoft 還提供了有關(guān)使用Azure以及我們使用的服務Azure IoT Central的文檔Azure IoT Central 允許用戶遠程管理他們的 IoT 設備,并提供統(tǒng)計數(shù)據(jù)和視覺效果來幫助展示收集到的數(shù)據(jù)。

擁有帳戶后,創(chuàng)建 IoT Central 服務并按照 Microsoft 提供的此處說明授權(quán)您的 Azure Sphere。

現(xiàn)在您可以創(chuàng)建 IoT Central Dashboard

要準備 Azure IoT Central 儀表板以顯示來自無線傳感器節(jié)點的濕度、溫度、壓力、電池、門數(shù)據(jù),您需要按照此處給出的說明進行操作

第 4 步- 將 Station Stack 連接到 Azure Sphere

第 2 步中的項目之一構(gòu)建了一個系統(tǒng),用于將 EtherDATA 網(wǎng)格連接到 Azure Sphere。

pYYBAGOhF1mADNX7AAX-VIt69KE939.jpg
將 Station Stack 的接線板(引腳 7、8、9)的跳線連接到 Azure Sphere 上的 TX、RX 和 GND
?

現(xiàn)在您已經(jīng)建立了 Azure Sphere 和 EtherDATA 與網(wǎng)狀網(wǎng)絡之間的連接。無線傳感器網(wǎng)絡已成功將其數(shù)據(jù)轉(zhuǎn)發(fā)到 Azure 球體。為了讓適配器程序?qū)⒛愕脑O備連接到你的 IoT Central 服務并轉(zhuǎn)發(fā)在 Station Stack 上收集的所有數(shù)據(jù),你需要設置一個 Azure 云帳戶和 Azure IoT Central 服務。

您可以通過將 Station Stack 的終端板連接到插入 PC 的 UART-USB 適配器并以 115200 波特率運行任何終端程序來單獨驗證數(shù)據(jù)收集。您將看到發(fā)出的 JSON 字符串;

poYBAGOhF1yAGRYVAACkryAtqSg450.png
站點 JSON 輸出
?

這顯示了根據(jù)為 EtherDATA 定義的模式來自各個節(jié)點(節(jié)點是一組節(jié)點)的數(shù)據(jù);batteryValue、eValue(溫度、濕度和壓力)和 DoorState(有關(guān) EtherDATA 模式的更多詳細信息,請參見下文)。

第 5 步- 設置 Azure Sphere

要開始設置,請按照 Microsoft 的文檔Azure Sphere Setup進行操作此鏈接將引導你完成安裝 Azure Sphere SDK 并讓你的設備為應用程序部署做好準備的步驟。

將我們的附加程序加載到您的 Azure Sphere

按照 Microsoft 中有關(guān)側(cè)載應用程序的說明進行操作。使用提供的 Github 代碼讓您的 Azure Sphere 準備好使用 KoliadaES 適配器程序。

現(xiàn)在您已經(jīng)設置了該項目所需的一切。

發(fā)生了什么?

現(xiàn)在所有無線傳感器節(jié)點都在采樣數(shù)據(jù)并在整個網(wǎng)格中分發(fā)該數(shù)據(jù)。然后,該數(shù)據(jù)通過串行通信通過站節(jié)點轉(zhuǎn)發(fā)到 azure sphere。球體運行一個連接模塊來連接到 Azure 服務,并將它接收到的數(shù)據(jù)(從站節(jié)點)推送到 Azure IoT Central 數(shù)據(jù)庫。現(xiàn)在您可以看到您的儀表板正在使用實時數(shù)據(jù)更新,如下所示。

pYYBAGOhF2CARbp8AAE1bKc3MW4883.png
儀表板中的實時數(shù)據(jù)
?

您應該看到以下行為:-

? 所有三個節(jié)點的溫度、壓力、濕度和電池數(shù)據(jù)應每 30 秒在儀表板上更新一次,并且還可以看到最新數(shù)據(jù)的圖表。

? DoorState(磁力計數(shù)據(jù))在每次狀態(tài)改變時更新。在我們的例子中,我們將傳感器連接到磁性門上,每次打開或關(guān)閉門時都會更新 DoorState。

溫度、壓力和濕度堆棧可以放置在任何其他網(wǎng)格節(jié)點最遠 50 米范圍內(nèi)的不同位置。在這里,我們在玻璃咖啡桌上放置了一個監(jiān)控室內(nèi)溫度的設備。

poYBAGOhF2OAOn08AAECIHMtOAc107.png
?

第二個 PHT 堆棧放置在服務器系統(tǒng)機架中,用于監(jiān)控服務器溫度。

pYYBAGOhF3iAWYjKAAZtJSMcEU8668.jpg
?

第三個 PHT 堆棧放置在房屋外的露臺上,以監(jiān)測室外環(huán)境溫度。

poYBAGOhF36ARPAoAAF3mJZyiqk484.png
?

磁力計安裝在門上,可在門打開或關(guān)閉時發(fā)送信號

追蹤器裝置放置在背包中,以追蹤背包是否在屋內(nèi),并提供背包何時被帶出和進入屋內(nèi)的歷史記錄。

站節(jié)點串行連接到 Azure Sphere。它在網(wǎng)格節(jié)點和 Azure Sphere 之間轉(zhuǎn)發(fā)數(shù)據(jù),從而在 Azure IoT Central 之間轉(zhuǎn)發(fā)數(shù)據(jù)。

poYBAGOhF4WANSsTAAFHgjg8BY4967.png
車站堆棧
?

該系統(tǒng)為多個獨立無線節(jié)點的安全監(jiān)視和控制提供了一個很好的框架。可以從 PC 或手機訪問數(shù)據(jù)和控制 UI。由于所有的數(shù)據(jù)都被轉(zhuǎn)發(fā)到Azure IoT Central,便于從世界任何地方進行遠程監(jiān)控。

代碼說明

EtherDATA(分布式數(shù)據(jù))——設置節(jié)點數(shù)據(jù)

EtherDATA 使用元數(shù)據(jù)文件 (.ddl) 來描述托管數(shù)據(jù)對象。我們根據(jù)此處顯示的示例指定一組監(jiān)視和控制對象;

UInt8 batteryValue
{
description "current (uncalibrated) battery value";
access readonly;
units "/4096";// raw 12 bit value
}

int eValue[3]
{
description "Current Humidity Sensor Value";
access readonly;
units "% or deg or mbar";
}

byte deviceType
{
description "Device Type";
// 1 - station
// 2 - tracker
// 3 - DoorSensor
// 4 - PHT
access readonly;
}

byte DoorData
{
description "Door values";
access readonly;
}

EtherDATA 對象是全局定義的,并且對于網(wǎng)格中的所有節(jié)點都必須相同。網(wǎng)絡全局定義允許 EtherDATA 從任何節(jié)點訪問和管理數(shù)據(jù)對象。

在應用程序中,我們使用 EtherDATA API 從特定節(jié)點通過網(wǎng)絡發(fā)布數(shù)據(jù)對象,如下所示;

dbPublish(eValue);		// for PHT nodes only
dbPublish(batteryValue);	// all nodes have a battery
dbPublish(buttonData);		// for nodes with buttons

只有 PHT 節(jié)點具有壓力、溫度和濕度傳感器,因此僅需要從 PHT 節(jié)點調(diào)用 dbPublish(eValue)。它們是發(fā)布 PHT 數(shù)據(jù)的節(jié)點。

類似地,磁力計節(jié)點使用 dbPublish(DoorData) 并且 dbPublish(batteryvalue) 在所有使用電池的節(jié)點上使用。

dbPublish 只是告訴 EtherDATA 在數(shù)據(jù)對象可用時發(fā)布它,它仍然由應用程序來確定何時可用。

以下命令根據(jù)來自傳感器的每個樣本設置/更新數(shù)據(jù)對象值。

dbSet(eValue, data);		// PHT nodes
dbSet(batteryValue, data);	// all nodes
dbSet(DoorData, data);		// magnetometer node
dbSet(buttonData, data);	// button nodes

數(shù)據(jù)項的值將使用 GPIO、ADC、SPI、UART 等的系統(tǒng)接口從底層系統(tǒng)派生。通常,樣本采用定時器事件處理程序并調(diào)用 dbSet 函數(shù)以將數(shù)據(jù)發(fā)布到 EtherDATA 以進行分發(fā)。

最后,站節(jié)點需要包含以下配置代碼,以便從其他傳感器節(jié)點接收所有更新的數(shù)據(jù)。

dbSubscribe(“*”,eValue, callback);
dbSubscribe(“*”,batteryValue, callback);
dbSubscribe(“*”,DoorData, callback);
dbSubscribe(“*”,buttonData, callback);

如前所述,所有 EtherDATA 對象都是全局定義的,這允許在所有節(jié)點中以相同的方式訪問和管理 EtherDATA 系統(tǒng)中的任何節(jié)點。

除了項目文件中描述的一些基本設置和事件處理之外,盡管可以說更多的內(nèi)容來描述 EtherDATA、EtherMESH 和 KoliadaES,但這幾乎總結(jié)了網(wǎng)格節(jié)點的設置。

Azure Sphere - 設置 IoT Central 數(shù)據(jù)庫連接

Azure SDK main.c 文件包含設置 Azure IoT Central 連接句柄所需的初始化。此處顯示了 Azure IoT Central/Hub 定義;

#include "parson.h" // used to parse Device Twin messages.
// Azure IoT Hub/Central defines.
#define SCOPEID_LENGTH 20
static char scopeId[SCOPEID_LENGTH]; // ScopeId for the Azure IoT Central application, set in // app_manifest.json, CmdArgs
static IOTHUB_DEVICE_CLIENT_LL_HANDLE iothubClientHandle = NULL;
static const int keepalivePeriodSeconds = 20;
static bool iothubAuthenticated = false;
static void SendMessageCallback(IOTHUB_CLIENT_CONFIRMATION_RESULT result, void *context);
static void ReceiveHubMessage(IOTHUB_CLIENT_CONFIRMATION_RESULT result, const unsigned char *payload, size_t payloadSize, void *userContextCallback);
static void TwinCallback(DEVICE_TWIN_UPDATE_STATE updateState, const unsigned char *payload,
size_t payloadSize, void *userContextCallback);
static void TwinReportBoolState(const char *propertyName, bool propertyValue);
static void ReportStatusCallback(int result, void *context);
static const char *GetReasonString(IOTHUB_CLIENT_CONNECTION_STATUS_REASON reason);
static const char *getAzureSphereProvisioningResultString(
AZURE_SPHERE_PROV_RETURN_VALUE provisioningResult);

Azure 帳戶和范圍 ID 的連接字符串設置如下所示;

int main(int argc, char *argv[])
{
Log_Debug("IoT Hub/Central Application starting.\n");
mydoorstate[0] = '0';
if (argc == 2) {
Log_Debug("Setting Azure Scope ID %s\n", argv[1]);
strncpy(scopeId, argv[1], SCOPEID_LENGTH);
}
else {
Log_Debug("ScopeId needs to be set in the app_manifest CmdArgs\n");
return -1;
}
Log_Debug("UART application starting.\n");
if (InitPeripheralsAndHandlers() != 0) {
terminationRequired = true;
}
// Main loop
while (!terminationRequired) {
if (WaitForEventAndCallHandler(epollFd) != 0) {
terminationRequired = true;
}
}
ClosePeripheralsAndHandlers();
Log_Debug("Application exiting.\n");
return 0;
}

InitPeripheralsAndHandlers 初始化UART 并等待UART Event(即從站節(jié)點接收數(shù)據(jù))。

static void UartEventHandler(EventData *eventData)

每當它通過 UART 從站節(jié)點接收數(shù)據(jù)時,此事件處理程序都會執(zhí)行必要的解析,如此處所示;

{
const size_t receiveBufferSize = 128;
uint8_t receiveBuffer[receiveBufferSize + 1]; // allow extra byte for string  termination
ssize_t bytesRead = -1;
for (int i = 0; i < 32767 && bytesRead == -1; i++) {
bytesRead = read(uartFd, receiveBuffer, receiveBufferSize);
}
if (bytesRead < 0) {
Log_Debug("ERROR: Could not read UART: %s (%d).\n", strerror(errno),  errno);
terminationRequired = true;
return;
}

然后識別解析的數(shù)據(jù)類型(PHT 值、電池或門狀態(tài))和節(jié)點名稱,并將相應的數(shù)據(jù)推送到 Azure IoT Central,如此處所示;

SendRoomTemperature(evalue1);
SendRoomHumidity(evalue2);
SendRoomPressure(evalue3);


static void SendRoomTemperature(const unsigned char *value)
{
static char eventBuffer[100] = { 0 };
static const char *EventMsgTemplate = "{ "RoomTemp": "%s"}";
int len = snprintf(eventBuffer, sizeof(eventBuffer), EventMsgTemplate, value);
if (len < 0)
return;
IOTHUB_MESSAGE_HANDLE messageHandle = IoTHubMessage_CreateFromString(eventBuffer);
if (messageHandle == 0) {
Log_Debug("WARNING: unable to create a new IoTHubMessage\n");
return;
}
if (IoTHubDeviceClient_LL_SendEventAsync(iothubClientHandle, messageHandle, SendMessageCallback,
/*&callback_param*/ 0) != IOTHUB_CLIENT_OK) {
Log_Debug("WARNING: failed to hand over the message to IoTHubClient\n");
}
else {
//Log_Debug("INFO: IoTHubClient accepted the message for delivery\n");
}
IoTHubMessage_Destroy(messageHandle);
}

這總結(jié)了 Azure Sphere 設備的網(wǎng)格 → Azure 轉(zhuǎn)發(fā)責任。反向的類似機制接收控制請求并將它們轉(zhuǎn)發(fā)到網(wǎng)格。

現(xiàn)在剩下的都在 Azure Central 上了。由于設備已經(jīng)預先在 IoT Central 上準備好(模仿我們的設置),IoT Central 知道設置并正在等待所有數(shù)據(jù)(PHT 值、電池或門狀態(tài))進入。

概括

在事先不了解 Azure Sphere 或 Azure IoT Central 的情況下,大約需要 5 天的時間來啟動所描述的節(jié)點,配置 Azure Sphere 以在網(wǎng)格和 Azure IoT Central 之間移動數(shù)據(jù)。

在合適的容器中,PIEP 硬件專為穩(wěn)健的現(xiàn)場部署和任意用戶交互而設計。PIEP 板很容易簡化為定制的、用戶指定的硬件,無需更改代碼PIEP 加上 KoliadaES 提供了一種簡單的方法來穩(wěn)健地制作原型,并根據(jù)需要轉(zhuǎn)移到生產(chǎn)中,而無需大量的生產(chǎn)工程時間和成本。

我們有多個類似的網(wǎng)格部署,用于在家庭、工業(yè)和醫(yī)療保健環(huán)境中部署數(shù)據(jù)和控制。Azure Sphere 讓我們能夠簡單而安全地將這些網(wǎng)絡連接到互聯(lián)網(wǎng)。

鏈接

視覺工作室;

? 安裝 Visual Studio

? 安裝 Visual Studio Code

天藍色;

? 開始使用 Azure

? 開始使用 Azure IoT Central

蔚藍球體;

? Azure 球體入門

? 設置設備并安裝 Azure SDK

? 添加遙測測量

自定義 EtherDATA 應用程序

這種分布式數(shù)據(jù)系統(tǒng)即插即用,易于用于各種應用。有關(guān)如何使用 KoliadaES 開始創(chuàng)建/自定義新應用程序的更多詳細信息,請通過http://www.koliada.com聯(lián)系我們


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 黄色三级在线看| 亚洲午夜网未来影院| 亚洲欧美日韩色图| 欧美天堂在线观看| 亚洲激情视频网站| 六月丁香激情网| 一区二区三区福利| 亚洲伊人99综合网| 黄色免费毛片| 久久精品草| 国产尤物在线视频| 来吧成人综合网| 成年人一级片| 欧美性幼| 制服丝袜中文字幕第一页| 四虎国产一区二区三区| 毛片大全免费| 女人被两根一起进3p在线观看| 男男憋尿play按小腹| 毛片官网| 国产免费一区二区三区香蕉精| 张柏芝三级无删减在线观看| 国产综合色精品一区二区三区| 狠狠干夜夜操| 美女无遮挡拍拍拍免费视频| 美剧免费在线观看| 狠狠干天天色| 天堂综合| 国产全肉乱妇杂乱视频| 2021久久精品免费观看| 特级片网站| 天天做天天爽天天谢| 亚洲福利秒拍一区二区| 免费的色网站| 福利区在线观看| 99久久国产免费 - 99久久国产免费| 久久综合九色综合精品| 东北老女人啪啪对白| 日韩三级视频在线观看| 欧美午夜免费观看福利片| 亚洲入口无毒网址你懂的|