天天看點

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

該系列文章為微軟Azure IoT的學習教程。

版權歸作者所有,未經允許,請勿轉載

作者:Jim 微軟Azure IoT 項目經理,多年Xamarin等移動平台研發管理經驗,熟悉微軟SharePoint/WPF/WCF/AspMVC等解決方案。曾任中國電信呼叫中心研發經理。

這個教程是希望通過詳細步驟來說明怎麼通過Azure IoT 套件中的 遠端監視預配置解決方案1.6版本連接配接和管理Seeeduino Cloud開發者套件(更多相關資訊在最後),并使用Azure IoT Hub Device SDK.

遠端監視預配置解決方案屬于Azure IoT套件的一部分。Azure IoT 套件預配置解決方案結合了多項 Azure IoT 服務,提供可實作常見 IoT 商業應用場景的端到端解決方案。 遠端監視預配置解決方案将連接配接并監視裝置。 可以利用該解決方案分析裝置發出的資料流,并通過讓流程自動響應該資料流提升業務績效。關于預配置解決方案的更多内容,請參考這裡。

Seeeduino Cloud 開發者套件相容Arduino 闆并運作Linux系統,由并帶有Dragino Wifi 物聯網子產品 HE 和ATmega32u4的微控制闆組成,并且它内置開源的OpenWrt系統。Arduino是一個非常流行的硬體原型平台,提供Arduino 闆和Arduino IDE,并支援Windows, Macintosh OS X 和 Linux系統。Seeeduino Cloud完全相容Arduino,Grove,擴充闆和IDE(Arduino IDE版本高于1.5.3)。除了Arduino正常接口,Seeeduino Cloud還支援内置的以太網和WiFi,USB-A端口使得需要網絡連接配接和大量存儲的原型設計非常容易。

這個課程将會示範Seeeduino Cloud 開發者套件與遠端監視預配置解決方案連接配接的演練過程,并利用了遠端監視預配置解決方案中的兩個裝置管理任務。包括:

  • 怎麼連接配接Seeeduino Cloud 開發者套件
  • 怎麼在遠端監視預配置解決方案中添加新的裝置
  • 怎麼更新用戶端檔案
  • 怎麼修改裝置的屬性及更新固件

1.在開始前,進行硬體準備

(1) Seeeduino 開發者套件 包括:

① Seeeduino Cloud; ② Base Shield V2; ③ Grove - Temp&Humi Sensor;

④ Grove - Light Sensor; ⑤ Grove - Sound Sensor; ⑥ Grove - Chainable RGB LED.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(2) 像下圖一樣将四個傳感器插入到Base Shield的對應端口,

① Grove - Temp&Humi Sensor -> A0; ② Grove - Light Sensor -> A1

③ Grove - Sound Sensor -> A2; ④ Grove - Chainable RGB LED[In] -> D4

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(3) 像下圖一樣将Base Shield V2闆插入到Seeeduino Cloud 上:

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(4) 用USB線将Seeeduino Cloud連結到你的電腦的USB端口上:

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

2.設定Seeeduino Cloud的網絡

備注:WiFi 的預設模式為 AP(Access Point)。當完成配置後它将變為 Station 模式。

長按 Cloud 複位按鈕,并于 5 秒後釋放,WiFi 将恢複預設設定。

使用 PUTTY 工具将 Seeeduino Cloud 連接配接到可用的 WiFi, 可參考 wiki 描述。

Seeeduino Cloud有一個WiFi接口和一個LAN接口。他們需要有用于網絡連接配接和裝置管理的IP位址。如果你需要更多網絡連接配接方面的參考資訊,可以通路Seeed wiki (wiki.seeed.cc/Seeeduino_Cloud).

(1)通過Wi-Fi網絡連接配接到Seeeduino Cloud

a. Wi-Fi AP模式

Seeeduino Cloud第一次上電時,将會出現一個名叫SeeeduinoCloud-AXXXX未加密的WiFi網絡出現。

如下所示,将電腦連接配接到這個網絡,獲得IP位址192.168.240.xxx。預設位址為192.168.240.1。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

b. Wi-Fi STA 模式

連接配接到 SeeeduinoCloud-AXXXX 這個網絡後,在浏覽器位址欄輸入172.31.255.254 or 192.168.240.1,你會打開Seeeduino Cloud的網頁端。輸入預設密碼為“seeeduino”, 點選登入進入。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

選擇你的Wi-Fi網絡,輸入密碼并點選 “CONFIGURE & RESTART”.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(2) 通過有線網絡連接配接到Seeeduino Cloud

當你使用有線方式連接配接Seeeduino Cloud時,它會通過DHCP方式自動擷取到IP位址。

(3) 變更你的裝置名稱(可選)

當你的網絡中存在2個以上的Seeeduino Cloud裝置時,你需要修改裝置名稱,以便你能夠識别出哪個裝置是你需要操作的。

在Seeeduino Cloud的Web端,點選‘SYSTEM’菜單,在SEEEDUINO CLOUD NAME欄輸入一個裝置名(例如:’SeeedAzureIoT’),并點選“CONFIGURE & RESTART”.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(4) 擷取IP 位址

Open Arduino IDE tools, use the menu ‘tools->port’ to find out the IP address:

打開 Arduino IDE, 通過菜單中的Tools->Port 找到IP 位址。

注意:你的電腦和Seeeduino Cloud需要處于同一網段中才能找到裝置的IP位址

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

3.連接配接裝置

你可以通過SSH終端方式通路Seeeduino Cloud 來程式設計或者配置ATHEROS AR9331:

• 下載下傳SSH 終端,例如 Putty

• 啟動SSH用戶端,并通過剛才擷取到的IP位址連接配接到Seeeduino Cloud:

使用者名: root

密碼: seeeduino

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

4.建立新的遠端監視預配置解決方案并添加裝置

(1) 注冊并登入http://www.azureiotsuite.cn/, 建立一個新的遠端監視預配置解決方案。或者,你可以使用指令行工具部署一個新的遠端監視預配置解決方案。該方案可以通過GitHub下載下傳:https://github.com/Azure/azure-iot-remote-monitoring 。更多關于預配置方案的使用方式,請參考這裡。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(2) 增加新的客戶硬體裝置,并記錄host name, device id 和 device key這些值。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(3) 輸入 Azure 連接配接字元串

在SSH用戶端上,使用 vi 鍵入 host name、device id 與 device key 到檔案 ” AzureConnectionString “。檔案路徑為 ” /root/AzureConnectionString “。

a. 或者使用 echo 指令輸入字元串,如下:

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

5.打開 Dashboard 與 Serial 監測面闆等待測試

(1)傳感器資料監測:

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(2)RGB 燈控制

設定紅色:16711680 -> 0xff0000

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

設定綠色:65280-> 0x00ff00

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

設定藍色:255-> 0x0000ff

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件
微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

6.編輯新的終端程式(可選)

已經部署在Seeeduino Cloud 開發者套件的用戶端(檔案名:AzureIoTHubClient)目前是個舊版本檔案,這一步将帶你部署一個新版本檔案,通過它可與1.6版本的遠端監視預配置解決方案進行更多互動。

注意:如果你不希望編譯這個程式,下一步你可以直接使用預先編譯好的用戶端檔案

(1). 準備一個開發環境,我使用了一個版本是16.04的Ubuntu Server TLS。更多編譯過程内容可以參考這裡。

(2). 在GitHub上下載下傳 azure-iot-sdk-cs

使用指令行終端,從這裡下載下傳最新版本的IoT Hub 裝置SDK ,并且下載下傳Seeeduino_Cloud_Azure_IoT_Hub_Client (在GitHub上)來編譯你的程式,該程式增加了裝置管理支援和一些裝置上的業務邏輯示例。

你可以使用下列步驟建立這個示範用途的用戶端檔案:

a. 下載下傳一個改動過的 azure-iot-sdks

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

b. 安裝 cmake 與 gcc

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

備注 : 确認 cmake 版本 3.+,以及 gcc 版本 4.9.+

c. 下載下傳Seeeduino_Cloud_Azure_IoT_Hub_Client, 複制代碼”…/Source Code/remote_monitoring.c ” 到檔案 “/azure-iot-sdks/c/serializer/samples/remote_monitoring/remote_monitoring.c “

注意:這裡使用了不同的repository.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

d. 編譯sdk及樣例。該樣例可支援Device Twin功能、方法功能,并顯示為0.1的固件版本和遙測間隔時間為15(秒)。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

e. 複制和重命名檔案

從home目錄找到檔案remote_monitoring:

“…/openwrt/sdk/build_dir/target-mips_r2_uClibc-0.9.33.2/azure-iot-sdks-1/serializer/samples/ remote_monitoring /remote_monitoring “, 并将檔案名稱改為 ” AzureIoTHubClient ”

(AzureIoTHubClient 是一個可執行檔案). 下一步,我們将複制這個檔案到 Seeeduino Cloud.

注意:如果你正在使用SSH連接配接到Ubuntu,使用下一步提到的SCP工具複制這個編譯好的檔案到你的電腦。

7.更新用戶端程式

注意:使用上一步驟編譯的新版用戶端檔案,或者直接通過這裡下載下傳預編譯的用戶端檔案。

(1) 當新的用戶端檔案覆寫舊檔案時,你可能會碰到用戶端檔案還在運作的警告。這種情況下,使用’kill’指令結束該檔案程序。

a. 使用’ps’指令找到‘AzureIoTHobClient’的程序号

b. 使用’kill’指令結束程序

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(2) 使用SCP工具(例如:WinSCP)來連接配接Seeeduino Cloud并覆寫舊檔案。確定你的新檔案有相應的運作權限。

a. 通過WinSCP 用戶端連接配接Seeeduino Cloud.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

b. 在連接配接上Seeeduino Cloud後,從左側區域拖拽新的檔案到右側視窗。

注意:舊的用戶端檔案位于Seeeduino Cloud 上面root使用者的home目錄下(/root/AzureIoTHubClient)

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(3) 在新版用戶端檔案部署後,使用’reboot’指令重新啟動裝置。在裝置重新運作後,你可以通過遠端監視預配置解決方案的裝置清單中檢視該裝置資訊,在下面圖中,有一個新增的名為’tao-device’的裝置,目前顯示的固件版本是’0.1’,遙測資料的時間間隔值為’15’.

注意:目前裝置的溫度和濕度值是随機産生的。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

注意: 如果‘TelemetryInterval’欄目沒有顯示出來,你可以通過’Column Editor’按鈕添加該列。

8.更新 desired property 中的’ Config.TelemetryInterval’

這一步将會向你示範如何修改Desired property.

(1) 在遠端監視預配置解決方案中的裝置頁,從裝置清單中選擇你的裝置,裝置詳細資訊将會顯示在清單右側。

(2) 點選Desired properties的’Edit’連結。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(3) 在 DESIRED PROPERTY NAME 的這個文字框中輸入‘desired.Config.TelemetryInterval’

(4) 在VALUE中輸入5,并點選‘Save changes to device twin’按鈕。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(5) 稍等一會兒,确認在Reported properties的‘Config.TelemetryInterval’已經變為5.

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(6) 觀察儀表闆中的曲線,檢視你的裝置的遙測資料發送頻率已經發生改變。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

9.通過遠端監視預配置解決方案修改固件

當新的用戶端檔案被更新後,如果固件版本号為0.1,則遙測資料會随機産生。一旦固件得到更新,比如是非0.1版本号,則Seeeduino Cloud 将會恢複正常并發送遙測資料到遠端監視預配置解決方案。

現在,讓我們将Seeeduino Cloud的固件版本更新到2.0

(1) 在裝置清單中選擇裝置,詳細資訊将會顯示在清單右側。

(2) 點選’Method’按鈕,将會打開調用方法界面。

(3) 在方法清單中選擇‘InitiateFirmwareUpdate’選項。

(4) 輸入自定義的固件檔案路徑。在示範過程中,我們可以輸入‘https://iotrmassets.blob.core.windows.net/firmwares/FW20.bin’這個預定義的值到FWPACKAGEURI框。

(5) 點選’Invoke Method’按鈕送出此方法。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(6) 稍等片刻,确認目前裝置的固件版本号已經是2.0。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

(7) 觀察遠端監視預配置解決方案中的儀表盤,并确認溫度和适度值已經恢複正常,并且光線和聲音資料已經可以正常顯示。

微軟Azure IoT套件遠端監視預配置解決方案1:連接配接開發者套件

目前儀表盤的的溫度和濕度值反應出目前環境的真實情況,接近平的曲線與更新固件之前的圖表顯示會很不一樣。

相關資源:

  • Prevision RM PCS at www.azureiotsuite.com or deploy it from Github https://github.com/Azure/azure-iot-remote-monitoring
  • RM PCS two step-by-step guides: Get started with the preconfigured solutions and Remote monitoring preconfigured solution walkthrough
  • ‘Connect your device to the remote monitoring preconfigured solution (Linux)’
  • View RM PCS FAQ for trouble shooting tips
  • Seeed Cloud Introduction http://wiki.seeed.cc/Seeeduino_Cloud/
  • Azure IoT SDK: https://github.com/Azure/azure-iot-sdks

繼續閱讀