首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IOT:如何可视化传感器数据

今天我们就来介绍一个Raspberry Pi IoT项目,这次教程将建立一个物联网系统,该系统会使用InfluxDB,MQTT和Grafana监视传感器。换句话说,我们将基于Grafana构建仪表板,从而可视化传感器获取的数据。这样,InfluxDB存储传感器所读取的值。所有系统都将使用MQTT交换数据。下图更好地描述了整个Raspberry Pi IoT项目。

我们将会用到以下配件:

Raspberry Pi 3

ESP8266

传感器(比如BMP280, DHT11)

树莓派作为一个中央服务器,运行以下组件:

InfluxDB

Mosquitto (the MQTT broker)

Grafana

ESP8266管理使用MQTT协议发送数据的传感器,这些组件使用Docker容器运行。

IoT项目概述

上图显示了构建此物联网项目的组件,例如InfluxDB,Grafana和Mosquitto。那么,这些组件如何交换数据,以及它们如何连接?下图显示了操作方法:

让我们开始描述该物联网系统如何工作:

Mosquitto充当MQTT代理,接受来自传感器的数据(充当发布者的ESP8266)

Telegraf订阅了MQTT主题,传感器在该主题中发布数据并将此信息存储到InfluxDB中

Grafana读取InfluxDB中的数据并管理仪表板以可视化此类信息

现在,我们知道了所有组件及其所扮演的角色,接下里可以开始构建系统了。首先,我们开始构建和配置所有这些组件。

使用Docker在Raspberry Pi上安装和配置Mosquitto

第一步是在Raspberry Pi上安装Mosquitto。只需记住:Mosquitto是MQTT代理。为此,我们将使用Docker,以便我们可以轻松安装所需的所有东西:

等待下载完成,然后即可启动MQTT代理:

这样,如下图显示,MQTT服务器已启动并正在运行:

安装和配置InfluxDB

一旦Mosquitto启动并运行,我们就可以安装和配置InfluxDB。InfluxDB是一个时间序列数据库,我们可以在其中存储时间相关的数据。

安装完成后,就可以启动InfluxDB了:

只需注意几件事。在这种情况下,我们以虚拟光驱启动数据库,并创建一个来存储数据/var/lib/influxdb:

如何创建一个InfluxDB数据库和用户

下一步是创建数据库和将访问该数据库的用户。Telegraf访问数据库以存储来自MQTT通道的数据时,将使用该用户。

首先,启动InfluxDB CLI

接下来,让我们创建数据库和用户:

在这几行代码中,我们创建了一个名为的数据库sensors以及一个具有username telegraf和password的用户“telegraf”

安装和配置Telegraf

现在是时候安装和配置Telegraf了,该组件是连接到MQTT代理的组件,该代理订阅了发布传感器数据的通道并将此信息存储到InfluxDB中。

使用Telegram之前,有必要对其进行配置。首先是创建一个默认配置,我们将对其进行修改以使其适应我们的方案:

现在,可以配置Telegraf。打开telegraf.conf并查找mqtt_consumer进行添加/修改:

然后,我们需要修改输出部分。查找outputs.influxdb并添加/修改:

现在,我们可以运行Telegraf了:

安装和配置Grafana

我们将安装和配置的最后一个组件是Grafana,它是创建仪表板的工具。

测试InfluxDB,Mosquitto和Telegraf之间的连接

现在我们已经配置了所有组件,现在该测试连接是否正常了。为此,让我们启动所有尚未运行的组件。现在,下载并安装MQTT.fx。我们将使用MQTT.fx作为将数据发布到传感器通道的客户端:

运行MQTT.fx

将其连接到在Raspberry Pi上运行的MQTT Broker

订阅传感器频道

在消息部分中写入以下信息:

temp,site=room1value=28

利用此信息,我们添加了一个名为temp的温度测量值,其标签名称站点等于room1,且值为28。这样,我们正在模拟一个ESP8266客户端,该客户端会将数据发送到MQTT代理:

移至Raspberry Pi,检查消息是否到达,以及数据是否存储在InfluxDB传感器数据库中:

一切正常!接下来让我们使用ESP8266构建客户端。

使用Grafana创建仪表板

最后一步是使用Grafana创建仪表板。首先,使用此链接连接到Grafana的Web界面:

http://:3000

接着你会看到下图界面:

现在,请按照下列步骤操作:

使用(admin / admin)登录到Grafana

配置数据源,选择InfluxDB

根据需要创建带有图形的仪表板

下面显示了使用温度和压力的Grafana仪表板示例:

最后,您也可以通过监视其他物理量(湿度、光线等)来进一步扩展此项目

关注风火轮,技术之路常相伴,我们下期见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200311A0C97500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券