周 旋,鄔云文
(1.吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000;2.吉首大學(xué)物理與機電工程學(xué)院,湖南 吉首 416000)
物聯(lián)網(wǎng)技術(shù)已被廣泛應(yīng)用于各行各業(yè),如中藥煎藥配送系統(tǒng)[1]、高校宿舍安全監(jiān)控系統(tǒng)[2]、智能實驗樓宇照明及環(huán)境監(jiān)控系統(tǒng)[3-4]、以無人機作為空基感測平臺的移動物聯(lián)網(wǎng)[5]和智慧實驗室[6-7]等.當(dāng)前,世界各國已研發(fā)出多種物聯(lián)網(wǎng)開發(fā)平臺[8].2015年發(fā)布的Windows 10 IoT Core 系統(tǒng)是近幾年新研發(fā)的一種在嵌入式設(shè)備上運行的物聯(lián)網(wǎng)開發(fā)系統(tǒng).它與計算機Windows 10系統(tǒng)相關(guān)聯(lián),用于構(gòu)建智能事物,廣泛用于多種嵌入式設(shè)備上,已被Johnson Controls,Askey和Misty Robotics等行業(yè)創(chuàng)新者采用.與傳統(tǒng)的嵌入式系統(tǒng)相比,Windows 10 IoT系統(tǒng)的界面更簡潔清晰,操作更簡單,更適合用于開發(fā)物聯(lián)網(wǎng)系統(tǒng).筆者將基于諸如樹莓派、MinnowBoard Max和DragonBoard 410c等嵌入式設(shè)備,研究利用Windows 10 IoT Core系統(tǒng)進行物聯(lián)網(wǎng)系統(tǒng)開發(fā),包括開發(fā)前的系統(tǒng)環(huán)境設(shè)置、添加IoT函數(shù)庫于項目的方法,以及3種IoT程序部署的方法.
Windows 10 IoT Core的開發(fā)方式主要采用計算機和嵌入式設(shè)備聯(lián)調(diào).Windows 10 IoT Core開發(fā)程序時需要用到Visual Studio Community 2015,Visual Studio Professional 2015或Visual Studio Enterprise 2015及以上版本的開發(fā)工具.開發(fā)之前要設(shè)置開發(fā)環(huán)境,即先打開Developer Mode.Windows 10 IoT Core開發(fā)環(huán)境的設(shè)置步驟為:(ⅰ)單擊Windows 10作業(yè)系統(tǒng)左下角的“窗口”圖標(biāo);(ⅱ)單擊設(shè)置圖標(biāo);(ⅲ)單擊左側(cè)的“針對開發(fā)人員”;(ⅳ)在右側(cè)選擇“開發(fā)人員”模式.
需要注意的是,只有在Windows 10(Version 10.0.10240)及以上版本的作業(yè)系統(tǒng)之中,Windows 10 IoT Core才能正確地安裝與設(shè)置.
完成開發(fā)環(huán)境設(shè)置后便進入Windows 10 IoT Core程序開發(fā)(以下操作在Visual Studio中進行).首先,通過網(wǎng)絡(luò)使安裝有Windows 10系統(tǒng)和Visual Studio軟件(2015版或更高版本)的計算機與裝有Windows 10 IoT Core的嵌入式設(shè)備連接.然后,添加IoT函數(shù)庫,步驟為:(ⅰ)創(chuàng)建空白App案例(需要選擇C#或者C++).(ⅱ)打開添加函數(shù)庫窗口.新增案例中,選擇“案例名稱”/Add/Reference.(ⅲ)選擇“Universal Windows/Extensions/Windows IoT Extensions for the UWP”.(ⅳ)確認IoT函數(shù)庫.完成IoT函數(shù)庫添加之后是程序源代碼的編寫,主要編程語言有C#和C++,文中對具體編程不作介紹.
Remote Machine 部署方法需通過VisualStudio(Visual Studio Community 2015,Visual Studio Professional 2015或Visual Studio Enterprise 2015及以上版本的開發(fā)工具 )軟件實現(xiàn).初次設(shè)置步驟如下:
(ⅰ)屬性設(shè)置修改.選擇“Remote Machine”,系統(tǒng)會跳出設(shè)置選項,若沒有跳出則轉(zhuǎn)到步驟(ⅱ).設(shè)置步驟為:(1)確認計算機和機器在同一個網(wǎng)域中;(2)Address項填入嵌入式設(shè)備網(wǎng)絡(luò)地址;(3)Authentication Mode選項選擇“Universal(Unencrypted Protocol)”.屬性設(shè)置修改界面如圖1所示.
圖1 屬性設(shè)置修改界面Fig.1 Interface for Modifying Property Settings
(ⅱ)確認屬性設(shè)置.在案例窗口中選擇“Universal Windows Properties”,完成屬性設(shè)置確認后在命令窗口選擇“Debug”“ARM”和“遠程計算機”(圖2),點擊調(diào)試.
圖2 命令窗口操作Fig.2 Actions in the Command Window
與Remote Machine 部署不同,使用Windows IoT Core Web Management 部署需要用到Windows IoT Core Web Management 網(wǎng)頁界面.具體步驟如下:(ⅰ)將程序打包.Visual Studio 2015 的解決方案瀏覽器中右擊要打包的項目,在“Store”菜單項中選擇“Create App Packages”(圖3a).在詢問“是否上傳至Windows Store”時選擇“No”(現(xiàn)在無需使用這個功能),“Generate App Bundle”一項選擇“Never”(圖3b).點擊“Next”按鈕后開始編譯文件,編譯完成后顯示輸出路徑(圖4).
b 項目打包操作步驟2圖3 打包程序操作步驟Fig.3 Operating Steps for Packaging
圖4 項目打包成功結(jié)果Fig.4 Successful Packaging Results
(ⅱ)打開瀏覽器,輸入IoT設(shè)備的IP地址和端口號8080后進入 Windows IoT Core Web Management 登錄界面,輸入初始用戶名“Administrator ”和密碼“p@ssw0rd”后進入主界面,如圖5所示.進入登陸界面后,在左側(cè)菜單中選擇“Apps”菜單項,App Manager面板中會顯示安裝的程序及運行的程序等信息,最下面是安裝App功能選擇控件.App Package在剛才的發(fā)布目錄下選擇“.appx”文件(圖6a).點擊“Go”按鈕開始安裝程序,安裝結(jié)束后在“Installed Apps”中選擇剛才安裝的應(yīng)用,點擊“Start”按鈕啟動程序,程序啟動完成顯示器顯示預(yù)期界面.點擊“Set Default”按鈕會將程序設(shè)置為默認程序(圖6b),每次系統(tǒng)啟動就后會默認啟動.
圖5 Windows IoT Core Web Management登錄界面Fig.5 Login Interface for Windows IoT Core Web Management
a 安裝App操作
b 設(shè)置默認程序圖6 程序載入設(shè)備Fig.6 Program Loading Device
Power Shell 命令部署,顧名思義即需要使用Windows 10系統(tǒng)自帶的Power Shell 命令來完成部署工作.具體步驟如下:(ⅰ)將程序打包,因該方法與Windows IoT Core Web Management 部署的打包過程相同,故不再贅述.(ⅱ)由于Win10 IoT默認支持FTP,因此利用FTP客戶端將剛才生成的程序目錄上傳至Windows 10 IoT的根目錄下.(ⅲ)通過管理員權(quán)限啟動PowerShell,輸入如圖7a所示命令連接Windows 10 IoT系統(tǒng)并進入目錄.找到剛才上傳的文件夾,使用“cd”命令進入文件夾,找到“.appx”文件利用“Add-AppxPackage”命令安裝,這里執(zhí)行“Add-AppxPackage CloudTechIot1dot5_1.0.2.0_ARM.appx”(圖7b).程序啟動完成顯示器顯示預(yù)期界面.
a 連接Windows 10 IoT并進入目錄
b 執(zhí)行Add-AppxPackage CloudTechIot1dot5_1.0.2.0_ARM.appx圖7 Power Shell 命令部署過程Fig.7 Process of Deploying the Power Shell Command
使用3種方法的任一種均能完成物聯(lián)網(wǎng)開發(fā),但其各有特點:方法一Remote Machine 部署操作過程最簡潔,但僅適用于C#項目開發(fā),適合熟悉且習(xí)慣使用C#語言的開發(fā)者;方法二Windows IoT Core Web Management部署和方法三Power Shell 命令部署對于C#和C++項目皆適用,因此這2種方法的適用人群范圍比方法一的廣.3種方法的共同點是:都要用到Visual Studio 2015及以上版本,且操作系統(tǒng)必須是Windows 10系統(tǒng);在創(chuàng)建Visual Studio 項目時需要選擇適用的Windows 10 最高版本和最低版本.
針對當(dāng)前物聯(lián)網(wǎng)開發(fā)者利用Windows 10 IoT 系統(tǒng)開發(fā)難的問題,分析了基于Windows 10 IoT系統(tǒng)平臺的Remote Machine 部署、Windows IoT Core Web Management 部署和Power Shell 命令部署等物聯(lián)網(wǎng)開發(fā)方法.Windows 10 IoT系統(tǒng)應(yīng)用廣泛,支持的硬件主要包括樹莓派2、樹莓派3b、MinnowBoard Max和DragonBoard 410c等嵌入式設(shè)備,主要兼容ARM32,x86,x64等體系結(jié)構(gòu).