在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge )。该版本的主要特点就是将计算能力由Azure端推送至边缘设备Azure IoT Edge,减少了数据在云端传输耗费的时间,加快响应时间。举例来说,Azure IoT Edge设备可以作为网关设备,进行数据的预处理和分析,以减少IoTHub数据传输的延迟时间。同时,该版本支持多种现场总线的设备将数据接入Azure IoT Edge设备,再由Azure IoT Edge设备统一与Azure IoTHub进行数据交互。

在今年11月份的Connect大会上,微软宣布对Azure IoT Edge公开预览版(文档链接为:https://docs.microsoft.com/en-us/azure/iot-edge ),已在美国中西部、北欧和东亚地区上线,其他区域也将分批开通。Azure IoT Edge支持Windows、Linux、x64与ARM等平台与架构,可使用基于Docker的Linux或Windows容器。支持C#、C与Python等开发语言。微软同时也发布了适用于Azure IoT Edge的AI套件,以协助开发人员进行边缘AI的应用开发(https://github.com/Azure/ai-toolkit-iot-edge)。

本文将以运行Windows 10 IoT Core的MinnowBoard MAX为例,详细讲述Windows 10 IoT Core(Build 16299)的安装、Docker的部署、Python和Iotedgectl工具的安装、IoT Edge Device的创建、Module的部署与运行。

1. 在MinnowBoard MAX上安装Windows 10 IoT Core(Build 16299)

MinnowBoard MAX是相对而言比较老的板子了,其处理器是Intel Atom的E8325,双核1.3G的主频,可以运行64位的系统。要在MinnowBoard MAX运行Windows 10 IoT Core Build 16299(因为运行Azure IoT Edge运行时的最低系统版本是16299),需要进行固件更新、系统镜像烧写和Bios设置这三个步骤。

1.1 固件更新

固件更新需要到Intel的官网下载下载最新文件,链接地址为:https://firmware.intel.com/projects/minnowboard-max,笔者写文章时,其最新的版本为0.97,如下图所示,

然后,请参考《Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建》一文的第3部分文档,更新固件。需要注意的是,目前微软发布的针对Minnow Board MAX的Windows 10 IoT Core就是64位的,所以,更新的固件也要选择64位版本的。也就是说,需要用的文件是两个64位固件相关的文件,如下图所示。

1.2 系统镜像烧写

系统镜像烧写,最简单的方法就是下载官方的Windows 10 IoT Core Dashboard 软件,点击设置新设备,选择设备类型、OS版本、设备名称,设置要密码,点击下载并安装。

注意,这里一定要下载16299版本以上的OS。

1.3 BIOS设置

系统镜像烧写完成以后,需要设置Minnow Board MAX的BIOS,主要修改的是Boot的顺序。具体方法可以参考参考《Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建》一文的第5部分文档,依次完成对“Manager -> System Setup -> South Cluster Configuration -> LPSS & SCC Configuration”和“Boot Mainenance Manager-> Boot Options > Change Boot Order”的设置。

2. Docker的部署

系统安装完成之后,给Minnow Board MAX连接网线,上电。第一次运行的时候,会经历一些设置,所以速度相对较慢。系统运行以后,实用PowerShell工具连接局域网内的Minnow Board MAX设备,具体可以参考这个文档《login remotely with PowerShell》。注意,这里实用的用户名和密码就是之前烧写系统镜像时候设置的。

之后,逐步运行以下指令:

Invoke-WebRequest https://master.dockerproject.org/windows/x86_64/docker-17.06.0-dev.zip -o temp.zip

Expand-Archive .\temp.zip $env:ProgramFiles -f

Remove-Item .\temp.zip

$env:Path += ";$env:programfiles\docker"

SETX /M PATH "$env:Path"

dockerd --register-service

start-service docker

以上脚本运行之后,会在Minnow Board MAX设备上安装Docker,设置环境变量,并启动Docker服务。

3. IoT Edge运行时的安装

在PowerShell中,运行以下脚本:

Invoke-Expression (Invoke-WebRequest -useb https://aka.ms/iotedgewin)

注意,该指令会按照脚本文件执行,如果不做更改的话,会提示以下错误。

即下载安装的Docker版本是17.06,但是,打开下载的PowerShell脚本会发现,里面的要求是17.09,所以,需要下载该脚本文件,并对其中的第38行的DockerVersion进行修改,将17.09改为17.06,如下图所示。

修改之后,通过文件共享、FTP等方式,将该文件传输到Minnow Board MAX设备上,如C盘根目录,之后,通过PowerShell执行以下指令:

C:\Install-IotEdgeRequirements.ps1

这样,就通过PowerShell来执行本地的脚本文件了,这个过程中,会下载Python和IoTedgectl工具,根据网络连接的情况,可能会占用较长的时间。如果下载和安装正确的话,会通过PowerShell返回提示,如下图所示。

另外,可以通过iotedgectl help命令查看其能够接受的命令。

现在,我们需要通过Docker将IoTedge Agent 和 IoTedge Hub这两个模块 Pull到本地,即在PowerShell中分别运行:

docker pull microsoft/azureiotedge-agent:1.0-preview

docker pull microsoft/azureiotedge-hub:1.0-preview

如果一切安装正常的话,到这一步就完成安装了。

4. IoT Edge Device的创建

目前,IoT Edge Device是通过Azure IoTHub来通信的,所以,需要在Azure订阅上创建一个IoTHub,具体可以参考《Create an IoT hub using the Azure portal》。注意,免费的F1级别已经足够。

创建IoTHub之后,可以选择IoT Edge (preview) -Add IoT Edge Device,如下图所示:

输入名称,以“MinnowBoard”为例,点击OK。

等待创建完成之后,进入设备信息页面,拷贝其连接的Connection String,如下图所示。

5. IoT Edge Runtime的部署与配置

IoT Edge runtime由两个模块组成,即IoT Edge agent和IoT Edge hub。IoT Edge agent负责部署并监控部署到IoT Edge设备上的Modules。IoT Edge hub负责部署的Modules之间的通信、以及设备和IoTHub总线的通信。

其配置同样通过PowerShell执行:

iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords

其中的"{device connection string}"由上面第4步中保存的Connection String来代替。

之后,就可以通过以下指令开始运行:

iotedgectl start

同时,可以通过以下指令来检查IoT Edge agent是否已经运行:

docker ps

6. 部署一个Module

Azure IoT Edge其中一个重要的特性就是支持云端动态部署Module到IoT Edge Device端。每个Module都是在容器中运行的程序包。Module支持Azure Service,如Azure Functions, Azure Stream Analytics和 Azure Machine Learning;也支持用户自定义的Module,可以用Java, .NET Core 2.0, Node.js, C, and Python等多种语言实现。

这里,我们利用微软已写好的Module进行部署,该Module会每隔5秒钟产生温湿度、大气压的数据,并上传到IoTHub。具体步骤如下:

首先,在Azure Portal中,导航到刚刚创建的IoTHub,依次点击“IoT Edge (preview)”-“Set Modules”-“Add IoT Edge Module”,在弹出的设置页面中,点击Add IoT Edge Module,如下图所示。

输入名称和“Image URI”,其中“Image URI”设置为:

microsoft/azureiotedge-simulated-temperature-sensor:1.0-preview

其他的设置为默认,如下图所示。

后续的设置为默认,最后点击Submit提交。回到设备页面之后,发现下面的Deployed Module中,mytemp已经开始运行。

7. 监控数据

监控IoT Edge Device设备与IoTHub交互的数据,可以实用Azure Device Explorer工具,该工具在Github上有下载:https://github.com/Azure/azure-iot-sdk-csharp/releases

目前最新的版本是1.4.1。下载安装之后,在Configuration页面输入IoTHub的连接字符串,点击Update:

之后,就可以在Data页面中,选择设备,进行数据监控了,如下图所示。

至此,我们已经在MinnowBoard上完成了Windows 10 IoT Core(Build 16299)的安装,进行了Docker的部署和Python、Iotedgectl工具的安装,同时,在Azure Portal上完成了IoT Edge Device的创建、Module的部署与运行。同时,通过Azure Device Explorer工具监控Edge Device和Azure IoTHub数据的交互。

参考链接:

1. Azure IoT Edge V1:https://github.com/Azure/iot-edge

2. Azure IoT Edge V2:https://docs.microsoft.com/en-us/azure/iot-edge

3. Azure IoT Edge AI Kits:https://github.com/Azure/ai-toolkit-iot-edge

4. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

5. MinnowBoard固件更新:https://firmware.intel.com/projects/minnowboard-max

6. Windows IoT Core镜像烧写工具: Windows 10 IoT Core Dashboard

7. Azure IoTHub创建:Create an IoT hub using the Azure portal

8. Azure Device Explorer工具下载:https://github.com/Azure/azure-iot-sdk-csharp/releases

      本文转自灵动生活博客园博客,原文链接:http://www.cnblogs.com/dearsj001/p/AzureIoTEdge4WindowsIoTCore.html,如需转载请自行联系原作者

Azure IoT Edge on Windows 10 IoT Core相关推荐

  1. Windows 10 IoT Core 17101 for Insider 版本更新

    除夕夜,微软发布了Windows 10 IoT Core 17101 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性. 已知的问题: F5 driver deploym ...

  2. 【物联网那些事儿】18 大物联网操作系统,Raspbian Pi、Ubuntu Core、Windows 10 IoT、Micropython、OpenWrt ....你用过哪几个?

    系列文章目录 文章目录 系列文章目录 前言 一.物联网操作系统是什么? 二.18 大物联网操作系统 总结 前言 如果您查看我们周围所有连接的嵌入式系统,您会意识到物联网操作系统是确保安全.连接.互操作 ...

  3. 研扬科技与微软合作开发集成Windows 10 IoT Core和RISC架构的主板

     此次合作将为开发人员提供强大而可靠的平台,帮助将令人兴奋的物联网创意转化为真实世界的应用. 领先的嵌入式计算机主板和物联网网关系统开发商研扬科技正在与微软合作开发一款集成了NXP处理器并支持Wi ...

  4. 基于Vmware player的Windows 10 IoT core + RaspberryPi2安装部署

    本文记录了基于Vmware Player安装Windows10和VS2015开发平台的过程,以及如何在RaspberryPi2.0上启动Windows10 IoT core系统,并通过一个简单的hel ...

  5. 如何在Windows 10 IoT Core中添加其他语言的支持,如中文

    目前很多开发者已经开始使用Windows 10 IoT来做物联网领域的开发了,目前Windows 10 IoT Core的版本支持树莓派2(以及新出的树莓派3).Minnowboard Max以及Dr ...

  6. 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器

    张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 原文:张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 BH1750FVI 是一款 ...

  7. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  8. 玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

    为树莓派做系统升级是我一直想做的事.时间总是觉得不够,于是也好久没有碰. 直到前几天MVP群里有兄弟问大家的github来互相关注,我才突然想起之前写过的制作离线安装介质的文章:http://haoh ...

  9. 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231

    原文:张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231 GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/ ...

最新文章

  1. PTA 家庭房产 (图论,暴搜)
  2. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、为指定的子图添加图例信息(legend)
  3. Repeater 嵌套
  4. javascript之浏览器调试
  5. 嵌入式操作系统内核原理和开发(内存分配算法)
  6. 从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)
  7. 航空订票系统界面java_Java命令行界面(第21部分):航空公司2
  8. loj2245 [NOI2014]魔法森林 LCT
  9. 栈的顺序存储及实现(二)
  10. android控件单位,Android控件相对位置及长度单位
  11. python vs java 搞笑视频_Python和Java该学哪个?别纠结了700集视频合集,限时分享...
  12. html5 移动端 Android和iOS手机 video自动播放
  13. Mybatis缓存详解
  14. java 职责单一原则,设计模式原则之一:单一职责原则
  15. Edison C++编程笔记
  16. inflate的使用
  17. Mac OS X系统下修改wifi共享的默认网段
  18. MySql求第二高薪水
  19. python拍照搜题_Python数据分析实践,中国大学MOOC(慕课)答案公众号搜题
  20. S32K144 CANbootloaer实现

热门文章

  1. 将某一类型文件还原为无默认打开方式
  2. oracle 查看动态性能视图,oracle常用动态性能视图
  3. ensp综合组网实验_关于实验室温度控制的那些事
  4. android9 关闭点击动画,在Android app中实现九(n)宫格图片连续滑动效果
  5. mysql 建前缀索引_MySQL_前缀索引_建立
  6. 易语言mysql表新增防止重复_sqlite数据库 大量插入数据时如何避免重复插入(易语言,做好用sql语句写下)...
  7. html网页无法刷新,网页不能自动刷新怎么办
  8. git手动删除的文件 pul不下来了_Git工作总结
  9. Java学习笔记:文件通道(FileChannel)
  10. 将来时态:I will fly - I'm going to fly - I'm flying_48