Как стать автором
Обновить

Как я делал бюджетное устройство мониторинга качества среды и что из этого вышло

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров14K
Всего голосов 25: ↑24 и ↓1+33
Комментарии27

Комментарии 27

На самом деле здесь ничего сложного

C этого надо было статью начинать.

Всегда интересовало насколько адекватную информацию показывают подобные датчики. С одним лишь специализированным датчиком СО2 куча маеты с постоянной калибровкой и пр., а тут 4-в-1 за небольшую сумму.

На самом деле, датчик bme680 отличное решение для бытового применения. Я много датчиков перепробовал для своих проектов, но остановился на этом. Да, калибровка создаёт много проблем для обычного пользователя. Датчик bme680, интеллектуальный, он накапливает статистику замеров, тем самым повышая точность. Ещё есть возможность сохранения sensor state в памяти микроконтроллера, а затем, например, после отключения питания, можно загрузить sensor state обратно в датчик, что ускоряет выход датчика на нормальный режим. Ещё есть отличная штука у этого датчика, он может сообщать нам насколько он точен в данный момент, выводя значение от 0 до 4.

Да, но тот же СО2, который он как бы меряет, его же надо периодически калибровать, вынося на свежий воздух с 400 ppm, иначе показатели уезжают, и прибор показывает, что всё хорошо, когда всё уже не хорошо (и никакая статистика замеров без этого не поможет). BME680 работает на иных физических принципах, чем обычные датчики CO2 (от SenseAir, Winsen etc)?

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

Сколько таких не перепробовал, что-то более-менее адекватное показывал MH-Z19B. Если калибровать периодически. Благо я тогда у леса жил. Проветрил хорошенько, он сам и настроился.

Ну а реально если хочется уровень CO2 видеть, а не просто "качество воздуха ухудшилось", то Sensirion SCD30. Но он и раньше бюджетным не был, а сейчас и подавно.

SensAir S8 вроде еще понравился в свое время (существенно дешевле, а показывал норм).

Никто и не утверждает, что данный датчик измеряет уровень CO2. В даташите прямо указано:

Estimation of the CO2 level in ppm. The sensor does not directly measure CO2, but derives this from the average correlation between VOCs and CO2 in human’s exhaled breath.

Если вам необходимо измерять CO2, то всё же лучше использовать оптические датчики инфракрасного типа.

А можно оценить точность этого косвенного метода измерения и дрифт со временем? Пользователь готов смириться с меньшей точностью измерений, если оговорена максимальная погрешность. Если макс. погрешность не оговорена, видеть вместо фактических показателей показатели "температуры на Марсе" нет никакого желания.

  1. Интересное ТЗ.

То, что устройство должно выглядеть "не колхозно" есть а что должно измерять - нету.

  1. Насчёт прошивки устройства.

    Указано что должно работать с Home Assistant. Так может тогда логично использовать ESPHome что заточен на работу с HA и поддерживает этот датчик?

    https://esphome.io/components/sensor/bme680.html

Указано что должно работать с Home Assistant. Так может тогда логично использовать ESPHome что заточен на работу с HA и поддерживает этот датчик?

Устройство создавалось для универсального использования простым пользователем. ESPHome это хорошо, но это решение не для простого пользователя, это все равно что заставить пользователей смартфона писать самому себе приложения).

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

Так вроде умеет все это ESPHome.

https://esphome.io/components/display/addressable_light.html - работа с WS2812B

Компонент Web отобразит значения с датчика на веб-страничке

А captive portal поможет с первоначальной настройкой WiFi.

С

Безусловно, ESPHome умеет, но как я уже писал ранее, данное решение "коробочное" для простого пользователя, а не продвинутого инженера).

Коробочное решение у Сяоми и К. Подключил к облаку и забыл. А здесь еще HA ставить и настраивать, MQTT брокер и прочие прелести - тот еще квест для простого пользователя

Есть что-то посоветовать готовое с соответствующими описываемому девайсу параметрами, посоветуйте, пожалуйста, чтобы не перерыватт гору инфомусора, в том числе от маркетологов?

А у автора можно поинтересоваться о себестоимости изделия и примерной стоимости продажи , если изделие можно тиражировать? Заранее благодарю

Себестоимость $13, насчет тиражирования устройства - ничего не могу сказать.

Ну если подразумевалось взять готовый скомпилированный образ вашей прошивки - то да, можно сказать что решение "коробочное".

Я предлагал альтернативу подходу "берем Arduino IDE пишем и компилируем прошивку".

Для тех у кого нет таких навыков (как у меня) и предложено использовать "конструкторы" по типу ESPHome или WiFI-IoT.

Плюс ESPHome "нативная" прошивка для упомянутого в статье Home Assistant.

Ну если подразумевалось взять готовый скомпилированный образ вашей прошивки - то да, можно сказать что решение "коробочное".

Да, так оно и есть.

Почитал ещё раз статью.

Описывать весь код прошивки в этой статье я не стану, там нет ничего необычного, прошивка написана с применением стандартных технологий, примеры которых вы найдете в среде разработки Arduino IDE.

Т.е. для не умеющих в Arduino IDE (как я) - подразумевается что повторить проект без шансов.

Предложение использовать ESPHome или аналогичный конструктор заиграло новыми красками :-)

Отлично, где купить готовое если у тебя руки из жопы или нет нужных навыков? :)

В 15 раз дороже и проприетарный протокол/приложение. Слишком большая наценка за руки из жопы :)

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

этот метод не всегда работает c использованием модуля датчика, который применен в этой статье.

Советую вам прочитать Datasheet на датчик и понять, для чего у него входы CS и SDO и что с ними делать в режиме I2C

Кстати, SDO датчика нужно заземлять, чтобы нормально инитить

iaqSensor.begin(BME68X_I2C_ADDR_LOW, Wire);

The 7-bit device address is 111011x. The 6 MSB bits are fixed. The last bit is changeable by SDO value and can be changed during operation. Connecting SDO to GND results in slave address 1110110 (0x76); connection it to VDDIO results in slave address 1110111 (0x77), which is the same as BMP280’s I²C address. The SDO pin cannot be left floating; if left floating, the I²C address will be undefined.

Спасибо, буду знать.

Китайские BME680 жутко капризные, могут подолгу работать, а могут при включении выдать ошибку -2, и все, могут полдня эту ошибку выкидывать, а потом снова заработать. Ни с одними датчиками такого не было.

Возможно, но я их использую длительное время и таких проблем не наблюдал.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий