腾云驾物—使用Azure IoT Hub接收树莓派传感数据展现到Power BI

网友投稿 358 2022-10-17

腾云驾物—使用Azure IoT Hub接收树莓派传感数据展现到Power BI

一直用业余时间零零碎碎地学习一些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(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中创建目标的数据集。

这里有一个坑。新建输入、输出的时候,命名规则是可以接受“-”,“_”的,但是,在编写查询的时候,格式要求不允许这两种符号。结果我只好删了重建重新截图。

有了输入输出,有了用于处理数据的查询,就可以对流分析作业进行测试。

测试不会真的写入目标,会从源数据抽取部分用于测试,然后按照查询展现要写到目标的数据。可以在测试之后再根据结果决定是否正式启用流分析作业。

设计好的报表,就能够很直观的看到从树莓派上的传感器获得的温度和湿度数据了,即使这是个模拟器~

回到Azure,能够在IoT Hub的指标上看到传输到IoT Hub的数据量。模拟器默认的代码是2000 ms发送一次数据,所以每分钟的指标就是30次。同样在流分析作业的指标上,也能够看到数据吞吐的情况,接近每分钟30次。

顺便说一句,VS Code的各种插件真不错。Azure插件套件中就有对IoT的支持,可以直接使用IoT Hub的Policy的ID连接到Azure IoT Hub,进行设备的查询和各种消息处理,例如发送C2D/D2C的消息等等。

看上去挺复杂的一次IoT测试,很简单就这么完成了。会有更有意思的东西在前面等着我们学习的~

IoT的终结点参考:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-endpoints#list-of-built-in-iot-hub-endpoints

流分析作业的查询参考:https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-stream-analytics-query-patterns

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java数据结构之二叉查找树的实现
下一篇:kafka搭建
相关文章

 发表评论

暂时没有评论,来抢沙发吧~