技術文章

當前頁面: 首頁 >技術文章 >基于 ARM系統的 IoT 停車場系統演示

基于 ARM系統的 IoT 停車場系統演示

供稿:韜睿(上海)計算機科技有限公司 2016/6/29 15:16:16

0 人氣:275

  • 關鍵詞: ARM系統 停車演示系統
  • 摘要:在這篇博文中,我將介紹 IoT 停車演示系統以及其所用到的技術。我會闡述如何使用 Azure IoT Hub 在 Azure 服務和設備之間發送消息,就像我們的演示系統那樣。針對演示中用到的ARM系統模塊,我也會做簡單的介紹,但是主要還是專注于 Azure IoT Hub 以及如何方便地收發消息。

1). 簡介

在這篇博文中,我將介紹 IoT 停車演示系統以及其所用到的技術。我會闡述如何使用 Azure IoT Hub 在 Azure 服務和設備之間發送消息,就像我們的演示系統那樣。針對演示中用到的ARM系統模塊,我也會做簡單的介紹,但是主要還是專注于 Azure IoT Hub 以及如何方便地收發消息。如果你想更了解多關于 Azure IoT Hub 的信息,請點擊這里。

在我們的演示系統有多個設備,例如:

./ 停車場 1(名為 Stretnor)

./ 停車場 2(名為 heaterParkhouse)

./ 公告顯示(每個停車場獨立設備)

每個停車場包含以下多個設備:

./ 閘門控制器(Toradex ColibriT30 ARM計算機模塊系統(基于nVidia Tegra 3)運行 Win10 IoT)

./ 停車控制器(ToradexColibri VF50 運行ARM計算機模塊系統(基于NXP Vybrid)Windows Embedded Compact 2013)

./ 支付終端(ApalisiMX6 ARM計算機模塊系統(基于NXP iMX6)運行 Linux 和 Qt)

./ 公告顯示(ColibriiMX6 ARM計算機模塊系統(基于NXP iMX6)運行 Windows Embedded Compact 2013)

正如你在上面圖片中看到的,所有的通信消息通過 Azure IoT Hub 發送至應用服務進行處理。你也注意到我們在 Azure 運行了網頁和數據庫,但是這個篇博文只介紹 Azure IoT Hub 部分。

2). IoT 停車場演示系統消息流

由兩個基本的事件會觸發設備和 IoT Hub 之間的消息流。

a). 第一個事件是當有車輛抵達閘門(參考下圖):

當車輛抵達閘門時,閘門控制器會掃描車牌,向 IoT Hub(1)發送消息。在應用服務確認數據后,會向閘門控制器發送消息,開啟閘門(2)。與此同時,指示停車位的消息也會發送至停車控制器(3)。停車控制器會開啟紅色 LED 燈閃爍,表示該停車位即將被占用。支付終端也將會收到消息。這個消息包括車牌號和抵達時間(4)。同時,公告顯示器收到關于該區域里所有停車位的信息(5)。

當車輛停在停車位時,停車控制器停止紅色 LED 燈閃爍,向 IoT Hub 發送車輛已經??康南ⅲ?)。此時,閘門控制器被告知關閉閘門(7)。

b). 第二種事件是車輛離開停車位:

當車輛離開停車場的時候,司機首先需要支付停車費。在支付終端上,司機選擇他自己車輛的車牌后支付。請求支付的消息發送至 IoT Hub(1)。應用服務計算價格,并發送到支付終端(2)。當支付終端接收付款后,發送支付成功的消息至 IoT Hub(3)。應用服務把車輛即將離開停車場的送消息發送到停車控制器(4)。停車控制器開始閃爍綠色 LED 燈。當車輛從停車位上離開后,IoT Hub 收到車輛已經離開的消息(5)。停車控制器打開出口閘門。在一段時間后,閘門關閉,一個指示停車位空閑的消息發送到 IoT Hub。之后,公告顯示上也更新所有停車位的信息(6)。

3). 例程應用

在下面的例程中,我將向你演示如何方便地于 Azure IoT Hub 通信。你需要基本的 C# 知識來理解這個例程。如果你想要編譯應用,請使用 Visual Studio 2015。

你同樣也需要 Azure 賬戶來運行例程。你可以創建一個免費的 Azure IoT Hub,并在你的 Azure IoT Hub 上創建設備。使用 device explorer 完成這些任務。在這里查看 device explorer 文檔。

這里我將演示一個小的服務器應用,從 IoT Hub 獲取消息并處理。代碼是很簡單的,并不適用于生產環境。這僅僅是向你介紹如何方便地同 Azure IoT Hub 通信。在這個代碼里,我們只接收來自設備的信息,并將新的消息發送至同一個設備。

你需要使用你的連接字符串來修改服務器端的代碼。

-----------------------

private const string CONNECTION_STRING ="";

-----------------------

正如你在代碼中看到的一樣,我只調用了 TDXServerEmulator 類中的 connect 方法

-----------------------

TDXServerEmulator ServerEmulator = newTDXServerEmulator();

ServerEmulator.Connect();

-----------------------

這會處理接收和響應消息。

為了使用客戶端,你需要 Azure IoT 的 URL 替換成你自己的。Device.cs.

-----------------------

const string iotHubUrl = "";

-----------------------

在客戶端代碼中,創建新的 Device 對象,注冊 OnMessageReceived 事件。這能夠使你的設備收到來自 Azure IoT Hub 的所有消息。

-----------------------

Device client1 = new Device("","");

client1.OnMessageReceived +=Client1_OnMessageReceived;

client1.Start();

-----------------------

接下來,你可以運行例程。兩個終端串口會在程序執行之后出現。你需要等待服務器應用連接。

在服務器連接后,你可以在應用中選擇“Send Hi”。

在上面的圖片中,你可以看到客戶端發送“Hi”。服務器接收到來自客戶端的消息后,用“Hi from IoT Hub”消息作為響應。

就像你在代碼中看到的一樣,同 Azure IoT Hub 通信和發送消息是很容易的。對于復雜的應用,還有許多可以改進的地方,這當然也會使得代碼變得更加復雜。

通過以上的代碼和解釋,你應該可以使用 Azure IoT Hub 開發簡單的應用。所有 Toradex ARM計算機模塊 均支持 Azure IoTHub。你可以在 這里了解 Toradex 模塊的支持類型。你也可以下載 WinCE 和 Linux SDK。

更多內容請訪問 韜睿(上海)計算機科技有限公司(http://c.gongkong.com/?cid=16879)

手機掃描二維碼分享本頁

工控網APP下載安裝

工控速派APP下載安裝

 

我來評價

評價:
一般
爱玩棋牌手机版官网 下载上海11选五助手 广西快3是官方吗 全国开奖彩票开奖详情 p2p网贷理财平台如何盈利 山西11选五投注软件 天津十一选五开奖结果手机版 山东11选5历史开奖结果 澳洲赛车开奖官方记录 佳永配资_基金排名 海南4十1彩票