上次我们介绍了如何通过腾讯的物联网开发平台实现将helium网络中LoRaWAN终端的数据推动到微信公众号和腾讯连连小程序,本篇文档介绍如何通过腾讯云的CVM主机部署Mosquitto MQTT Telegraf InfluxDB Grafana 实现仪表盘监控温湿度数据以及历史数据的分析。
仪表盘:
准备工作
- 腾讯云云服务器主机,Ubuntu Server 20.04 LTS 64位
- Rejeee温湿度传感器
- Helium热点网关
- Helium Console账户
数据流程:
代码语言:javascript复制 Rejeee温湿度传感器 --> Helium热点AP --> HeliumConsole --> MQTTBroker --> Telegraf --> InfluxDB --> Grafana
安装 Mosquitto MQTT Broker
- 使用apt-get安装MQTT和客户端
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
sudo apt-get clean
- 配置MQTT密码
创建两个MQTT账户密码,分别用在Helium Console 和 Telegraf 修改配置文件:
代码语言:javascript复制sudo vim /etc/mosquitto/conf.d/default.con
并增加两行配置,使用这个密码文件要求所有的连接登陆
代码语言:javascript复制allow_anonymous false
password_file /etc/mosquitto/passwd
增加helium console MQTT集成使用的账户密码
代码语言:javascript复制mosquitto_passwd -b /etc/mosquitto/passwd heliumconsole heliumconsole123
增加telegraf 使用MQTT连接使用账户密码
代码语言:javascript复制mosquitto_passwd -b /etc/mosquitto/passwd telegraf telegraf123
重启进程并确认服务已启动
代码语言:javascript复制service mosquitto stop
service mosquitto start
service mosquitto status
安装 influxDB
- Ubuntu 用户可以使用apt-get包管理器安装最新稳定版本的 InfluxDB ,使用以下命令添加 InfluxData 存储库配置:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
安装并启动 InfluxDB 服务
代码语言:javascript复制sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
sudo systemctl status influxd.service
配置influxDB并使用
- 登陆influx控制台influx
- 在控制台创建数据库
create database rejeee_TH
use rejeee_TH<br>
create user rejeee_TH with password 'rejeee_TH123' with all privileges<br>
exit
安装Telegraf
代码语言:javascript复制sudo apt-get update && sudo apt-get install telegraf
sudo service telegraf start
sudo service telegraf status
配置Telegraf
- 将MQTT数据发送到inluxDB,修改下面配置文件
sudo vim /etc/telegraf/telegraf.conf
- 修改下列参数配置outputs.influxdb
urls = ["http://127.0.0.1:8086"]<br>
database = "rejeee_TH"<br>
username = "rejeee_TH"<br>
password = "rejeee_TH123"
- 配置Telegraf 读取MQTT数据包, 在/etc/telegraf/telegraf.d 目录并创建一个名为 mqtt.conf 的文件,并填入以下信息
sudo vim /etc/telegraf/telegraf.d/mqtt.conf
- 将下列信息填入mqtt.con文件中inputs.mqtt_consumer
servers = "tcp://127.0.0.1:1883"
qos = 0
connection_timeout = "30s"
topics = "helium/#"
username = "telegraf"
password = "telegraf123"
data_format = "json"
json_string_fields = "name","hotspot_name","spreading"
- 重新加载telegraf服务读取配置
sudo systemctl reload telegraf.service
sudo systemctl status telegraf.service
安装Grafana
- 安装Grafanasudo
apt-get install grafana
- 启动服务
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
- 确认服务成功启动
sudo systemctl status grafana-server.service
- 重启Grafana
sudo service grafana-server restart
- 登陆Grafana 在浏览器中打开:http://服务器的IP:3000/login, 默认账户:admin 密码:admin
配置Grafana仪表盘
- 打开 Grafana:http://192.168.1.1:3000/login 用户名:admin 密码:admin
- 添加 InfluxDB 作为数据源 使用菜单 Configuration->Data Sources 添加之前创建的helium_sensors数据库凭据。按“保存并测试”。数据库:rejeee_TH 用户:rejeee_TH 密码:rejeee_TH123
- 添加仪表盘 下载参考温度监控仪表板:仪表盘模版
- 导入模版Json文件
Helium Console 使用MQTT集成将数据导入MQTT Broker
- 配置HElium Console MQTT集成
示例:
mqtt://heliumconsole:heliumconsole123@serverIP:1884
用户: heliumconsole
密码: heliumconsole123
设置集成模版:
代码语言:javascript复制{
{{#decoded}}{{#payload}}"power": {{power}},
"temp_value": {{temp_value}},
"hum_value": {{hum_value}},{{/payload}}{{/decoded}}
"name": "{{name}}",
{{#hotspots}}"hotspot_name": "{{name}}",
"rssi": {{rssi}},
"snr": {{snr}},
"channel": {{channel}},
"fcnt":{{fcnt}},
"spreading": "{{spreading}}"{{/hotspots}}
}
MQTT Broker 采集到数据:
代码语言:txt复制{
"power": 30,
"temp_value": 25.6,
"hum_value": 58,
"name": "Rejeee_TH",
"hotspot_name": "inxxxsting-honexxxuckle-gxxse",
"rssi": -86.0,
"snr": 12.199999809265137,
"channel": 399,
"fcnt":1712,
"spreading": "SF7BW125"
}
- influxDB 确认数据是否入库:
influx -username rejeee_TH -password rejeee_TH123
use rejeee_TH
select * from mqtt_consumer limit 5
确认influxDB采集到传感器数据