История начинается просто, начитавшись статей о том, как важно контролировать уровень СО2 в помещении и как несоблюдение установленных норм может сказаться на здоровье, решил озадачиться этой проблемой и помониторить рынок на предмет соответствующих решений. И, к сожалению, ни один из вариантов меня не устроил, где-то откровенный обман (используют дешёвые и неточные датчики), где-то ограниченный функционал, дизайн некошерный и прочие субъективные и объективные, в ряде случаев, проблемы.
Продолжая погружаться в тему AQ (датчиков качества воздуха), оказалось, что не СО2 единым мертв человек, но ещё его грозят погубить VOC, PM, NOX, неправильная влажность, температура, атмосферное давление и прочие гадости и радости. И в процессе изучения темы, сформулировал для себя ряд требований:
1. Прибор должен получиться достаточно универсальный.
Так как всё прогрессивное и не очень человечество неожиданно полюбило комфорт, и не полюбило переплачивать по счетам, многие обзавелись умным домом на разных площадках. Я использую Home Assistant, но, в принципе, можно подключать к любому, в том числе от Apple и на tuya. То есть:
2. Он должен работать с умным домом.
Умный дом — это хорошо, модно, молодёжно, но и хочется, бросив острый взгляд в сторону датчика, понять, пора ли падать в обморок от удушья или осталось время доползти до окна и открыть форточку/включить вентиляцию. Поэтому:
3. У устройства должна быть удобная и видимая издалека индикация состояния.
И по мелочи, дизайн, чтобы не стыдно было на видное место положить/поставить/повесить (субъективно), удобное управление и, главное, вовремя остановить творческий процесс и не пытаться запихнуть в одно устройство всё и сразу.
Итак, что контролируем:
СО2, данные можно посмотреть в рекомендациях ВОЗ и ГОСТ.
И сразу заложим концепцию зон комфорта и здоровья, условно мы можем поделить получаемые от сенсоров данные на зоны:
Зеленая зона (всё отлично)
Оранжевая (терпимо)
Красная (уже вредно (условно))
И Опасная (всё плохо, пора бежать)
И да. Я не буду закладывать в код жесткие ограничения по разным показателям, дадим возможность пользователю самому регулировать границы этих зон, НО добавим данные по умолчанию и ограничим регулировку зоны опасности 3000 ppm для CO2, так как это уже совсем не хорошо.

Получаем следующую градацию для CO2:
Зеленая зона до 1000 ppm (данные рознятся от 600-800 ppm и до 1000 ppm считаются приемлемыми).
Оранжевая зона от 1000 ppm до 1500 ppm, по сути, уже надо проветривать.
Красная зона от 1500 ppm и до Danger zone 2500 ppm.
При 2500 ppm датчик должен начать жалобно скулить, «свибрировать» до окна и выйти в него на свежий воздух
Оценив идею с использованием зон, мы решили применить их к другим показателям от сенсоров. Всё тоже самое, определяем рекомендованные показатели, забиваем их по дефолту и даем возможность их менять.
Кто эти мы, спросишь ты/вы уважаемый читатель, за дизайн «рожи», интерфейса и удобства в использовании взялась UX/UI-дизайнер Mary, так как тоже захотела такую фиговину на рабочее место, кто ж знал, что разработка такого простого устройства, займет столько времени)
Для NOx (это оксиды азота, в основном результат горения): Зеленая зона до 10 ind, Оранжевая зона до 100 ind и Красная зона до 200, выше — это уже Danger zone.
Для VOc (это Летучие органические вещества (Фенолы · Стиролы · Метан · Хлор · Бензол · Тетрахлорэтилен · Ксилол · Ацетон и т.д.)): Зеленая зона до 100 ind, Оранжевая зона до 200 ind и Красная зона до 300, выше — это уже Danger zone.
Для PM2.5 (это пыль в воздухе, снижаем риск рака легких): Зеленая зона до 50 ug/m3, Оранжевая зона до 100 ug/m3 и Красная зона до 150, выше — это уже Danger zone.
Все эти значения можно менять, в HA это выглядит так:
Все эти значения можно менять, в HA это выглядит так:

Исходя из концепции Зон и необходимости удобной индикации, оповещения пользователя строился дизайн и внешний вид устройства. Проще говоря должно быть удобно и видно из любой части комнаты, под любым углом, в каком состоянии находится качество воздуха по трем основным показателям. СО2, VOC\NOX и PM.
Изначально была концепция большого дисплея, вы можете её видеть на рендере.
Исходя из концепции Зон и необходимости удобной индикации, оповещения пользователя строился дизайн и внешний вид устройства. Проще говоря должно быть удобно и видно из любой части комнаты, под любым углом, в каком состоянии находится качество воздуха по трем основным показателям. СО2, VOC\NOX и PM.
Изначально была концепция большого дисплея, вы можете её видеть на рендере.

Ещё рендеры



В принципе, её можно оставить и довести до ума, если это кому-то понадобится. И прежде, чем сказать «дайте два», давайте рассмотрим основные проблемы такого исполнения. Во-первых, он дороже, во-вторых, чувствителен к углу обзора и бликам от внешних источников света, есть вариант с OLED матрицами, но матрица такого размера сильно увеличивает стоимость. Но, повторюсь, мы планируем довести оба варианта, если будет поддержка и интерес аудитории.
Теперь вернёмся к основному исполнению

Ещё рендеры




Верхний дисплей IPS (1,47’’ 172x320px), на него выводятся значения трех основных показателей, он также отдельно подсвечивает значение, которое ушло в красную зону.

Диски с LED подсветкой плавно изменяют цвет от, скажем, зеленого до оранжевого, в зависимости от состояния значения, например, если показания CO2 до тысячи включительно это изумрудный зеленый, если 1100ppm, то это смещение в оранжевый цвет, 1500ppm уже полностью оранжевый, если показания и дальше растут, то цвет смещается ближе к красному. Если показания переходят в Danger zone то диск и показания на дисплее начинают плавно мигать.

Также мы решили добавить в устройство зуммер и вибромоторчик для дополнительного оповещения, их можно отключить через настройки умного дома.

Так как наш AQ становится источником света (подсветка дисплеев и диски), мы добавляем регулирование интенсивности свечения в зависимости от освещенности комнаты, автоматическое, и в ручном режиме, когда вы можете жестко задать освещенность от 255 (максимум) до 10 минимум. Разумеется, это меняет интенсивность подцветки не только «инопланетных дисков», но и дисплеев.

И второй дисплей, также IPS (1,69’’ 240x280), должен выводит дату и время, температуру, влажность, атмосферное давление и освещенность в помещении в люкс. А также иконки состояния сети, включены или нет: зуммер и вибрация, есть ли подключение к сети WIFI и серверу умного дома по MQTT или другой вариант подключения, в зависимости от выбранного сервера.
Так как не хочется растягивать статью, подробно о том, как строился дизайн, взаимодействие с пользователем и все интерфейсы смотрите в статье от UX дизайнера. Там всё очень подробно описано. https://habr.com/ru/articles/949726/
Теперь по железу:
Я перепробовал разные комбинации датчиков, вот один из вариантов

Но в конечном итоге остановился на следующем наборе компонентов:
Для CO2: SCD30
Для PM, влажность\температура, VOC, NOx: SEN55-SDN-T этот датчик появился недавно, и комбинирует в себе целый ряд сенсоров
Атмосферное давление: BME280
Освещенность: MAX44009
На данный момент это лучшее что есть по доступности и соотношению цена/качество/точность показаний. Но набор может измениться.)
Сейчас проект в стадии доработки и прототипирования. Хочется добавить новых функций, и дополнительно возможность настраивать через мобильное приложение.
Ну а если брать вариант с большим дисплеем (5-7 дюймов), то там есть где развернуться, выводить погоду, добавить функцию будильника и прочие мелочи.
Что дальше:
Изначально писалось всё это под Arduino, но уже давно стало понятно, что это слишком мало и пора переходить на родные IDE, а потом решил разделить на две части, то есть два МК, один будет отвечать за экран и прочие рюшечки, второй за опрос сенсоров и общение с сервером умного дома. Пока прописывается логика и интерфейсы, выбор камней не так важен, но дальше, вероятно, это будет какой-нибудь ESP и STM.
Тестовая плата и код на Arduino для неё, доступны на https://github.com/stiamon77/AQSTQA-AQ
Но повторюсь, это пока в процессе.
Отдельно хочу поблагодарить тех, кто поддержал и, возможно, поддержит проект доступным способом.
Очень хочется довести эту штуковину до финишной стадии, собрать прототип, корпус.
Опять же если идея зайдет, можно дойти до промышленного производства с открытой прошивкой. Но это если найдется/найдутся люди готовые в это вложиться и помочь выйти на kickstarter. Если нет, то проект будет в открытом доступе или у донаторов, это уже как они решат, общим голосованием.
Милости прошу в комменты, и если есть желание поучаствовать, то выбирайте вариант поддержки по ссылке https://taplink.cc/aqstqa )))