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 &amp;&amp; mv prometheus /data/soft/ #自动启动&amp;进程守护 sudo bash -c 'cat &gt; /etc/systemd/system/prometheus.service &lt;&lt; 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自带的告警功能,将关心的指标进行监控并告警

1.背景

目的: 老式门禁接入hass智能家居,实现门禁智能控制
物料:
* 某宝ESP8266集成板HW-62 1个,本板集成了电源模块(输入DC 7-30V)+ESP8266+继电器一个,以下简称ESP集成板(买了很久了,这次才利用上)
* 电源适配器 12V DC 1个

软件: 已经在用HomeAssistant(版本0.105.2)(以下简称hass)

控制模块有很多选择,都是控制单元驱动继电器。NodeNUC+继电器可能是更流行的方案
ESP8266芯片为控制模块,继电器为操作模块

某宝ESP8266集成板 HW-622 是老早之前买的一直没使用,本次可以利用上
他集成了宽电压输入的电源模块、ESP8266芯片、继电器,经过万能表检查,驱动继电器工作的GPIO是GPIO4
-w604

实现原理:
ESP8266刷ESPEasy系统,连上wifi,作为MQTT客户端接入hass
继电器接门禁实现具体控制

2.门禁-室内机改装

已经确定这套老式门禁无需摘话机直接按开门按键就能开门
所以只需要短接1s开门按键就可以开门了

把开门按钮的2条线引出
这2条线就接继电器,公共端COM、常闭触点NC
很简单的电路图就不画了

3.ESPEasy

ESP8266刷ESPEasy系统
本例版本为mega-20200204
刷机教程、连接方法就不累述了,网上搜
下面列一些主要配置

3.1 Config

UnitName设置为 esp-entrance-guard
这个值重要,MQTT会用到

-w864

3.2 Controllers

MQTT加这个 Home Assistant (openHAB) MQTT
不明白的配置项保持默认值不去改动,只改动明确需要的
Enabled这个必须勾选

3.2 Hardware

本ESP集成板使用了GPIO4作为继电器的驱动IO口
ESPEasy的I2C Interface默认使用GPIO-4 GPIO-5本板就冲突了
本例改为了空闲的12、13

另外wifi信号灯本ESP集成板是GPIO2

-w874

3.3 Hardware

增加一个“Switch input – Switch”设备

名字为 Door
GPIO为 GPIO4 这个是和继电器IO连接的
-w935

勾选 Send to Controller
-w681

增加完成后
-w1095

3.4 Tools高级选项

ESPEasy默认未启用Rules,需要在这里打开

Rules 启用
MQTT Retain Msg 启用
MQTT use unit name as ClientId 启用
Use NTP 启用
NTP Hostname ntp1.aliyun.com

-w952

3.5 Rules

必须在3.4节中打开Rules,才能看到本菜单
规则解释
当Door#State状态为1的时候设置启用timer1时间2s
当time1被激活的时候设置GPIO4的值为0,并在MQTT中推送GPIO为0(因为打开门禁的时候GPIO值为1)

on System#Boot do
  GPIO,4,0
endon

on Door#State=1 do
  timerSet,1,2
endon

on rules#timer=1 do
  gpio,4,0
  Publish %sysname%/gpio/4,0
endon

Publish %sysname%/gpio/4,0
这个是解决hass中复位的问题,这样上电后MQTT读取的GPIO的值为0
如果不这样做,停电后再上电,读取到MQTT中GPIO的值为1就会触发一次继电器
这样做后hass中也可以不写任何“复位开关”的自动化配置

4.HomeAssistant

switch:
  - platform: mqtt
    name: esp_entrance_guard
    state_topic: esp-entrance-guard/Door/State
    command_topic: esp-entrance-guard/gpio/4
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    optimistic: false
    qos: 0
    retain: true

# 界面显示中文
homeassistant:
  customize:
    switch.esp_entrance_guard:
      friendly_name: "门禁"

展示

1581918354074087
图解:
* 左边是hass,右边是MQTT客户端,下面是ESP集成板
* 黄灯亮代表继电器被激活
* 在对MQTT topic esp-entrance-guard/gpio/4 发送 1 继电器就被激活了
* 因为门禁开关是一个复位类型的开关,利用ESPEasy的rule脚本自动重置状态
* 图中有个错误gpio/4状态没有联动,这个问题已经解决见3.5节,解决之前录制的

小贴士

  • 调试MQTT客户端推荐“MQTT Explorer”因为他能直接看到所有Topic的活动情况,从而大大提高调试效率
  • 如果拿到一个未知的ESP8266集成板,不清楚这个模块和继电器如何连接的,首先还是尽量找到卖家或厂商拿到说明书。万一没说明书,用万能表的测二级管档或电阻档能自己找出来

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡谷配置单/性能测试

总体感觉:性价比并不高,买它不是图性价比,而是喜欢这小东西

集成显卡:玩守望屁股(守望先锋)也是可以的

CPU温度:总体讲温度有点高,空载的时候温度有40-50°,满负荷的时候温度能达到100°,注意做好降温处理

 

我的配置单详情

主机:intel Skull Canyon NUC6i7kyk

内存:Kingston HyperX Impact DDR4 2400MHz 16G   *  2

硬盘:Samsung SSD SM951-NVMe 512GB

显示器:戴尔(DELL) U2417HA 23.8英寸带臂架四面超窄边IPS屏显示器

键盘:  海盗船K70 惩戒者 红光

鼠标:罗技G302

 

某宝购买记录

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡

某国产大师跑分

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡 鲁大师跑分综合

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡 鲁大师跑分综合

完整的评测包含非常详细的跑分,评测

微型电脑最强音,Intel NUC Skull Canyon NUC6i7KYK 开箱拆解评测

 

感谢“江湖小郎中”提供该机把玩。

中兴h618b

引用“  ZXV10 H618b是中兴公司推出的宽带接入终端设备,由于该型号的路由器基本是由ISP定制并派发给其接入用户,故存在相当广泛的用户群,其中不乏不满原厂的阉割固件所提供贫乏功能的用户,所以在国内外许多有技术能力的玩家的共同努力下,出现了各式各样的改机、刷机的方法,不断扩充完善它的各种功能。”

更多中兴ZTE ZXV10 H618B路由器请看http://h618b-hacks.3322.org/ ps:该站跑在江湖小郎中的h618b路由器上奥!O(∩_∩)O~

镜像站:http://wwek.3322.org:81/ ps:跑在我的618上的奥,速度没江湖小郎中的快,应为我是adsl。

早就想买一个android系统机了,思量再三选出几款中意的android机,最后选定的是MB525。延续我以往的水货精神,果断淘宝港水。
昨天2140元淘宝拍下销往香港的机机,卖家包邮发的顺丰。顺丰非常给力啊,这不刚刚2011-04-12 20:33:13拿到快递。
       淘宝收货清点发的各种东西是否齐全,配件是否完好。当然最主要的手机也的好好检查。查询手机的IMEI MSN 和 手机上#*06# 是否吻合。 moto imei手机产地查询地址。http://www.moto110.com/。我的mb525查询出来无生产地,网上搜索了下,有些童鞋也是这样,不过没什么影响。

销往香港

 

        因为是moto的机子,用户界面用了MOTOBLUR,顺便注册一个MOTOBLUR帐号。 然后就是用电脑管理软件开始疯狂的装自己喜欢的android软件了。  个人推荐魔乐和豌豆荚。
        那么看到这博文的朋友你们那些用这款机子,或者用android机,或者那些比较值得推荐的软件呢?

我比较软件控,我会用到的软件都装,差不多有200多个了,用wordpress客户端写博客也不错。
image