标签:poi 技术 ali pac bsp ocs 来源 points 详细说明
一直用业余时间零零碎碎地学习一些IoT的东西,也想把了解到的一些东西组成一个系统来看看IoT能玩些什么。最近微软的文档也更新了,有了一个非常不错的例子,通过树莓派收集传感器数据,传递给Azure的IoT Hub消息,再经过初步的处理传给Power BI,形成直观好看的报表。这个例子很能说明未来的应用,与人/物连接的边缘计算收集和初步处理数据,云平台汇集、重构和展现数据,再回到与人/物连接的边缘计算设备。很有代表性的一个场景,简单的示意图如下:
整个事情有这么些步骤:
1、把传感器连接到树莓派,让传感器工作起来
2、申请一个Azure账号,启用IoT Hub服务,把树莓派连接到IoT Hub服务
3、启用Stream Analytics服务,让从树莓派传输到IoT Hub的数据,传递给Power BI
4、启用Power BI对数据进行展现
为了随时能做这个实验,我选择使用在线的树莓派模拟器来做IoT设备。后续有时间再上物理的传感器和树莓派。
树莓派模拟器是树莓派虚拟化?看着很像啊,其实不是啦。为了便于没有树莓派硬件的情况下,能够很简单的开始测试使用Azure的IoT Hub等物联网服务,微软做了一个在线的树莓派加传感器的模拟器。算起来应该是第一批用户了,并且从GitHub(https://github.com/Azure-Samples/raspberry-pi-web-simulator)上看像是紫竹园区的兄弟参与写的哦!所以非常有必要支持一下写一笔。
要使用树莓派模拟器只需要打开:https://azure-samples.github.io/raspberry-pi-web-simulator/ 站点。
模拟器已经自带了模拟的传感器。当前暂时还不能修改传感器啥的,不过我想以后应该能用不同的传感器或者电路吧。右边浅黄区域就是代码区,都省了自己写代码的工作了。当然,可以对代码做一些调整修改。右边浅灰区域是显示代码输出的区域。代码运行时可以看到输出。
测试的目的是把数据传出去处理,所以需要注册一个Azure账号并创建IoT Hub,然后再IoT Hub中创建一个设备。Azure IoT Hub会给每个设备分配主密钥和副密钥。点击设备就能够查看并复制这个设备的主密钥。即使是树莓派的模拟器,也需要使用密钥来连接IoT Hub并进行信息的收发。
复制密钥之后,在代码区把[You……]那一串替换成设备的主密钥,就可以运行程代码了。运行时,能够在控制台区域显示如下消息:
可以看到,模拟器模拟了带有温度、湿度、气压的传感器BME280。这个传感器将在测试物理传感器和树莓派时再介绍。这里先略过。
以上步骤也可以查看详细说明:https://docs.microsoft.com/zh-cn/azure/iot-hub/iot-hub-raspberry-pi-web-simulator-get-started
完成传感器及边缘设备的配置之后,就需要对上传到Azure IoT Hub的数据进行处理了。可以配置内部终结点的使用者组,让后续的服务可以读取IoT Hub上的数据。
为了把数据导入到Power BI,需要使用Stream Analysitcs服务。按照介绍,这个服务有点类似桥梁,能够把不同来源的信息和数据处理后转发给存储,或者展现到仪表板,或者用来触发应用工作流。
为了让数据自动的从IoT Hub导入到Power BI,需要为Stream Analytics服务配置一个数据输入和一个数据输出,以及对数据执行处理的查询。输入的源可以是事件中心、Blob存储或IoT Hub,输出的目标可以是SQL数据库、Blob存储、事件中心、服务总线、Power BI等各种。我们的目标输出是Power BI,所以需要提供Power BI订阅的凭据。运行这个流分析作业的时候,会自动在Power BI中创建目标的数据集。
这里有一个坑。新建输入、输出的时候,命名规则是可以接受“-”,“_”的,但是,在编写查询的时候,格式要求不允许这两种符号。结果我只好删了重建重新截图。
有了输入输出,有了用于处理数据的查询,就可以对流分析作业进行测试。
测试不会真的写入目标,会从源数据抽取部分用于测试,然后按照查询展现要写到目标的数据。可以在测试之后再根据结果决定是否正式启用流分析作业。
在启动流分析作业之前,测试的Power BI里是一片空白。启动流分析作业之后,出现了新的数据集。利用这个数据集,就可以进行报表的设计。
设计好的报表,就能够很直观的看到从树莓派上的传感器获得的温度和湿度数据了,即使这是个模拟器~
回到Azure,能够在IoT Hub的指标上看到传输到IoT Hub的数据量。模拟器默认的代码是2000 ms发送一次数据,所以每分钟的指标就是30次。同样在流分析作业的指标上,也能够看到数据吞吐的情况,接近每分钟30次。
顺便说一句,VS Code的各种插件真不错。Azure插件套件中就有对IoT的支持,可以直接使用IoT Hub的Policy的ID连接到Azure IoT Hub,进行设备的查询和各种消息处理,例如发送C2D/D2C的消息等等。
看上去挺复杂的一次IoT测试,很简单就这么完成了。会有更有意思的东西在前面等着我们学习的~
腾云驾物—使用Azure IoT Hub接收树莓派传感数据展现到Power BI
标签:poi 技术 ali pac bsp ocs 来源 points 详细说明
原文地址:http://blog.51cto.com/haohu/2064756