⽆代码利⽤TDengine+EMQX+Grafana搭建物联⽹可视化平台(超详细⼩⽩教
程)
⽆代码利⽤TDengine+EMQX+Grafana搭建物联⽹可视化平台
⼀、说明
本⽂是参考TDengine官⽹⽂档上的⼀篇博客编写,原⽂链接
⼆、简介
物联⽹数据采集涉及到⼤量设备接⼊、海量的时序数据传输,EMQ X 消息中间件与 TDengine ⼤数据平台的组合技术栈完全能够胜任场景中的海量时间序列监测数据的传输、存储和计算。
数据⼊库后,往往需要其他⽅式如数据可视化系统将数据按照规则统计、展现出来,实现数据的监控、指标统计等业务需求,以便充分发挥数据的价值,TDengine 搭配开源软件 Grafana 可以快速搭建物联⽹数据可视化平台。
三、案例
本⽂模拟物联⽹环境数据采集场景,假设现有⼀定数据的环境数据采集点,所有采集点数据均通过 MQTT 协议传输⾄采集平台(MQTT Publish),主题设计如下:
sensor/data
传感器发送的数据格式为 JSON,数据包括传感器采集的温度、湿度、噪声⾳量、PM10、PM2.5、⼆氧化硫、⼆氧化氮、⼀氧化碳、传感器 ID、区域、采集时间等数据。
{
"temperature":30,
"humidity":20,
"volume":44.5,
"PM10":23,
"pm25":61,
"SO2":14,
"NO2":4,
"CO":5,
"id":"10-c6-1f-1a-1f-47",
"area":1,
"ts":1596157444170
}
现在需要实时存储以便在后续任意时间查看数据,提出以下的需求:
1.查看环境的温度实时变化
2.查看当天温度的最⾼值
3.查看当天湿度平均值
四、安装TDengine,并且创建数据库与数据表
通过TDengine官⽹安装,关于TDengine服务器、客户端的安装,之前已经说明了。
进⼊TDengine
taos
创建数据库
create database test;
创建数据表
use test;
CREATE TABLE sensor_data (
ts timestamp,
temperature float,
humidity float,
volume float,
PM10 float,
pm25 float,
SO2 float,
NO2 float,
CO float,
sensor_id NCHAR(255),
area TINYINT,
coll_time timestamp
);
五、安装EMQX
1.选择对应的服务器
2.下载
wget qx/downloads/broker/v4.2.11/emqx-centos7-4.2.11-x86_64.rpm
3.安装
sudo yum install emqx-centos7-4.2.11-x86_64.rpm
4.运⾏
sudo emqx start
5.运⾏成功
6.配置 EMQ X 规则引擎
1.点击规则->创建
2.规则 SQL
规则 SQL ⽤于 EMQ X 消息以及事件筛选,以下 SQL 表⽰从 sensor/data 主题筛选出 payload 数据:
SELECT
payload
FROM
"sensor/data"
3.使⽤SQL 测试功能
emqx broker输⼊测试数据进⾏筛选结果测试,测试有结果且输出内容如下,标明 SQL 编写正确:
4.为当前规则引擎添加响应动作
5.资源类型选择
6.填⼊消息模板内容
消息内容模板:此处为携带数据的 INSERT SQL,注意我们应当在 SQL 中指定数据库名,字符类型也要⽤单引号括起来, 消息内容模板为:
INSERT INTO test.sensor_data VALUES(
now,
${perature},
${payload.humidity},
${payload.volume},
${payload.PM10},
${payload.pm25},
${payload.SO2},
${payload.NO2},
${payload.CO},
'${payload.id}',
${payload.area},
${payload.ts}
)
这样EMQX的配置就完成了。
想要检测的话,可以⽤paho模拟发送数据,观察数据库是否有数据插⼊。
发现有⼀条数据插⼊了数据库。表⽰EMQX的规则引擎配置成功。
五、安装Grafana
1.下载并安装
wget dl.grafana/oss/release/grafana-7.5.4-1.x86_64.rpm
sudo yum install grafana-7.5.4-1.x86_64.rpm
2.开机⾃动启动
systemctl enable grafana-server
3.启动服务
systemctl start grafana-server
为Grafana 添加TDengine数据库插件
到你TDengine对应版本的客户端⽂件在\connector下⾯
\\connector
把这个⽂件复制到Grafana的安装⽬录下⾯的/var/lib/grafana/plugins
然后重新启动Grafana
systemctl restart grafana-server
添加仪表盘
创建最近六个⼩时的最⼤温度仪表盘
创建最近⼀个⼩时内的温度历史数据仪表盘
最终界⾯、当mqtt那边发送数据,EMQX会⾃动存进taos数据库,然后Grafana会调取taos数据库数据根据sql语句进⾏数据查询实时显⽰。
搭建完成。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论