IoT实时数据可视化方案:Grafana+InfluxDB+Telegraf+MQTT协议+Windows 10

为什么写这篇博客?

  • 最近被论文折磨的死去活来,实时数据可视化方案是我论文的题目。 每天都被这些技术玩弄于股掌之间,靠看文档延续生命和出成果。不得不说,做完这个论文可能以后不敢乱写readme了。 由此大胆推测大家的发量问题有都是看文档时产生的, 可见一个好的文档对开发人员有多么重要!!!  
  • 网络上关于windows系统下搭建从数据源到前端可视化工具Grafana的解决方案甚少,且适合我自己本身开发所需情况的方案就更加少了。 在翻阅大量官方文档,github issues以及英文博客后,终于得到了可运行的demo。把相关详细的配置过程记录下来,方便以后学习或工作复用并造福于有相似需求的朋友。  

服务构架

IoT Simulator(publisher)----> MQTT broker---->Telegraf(subscriber)---->InfluxDB---->Hosted Grafana(Cloud)

配置安装流程

数据来源

数据来源在IoT Case下一般来自各个传感设备。 因为身边没有可用的传感器设备,于是在github上搜了个小工具来模拟数据发射器。该工具可输出自定义的json格式数据,并且支持MQTT,HTTP(s),Azure IoT hub, Kafka等主流协议/工具,应用范围和场景广泛是我选择该工具的主要原因。  
唯一的缺点是输出的json默认为object, 不支持对array of object json的扩展,在API config的时候可能会遇到一些工具只能识别array of json object 的情况(比如power bi的rest api)。
如果你的case中有使用真实的iot设备和通讯协议可自动忽略此part。
安装和配置相关请参照readme  
在mySimConfigjson中对MQTT进行配置,语法参见[配置中使用的MQTT]

 {
            "type": "mqtt",
            "broker.server": "tcp://localhost",
            "broker.port": 1883,
            "topic": "sensors/iot_simulator",
            "clientId": "iot_simulator",
            "qos": 2
        }

使用以下命令开始模拟数据
java -jar json-data-generator-1.3.1-SNAPSHOT.jar mySimConfig.json

使用MQTT协议

什么是MQTT协议?

MQTT为MQ Telemetry Transport的缩写,该协议定义了在机器对机器或物联网环境下的通信规则。它采用发布/订阅的模式传输数据,设计思想是在尽力保证一定程度的数据可达性及稳定性的同时,减少对网络带宽和设备资源的依赖。MQTT协议简洁且轻量,适用于低带宽,高延迟或不稳定的网络环境中的设备,同时也适用于带宽和电源受限的移动应用.
ref:http://mqtt.org/faq

为什么使用MQTT协议?

在使用Power BI作为可视化方案时,曾成功使用REST API直接将数据源通过HTTP推送到POWER BI所提供的endpoint。因此在架构这套服务之初,我并没有打算使用MQTT作为数据传输协议。但经过一番研究后,在我的案例当中,发现使用HTTP协议有以下局限性:

  1. 在Telegraf的input plugins中,和HTTP相关的插件有两个:一个是HTTP JSON,另一个是HTTP Listener(HTTP Response由于不符合个体案例没有做研究); HTTP JSON主要通过向拥有数据的HTTP URLs发送请求,并从对应响应中的json中获取数据。由于我的IoT设备仅仅是一个模拟的数据发送器且并没有为其部署本
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值