Windows IoT是微软推出的针对小型、低成本、互联网连接设备的Windows 10操作系统版本。它包含三个版本:IoT Core、IoT Enterprise和Mobile Enterprise。其中,IoT Core是免费的,并且是大多数人会关心的版本。目前,它支持四种设备,包括三种开发板:
Windows IoT Core没有命令行界面,因此当在LCD上运行时,感觉就像是一个单一应用版本的Windows。这个免费的操作系统没有限制,可以将产品推向市场,而无需为操作系统支付任何费用。
IoT Enterprise和Mobile Enterprise不是免费的,它们更多用于ATM或销售点场景。IoT Mobile Enterprise使用类似于Windows Phone的“现代界面”。IoT Enterprise还支持x64和更大的设备,并使用类似于传统Windows 10的“桌面界面”。它们还允许系统管理员推迟系统更新。
如果正在寻找一个与现实世界交互的设备,有很多选择。例如,Arduino是一个极好的选择,如果有机会大规模生产设备,因为可以找到成本不到2美元的ATMEL芯片,生态系统和库集非常大。此外,设备将运行得更快(实时),没有操作系统的开销。
然而,如果设备需要:
那么上述列出的某个开发板可能是更好的选择。但是为什么不运行Linux呢?
安全性是Windows IoT的一个优势。首先,将获得自动更新,以帮助修补未来的漏洞。还有原生UEFI,它有助于在固件和驱动程序级别防止恶意软件。还有受信任的平台模块(TPM)支持,它有助于将加密操作移动到硬件级别。如果运行的是多人登录的自助服务终端,身份保护和访问控制可能很重要。甚至还有BitLocker和企业数据保护支持,如果像静态加密、审计或远程设备擦除这样的事情对很重要的话。
另一方面,Windows IoT使得与其他设备和服务的连接变得容易。例如,可以轻松且安全地连接到Azure IoT Hub,理论上可以从数百万设备实时聚合数据。它还内置了AllJoyn支持,这是一种连接到其他IoT设备的方式。
但最大的好处之一是Windows生态系统。可以使用Visual Studio为其构建应用程序,这是一个顶级的IDE。可以比Linux更容易地将现有的Win32或.NET应用程序移植到Windows IoT。得到了远程桌面。可以用C#、Python、JavaScript或Arduino C编写,甚至可以嵌入Arduino库。如果有构建.NET应用程序的经验,那么学习曲线将非常低。最后,如果想让应用程序额外针对大屏幕、平板电脑、手机甚至XBox,那么Windows IoT是唯一选择,因为Windows IoT旨在运行通用Windows平台应用程序。
如果还没有树莓派3,请选择一个包含足够电源(输出至少1安培,2更好)、快速Micro SD卡和可能的外壳的众多好套件之一。
一旦有了设备,需要用Windows IoT操作系统设置它。截至本文撰写之时,官方版本是2015年12月的Build 10586。不幸的是,这个版本不支持树莓派3。因此,需要Windows IoT的Insider Preview。
要设置一个新的树莓派3设备,请按照Insider Preview设置说明进行操作(或者如果它们已经RTM了,下载Core IoT Dashboard)。将下载一个映像(Build 14295支持远程桌面),并使用IoT Dashboard应用程序将映像闪存到SD卡上。
现在可以将SD卡放入树莓派,将HDMI电缆插入显示器,并通过micro USB供电。如果一切顺利,应该看到Windows正在加载。
一旦它加载完成,它将启动默认应用程序,为基本设备配置提供了一个地方。
在进一步操作之前,需要设置互联网访问。可以通过以太网电缆或批准的WiFi设备(小心,列表不大)来最轻松地做到这一点,并打开电源。
但是等等,树莓派3不是有内置WiFi吗?不幸的是,当前版本不支持。希望它很快就会出现。
一旦设备连接到网络,将拥有更强大的访问选项。例如,可以通过PowerShell进入。
或者更好,当在IoT Dashboard应用程序中转到设备时,设备应该被列出。如果点击网络链接,可以访问时髦的网络浏览器界面。这可能是更改设备名称和密码的好时机。
现在有了一台没有软件的互联网连接微型PC。要为其编写应用程序,需要在“真正的”PC上设置Visual Studio。
要设置PC为Windows IoT构建应用程序,需要Visual Studio 2015 Update 1或更好(任何版本)。小心,这样做时,需要选择“通用Windows应用程序开发工具”功能,否则会得到非常有帮助的...错误:此模板尝试加载组件程序集Microsoft.VisualStudio.Universal.TemplateWizards,版本=14.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a。有关此问题的更多信息以及如何启用此模板,请参见自定义项目模板的文档。
接下来,安装Windows IoT Core项目模板。重新启动Visual Studio。
最后,启用开发人员模式以通过设置、更新和安全->开发人员->开发人员模式启用通过商店安装应用程序。
要创建一个hello world应用程序:
File -> New -> Project
Blank App (Universal Windows)
添加对Windows IoT扩展SDK的引用:
更新MainPage.xaml,添加一些XAML,如下所示:
XML
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
Hello World
</TextBlock>
在解决方案平台选择下:Arm
对于设备配置,选择远程机器
在结果对话框中,输入设备名称。
按F5!
一旦这样做了,尝试在屏幕上放置一个按钮,设置断点,检查变量。会发现这与在其他Visual Studio项目中所爱的体验完全相同,只是形式更小,成本更低。