使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化
1.简介
使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化
grafana dashboard效果:
2.背景
2.1 需求:
1.过段时间公司要搬新办公室,较多同事担心甲醛(HCHO)、异味(TVOC)这些重要的空气指标,所以需要能够对其检测
2.能够把这些空气指标进行WEB展示
3.监控告警关心的空气指,告警发送到钉钉群
2.2 已有硬件:
树莓派3b+ (长期吃灰中)以下简称树莓派
微创联合M5S空气检测仪(版本:M5S温湿+锂电+TVOC+数据导出 17年485元价格购买 )以下简称空气检测仪
M5S 家用 激光PM2.5检测仪 甲醛 CO2 空气质量 雾霾甲醛 检测仪
【在售价】380.00 元(基础版)
【立即下单】点击链接立即下单:https://s.click.taobao.com/zREU4vu
3.设计
把空气检测仪的usb插到树莓派上(树莓派上通过串口读取数据),供电也是通过树莓派供电
相关软件运行在树莓派上
3.1 硬件:
空气检测仪如何导出数据?
空气检测仪是有数据导出版本,自带串口转USB(ch340芯片)
打开空气检测仪并通过检测仪左侧 FUN 按钮,把屏幕切换到第 3 屏,这个时候串口中就会持续输出监控数据
在linux上设备文件符为“/dev/ttyUSB0”
cat /dev/ttyUSB0
#可以看到
24.9 45.2 23 32 35 26 33 35 4419 1301 159 8 3 0 0.006 0.21
读取过程中,按一下检测仪上的 RST 键,可以显示每列数据对应的字段定义,(按完后需要再按 FUN 键切换到第 3 屏)
*--------------------------------------- Data Output Format Definition ----------------------------------------*
TEMP HUMI CH_PM1.0 CH_PM2.5 CH_PM10 US_PM1.0 US_PM2.5 US_PM10 >0.3um >0.5um >1.0um >2.5um >5.0um >10um HCHO TVOC
TEMP | HUMI | CH_PM1.0 | CH_PM2.5 | CH_PM10 | US_PM1.0 | US_PM2.5 | US_PM10 | >0.3um | >0.5um | >1.0um | >2.5um | >5.0um | >10um | HCHO | TVOC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
25.1 | 43.3 | 21 | 29 | 31 | 22 | 29 | 31 | 3843 | 1136 | 170 | 6 | 2 | 0 | 0.003 | 0.2 |
25.1 | 43.2 | 22 | 30 | 31 | 23 | 30 | 31 | 3876 | 1156 | 170 | 5 | 2 | 0 | 0.005 | 0.16 |
25.1 | 43.3 | 22 | 30 | 31 | 23 | 30 | 31 | 3963 | 1174 | 164 | 6 | 2 | 0 | 0.003 | 0.21 |
25.2 | 43.3 | 22 | 30 | 31 | 23 | 30 | 31 | 3942 | 1163 | 167 | 6 | 2 | 0 | 0.007 | 0.21 |
带二氧化碳检测的版本在HCHO字段前多一个CO2字段
更多资料看空气检测仪配套的资料
3.2 软件:
软件监控采用prometheus + grafana的方案
本文为流水理鱼wwek原创 www.iamle.com
现在只需要实现一个串口(/dev/ttyUSB0) exporter即可把空气监测仪的数据打通给prometheus使用
最后配置prometheus取空气检测仪的exporter数据,并配置grafana面板
监控告警直接使用grafana带的监控告警
4.实现
*安装配置wclh_air_detector_exporter 获得空气检测仪数据
wclh_air_detector_exporter读取串口数据并把数据进行结构化,然后输出metrics
M5S Temperature and Humidity+lithium battery+CO2+TVOC PM2.5 CO2(S8)TEMP&HUMI Detector Haze PM2.5 sensors Laser PM2.5 detector
M5S 家用 激光PM2.5检测仪 甲醛 CO2 空气质量 雾霾甲醛 检测仪
WCLH_AIR_DETECTOR_EXPORTER_VERSION=0.1.3
wget https://github.com/wwek/wclh_air_detector_exporter/releases/download/v${WCLH_AIR_DETECTOR_EXPORTER_VERSION}/wclh_air_detector_exporter_${WCLH_AIR_DETECTOR_EXPORTER_VERSION}_linux_armv7.tar.gz
tar zxvf wclh_air_detector_exporter_${WCLH_AIR_DETECTOR_EXPORTER_VERSION}_linux_armv7.tar.gz
mkdir -p /data/soft/wclh_air_detector_exporter
mv wclh_air_detector_exporter /data/soft/wclh_air_detector_exporter
cd /data/soft/wclh_air_detector_exporter
#./wclh_air_detector_exporter -serial_port /dev/ttyUSB0
#自动启动&进程守护
sudo bash -c 'cat > /etc/systemd/system/wclh_air_detector_exporter.service << EOF
[Unit]
Description=https://github.com/wwek/wclh_air_detector_exporter
Wants=network-online.target
After=network-online.target
[Service]
Restart=on-failure
#User=root
ExecStart=/data/soft/wclh_air_detector_exporter/wclh_air_detector_exporter
[Install]
WantedBy=default.target
EOF'
sudo systemctl daemon-reload
sudo systemctl status wclh_air_detector_exporter
sudo systemctl start wclh_air_detector_exporter
sudo systemctl enable wclh_air_detector_exporter
sudo systemctl status wclh_air_detector_exporter
curl http://localhost:9166/metrics
安装配置prometheus
PROMETHEUS_VERSION=2.22.0
wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-armv7.tar.gz
tar zxvf prometheus-${PROMETHEUS_VERSION}.linux-armv7.tar.gz
mkdir -p /data/soft/
mv prometheus-${PROMETHEUS_VERSION}.linux-armv7 prometheus && mv prometheus /data/soft/
#自动启动&进程守护
sudo bash -c 'cat > /etc/systemd/system/prometheus.service << EOF
[Unit]
Description=https://prometheus.io
Wants=network-online.target
After=network-online.target
[Service]
Restart=on-failure
#User=root
ExecStart=/data/soft/prometheus/prometheus --config.file="/data/soft/prometheus/prometheus.yml"
[Install]
WantedBy=default.target
EOF'
sudo systemctl daemon-reload
sudo systemctl status prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl status prometheus
curl http://localhost:9090
#<a href="/graph">Found</a>.
安装配置grafana
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
curl http://localhost:3000
#<a href="/login">Found</a>.
grafana 中先配置 prometheus(http://localhost:9090)数据源,然后导入 “grafana-dashboard.json”空气检测仪的dashboard
监控告警
直接使用grafana自带的告警功能,将关心的指标进行监控并告警
本文首发于流水理鱼博客,如要转载请注明出处。
欢迎关注我的公众号:流水理鱼(liushuiliyu),全栈、云原生、Homelab交流。
如果您对相关文章感兴趣,也可以关注我的博客:www.iamle.com 上面有更多内容
使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化的更多相关文章
- 树莓派3B的食用方法-1(装系统 网线ssh连接)
首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...
- 树莓派3B+(一)
第一步:安装raspbian系统 介绍:Raspbian是为树莓派设计,基于Debian的操作系统,由一个小团队开发.其不隶属于树莓派基金会,但被列为官方支持的操作系统. 下载地址:https://w ...
- 树莓派3B+上运行.Net Core项目
最近买了个树莓派3B+,准备把自己写的一个.Net Core爬虫挂在上面跑 买之前没有想到树莓派因为是今年新出的,导致驱动以及系统啥的都不是很完善,导致走了很多弯路,早知道买树莓派3就不用那么多折腾了 ...
- 树莓派3B+通过路由器进SSH和VNC
1.打开树莓派官网 www.raspberrypi.org 选择 ”Raspbian Stretch with desktop and recommended software“ 并下载 镜像包含推荐 ...
- 树莓派3b+ Ubuntu 16.04 MATA系统 ssh远程登陆后修改主机名、用户密码和用户名
写在前面: 刚刚开始写博客,记录下自己的学习过程,备忘. 最近在使用树莓派做智能小车的开发,使用的是树莓派3b+,安装的是Ubuntu 16.04 MATA 系统,安装系统后需要修改主机名,登陆密码以 ...
- 树莓派3B安装LEDE
本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...
- 树莓派3b安装Nginx和php7和百度语音合成模块
1.安装sox系统mp3音频播放模块(项目需要) sudo apt-get install lame sudo apt-get install sox sudo apt-get install lib ...
- 树莓派3B+首次登陆通过网络
树莓派3B+默认串口不能登录,即使可使用可需要通过连线方式连接,如何才能直接通过网络ssh登录树莓派呢? 串口问题及使用 树莓派3的UART串口的使用问题,该串口问题的官方反馈及回复请参考这两篇官方博 ...
- 树莓派3B+学习笔记:10、使用SSH连接树莓派
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式. 1.开启树莓派3B+的SSH远程管理功能,在终端中输入以下命令: sudo ra ...
随机推荐
- 215。数组中第K个最大元素(堆实现)
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: """堆排序思想 ...
- 什么是 Opcache,如何使用 Opcache
Opcode 是啥? 我们先看一下 PHP 的执行过程: PHP 初始化执行环节,启动 Zend 引擎,加载注册的扩展模块. 初始化后读取 PHP 脚本文件,Zend 引擎对 PHP 文件进行词法分析 ...
- Unity Shader学习笔记-1
本篇文章是对Unity Shader入门精要的学习笔记,插图大部分来自冯乐乐女神的github 如果有什么说的不正确的请批评指正 目录 渲染流水线 流程图 Shader作用 屏幕映射 三角形遍历 两大 ...
- Electron安装过程深入解析(读完此文解决Electron应用无法启动,无法打包的问题)
1. 安装Electron依赖包 开发者往往通过npm install(或 yarn add)指令完成为Node.js工程安装依赖包的工作, 安装Electron也不例外,下面是npm和yarn的安装 ...
- Windows控件的属性与事件
Treeview控件重要属性和事件 属性 说明 Nodes Treeview控件中所有树节点 SelectdNode 当前Treeview控件中选定的树节点,如果当前没有选定树节点,返回值为null ...
- aarch64架构移动设备挂载移动硬盘
添加yum源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 安装ntfs yum inst ...
- Centos下Oracle11gR2安装教程与自动化配置脚本
系统环境准备 开发组件与依赖库安装 安装centos时选择Server with GUI,右面的可以不勾选,后面统一来装 配置本地yum源 以上包如果缺乏可配置本地yum源进行安装 sudo moun ...
- 一个漂亮的JavaScript“警告”替代品
下载 一个漂亮的JavaScript"警告"替代品 安装 $ npm安装-节省sweetalert 使用 从"sweetalert"进口swal; 横波测井(& ...
- day65:nginx代理&nginx负载均衡
目录 1.nginx代理 2.nginx代理与配置 3.nginx负载均衡调度多web节点(静态页面) 4.nginx负载均衡调度多应用节点(blog) 5.nginx_proxy + web应用节点 ...
- shell-脚本的建立和执行
1. shell脚本的建立和执行 1) shell脚本的建立 在linux系统中,shell脚本(bash shell程序)通常是在编辑器(如vi/vim)中编写,由unix/linux命令.bas ...