IT技術互動交流平台

易博平台官网

作者︰施炯(jiong)  來源︰IT165收集  發布日(ri)期︰2020-02-27 16:23:50

1. 引(yin)子

    今年6月底,在上海(hai)舉辦的(de)中國國際物聯網大(da)會上,微軟中國面向(xiang)中國物聯網社區推出了Microsoft IoT Starter Kit ,並(bing)且免費(fei)開放1000套的(de)申請。申請地(di)址為︰http://aka.ms/iotkits,目前(qian)仍然有效。當時一開放申請,我就在線填寫了申請表(biao),接(jie)下來就是長長的(de)等待。相信很多朋友都是一樣,在經過幾個月的(de)等待之後,終于拿(na)到了這個開發套件,而有些(xie)朋友估(gu)計還在等待中。因為官方(fang)是一個月處理並(bing)郵寄一批,速度(du)不(bu)是很快(kuai)。但是,在經過了一段時間(jian)使用以後,我可以說,如(ru)果朋友們期待在這個最初(chu)版(ban)本的(de)套件上開發基于Windows 10 IoT Core的(de)程(cheng)序的(de)話(hua),那(na)麼,還得再等等,因為後續的(de)升級版(ban)本套件還在測試(shi)中。如(ru)果你有Linux和Arduino的(de)基礎,那(na)麼,恭喜你,你可以快(kuai)速上手用了。接(jie)下來,就從我自己(ji)的(de)角度(du),和大(da)家分(fen)享這個套件的(de)使用初(chu)體驗(yan)。

2.開發套件硬(ying)件

    首先,我們來看一看硬(ying)件配置,這次拿(na)到的(de)開發套件是微軟物聯網開發套件A型,包含了SeeeduinoCloud和Orange Pi Lite兩塊開發板,外圍設備方(fang)面,包含Grove接(jie)口擴(kuo)展(zhan)板、200萬像素攝像頭、板載麥克風、溫濕(shi)度(du)傳感器、光敏傳感器、RGB燈(deng)、聲音傳感器、板載WIFI模塊、8G Micro SD存儲卡、一根(gen)MicroUSB線(給SeeeduinoCloud供電(dian))和一根(gen)給Orange Pi Lite供電(dian)的(de)USB線,值得注(zhu)意(yi)的(de)是,給SeeeduinoCloud供電(dian)的(de)話(hua),普(pu)通的(de)充(chong)電(dian)器或者電(dian)腦的(de)USB接(jie)口就足(zu)夠了;但是,給Orange Pi Lite供電(dian)的(de)話(hua),最好找個電(dian)流大(da)一些(xie)的(de)充(chong)電(dian)器,比如(ru)1A以上的(de),官方(fang)標(biao)的(de)是需要(yao)2A。另(ling)外,需要(yao)澄清的(de)是,開發套件B不(bu)包含在免費(fei)贈送的(de)範(fan)圍內,據說,開發套件B型包含一塊RaspberryPi 3 Model B、OLED顯(xian)示屏、NFC、RFID卡、空氣質(zhi)量(liang)傳感器、中繼器、角度(du)控(kong)制器等部件。

    應該說,開發這兩塊開發板,用的(de)套路是不(bu)一樣的(de)。首先,SeeeduinoCloud用的(de)是Arduino IDE;Orange Pi Lite默(mo)認燒寫運行的(de)是Ubuntu系統,需要(yao)Linux環(huan)境的(de)開發機。Grove接(jie)口擴(kuo)展(zhan)板和其他的(de)各種(zhong)傳感器,是設計給SeeeduinoCloud用的(de);而攝像頭,是設計給Orange Pi Lite用的(de)。所以,這兩部分(fen)硬(ying)件的(de)概要(yao)圖(tu)是這個樣子的(de)。

imageimage

    從性yue)萇俠純矗range Pi Lite是不(bu)輸(shu)給樹莓派的(de),而淘(tao)寶的(de)價格只(zhi)有70+RMB,還是比較給力的(de)。相比較而言,還是這塊SeeeduinoCloud較貴(gui),官網上的(de)價格是50美金,不(bu)過它已經包含了無線WiFi,運行的(de)環(huan)境是Openwrt+Arduino。

3. 軟件與準備工作

    從官方(fang)的(de)宣(xuan)傳來看,稱此套件“支持Arduino、OpenWrt、多種(zhong)Linux發行版(ban)、Windows 10 IoT Core。為了更方(fang)便地(di)連接(jie)Azure雲服務,微軟物聯網開發套件在開發版(ban)中內置了Azure IoT SDK和Azure Cognitive Services認知服務SDK”。這里,需要(yao)大(da)家注(zhu)意(yi)的(de)是,Arduino、OpenWrt是對于SeeeduinoCloud而言的(de),多種(zhong)Linux發行版(ban)是對于Orange Pi Lite而言的(de),Windows 10 IoT Core是對于開發套件B的(de)樹莓派而言的(de)。所以,不(bu)同(tong)的(de)硬(ying)件運行不(bu)同(tong)的(de)系統,開發工具和環(huan)境也不(bu)一樣,這個大(da)家需要(yao)留心,根(gen)據自己(ji)的(de)實(shi)際需求來選擇(ze)。

    這里,我們先來測試(shi)SeeeduinoCloud和對應的(de)Azure IoTHub服務。在開始之前(qian),首先需要(yao)在自己(ji)的(de)開發機器上安裝Arduino IDE,因為SeeeduinoCloud需要(yao)使用Arduino IDE來編寫執行的(de)代碼。如(ru)果沒有安裝該軟件的(de)朋友,可以到https://www.arduino.cc下載並(bing)安裝最新的(de)版(ban)本。

    另(ling)外,使用Azure IoT服務的(de)話(hua),需要(yao)向(xiang)世紀互聯提交試(shi)用申請,地(di)址為︰https://www.azure.cn/pricing/1rmb-trial-full/?form-type=identityauth。當然,如(ru)果有國際版(ban)MSDN訂閱(yue)的(de)賬戶,其中包含了Azure服務的(de),也可以直接(jie)使用Azure IoT服務。套件中需要(yao)使用的(de)Azure連接(jie)信息(xi)主(zhu)要(yao)就是IoTHub的(de)Hostname,Devicename和Key。有關(guan)IoTHub的(de)創建,可以參考Azure的(de)在線文檔︰https://www.azure.cn/documentation/articles/iot-hub-csharp-csharp-getstarted/。有關(guan)Device的(de)創建,可以直接(jie)使用Device Explore工具,具體可以參考︰https://github.com/Azure/azure-iot-sdks/tree/master/tools/DeviceExplorer

    當然,如(ru)果要(yao)用別的(de)na)夥fei)的(de)在線服務,也可以選擇(ze)國內的(de)Yeelink,具體可以參考︰http://wiki.seeed.cc/Seeeduino_Cloud/

4. 硬(ying)件連接(jie)與初(chu)始設置

    將開發套件中的(de)SeeeduinoCloud、Grove接(jie)口擴(kuo)展(zhan)板和4個傳感器取出,按(an)照如(ru)下的(de)連線方(fang)式連接(jie)︰

    ? Grove - Temp&Humi Sensor -> A0;? Grove - Light Sensor -> A1;? Grove - Sound Sensor -> A2;? Grove - Chainable RGB LED -> D4 & D5。

    連線完畢以後,效果圖(tu)如(ru)下︰

image

    給SeeeduinoCloud上電(dian),參考http://wiki.seeed.cc/Seeeduino_Cloud/文檔的(de)Network Config部分(fen),配置SeeeduinoCloud連接(jie)無線路由器的(de)SSID和密碼(當然,如(ru)果想直接(jie)使用RJ45以太網接(jie)口的(de)朋友,可以直接(jie)忽略)。首先,進入(ru)SeeeduinoCloud,其密碼是seeeduino,如(ru)下圖(tu)所示。

image

    其次,在System部分(fen),配置mei)捎玫de)無線路由器的(de)SSID和密碼,如(ru)下圖(tu)所示。

image

    設置結束以後,點擊Configure and Restart,重啟以後,可以登錄無線路由器,發現它能夠通過WiFi連接(jie)了。當然,從SeeeduinoCloud上電(dian)到連接(jie)上WiFi,需要(yao)一定的(de)時間(jian)(大(da)概30秒)。它的(de)主(zhu)機名是“--”,比較奇怪(guai)。

image

5. 設置Azure IoTHub連接(jie)字符串

    使用Putty客(ke)戶端,根(gen)據IP地(di)址連接(jie)SeeeduinoCloud,按(an)照“root,seeeduino”登錄。如(ru)下圖(tu)所示。

image

    在根(gen)目錄下,使用ls命令查看現有的(de)文件。

image

    可見,其中已經包含了一些(xie)必須的(de)文件。這些(xie)文件在出廠的(de)時候已經設置好了,需要(yao)修改的(de)就是AzureConnectionString。因為這個是連接(jie)IoTHub的(de)字符串。

    使用 vi 鍵入(ru) host name、device id 與 device key 到文件 ' AzureConnectionString '。文件路徑為 ' /root/AzureConnectionString '。

    或者使用 echo 命令輸(shu)入(ru)字符串,如(ru)下(下面的(de)問號用上面申請到的(de)連接(jie)字符串代替)︰

    echo -n 'HOST_NAME:???.azure-devices.???

    DEVICE_ID:???

    DEVICE_KEY:???' > /root/AzureConnectionString

6. Arduino編程(cheng)並(bing)下載程(cheng)序

    利用Arduino IDE打開源代碼工程(cheng),可以去https://github.com/WayenWeng/Seeeduino_Cloud_Azure_IoT_Hub_Client/下載。把(ba)Seeeduino_Cloud_Azure_IoT_Hub_Client-masterArduino Codelibraries下的(de)兩個文件夾解壓到Arduino IDE的(de)libraries目錄下。如(ru)下圖(tu)所示。

image

    打開工程(cheng),可以發現,程(cheng)序主(zhu)要(yao)采(cai)集的(de)數據就是溫度(du)、濕(shi)度(du)、光照強度(du)和聲音強度(du),采(cai)集的(de)時間(jian)間(jian)隔可以通過loop中的(de)delay函數來控(kong)制,其中的(de)參數是以毫秒為單(dan)位的(de),默(mo)認應該是1000,也就是1秒鐘ying)cai)集一次數據,可以根(gen)據實(shi)際情(qing)況修改。另(ling)外,發送和接(jie)收數據是通過調用根(gen)目錄下的(de)AzureMessageSend和AzureMessageReceive來實(shi)現的(de),這部分(fen)內容並(bing)不(bu)在Arduino控(kong)制pin)姆fan)圍內。當然,如(ru)果用戶需要(yao)增加其他的(de)傳感器數據,就可以在擴(kuo)展(zhan)板上接(jie)其他傳感器,在程(cheng)序中讀取,並(bing)封裝到消息(xi)體里面就可以。然後,如(ru)果硬(ying)件連接(jie)正確的(de)話(hua),就可以在工具-端口中找ye)eeeduino對應的(de)COM號。最後,點擊上傳,就可以將程(cheng)序上傳到Seeeduino中。

image

7. 運行程(cheng)序並(bing)監控(kong)數據

    在Putty工具中,使用ps命令,就可以查看進程(cheng),如(ru)下圖(tu)所示。

image

    其中可以找ye)zureIoTHubClient,該進程(cheng)是默(mo)認啟動的(de)。為了si)囁kong)數據采(cai)集和發送的(de)狀態,可以顯(xian)示啟動它。在命令行中,輸(shu)入(ru)./AzureIoTHubClient,回車。如(ru)果正常的(de)話(hua),會顯(xian)示客(ke)戶端連接(jie)Azure IoTHub的(de)狀態信息(xi),如(ru)下圖(tu)所示。

image

    之後,程(cheng)序就會每(mei)隔1秒鐘ying)cai)集數據,並(bing)發送給IoTHub,如(ru)下圖(tu)所示。

image

    在本地(di),可以使用Device Explore來監控(kong)對應設備的(de)數據,如(ru)下圖(tu)所示。

image

    另(ling)外,也可以在Azure的(de)主(zhu)頁上查看已經發送的(de)數據數量(liang),如(ru)下圖(tu)所示。

image

8. 數據的(de)在線可視化-PowerBI

    傳感器采(cai)集的(de)數據是冷(ling)冰冰的(de),如(ru)何(he)讓它活躍起來,我們可以使用微軟提供的(de)Stream Analytics和PowerBI來實(shi)現zhi)蕕de)多樣化顯(xian)示。首先,需要(yao)在Azure的(de)主(zhu)頁上新建一個流分(fen)析的(de)業(ye)務,並(bing)將其輸(shu)入(ru)配置為之前(qian)新建的(de)IoTHub,輸(shu)出配置為PowerBI,如(ru)下圖(tu)所示。

image

    當IoT Hub和Stream Analytics都運行起來以後,登錄到PowerBI,設置圖(tu)標(biao)的(de)樣式,如(ru)下圖(tu)所示。

image

    之後,可以將報表(biao)固定到某個Dashboard上,如(ru)下圖(tu)所示。

image

    保存,回到PowerBI主(zhu)頁,就可以看到實(shi)時的(de)傳感器數據的(de)視圖(tu)了,如(ru)下圖(tu)所示。

image

後記

    整(zheng)個項目調試(shi)過程(cheng)中,需要(yao)注(zhu)意(yi)在輸(shu)入(ru)Azure連接(jie)字符串時,最好通過VI輸(shu)入(ru),因為如(ru)果使用Windows的(de)記事(shi)本等工具輸(shu)入(ru),有可能會帶(dai)入(ru)一些(xie)不(bu)必要(yao)的(de)字符,影響Azure IoT Hub的(de)連接(jie)。

參考鏈接(jie)

1. IoT Starter Kit申請地(di)址︰http://aka.ms/iotkits

2. Azure試(shi)用申請︰hai)ttps://www.azure.cn/pricing/1rmb-trial-full/?form-type=identityauth

3. IoTHub的(de)創建︰https://www.azure.cn/documentation/articles/iot-hub-csharp-csharp-getstarted/

4. Device Explore工具︰https://github.com/Azure/azure-iot-sdks/tree/master/tools/DeviceExplorer

5. SeeeduinoCloud上手文檔︰http://wiki.seeed.cc/Seeeduino_Cloud/

6. 程(cheng)序代碼托管地(di)址︰https://github.com/WayenWeng/Seeeduino_Cloud_Azure_IoT_Hub_Client/

易博平台官网

    Tag標(biao)簽︰Microsoft  IoT  Starter  Kit  開發初(chu)體驗(yan)  
    • 易博平台官网

    About IT165 - 廣告(gao)服務 - 隱(yin)私聲明 - 万人红黑大战官网版(ban)權申明 - 免責條(tiao)款 - lol外围官网網站(zhan)地(di)圖(tu) - 網友投稿 - 聯系方(fang)式
    本站(zhan)內容來自于互聯網,僅供用于網絡技術學習,學習中請遵(zun)循相關(guan)法律法規
    易博平台官网 | 下一页