基于Windows 10 IOT Core的程序开发*
2020-03-20邬云文
周 旋,邬云文
(1.吉首大学信息科学与工程学院,湖南 吉首 416000;2.吉首大学物理与机电工程学院,湖南 吉首 416000)
物联网技术已被广泛应用于各行各业,如中药煎药配送系统[1]、高校宿舍安全监控系统[2]、智能实验楼宇照明及环境监控系统[3-4]、以无人机作为空基感测平台的移动物联网[5]和智慧实验室[6-7]等.当前,世界各国已研发出多种物联网开发平台[8].2015年发布的Windows 10 IoT Core 系统是近几年新研发的一种在嵌入式设备上运行的物联网开发系统.它与计算机Windows 10系统相关联,用于构建智能事物,广泛用于多种嵌入式设备上,已被Johnson Controls,Askey和Misty Robotics等行业创新者采用.与传统的嵌入式系统相比,Windows 10 IoT系统的界面更简洁清晰,操作更简单,更适合用于开发物联网系统.笔者将基于诸如树莓派、MinnowBoard Max和DragonBoard 410c等嵌入式设备,研究利用Windows 10 IoT Core系统进行物联网系统开发,包括开发前的系统环境设置、添加IoT函数库于项目的方法,以及3种IoT程序部署的方法.
1 Windows 10 IoT Core开发环境的设置
Windows 10 IoT Core的开发方式主要采用计算机和嵌入式设备联调.Windows 10 IoT Core开发程序时需要用到Visual Studio Community 2015,Visual Studio Professional 2015或Visual Studio Enterprise 2015及以上版本的开发工具.开发之前要设置开发环境,即先打开Developer Mode.Windows 10 IoT Core开发环境的设置步骤为:(ⅰ)单击Windows 10作业系统左下角的“窗口”图标;(ⅱ)单击设置图标;(ⅲ)单击左侧的“针对开发人员”;(ⅳ)在右侧选择“开发人员”模式.
需要注意的是,只有在Windows 10(Version 10.0.10240)及以上版本的作业系统之中,Windows 10 IoT Core才能正确地安装与设置.
2 添加IoT函数库方法
完成开发环境设置后便进入Windows 10 IoT Core程序开发(以下操作在Visual Studio中进行).首先,通过网络使安装有Windows 10系统和Visual Studio软件(2015版或更高版本)的计算机与装有Windows 10 IoT Core的嵌入式设备连接.然后,添加IoT函数库,步骤为:(ⅰ)创建空白App案例(需要选择C#或者C++).(ⅱ)打开添加函数库窗口.新增案例中,选择“案例名称”/Add/Reference.(ⅲ)选择“Universal Windows/Extensions/Windows IoT Extensions for the UWP”.(ⅳ)确认IoT函数库.完成IoT函数库添加之后是程序源代码的编写,主要编程语言有C#和C++,文中对具体编程不作介绍.
3 常用IoT程序部署方法
3.1 Remote Machine 部署
Remote Machine 部署方法需通过VisualStudio(Visual Studio Community 2015,Visual Studio Professional 2015或Visual Studio Enterprise 2015及以上版本的开发工具 )软件实现.初次设置步骤如下:
(ⅰ)属性设置修改.选择“Remote Machine”,系统会跳出设置选项,若没有跳出则转到步骤(ⅱ).设置步骤为:(1)确认计算机和机器在同一个网域中;(2)Address项填入嵌入式设备网络地址;(3)Authentication Mode选项选择“Universal(Unencrypted Protocol)”.属性设置修改界面如图1所示.
图1 属性设置修改界面Fig.1 Interface for Modifying Property Settings
(ⅱ)确认属性设置.在案例窗口中选择“Universal Windows Properties”,完成属性设置确认后在命令窗口选择“Debug”“ARM”和“远程计算机”(图2),点击调试.
图2 命令窗口操作Fig.2 Actions in the Command Window
3.2 Windows IoT Core Web Management 部署
与Remote Machine 部署不同,使用Windows IoT Core Web Management 部署需要用到Windows IoT Core Web Management 网页界面.具体步骤如下:(ⅰ)将程序打包.Visual Studio 2015 的解决方案浏览器中右击要打包的项目,在“Store”菜单项中选择“Create App Packages”(图3a).在询问“是否上传至Windows Store”时选择“No”(现在无需使用这个功能),“Generate App Bundle”一项选择“Never”(图3b).点击“Next”按钮后开始编译文件,编译完成后显示输出路径(图4).
b 项目打包操作步骤2图3 打包程序操作步骤Fig.3 Operating Steps for Packaging
图4 项目打包成功结果Fig.4 Successful Packaging Results
(ⅱ)打开浏览器,输入IoT设备的IP地址和端口号8080后进入 Windows IoT Core Web Management 登录界面,输入初始用户名“Administrator ”和密码“p@ssw0rd”后进入主界面,如图5所示.进入登陆界面后,在左侧菜单中选择“Apps”菜单项,App Manager面板中会显示安装的程序及运行的程序等信息,最下面是安装App功能选择控件.App Package在刚才的发布目录下选择“.appx”文件(图6a).点击“Go”按钮开始安装程序,安装结束后在“Installed Apps”中选择刚才安装的应用,点击“Start”按钮启动程序,程序启动完成显示器显示预期界面.点击“Set Default”按钮会将程序设置为默认程序(图6b),每次系统启动就后会默认启动.
图5 Windows IoT Core Web Management登录界面Fig.5 Login Interface for Windows IoT Core Web Management
a 安装App操作
b 设置默认程序图6 程序载入设备Fig.6 Program Loading Device
3.3 Power Shell 命令部署
Power Shell 命令部署,顾名思义即需要使用Windows 10系统自带的Power Shell 命令来完成部署工作.具体步骤如下:(ⅰ)将程序打包,因该方法与Windows IoT Core Web Management 部署的打包过程相同,故不再赘述.(ⅱ)由于Win10 IoT默认支持FTP,因此利用FTP客户端将刚才生成的程序目录上传至Windows 10 IoT的根目录下.(ⅲ)通过管理员权限启动PowerShell,输入如图7a所示命令连接Windows 10 IoT系统并进入目录.找到刚才上传的文件夹,使用“cd”命令进入文件夹,找到“.appx”文件利用“Add-AppxPackage”命令安装,这里执行“Add-AppxPackage CloudTechIot1dot5_1.0.2.0_ARM.appx”(图7b).程序启动完成显示器显示预期界面.
a 连接Windows 10 IoT并进入目录
b 执行Add-AppxPackage CloudTechIot1dot5_1.0.2.0_ARM.appx图7 Power Shell 命令部署过程Fig.7 Process of Deploying the Power Shell Command
3.4 3种方法对比分析
使用3种方法的任一种均能完成物联网开发,但其各有特点:方法一Remote Machine 部署操作过程最简洁,但仅适用于C#项目开发,适合熟悉且习惯使用C#语言的开发者;方法二Windows IoT Core Web Management部署和方法三Power Shell 命令部署对于C#和C++项目皆适用,因此这2种方法的适用人群范围比方法一的广.3种方法的共同点是:都要用到Visual Studio 2015及以上版本,且操作系统必须是Windows 10系统;在创建Visual Studio 项目时需要选择适用的Windows 10 最高版本和最低版本.
4 结语
针对当前物联网开发者利用Windows 10 IoT 系统开发难的问题,分析了基于Windows 10 IoT系统平台的Remote Machine 部署、Windows IoT Core Web Management 部署和Power Shell 命令部署等物联网开发方法.Windows 10 IoT系统应用广泛,支持的硬件主要包括树莓派2、树莓派3b、MinnowBoard Max和DragonBoard 410c等嵌入式设备,主要兼容ARM32,x86,x64等体系结构.