├── 20200615211225201.png ├── 3D.zip ├── 8266-tvoc.yaml ├── MH-Z19B.pdf ├── README.md └── SM-UART-04L.pdf /20200615211225201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheny95/esp8266-air-quality/391f41bb39b91cff53cd5c5bc1b37e47372b4ed0/20200615211225201.png -------------------------------------------------------------------------------- /3D.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheny95/esp8266-air-quality/391f41bb39b91cff53cd5c5bc1b37e47372b4ed0/3D.zip -------------------------------------------------------------------------------- /8266-tvoc.yaml: -------------------------------------------------------------------------------- 1 | esphome: 2 | name: 8266-tvoc 3 | 4 | esp8266: 5 | board: esp01_1m 6 | 7 | # Enable logging 8 | logger: 9 | 10 | # Enable Home Assistant API 11 | api: 12 | services: 13 | - service: mhz19_calibrate_zero 14 | then: 15 | - mhz19.calibrate_zero: co2 16 | 17 | ota: 18 | password: "12345678" 19 | 20 | wifi: 21 | ssid: undefined 22 | password: chan1234 23 | 24 | # Enable fallback hotspot (captive portal) in case wifi connection fails 25 | ap: 26 | ssid: "8266-tvoc" 27 | password: "12345678" 28 | 29 | web_server: 30 | port: 80 31 | 32 | captive_portal: 33 | 34 | #定义i2cpin口 35 | i2c: 36 | sda: 4 37 | scl: 5 38 | scan: True 39 | 40 | #双uart接口在每个前面定义一个id来实现 41 | uart: 42 | - id: pms7003 43 | rx_pin: GPIO3 44 | baud_rate: 9600 45 | 46 | - id: mhz19b 47 | tx_pin: GPIO13 48 | rx_pin: GPIO15 49 | baud_rate: 9600 50 | 51 | sensor: 52 | - platform: shtcx 53 | temperature: 54 | name: "Temperature" 55 | humidity: 56 | name: "Humidity" 57 | address: 0x70 58 | update_interval: 30s #获取频率 59 | 60 | - platform: pmsx003 61 | type: PMSX003 62 | pm_1_0: 63 | name: "pm10" 64 | filters: 65 | - sliding_window_moving_average: 66 | window_size: 15 67 | send_every: 15 68 | pm_2_5: 69 | name: "pm25" 70 | filters: 71 | - sliding_window_moving_average: 72 | window_size: 15 73 | send_every: 15 74 | pm_10_0: 75 | name: "pm100" 76 | filters: 77 | - sliding_window_moving_average: 78 | window_size: 15 79 | send_every: 15 80 | uart_id: pms7003 81 | 82 | - platform: mhz19 83 | co2: 84 | name: "co2" 85 | filters: 86 | - sliding_window_moving_average: 87 | window_size: 6 88 | send_every: 6 89 | # temperature: 90 | # name: "MH-Z19B Temperature" 91 | # filters: 92 | # - sliding_window_moving_average: 93 | # window_size: 2 94 | # send_every: 2 95 | update_interval: 10s 96 | automatic_baseline_calibration: false 97 | id: co2 98 | uart_id: mhz19b 99 | 100 | switch: 101 | #pms休眠状态开关. 102 | - platform: gpio 103 | pin: 104 | number: GPIO0 105 | inverted: no 106 | id: pms_set 107 | name: "颗粒物传感器工作开关" 108 | 109 | interval: 110 | #pms每休眠240秒,工作60秒 111 | - interval: 240s 112 | then: 113 | - switch.turn_on: pms_set 114 | - delay: 60s 115 | - switch.turn_off: pms_set 116 | 117 | #获取pms传感器工作状态,延迟30秒工作,因为传感器前30秒工作时间为预热时间 118 | binary_sensor: 119 | - platform: template 120 | name: "颗粒物传感器工作状态" 121 | id: pms_awake_and_warm 122 | lambda: |- 123 | if (id(pms_set).state) { 124 | return true; 125 | } else { 126 | return false; 127 | } 128 | filters: 129 | - delayed_on: 30s -------------------------------------------------------------------------------- /MH-Z19B.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheny95/esp8266-air-quality/391f41bb39b91cff53cd5c5bc1b37e47372b4ed0/MH-Z19B.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # esp8266-air-quality 2 | ESP8266空气质量检测DIY-esphome代码参考 3 | 4 | ![yaofan](https://user-images.githubusercontent.com/6293952/196037499-17ef6aec-9fe4-4fc2-a4ac-811a12bfb380.jpg) 5 | 6 | #### ESPHOME烧录文件是: 8266-tvoc.yaml 7 | 8 | #### 引脚图是 9 | ![20200615211225201](https://user-images.githubusercontent.com/6293952/179972145-a94c0d0e-2584-407a-8a90-a4821bc2c445.png) 10 | 11 | #### 其他的是对应元器件的文档 12 | 13 | 14 | ### 接线: 15 | 16 | ### MH-Z19B: 17 | ![image](https://user-images.githubusercontent.com/6293952/179967532-aa8dfbcb-cce2-477e-9aea-d71077fe65bf.png) 18 | 19 | 20 | 1. 把MH-Z19B的VIN和PMS7003 pin1的线接在一起。然后接8266的VU口,两个设备的GND口的线接在一起,然后接在esp8266的任意GND 21 | 2. 将MH-Z19B的tx接板子rx(D7),rx接板子tx(D8) 22 | 23 | ### PMS7003 24 | 25 | ![image](https://user-images.githubusercontent.com/6293952/179967621-f4b25598-914c-4a85-8784-49a7a8253c03.png) 26 | 27 | 3. PMS7003的TX(pin9)接到板子另外一个rx(D9)的口子上,最后再将pin10的reset口接到D3口,用于PMS7003的休眠 28 | 29 | 30 | ### SHTC3 31 | 32 | ![image](https://user-images.githubusercontent.com/6293952/179967382-09f52d03-6d7e-4918-8bcc-ae127fb4d501.png) 33 | 34 | 4. 引脚说明 35 | 36 | - 1 --- VDD 供电 3.3~5.5V DC 37 | 38 | - 2 --- GND 接地,电源负极 39 | 40 | - 3 --- SDA 串行数据,双向口 41 | 42 | - 4 --- SCL 串行时钟,输入口 43 | 44 | 5. 其中3、4接口分别接D2、D1。1、2分别接3.3V的电源口和GND 45 | 46 | ### 3D打印外壳 47 | 48 | 仓库文件列表中的 3D.zip 49 | 50 | 51 | -------------------------------------------------------------------------------- /SM-UART-04L.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheny95/esp8266-air-quality/391f41bb39b91cff53cd5c5bc1b37e47372b4ed0/SM-UART-04L.pdf --------------------------------------------------------------------------------