電子發(fā)燒友App

硬聲App

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

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

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

與Azure IoT Central的分布式網格集成

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

資料介紹

描述

介紹

我們準備去;

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

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

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

將 Azure Sphere 配置為 Azure IoT Central 和內部節(jié)點網絡之間傳感器和控制數據的透明網關。

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

?

概述

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

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

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

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

部分總結

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

蔚藍

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

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

Azure 物聯網中心

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

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

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

pYYBAGOSfgWAe09oAABDejTV3JM075.jpg
Azure IoT Central 概述
?

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

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

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

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

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

蔚藍球體

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

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

該軟件架構具有在 Microsoft 編寫的安全監(jiān)視器上運行的安全自定義操作系統(tǒng)內核,同樣使您能夠將軟件工作集中在增值物聯網和特定于設備的功能上。

poYBAGOSfgmAB2yWAADuz4xumoQ925.png
蔚藍架構
?

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

以太數據

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

邏輯數據獨立性

EtherDATA 數據對象通過數據模式進行描述和訪問。

物理數據獨立性

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

網絡透明度

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

復制透明度

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

碎片透明度

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

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

在這個項目中,EtherDATA 使用 Koliada 的底層無線網狀網絡技術 EtherMESH 來實現網狀網絡連接。

以太網狀網絡

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

poYBAGOSfhKAaKZ5AACYz7y8M2g236.png
EtherMESH 概述
?

以太網;

是異質節(jié)點的同質網格

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

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

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

自同步通信

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

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

1.低功耗

2. 易于部署,以及

3.便于管理。

KoliadaES

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

poYBAGOSfhaAEpN3AAFQyDJcpMs160.png
KoliadaES 堆棧
?

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

PIEP

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

PIEP
?

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

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

硬件和軟件要求

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

1. 設置終端網關——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 都可以與相同的應用程序代碼一起使用。

構建系統(tǒng)

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

pYYBAGOSfl2Ab53QAACgafumZ5E890.png
?

關鍵部件是

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

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

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

注意:一旦有新的傳感器讀數或電池值,所有這些都會通過網狀網絡傳輸數據。

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

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

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

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

步驟1

下載并安裝 KoliadaESDK(TM)。

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

第2步

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

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

poYBAGOSfmeAAf3-AAKjJaGxQgQ130.jpg
?

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

pYYBAGOhFxuAM4P0AANiJy9_gqE135.jpg
?

現在讓我們堆疊此項目所需的電路板。

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

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

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

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

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

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

第 3 步- 設置 Azure 帳戶

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

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

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

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

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

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

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

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

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

poYBAGOhF1yAGRYVAACkryAtqSg450.png
站點 JSON 輸出
?

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

第 5 步- 設置 Azure Sphere

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

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

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

現在您已經設置了該項目所需的一切。

發(fā)生了什么?

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

pYYBAGOhF2CARbp8AAE1bKc3MW4883.png
儀表板中的實時數據
?

您應該看到以下行為:-

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

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

溫度、壓力和濕度堆??梢苑胖迷谌魏纹渌W格節(jié)點最遠 50 米范圍內的不同位置。在這里,我們在玻璃咖啡桌上放置了一個監(jiān)控室內溫度的設備。

poYBAGOhF2OAOn08AAECIHMtOAc107.png
?

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

pYYBAGOhF3iAWYjKAAZtJSMcEU8668.jpg
?

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

poYBAGOhF36ARPAoAAF3mJZyiqk484.png
?

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

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

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

poYBAGOhF4WANSsTAAFHgjg8BY4967.png
車站堆棧
?

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

代碼說明

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

EtherDATA 使用元數據文件 (.ddl) 來描述托管數據對象。我們根據此處顯示的示例指定一組監(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 對象是全局定義的,并且對于網格中的所有節(jié)點都必須相同。網絡全局定義允許 EtherDATA 從任何節(jié)點訪問和管理數據對象。

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

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

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

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

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

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

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

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

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

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

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

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

Azure Sphere - 設置 IoT Central 數據庫連接

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é)點接收數據)。

static void UartEventHandler(EventData *eventData)

每當它通過 UART 從站節(jié)點接收數據時,此事件處理程序都會執(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;
}

然后識別解析的數據類型(PHT 值、電池或門狀態(tài))和節(jié)點名稱,并將相應的數據推送到 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);
}

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

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

概括

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

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

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

鏈接

視覺工作室;

? 安裝 Visual Studio

? 安裝 Visual Studio Code

天藍色;

? 開始使用 Azure

? 開始使用 Azure IoT Central

蔚藍球體;

? Azure 球體入門

? 設置設備并安裝 Azure SDK

? 添加遙測測量

自定義 EtherDATA 應用程序

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


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  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開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  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次下載  |  免費