https://v.ixigua.com/i2euhCHd/点击链接直接打开
一、前言
在机器人和自动化领域,最经常出现的需求之一是捕获和可视化来自传感器和执行器等硬件组件的实时数据,这些数据可以深入了解系统的整体行为,并有助于诊断可能出现的任何潜在问题,减少加班。
从历史上看,它需要使用复杂的工具进行大量定制开发工作,才能将此类数据流式传输到典型分析和可视化工具(包括 Grafana)中的仪表板。 但是随着 Grafana 8.0 的发布,使用作为 Grafana Live 功能的一部分引入的新流式 API 来流式传输和可视化实时数据变得更加容易。
(注意:“实时”是指“软实时”,因为由于网络延迟、垃圾收集周期、协议限制等,消息传递的延迟可能高达数百毫秒。)
在这里,我们将在通过 MQTT 消息传递协议进行通信的传感器系统的上下文,利用后端数据源插件中的 Grafana Live 流媒体 API 来研究 Grafana 全新流媒体功能的应用。
二、设置
MQTT 是一种轻量级的发布订阅网络协议,通常用于通过 TCP/IP 在设备之间进行消息传递。 MQTT 协议最初由 IBM 开发,已在带宽受限的环境中广泛用于机器对机器通信,其中紧凑的数据传输是严格要求。
Grafana Live 是内置于 Grafana 的集成实时消息传递引擎,它是作为 v8.0 版本的一部分引入的。 它基于发布订阅框架,该框架通过 WebSocket 协议进行通信,并允许任何类型的事件数据在发生时立即推送到前端客户端。
为了演示适用的现实生活场景,我们使用了一个简单的基于 IMU 的姿态传感板并将其连接到 树莓派,以通过 MQTT 传输加速度计和陀螺仪数据。
该传感板基于 Bosch Sensortec 的广泛使用、通用且现成的 IMU,即 BMI160。 它是一种紧凑、低功耗、低噪声的 6DOF IMU,通常用于智能手机和可穿戴设备中。 传感器板通过其 I²C 接口连接到树莓派,我们使用 Python 脚本提取传感器数据并将其定期发布到 Mosquitto MQTT 代理(注:你也可以使用译者开源的 mica-mqtt),两者都在树莓派本地运行。
width="640" height="473"
thumb_width="120" thumb_height="88"
zip_src_path="eJzMktFOxCAQRf9lnrGAFgj8itkYaJElKS5hwTXZ8O9GkzZ9MUqtcd-ZM9wz9wqn5J1_AXWFkqYzqEc45hwVxlF2ZnzzrmgfXDecAp50chZHN9z5oJ3Fho7cPAghOGE91VLyngyCGsbYs5b8HtDCojfFOiAoyYOC5smKIB9LMD_y9flyp4z_ylp8NU9WBBdr4lNzyy68Jw2Luo8tq8x_Q_2ieZuoi9PRZu2nM34l20Cz4lUvt5xqzrp7q7-V-FvgTj881PoeAAD__z8ljQ4%3D" >
树莓派
为了将流式传感器数据提取到单独机器上的 Grafana 实例中,我们在该机器上安装并使用了 Grafana MQTT 数据源插件。 (MQTT Datasource 插件的安装过程请参考 GitHub 仓库中的 README)该插件使用集成的 MQTT 客户端订阅 MQTT 主题和 Grafana Live Streaming API 将它们发布到 Grafana 中的事件流 活引擎。 数据源配置为连接到在树莓派上本地运行的 Mosquitto MQTT 代理。
width="640" height="642"
thumb_width="120" thumb_height="120"
zip_src_path="eJzM0t9OwyAUBvB3OddY6HaCwquYxUAHjKQ4wsCZLLy7mcbGu_6xxt7z_cL58t3gnLzzryBvUFJ_AfkMp5yjpDSKRh_fvSvKB9d050B7lZyh0XUPPihnqEBrcc852s4iIhcC9Y6xtt09iie9t0AGq92UdSBQkgcJs5OVQD6VoCf19flypRv_1Rr6mp2sBK5Gx5efK7tDR5OV7y_0jdErRzaDbO4ekKlrXaiPbO2X6pp_PXxX_He7HC1lI-DimX7Fa_0IAAD__9qzjaY%3D" >
mqtt data source
对于我们的仪表板,我们使用在 v7.4 预览版中的 time-series 面板来分别可视化所有轴的加速度计和陀螺仪数据。 我们使用新发布的 timeline 轴面板来检测三个轴中任意一个轴上的运动。 这些可视化在异常和不平衡表现为围绕某个轴的过度移动或旋转的系统中非常有用。 此外,这些类型的仪表板在维持对动态系统的监督方面可能非常关键,这些系统具有复杂的姿态控制机制以保持稳定性和功能性。
width="640" height="318"
thumb_width="120" thumb_height="59"
zip_src_path="eJzMku1OwyAUQN_l_sYCK60dr2IWAwwYSXGEgjVp-u5GbY0fMbWNif0P58K5Z4BrdNY9AB8gRwccWhGtxsGqG-eF1biijaprczDVLWNHUzaKVOZAaMm0orSRgCDHtgN-B5eUAsc4HAt5fnI2C-dtoa4eb2DOLLor1mlEkC7Zyzdfn79dfsW_nvyjp_4r64SmOFbfHBH0Wob7j5X9Kpa-ZmTFoOJlyvKqd0R9d3rWSbi2w49kG2hW_GOX3wyv3eKihp0AN2c6iRyfAwAA___e4o_I" >
实时数据展示
width="640" height="337"
thumb_width="120" thumb_height="63"
zip_src_path="eJzMksFqAyEQQP9lztt1G22q_koJZUwGI6yNGG0KwX8vaemSQyWsLWSPHuaNPt8ZDtFZ9wb6DDmOR9AvsE8paMaC6s3uw9mMztt-e_BsxGiJBbt9cB4tMcLVs0SjBDco5EBGKIFqxZ8El2tJBN3EelwUa9NBjg40zJ4sHaR99ubb1wXxdZz3kJuiG5hVOXdlbUoHJzLhtV4Z__03T2sxzNjUX7ZcXb3S7h-plfKaqFODO0roxiN7H9pAP4qvuvznvG5qWAhwUto2XspnAAAA__9FaJZA" >
实时数据展示
三、效果演示
这是最终的现场演示效果。 请注意时间序列趋势如何响应围绕传感板所有三个轴的方向和旋转的变化,以及状态时间线在独立检测任何轴上的运动方面是多么有用。
四、结论
这个简单的应用程序展示了 Grafana 中新的流 API 是多么强大,尤其是当与所有不同的可视化结合使用时,因为它们都在本机上使用此功能。 它为通过 Grafana 灵活的插件的机制进行数据流传输的各种通信协议和硬件平台打进行了打通。
如果你有兴趣为自己的应用程序实现流媒体功能,请务必查看我们的参考指南,以便于开发你自己的流媒体后端数据源插件。
五、译者说
大家好,我是 如梦技术春哥(mica 系列开源作者),翻译不易,请帮忙关注并分享给更多的同学,谢谢!!!
发表评论