ESP8266 / ESPhome Монитор качества воздуха............
Я хотел создать устройство принудительного контроля воздуха для измерения нескольких параметров в моем жилом помещении. Вентилятор используется для подачи воздуха внутрь и вокруг датчиков, поэтому застой воздуха или перегрев не являются проблемой.
Измеряет температуру, влажность, давление, CO2, летучие органические соединения, летучие органические соединения, люкс и присутствие.
OLED может отображать значения напрямую, а ESP также передает значения непосредственно в ESPhome/Homeassistant или другую систему домашней автоматизации.
Платы/датчики могут быть опущены по требованию.
Вентилятор можно включать и выключать с помощью GPIO15, его также можно использовать для модуляции вентилятора, хотя выбранный вентилятор издает слышимый вой с использованием ШИМ. Поэтому в качестве источника питания используйте +3,3 В, чтобы вентилятор работал тихо. Открыт для любых предложений по бесшумным радиальным 30-мм вентиляторам.
Я приложил YAML-файл ESPhome для настройки, датчики LD2420 и AGS10 я опустил, так как я их еще не получил. В этом YAML я усреднил температуру и влажность между AHT20 и AHT21 для большей точности. При использовании этого параметра укажите свои собственные учетные данные esphome:, api:, ota: и wifi:.
Список деталей: (Ссылки указывают на точные используемые детали, можно использовать замены, только убедитесь, что размеры одинаковы)
ESP8266: https://www.aliexpress.com/item/1005007598012744.html
ENS160+AHT21: https://www.aliexpress.com/item/1005006162039607.html
AHT20+BMP280: https://www.aliexpress.com/item/1005006109113441.html
SGP41: https://www.aliexpress.com/item/1005006746827606.html
AGS10: https://www.aliexpress.com/item/1005007369166584.html
TSL2561: https://www.aliexpress.com/item/1005006047383759.html
LD2420: https://www.aliexpress.com/item/1005006337788084.html
НеоПиксель: https://www.aliexpress.com/item/1005005862049283.html
Вентилятор: https://www.aliexpress.com/item/1005002449192337.html
БС170:
M2x6 мм (2 шт.):
M2x12 мм (4 шт.):
Проводка:
AHT20+BMP280: от (+) (VCC) до 3,3 В, SDA-GPIO14(D6), SCL-GPIO12(D5) и GND к GND.
Остальные датчики: (+) (VCC) к 3,3 В, SDA-GPIO4(D2) SCL-GPIO5(D1) и GND к GND.
ВЕНТИЛЯТОР: (+) к 3,3 В, (-) к контакту 1 на BS170, контакту 2 на BS170 к GPIO15(D8) и контакту 3 на BS170 к GND.
Лента NeoPixel: + к 5 В (VIN), DI к GPIO2 (D4) и GND к GND.
При сборке проще всего соединить все на верстаке проводами диаметром около 60 мм (~ 2,5 единицы свободы). Я использовал для всего тонкие провода, так как они одножильные и с ними легко работать.
Причуды! Поскольку AHT20 и AHT21 имеют один и тот же адрес, нам необходимо использовать две отдельные шины I2C. OLED плохо документирован, но выяснилось следующее:
I2C OLED и AHT20+BMP280 — SDA-GPIO14(D6) SCL-GPIO12(D5)
Остальное I2C: SDA-GPIO4(D2) SCL-GPIO5(D1)
Список адресов I2C:
ЭНС160: 0x53
АНТ21: 0x38
АНТ20: 0x38
БМП280: 0x77
SGP41: 0x59
АГС10: 0x1A
ТСЛ2561: 0x39
ОЛИД: 0x3C





























