物联网,机器学习是目前最火的两个概念。今天就让我们把这两个概念结合起来,在 Azure 上轻松来实现一下。先说一下本次动手的目标,首先我们需要一个传感器把温度,湿度等信息采集下来。
前言
物联网,机器学习是目前最火的两个概念。今天就让我们把这两个概念结合起来,在 Azure 上轻松来实现一下。先说一下本次动手的目标,首先我们需要一个
传感器把温度,湿度等信息采集下来。采集完之后,需要上传到云上,进行流式的处理,然后把处理完的数据收集沉淀下来。拿到数据之后,就需要祭出机器学习的大法,挑选一个合适的算法来做一个简单的预测。好了,整体的思路就是这么简单,接下来我们来看看怎么实现。
准备工作
首先你要有一个传感器,并且能够上传到 Azure 云端。这次我们选择微软提供的 MXChip Dev kit 开发版,好处是能够无缝的连接到 Azure 的 IoT hub。
实现步骤
在 Azure 上开通一个 IoT Hub
现在在物联网领域有很多开源的 IoT 框架,比如 OpenIoT 之类,本质其实是在云上建立一个处理消息的网关,可以兼容 MQTT,AMQT 等协议。当然我们可以选择在云上也用一个开源项目搭载在虚机之上,不过其实 Azure 已经为你准备好了一个 IoT Hub,省却了你搭建管理的烦恼,而且你也不用考虑单点和高可用的问题。既然这么好用,我们就建一个,来快速实现我们的想法吧。
1. 新建一个 IoT Hub,因为我们这次是一个小批量的测试,所以我们选择免费的就行(是不是觉得 Azure 很厚道,还可以给你免费测试)。
2. 在刚才建立的这个 IoT Hub 下新建一个 IoT Device,其实对应的就是我们那块开发板。
3. 打开我们刚刚建立的这个 IoT Device,可以看到里面有一个连接字符串,记录下来这个内容,随后需要用这个连接串在 Mxchip 这块开发版上做配对。
4. 创建一个使用者组,其实就是为了之后我们创建的流分析作业而准备的。
5. 创建一个访问策略,赋予所有的权限,为了方便测试而已。当然在正式生产的时候你可以选择你想要的权限。
配置 MXChip IoT Kit 开发板
1. 首先下载最新的Devkit 的安装包,按照文档手动或者自动安装需要的软件,包括 VS code, Arduino 等软件。
2. 由于这次我们连接的是中国 Azure 的环境,微软开发版的团队还特意做了一个补丁,来自动适应中国 Azure 的有一些环境变量。大家可以到下面的链接下载,并且按照说明文档打上补丁。
https://devkitazurecn.blob.core.chinacloudapi.cn/devkitpatch/devkit-mooncake-win_1.3.1.42.zip
3. 打开 VS Code,选择已经有的 example 的项目 GetStarted。
4. 把 Devkit 开发板连接到电脑的 USB 接口。按 ctrl + p, 键入“task device-upload”,按照提示烧入心的 ROM。重启后,再按 Ctrl + p,键入”task config-wifi”,按照提示开发板所处环境的 Wifi 名字以及密码。
5. 按 ctrl + p,键入“task configure-device-connetion”,按照提示,选择刚刚建立的 IoThub 的名字,并且输入之前记录下来的链接串和密码。
6. 重启板子后就能,开发板显示连接到 IoT hub,开始上传传感器的数据。并且看到 Iot Hub 页面不断有新的消息输入。
配置 Stream Analytics
1. 首先创建一个流分析作业,作用就是用来接收 IoT Hub 的数据,并且实时分类沉淀需要的数据到对象
存储上。
2. 配置输入,从 Iot Hub 接收数据。填写之前创建的 IoT Hub 的信息,并且在使用者组填入刚刚创建的那个消费组,以及之前创建的策略信息。
3. 配置输出,把实时处理的数据最后存储到对象存储上,之后我们将用 Tensorflow 来处理。填入你已有的存储账号,以及对应的容器(还没有的话,可以先创建一个),同时输出文件选择 CSV,以后用 TF 处理起来方便一些。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。