APP下载

基于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等体系结构.

猜你喜欢

函数库命令嵌入式
只听主人的命令
用于优化雷达信号处理的VSIPL函数库
基于Python的开源GIS应用开发
Scratch求最值和平均值
基于BB60C的IQ数据采集与存储系统设计
移防命令下达后
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
这是人民的命令
Altera加入嵌入式视觉联盟