• 使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化


    1.简介

    使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化

    grafana dashboard效果:

    image-20201031171328947

    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

    img

    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 上面有更多内容

  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/wwek/p/13906871.html
Copyright © 2020-2023  润新知