Авторизация
Зарегистрироваться

Sensirion SCD30 - лучший из доступных CO2 сенсоров


После написания MatrixClock и tthRelay зачесались у меня руки сделать измеритель качества воздуха. Выбор пал на двухлучевой CO2 сенсор SCD30 от фирмы Sensirion. В этой статье вы узнаете все о SCD30 и научитесь пользоваться моей библиотекой, которая поддерживает все плюшки сенсора и даже больше. Если интересно прошу под cut…


Основные характеристики SCD30:
— двухлучевой оптический NDIR CO2 датчик
— встроенный датчик температуры и влажности для компенсации нагрева воздуха в оптической камере
— напряжение питания +3.3в..+5.5в
— средний ток потребления 19мА, пиковый ток 75мА
— рабочий диапазон температур 0°C..+50°C
— диапазон измерения CO2 0ppm..40000ppm (I²C, UART) и 0..5000ppm (PWM)
— точность измерения CO2 ±(30ppm + 3% от ИВ) в диапазоне 400ppm..10000ppm
— повторяемость измерений ±10ppm в диапазоне 400ppm..10000ppm
— температурная стабильность ±2.5ppm/°C в диапазоне 0°C..+50°C
— диапазон измерения влажности 0%..100%
— точность измерения влажности ±3%
— диапазон измерения температуры -40°C..+70°C
— точность измерения температуры ±0.1°C
— время загрузки < 2сек
— интерфейсы I²C, UART-Modbus или PWM
— срок службы 15 лет

Принцип работы двухлучевых оптических NDIR (Non-Dispersive Infrared Detection) CO2 датчиков очень прост. Молекулы CO2 непрозрачны для ИК с длинной волны 4.26 микрон, в то время как остальная часть газов проходит через него без препятствий. Первый фотодетектор измеряет интенсивность инфракрасного излучения после прохождения через воздух. Второй детектор является эталонным и закрыт оптическим фильтром, на котором поглощение CO2 отсутствует. Примерно раз в сутки датчик снимает показания c эталона. Любое изменение интенсивности во втором канале указывает на деградацию источника инфракрасного излучения. Датчик автоматически корректирует показания CO2 первого канала, чтобы предотвратить дрейф.
Дополнительная информация

Датчик SCD30 имеет аж три интерфейса, мне для проекта был интересен только I²C. Чтобы его активировать нужно контакт «SEL» никуда не подключать или соединить с «GND». Бонусом идет внутренняя подтяжка 45кОм к 3в. Это значит, что скорее всего SCL и SDA не толерантны к 5в, будьте осторожны.
Дополнительная информация

У сенсора SCD30 очень хрупкая оптическая система. Для получения паспортной точности его двухлучевая камера не должна соприкасаться с посторонними предметами и подвергаться сильным механическим воздействиям. Если по какой-то причине этого избежать не удалось, нужно перекалибровать сенсор (о том как это сделать читай ниже).
Дополнительная информация

При размещении сенсора в корпусе нужно учитывать несколько факторов:
1. Для уменьшения время отклика на изменение CO2, датчик лучше располагать как можно ближе к вентиляционному отверстию. Если это не возможно, то внутренний открытый объем устройства должен быть как можно меньше.
Дополнительная информация

2. Датчик нужно располагать как можно дальше от источников тепла. Если это не возможно вводим коррекцию температуры (об этом смотрите ниже).
Дополнительная информация

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

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

Команды сенсору можно передавать в любой последовательности, но если хотите немного сэкономить на электричестве, то делать это надо строго по инструкции:
1. установить желаемый интервал измерения, если нужно
2. установить тип калибровки, если нужно
3. установить коррекцию температуры, если нужно
4. включить режим непрерывного измерения
Дополнительная информация

1. Длительные интервалы измерения снижают энергопотребление, но делают датчик не способным отслеживать быстро изменяющихся концентраций CO2. На графике показана ситуация когда концентрация CO2 мгновенно увеличилась с 4000ppm до 10000ppm. Датчики с интервалами измерения 2сек и 5сек увидят это изменение меньше чем за 2 минуты. Датчик с интервалом 60сек аж за 7 минут и дальше только хуже. Это экстремальный пример, в реальной жизни CO2 меняется медленно и отклик сенсора намного быстрее.
Дополнительная информация

С завода в датчик зашит интервал 2сек. Нам доступен диапазон 2сек..1800сек. Фирма Sensirion рекомендует избегать больших значений и не выходить за рамки 2сек..60сек.
sensorCO2.setMeasurementInterval(5);
2a. У сенсора предусмотренно два типа калибровки: ASC (automatic self-calibration) и FRC (forced re-calibration). Оба метода дают одинаковую точность измерения. Главное отличие в том, что для FRC нужен газ с известной концентраций CO2, а ASC находит эталонное значение CO2 сам. Обычно автоматическая самокалибровка ASC используется в зданиях где демонтаж датчика, для последующей калибровки с помощью FRC, затруднен. Идея метода в том, что если вентиляционная система здания спроектирована правильно, то хотя бы на 1 час в день уровень CO2 в комнате, где установлен сенсор, опускается до 400ppm. Датчик достаточно умён и может игнорировать высокие концентрации за последние пару дней. Однако высокий уровень CO2 в течении недель рано или поздно приведёт к дрейфу и искажению измерений с активной ASC. В этом случае выход только один — FRC калибровка. Фирма Sensirion не указывает интервалы FRC, но в других источниках пишут от 6 месяцев до 1 года. Насколько это правда не знаю, статистики пока нет. Вот так выглядит строчка вызова ASC в библиотеке:
sensorCO2.setAutoCalibration(true);
2b. Калибровку FRC можно проводить неограниченное число раз и она вступает в силу немедленно. Диапазон коррекции 400ppm..2000ppm. Последовательность действий следующая:
— активировать режим непрерывного измерения с интервалом измерения 2сек..5сек
— поместить сенсор в закрытую среду с известной концентрацией CO2. Самый доступный способ — вынести сенсор на свежий воздух, концентрация которого в нормальных условиях колеблется в диапазоне 350ppm...480ppm.
— убедится, что температура окружающей среды в пределах 0°C..+50°C, на сенсор не светит солнце и не дует ветер.
— после 2-х минут акклиматизации, установить значение FRC равное 400ppm.
sensorCO2.setManualCalibration(400);
3. Датчик SCD30 компенсирует само нагрев измерительной камеры с помощью встроенного сенсора SHT31. В случае когда в приборе рядом с сенсором присутствует дополнительный источник тепла одного SHT31 уже не достаточно для измерения CO2 с паспортной точностью. Для этого в сенсоре предусмотренна корректировка температуры. Последовательность действий следующая:
— включаем прибор, устанавливаем требуемую частоту измерения и даём прогреться всем компонентам в течении 10 минут.
— берём эталонный термометр и измеряем температуру окружающего воздуха возле прибора.
— находим разность температур снаружи и внутри и вводим коррекцию. Диапазон значений 0°C..+70°C с шагом +0.01°C.
sensorCO2.setTemperatureOffset(0.01);
4. Одним из недостатков измерения CO2 на основе принципа NDIR — зависимость от давления окружающей среды. Для этого в сенсоре предусмотрен механизм ее компенсации. Диапазон коррекции 700mBar..1400mBar или 0mBar если коррекция не нужна. Среднегодичное давление в моей местности 1013mBar. Постоянно увлекаться новыми значениями не стоит тк сенсор сохраняет все на флеш память, а она имеет ограниченный ресурс циклов записи.
sensorCO2.startContinuousMeasurement(1013);
В тех случаях когда данных по давлению нет, можно применить менее точную коррекцию по высоте над уровнем моря (altitude). Диапазон значений -3100m..+3300m. Для этого сначала отключаем коррекцию по давлению посылая 0mBar и шлем значение высоты над уровнем моря. Вот так это выглядит:
sensorCO2.startContinuousMeasurement(0);
sensorCO2.setAltitude(150);
Библиотека умеет читать версию прошивки. Мне прислали с 3.66
String version = sensorCO2.readFirmwareVersion();
Если сенсор завис, можно пробовать его оживить подав команду сброса. Сенсор перезапускается, загружает все сохраненные калибровки и включает режим непрерывного измерения если он был активен до сброса.
sensorCO2.reset();
Библиотека написана так, что при любой ошибке на шине I²C или не совпадении контрольной суммы во время обмена, вместо CO2, T, RH выдается значение 55555. Как бы намекая вам о проблемах. Дальше вы сами решаете выводить вам 55555, старое значение или код ошибки последней команды:
uint8_t error = sensorCO2.getCommandStatus();

Забирать библиотеку можно тут.
Дополнительная информация

Теперь вы сами можете написать себе измеритель качества воздуха ну или подождать пока это сделаю я.
Дополнительная информация


UDP: Датчик в работе (с отключенной ASC) уже 2 года и никакого дрейфа не замечено — на улице стабильно показывает 400ppm.
Планирую купить +91 Добавить в избранное +104 +165
свернуть развернуть
Комментарии (126)
RSS
+
avatar
0
Класс, спасибо, будем писать
+
avatar
  • ybxtuj
  • 07 июля 2022, 07:05
+4
датчик влажности как долго работает при 90-100%?
к примеру все хту21 дхт22 умирают при этой влажности через небольшое время
дхт11 работает без проблем но у него температура выводится без десятых в итоге приходится использовать в помещении дхт11 + дс18б20 + MH-Z19
+
avatar
+14
У всех кремниевых сенсоров есть такой косяк. HTU2xD и SHT21 не умерли просто их надо подсушить встроенным нагревателем. Да, да у них есть нагреватель, а Si7021 ещё и мощность менять умеет. Даже библиотеку писал — подробности тут.

DHT11 сильно врёт по влажности после 50%
+
avatar
0
У меня все китайские DHT22 пришли в негодность примерно в течение года после покупки. Показания влажности наоборот стали падать и дошли до 5.0% или что-то такое. После этого сенсор перестал реагировать на изменение влажности вообще. Причем, включенный постоянно сенсор деградировал быстрее (полгода), выключенный, находящийся в коробке — за год.

Для комнаты остановился на Si7021 (тоже китайском, конечно) — вот уже 2-3 года показывает нормально. Причем, температура до сотых долей — это забавно. Можно поднести палец на сантиметр от датчика и наблюдать, как она медленно идет вверх.
+
avatar
+4
из всех трех HTU21D, SHT21, Si7021 — Si7021 самый продвинутый и классный, но он снят с производства. поговаривают, что то что щас продают в качестве Si7021 подделка.

я перешел на китайский AHT10. с равнивал с HTU21D — показания ноздря в ноздрю (с учетом паспортной погрешности).
+
avatar
0
но он снят с производства.
Вот это печалька, конечно…
+
avatar
  • Zhuk72
  • 18 июля 2022, 14:29
0

Просто старая модификация снята с производства (End Of Life).
+
avatar
0
Так это dev kit, может просто завалялись на складах, вот и продают.
+
avatar
  • Zhuk72
  • 18 июля 2022, 17:47
0
Это сами чипы. Посмотрите в полной таблице на сайте
www.silabs.com/sensors
+
avatar
+1
Да, вы правы. Даже datasheet обновили, теперь от 6/22.
+
avatar
  • ybxtuj
  • 07 июля 2022, 16:19
0
да сотые можно и так получить на термисторе завести ацп на 12 бит или адэску на 15 бит
тот же дс18б20 делает шаг 0,0625 градуса
+
avatar
+1
Дело не в сотых, для погоды сотые не нужны. Дело в удобстве — температура и влажность все в одном сенсоре с хорошей точностью и повторяемостью результатов, сверхнизким потреблением и тд и тп.
+
avatar
0
0.06 с отличной повторяемостью я и на tmp100 получал) Использую такие в самодельном БП для контроля температуры радиатора. Но это всё не то…

Тут 0.01 градуса (на самом деле, даже чуть лучше, не помню сколько), полноценные два разряда после запятой. Да, на практике такое разрешение особо не нужно, но с ним можно быстрее определять изменение температуры. Например, вчера утром сотые доли увеличивались прямо на глазах, примерно по 1-й в пол минуты. Стало понятно, что будет жарко )

Ну а так, да — плюсы датчика описал ниже enjoyneering. Этого не отнять. Ну и то, что за 2 или 3 года эксплуатации он все еще показывает более-менее актуальные значения.

сотые можно и так получить на термисторе завести ацп на 12 бит
Боюсь, на термисторе будет слишком много шума.
+
avatar
0
Два scd30 работают при 90-99, около двух лет. Проблем не наблюдается. Платы датчиков залил лаком, если перепады температуры пересекаются точку росы то придётся закрывать сеткой от конденсата.
+
avatar
  • Berlin
  • 07 июля 2022, 07:32
0
За обзор спасибо. Но объясните если есть эталон, то почему нужна калибровка хотя бы раз в пол года? У меня воздуха Xiaomi Qingping Air Monitor Lite CGDN1 на базе SenseAir S8 там вроде нет второй камеры чем хуже? Дизайн у ксяоми выше всяких похвал ещё бы версию с трансфлективным экраном, чтоб на солнце не блекнул как на часах amazfit bip. Какой датчик посоветуете если температура в палатке до -50 опускается?
+
avatar
0
Я конечно не эксперт, но предположу, что там между 400ppm и 800ppm разница в сотых долях и поймать их ой как трудно, но это не точно.

Про SenseAir S8 читаем тут ближе к середине.
+
avatar
  • Zolg
  • 07 июля 2022, 09:43
0
между 400ppm и 800ppm разница в сотых долях
Э… В относительных цифрах разница между 400 и 800ppm — в два раза.
В абсолютных, как ни удивительно, — 400 миллионных долей (0,04 сотые доли)
+
avatar
+5
Имеется в виду поглощение излучения газом — представьте, что при 400 ppm, допустим, поглощается 0.1%, а при 800 ppm — 0.2%. То есть, до сенсора доходит 99.9 % и 99.8 %. Различать такие значения без калибровки просто нереально — а вдруг лазер деградировал? Или просто питание просело на 0.1% из-за неидеальности схемы стабилизации? Ну и от плотности воздуха (давления) очевидно зависимость есть. То есть, перенесли на другую высоту (+100 метров, например, это вполне реально), показания уже другие.
+
avatar
0
именно это и имел в виду, спасибо kdekaluga
+
avatar
+1
Ага, только там лампочка накаливания :)
+
avatar
0
Да, она самая, но очень плавный разогрев, поэтому и срок службы 15 лет.
+
avatar
0
Хм. Ну, хотя, почему бы и нет )))
+
avatar
+17
А зачем прятать все картинки под спойлер? Статья техническая и иллюстрации отлично в ней смотрятся напрямую. Ну и вариант со спойлерами очень неудобно сохранять себе в pdf.
+
avatar
+3
Alt+клик для открытия всех. И согласен, даже спойлеры не подписаны.
+
avatar
+5
вам всем не угодишь — то почему в шапке, то почему без шапки.
+
avatar
+4
Лучше с шапкой, мамы будут довольны)
+
avatar
+1
Обзор отличный, датчик тоже)

P. S. люди с ума посходили с датчиками CO2 — мол как много аренда, надо постоянно дома и на работе мониторить! На самом деле — нет. Да, количество его влияет но далеко не так, как это расписывают.
+
avatar
+1
про сумашествие вокруг co2 я свами согласен, но прогресс и стремление к лучшему качеству жизни не победить.

можно же и на жигулях ездить, но на иномарке приятнее. так и тут, с мониторингом co2 — с ним ты вседа знаешь когда проветривать и почему у тебя голова чугунная, а до этого просто списывал на плохую погоду.
+
avatar
+2
Да, количество его влияет но далеко не так, как это расписывают.
Не сказал бы. Я отлично чувствую повышенную концентрацию, для себя определил следующую примерную зависимость:

— до 600 ppm вообще никак не ощущается;
— от 600 до 1000 начинает появляться усталость, утомленность;
— после 1200-1300 становится просто тяжело, думать вообще не хочется.

А на счет датчиков — на предыдущей работе поначалу свято верили в то, что при включении кондиционера все окна надо наглухо закрывать, и что холодный воздух не может быть душным (хоть и айти контора). Пришлось нести датчик на работу, показывать цифры, тыкать в ссылки. Примерно за 30 минут с закрытым окном концентрация с 600 поднималась до 1400-1500, становилось просто невыносимо душно. Стали оставлять одно окно приоткрытым, ситуация улучшилась. Потом купили готовый датчик, который еще и пищит при повышении концентрации — стало вообще удобно. Запищал — надо открыть окно, проветрить.
+
avatar
0
У вас наверное железа в крови мало и красных телец отсюда и такая чувствительность.
+
avatar
+1
Последний анализ показал, что в норме, даже ближе к верхнему пределу.
+
avatar
0
Тогда не понятно откуда к пас такая чувствительность.
+
avatar
  • sim31r
  • 11 июля 2022, 10:51
0
Самовнушение может. На выдохе 50 000 PPM тероретически такие мелкие отклонения СО2 во вдыхаемом воздухе ни как на происходящем в легких не сказываются. Возможно что-то еще там, ионизация, влажность, темперратура, запыление сказывается.
+
avatar
  • sim31r
  • 11 июля 2022, 10:58
0
Самовнушение же. Без датчика 1500 было всем нормально, показали показания датчика и все стали задыхаться. На подводных лодках норма 5000 PPM, в шахтах по нормам США 30 000 PPM в течение рабочей смены. Если на выдохе в легких 50 000 PPM, то вдыхаемый воздух особой роли в концентрации СО2 не скажется. Другое дело что могут быть другие загрязнители, ацетоны, эфиры всевозможны от людей, пыль, формальдегид от мебели, положительная ионизация (дышать трудно, голова тяжелая от него).
Излишняя проветриваемость зимой может дать осушение воздуха и вирусы в легких, что еще хуже.
А так верно, следить за СО2 в воздухе нужно и не доупускать концентрации выше 30 000 PPM, лучше не более 5 000 PPM. Такое может быть в палатке или под одеялом когда от комаров прячешься.
+
avatar
0
Ну, подводных лодках такие концентраций не от хорошей жизни. Там люди в 45 уже на пенсию выходят.
+
avatar
  • sim31r
  • 11 июля 2022, 18:30
0
Там много других вредных факторов, СО2 вероятно не самый опасный.
+
avatar
0
Это понятно, но говорить что 5000 ppm дома — это норма тк на подводной лодке так все ходят, так себе отмазка.
+
avatar
  • sim31r
  • 11 июля 2022, 22:19
0
5000 ppm дома не так просто организовать еще. Скорее всего вонять будет испарениями с человека, потом, ацетоном и прочим, будет вонять мебель испарениями лака и формальдегидами, будет очень влажный воздух.
Другая крайность гнаться за 600 ppm, такие есть, у них вентиляторы гонят в помещение тысячи кубометров воздуха с улицы, если на улице мороз на подогрев воздуха может уйти 10 кВт энергии, а на увлажнение сотни литров воды в сутки.
Датчики СО2 отличный инструмент, по ним можно определить присутствие человека в комнате, оценить приток воздуха достаточно точно. Но низкий СО2 не самоцель. Вот пример у пловцов, они на одном вдохе пол бассейна проплывают, концентрация СО2 на выдохе под 100 000 ppm, и это только на пользу идет всем органам. А у офисных сотрудников условно 600 ppm и уже голова болит, мысль не идет и т.п.
+
avatar
0
Вы опять в крайности. Проф пловец это — 1человек на 1 миллион с особой генетикой которым и 150 000ppm нипочём. Вы ещё вспомните free divers которые на 100 метров на одном вдохе ныряют.

Есть нормы для ОБЫЧНЫХ людей — 400ppm...1000ppm, дальше плохо. И подвоников которые по 3 месяца по водой без свежего воздуха, и плавцов которых отбирают с уникальными данными, сюда мешать не надо. Серой массе, как нам с вами, уже при 1000ppm будет не очень комфортно.
+
avatar
  • sim31r
  • 12 июля 2022, 10:21
0
Просто пловец, любой. Вы не плавали и не ныряли никогда что ли? Плавание полезно всем, бег, велосипед, тенис имеют побочные эффекты, а плавание всем назначают. Это естественный режим работы легких, у пловцов просто чуть выше из-за задержки дыхания, на уровень кислорода в крови это не влияет особо, я сколько дыхание не задерживал оксиметром снижения кислорода не заметил.
вдыхаем кислород, выдыхаем углекислый газ. В выдохе его примерно 4,5%, в то время как в окружающем пространстве должно быть около 0,04%
Соответственно даже в обычном режиме на происходящее в легких особо не повлияет, что там на вдохе 0.04% СО2 или 0.08%, на выдохе все равно будет 4.5%. Задерживая дыхание увеличиваем концентрацию, ускоряя дыхание снижаем. Так называемая практика холотропного дыхания, от которой наступают веселые глюки мозга:

… Что не так с холотропным дыханием

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

«Психоделические» переживания, которыми сопровождается каждый сеанс холотропного дыхания, — сильная нагрузка на организм. Кроме того, остаётся риск получить тяжёлую Journal editors criticize MDMA study as nonscientific, unethical — News and Comment — Ecstasy drug гипервентиляцию лёгких. Для некоторых людей это может быть опасно.

Перед тем как практиковать эту дыхательную технику, обязательно нужно проконсультироваться с терапевтом или другим наблюдающим врачом.
+
avatar
0
концентрация СО2 на выдохе под 100 000 ppm, и это только на пользу идет всем органам.
Так сколько они плавают-то по времени? :) Час в сутки?
+
avatar
  • sim31r
  • 12 июля 2022, 10:25
0
У обычных людей тоже на вдохе 0.04%, на выдохе 4.5%, так что на вдохе СО2 можно игнорировать, он перемешивается с содержимым легких и теряется на этом фоне.
Условно человек выделяет СО2 килограммами, а некоторые поднимают панику из-за микрограмм СО2 в воздухе, что нелепо.
+
avatar
  • rexen
  • 26 октября 2022, 15:56
0
sim31r, вы решили поспорить со всем научным миром путём своих умозрительных примеров?
ГОСТ 30494-2011 «Здания жилые и общественные. Параметры микроклимата в помещениях». Этот документ оптимальным для здоровья человека уровнем CO2 считает 800 — 1 000 ppm. Отметка на уровне 1 400 ppm – предел допустимого содержания углекислого газа в помещении.
+
avatar
  • sim31r
  • 27 октября 2022, 10:44
0
В подводных лодках допускается 5000 ppm, на шахтах 50 000. Кто сколько хочет, тот столько и пишет.
+
avatar
  • rexen
  • 27 октября 2022, 22:59
0
Да, блин, ОТКУДА вы такие цифры берёте? 50 тысяч ррм — это уже на грани потери сознания, если верить Википедии. Экипаж подлодки по-вашему должен ещё и бдить на боевом посту? У вас как в голове эти цифры с логикой вяжутся? Вы не путаете PPM МГ/м3 или там америкосовские футы-унции?
+
avatar
  • sim31r
  • 28 октября 2022, 01:21
0
Вот тут нормы высокие, для космонавтов и подводников
habr.com/ru/post/429710/
+
avatar
  • rexen
  • 28 октября 2022, 12:56
0
Окей, про подводников понятно. А про шахтёров?
по нормам США 30 000 PPM в течение рабочей смены
Как? Если при 0,5% (5000 PPM)
отдельные астронавты начинают испытывать дискомфорт… поведение людей ощутимо меняется
При трёх процентах промахать кайлом 8 часов?
+
avatar
  • sim31r
  • 28 октября 2022, 20:10
0
В бытовых приборах выше 2000 ppm вообще не предусмотрено измерение, пищат и зашкаливают, а это всего 0.2%. Подозрение что общепринятые нормы подогнаны под вентиляционщиков, чтобы те впаривали оборудование дающее приток в 1000 кубометров на человека (чтобы выше 500 ppm не поднималось содержание). Так как воздух при этом будет сухой, ставят увлажнители на 100 литров в сутки. Особо впечатлительных разводят.
+
avatar
  • rexen
  • 28 октября 2022, 21:48
+1
Санитарный врач О. В. ЕлисеееаК обоснованию предельно допустимой концентрации двуокиси углерода в воздухе жилых и общественных зданий Гигиена и санитария 1964:
Полученные данные позволяют заключить, что концентрация СО2 в воздухе жилых и общественных зданий не должна превышать 0,1% независимо от источника, среднее же содержание СО2 не должно превышать 0,05 %.
оригиналы страниц
— так что я бы поостерёгся сваливать низкие нормы на вентиляционщиков. В СССР не было нынешнего американского лоббизма. Да и вообще, мода спихивать некие события на глобальный заговор гипотетически имеет хоть какое-то основание при наличии монополии или картеля в отрасли.
+
avatar
  • sim31r
  • 29 октября 2022, 02:17
0
Очень интересное исследование. Цифры такие же получены, как и у американцев, изменения какие-то обнаружены при 0.5%, а это 5000 ppm. Так что судя по исследованиям, ничего страшного при 5000 ppm не происходит, можно не заморачиваться.

Сейчас исследования проще проводят, как я понимаю собирают 100 человек в помещении без вентиляции и смотрят уровень стресса. Естественно люди в стрессе от тесноты, а это списывают на уровень СО2 в 0.1%

Или еще проще, на выдохе может быть 5-10% СО2, воздух в легких на вдохе перемешивается с остатками старого. На этом фоне не так важно, сколько СО2 в воздухе (0.04 или или 0.08%), так как в легких все равно будет около 5% в любой момент времени. Пловцы или дайверы что на несколько минут дыхание задерживают тоже не страдают, даже наоборот, у них легкие укрепляются.
+
avatar
  • rexen
  • 29 октября 2022, 13:54
0
Да, я не ожидал найти исследование аж 1964 года. На него некоторые современные статьи ссылаются. Хотел просто найти что-то из норм СССР — чтобы не было подозрений на заговор капиталистов-вентиляционщиков. Тем не менее, исследование хоть и тщательное, но выборка маловата, да и долговременных последствий не проверяли. Но это шестидесятые годы — тогда все спокойно курили в ресторанах и самолётах, да и вообще не было нынешнего пиетета к экологии и здоровью. Да и инструментальных средств было мало. Так что, наверное, нужно какое-то метаисследование, но тратить на него время мне лень. Я всё-таки считаю, что ощущение духоты, начинающееся по свидетельству многих при переползании за 1000ppm, уж точно — не индикатор здоровой атмосферы. Да, возможно степень вреда преувеличена, но это надо копать исследования.
+
avatar
  • sim31r
  • 29 октября 2022, 16:32
0
При отсутствии вентиляции причины могут быть другие, снижение количества отрицательных ионов, например. После грозы и на улице дышится легче, много отрицательных ионов. И Люстра Чижевского раньше популярна была, типа с ней тоже легче дышится. А в помещении положительные ионы образуются и мешают дышать.
Может влажность повышается, у меня после отключения кондиционера такое, компрессор отключается, вентилятор работает, он испаряет воду с лотка и возникает ощущение духоты.
Может посторонние запахи, мебель выделяет формальдегид, новая мебель в закрытом помещении может так навонять, что утром здоровый человек начинает задыхаться и становится астматиком. Сам человек выделяет разное, пары ацетона, разные феромоны.
СО2 хороший индикатор присутствия человека в помещении, а если уровень выше 1000, значит вентиляция слабая и кроме СО2 может быть что угодно, формальдегиды и радон.
youtu.be/VfH12AM2fD8
+
avatar
  • rexen
  • 29 октября 2022, 22:34
0
Ну проблемы с радоном только в определённых местах — со специфической геологией. И легко решаемы на этапе строительства дома. Формальдегиды тоже можно обойти, подбирая наполнение/обстановку жилья.
А вот с аэроионами исследований — кот наплакал. Даже к опытам Чижевского читал критику, что они не выдерживают нынешних критериев научности и значимости. Ну и некоторые ударяются в другую крайность — на изба.су читал, что отрицательный заряд в длинных воздуховодах, а уж лопатками вентиляторов — тем более — снимается, т.е. приточка якобы обязана быть пассивной и максимально короткой. Впрочем, последнее полезно хотя бы из соображений гигиены (в трубах всегда садится пыль)
+
avatar
  • sim31r
  • 29 октября 2022, 22:54
0
В длинных воздуховодах еще есть бактерия легионелла, которая периодические убивает людей. Пыль плюс влага отличная среда для размножения бактерий.
Неправильно работающая Люстра Чижеского может озон создавать, что очень опасно. Да и грязный ионизированный воздух тоже может разные химические реакции давать, сложный вопрос.
+
avatar
0
Самовнушение же. Без датчика 1500 было всем нормально
Не сказал бы. Я всегда чувствовал, что душно, но без датчика объяснить это другим было сложнее. Особенно бороться с мифом, что холодный воздух не бывает душным, и пытаться открыть окно при включенном кондиционере — без датчика это практически анрил.

На предыдущей работе одна девушка всерьез считала, что вода из кондиционера капать не должна, это некий «аварийный» слив, и что если оттуда она сильно капает, что-то не так. При этом аргументировала она свои слова тем, что несколько лет до этого продавала кондиционеры. А какого-то человека из прошлого, кто открывал окно при кондиционере считала ненормальным.

Другое дело что могут быть другие загрязнители, ацетоны, эфиры всевозможны от людей, пыль, формальдегид от мебели, положительная ионизация (дышать трудно, голова тяжелая от него).
Может и так, до измерения таких параметров я не доходил ) А может еще дело привычки — дома у меня редко бывает выше 1000, т.к. обычно (даже зимой) чуть открыто окно и оттуда приходит свежий воздух. А если привыкнуть жить при 2500 ppm, но 5К восприниматься будут иначе.

Излишняя проветриваемость зимой может дать осушение воздуха и вирусы в легких, что еще хуже.
Это вопрос отдельный, поэтому наиболее эффективны рекуперативные системы вентиляции, где выходящий воздух отдает свое тепло и влажность входящему. Правда такие штуки достаточно дорогие и редкие.
+
avatar
  • sim31r
  • 12 июля 2022, 10:41
0
А какого-то человека из прошлого, кто открывал окно при кондиционере считала ненормальным.
У нас в офисе воздушное отопление и охлаждение. Летом охлаждение через приток холодного воздуха. И все равно девушки открывают окно когда жарко, в офисе +21, на улице +30 и они типа такие, вот для проветривания откроем )) Действие интуитивно понятное, но совершенно бесполезное.
Если вентиляция нормально работает, окна открывать незачем.
+
avatar
0
Я использую для выращивания грибов, например. Показатель СО2 очень важно.
+
avatar
  • sim31r
  • 11 июля 2022, 22:20
0
Кстати в теплицах тоже СО2 добавляют в воздух.
+
avatar
0
И чем он лучше mh-z19b? Как по мне переплаты не стоит.
очень хрупкая оптическая система
… с 4000ppm до 10000ppm. Датчики с интервалами измерения 2сек и 5сек увидят это изменение меньше чем за 2 минуты.
Ни скорости, ни супер точности.
Но есть полезный i2c вместо кучи проводов с uart.
+
avatar
+1
И чем он лучше mh-z19b?
а выдумаете у mh-z19b она не хрупкая? то что китайцы про это не пишут, не ознаает что этого нет.
насамом деле у SCD30 дела не так плохи, силушку там надо хрошо приложить, чтоб все поплыло. просто Sensirion подстраховывается.

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

в реальнх условиях таких резких изменений аж на 6000ppm сразу не бывает, а на малых скачках CO2, время детектироания у SCD30 уменьшается до 10сек.
+
avatar
0
у z19b перекалибровка от балды. Если это устраивает — да, можно не переплачивать. Но бывают случаи, когда нужна точность.
+
avatar
0
Сам Z19B не щупал, но читал про культуру производства и уровень НИКОР у гражданских китайцев… 100% хуже чем в Швейцарии.

Думаю что алгоритм самокалибровки у SCD30 наамного совершеннее чем у Z19B.
+
avatar
0
а я щупал z19 и где-то на муське писал длиииинный комментарий. Так вот, раз в сутки на графиках видна ступенька. Бывает и на 100 ppm. А если не проветривать несколько дней, то может быть и больше. Так что z19 годится чтобы поиграться и примерно оценить насколько все плохо.
+
avatar
0
Калибровка каждый день (у S8 раз в 15 дней) по минимальному. Отключается ABC и калибруется нормально вручную через контроллер.
+
avatar
0
У SCD30 отключать ABC (он же ASC) не надо. FRC будет действовать до следующей коррекции ASC. А вот если такого поведения не хочешь, то да ASC придётся отключить.
+
avatar
0
Спасибо, понял. Что такое я и предполагал. SCD30 в этом плане умнее.
+
avatar
  • smirta
  • 07 июля 2022, 10:32
+1
Двухлучевой пишется слитно…
+
avatar
+1
Исправил, спасибо.
+
avatar
  • BARS_
  • 07 июля 2022, 10:51
0
Неплохо было хоть какое-то сравнение с другими датчиками сделать, например с mh-z19. А то так это сферический конь в вакууме. Тем более для домашнего применения диапазон аж до 40000ppm не нужен. Да и ниже 400ppm тоже.
+
avatar
0
а ниже 400 и не бывает. По крайней мере у «датчиков». У «попугаеметров» конечно может быть и «минус 199».
+
avatar
  • sim31r
  • 12 июля 2022, 10:28
0
Если выдохнуть на датчик, то как-раз 40 000 ppm и покажет. Обычный датчики зашкаливают минут на 5, пока не проветрятся. Если задержать дыхание можно и 100 000 ppm создать. Так что вполне может пригодится.
+
avatar
  • BARS_
  • 12 июля 2022, 10:37
0
Ну покажет, и что? Тот же mh-z19 тоже покажет максимум и где-то через 1-2 минуты придет в норму. Просто какой смысл данного действия?)
+
avatar
  • mkd123
  • 07 июля 2022, 10:53
+1
Насколько я помню даже на улице уровня в 400 не добиться… нет?
+
avatar
  • BARS_
  • 07 июля 2022, 10:56
0
Ну вроде на улице как раз около 400 и будет. А вот ниже точно нет.
+
avatar
-1
Ща ввиду ковида бывает слегка ниже 400, ранее — нет…
+
avatar
-1
Зависит от калибровки и что брать за 0. В мире уровень СО2 только растет.
+
avatar
  • BARS_
  • 07 июля 2022, 11:07
0
Ну так тот же mh-z19 как раз по улице и калибруется, показывая после калибровки 400ppm.
+
avatar
0
Насколько я помню даже на улице уровня в 400 не добиться… нет?
концентрация свежего воздуха, в нормальных условиях, колеблется в диапазоне 350ppm...480ppm.
+
avatar
  • sim31r
  • 11 июля 2022, 11:01
-1
Зачем вам ниже 400? Для химических реакций каких-то типа отвержения жидкого стекла?
У вас в легких на выдохе 50 000 PPM, на этом фоне концентрация СО2 во вдыхаемом воздухе не имеет значения.
+
avatar
-1
Для галочки, что чистый воздух МОЖЕТ быть ниже 400.

Да и машине новый фильтр не нужен, зачем? На выходе же чистый co2.
+
avatar
  • sim31r
  • 11 июля 2022, 18:28
0
Нет, азот в большей степени, инертный газ.
+
avatar
  • qzsev
  • 12 июля 2022, 11:07
+1
На выходе же чистый co2
Никак нет. Как уже сказали, на выходе в основном — ззот. Как-никак, а он на входе 80%, на практике в реакциях не участвует. Там еще окислы азота разные, пар водяный, там и прочие продукты неполного сгорания. И да, там ВСЕГДА есть и кислород, блок управления заботится об етом.

азот… инертный газ
Никак не инертный он, просто В ТЕХ реакциях не участвует. В основном.
+
avatar
0
спасибо не знал.

И да, там ВСЕГДА есть и кислород, блок управления заботится об етом.
зачем? для нормальной работы катализатора?
+
avatar
  • qzsev
  • 13 июля 2022, 01:58
0
зачем? для нормальной работы катализатора?
Ну, не знааю. Может и затем. Но — после катализатора тоже остаток кислорда есть.
Кстати, точно такая же функция лямбда зонда. Измерять концентрацию кислорода. И во всех современных авто есть два зонда — до и после катализатора. И с их помощи блок управления вычисляет, сколько топлива надо. И (почти) всегда ДВГ работает на обедненной смеси, т.е. топливо меньше, чем в стехиометрической. Как следствие — избыток кислорода.
+
avatar
0
да, про это знаю. даже менял оба.
+
avatar
  • usa303
  • 07 июля 2022, 11:26
0
А что на последнем скриншоте? Это какой-то веб дашборд предполагается?
+
avatar
0
Одна из многочисленных прошивок с закрытым кодом для esp8266.
+
avatar
+5
Одна из многочисленных прошивок с закрытым кодом для esp8266.
у вас теперь есть библиотека, вы можете написать свою прошивку и выложить ее в откртый доступ, а мы вам спасибо скажем.
+
avatar
+4
А что на последнем скриншоте? Это какой-то веб дашборд предполагается?
будет что-то типа такого, дайте время.
+
avatar
  • batal
  • 07 июля 2022, 18:16
+1
Обзор годный, лайк прожал. Но есть пара вопросов…

А на чем основано утверждение «лучший из доступных CO2 сенсоров»?

Чем он лучше «народного» S8?

Про автокалиброку, 40ppm и 8 дней я вкурсе. Но судя по написанному в статье у SCD30 тоже показания уплывают. Уплывают кстати как часто и насколько? (про S8 такие данные есть)

Ну и без банального сравнения (хотя бы в месяц в непроветриваемом\проветриваемом помещении) с S8 утверждения про «лучший» выглядят несколько «громкими».

З.Ы. SCD30 в руках не держал, а вот несколько самоделок на S8 (штук так 5-7) есть, + оба Xiaomi + с десяток MH-Z19 в ящике.
З.Ы.Ы. У некоторых моих самоделок на китайском S8 правило в смещение на 40ppm не работает. Через 8 дней легко показания уплывают на 100+. Есть предположение что на али S8 таки несколько «поддельные» или бракованные. По этому сравнивать SCD30 лучше таки с оригинальным S8 купленном не у китайцев.
З.Ы.Ы.Ы. Самоделки на S8 работают 24\7 уже более 3 лет в разных квартирах. Щас вот (чуть больше года) рядом с некоторыми еще и Тионовские девайсы на CM1108 (про сравнение SC30 с ним даже спрашивать не буду...) У меня достаточно данных для анализа поведения в различных условиях. Надо бы SCD30 тоже прикупить и повесить рядом.
+
avatar
+1
Ну как бы потому что:
— SCD30 двухлучевой, а S8 с одним
— у SCD30 куча компенсации, у S8 ничего нет.

Это все исходя, что оба сенсора сделаны одно фирмой.
+
avatar
0
Кстати $30 за SCD30 — это дёшево. Официально он вроде $60. Как китайцу удаётся продать за полцены я без понятия.

Что вы скажете о MH-Z19? Как он по сравнению с S8? Как вам CM1108?
+
avatar
+1
О, мне тоже на днях такой же пришёл.
Вместе с ним пришли и менее лучшие SHT40, SHT30 и BMP280. Углекислый газ они не измеряют, но пересекаются с SCD30 по измерениям температуры и влажности.
Так вот, с ходу из коробки у меня эти датчики сошлись друг с другом и термопарой мультиметра, а SCD заметно из них выбивается что смущает. Стоит всё на одной макетке в соседних дырках, нагревательных элементов нет.

Температура выглядит примерно так (сами плавающие показания это ок, я экспериментировал), SCD30 показывает стабильно на градус больше. Влажность же стабильно на 5% выше SHT40.



Это я конечно могу починить программно, но меня всё-равно смущают такое сильное отклонения от консенсуса. А CO2 и не откалибровать особо, не в лес же датчик нести выгуливать.
+
avatar
+2
У меня такой датчик тоже завышал температуру, отнесся к этому философски.
Кажется по даташиту поправку по температуре можно загнать в датчик.
Относительно повторяемости по СО2 я сравнил его с заводским Autopilot APCEM2, так вот, после 6 часов работы сенсириона показания один в один с заводским. Потому можно доверять.
+
avatar
0
Это наверное автокалибровка сработала.
Я тоже в принципе SCD30 брал не для температуры и если она врёт не так страшно, но он ведь эту температуру использует и в компенсации расчётов CO2. Не очевидно, будет ли заданный оффсет там тоже учитываться.
+
avatar
0
Мой тоже врёт где-то на градус. А вы случайно термопарой или пирометром не меряли Т самой плалы SCD30 возле сенсора?
+
avatar
  • sim31r
  • 12 июля 2022, 10:37
0
Чтобы калибровать по СО2 можно воздух из леса принести, калибровочная смесь.
Температура похоже что не на константу завышена, а разница растет с ростом температуры, то есть дельта = к*T, и при некоторой температуре может быть нулевой.
+
avatar
0
мне кажется проще датчик в лес принести.
+
avatar
0
А есть готовые измерители на этом датчике?
Или только самому делать?
+
avatar
0
Был вроде у xiaomi CGS1 раньше был SCD30, сейчас там Senseair S8. Смысла им нет дороже ставить, тот кто понимает — соберет дешевле сам.
Либо искать кто сделает готовое на заказ.
+
avatar
  • BARS_
  • 08 июля 2022, 11:46
+2
Статья, по сути, ни о чем (ну точнее как, работа проделана хорошая, но выводов по сути нет). Утверждения про «лучший датчик» ни на чем не основано, т.к. наличие кучи компенсаций и калибровок совсем не аргумент. Кто вам сказал, что они корректно работают? По сути описан сферический конь в вакууме. Ну датчик, ну измеряет, ну что-то там компенсирует. А лучше это или хуже более дешевых оценить невозможно. Как минимум в статье не хватает прогона на длительном участке времени (хотя бы неделя) и сравнения с несколькими другими датчиками. Причем сравнение именно на этом прогоне.

Я не спорю, может этот датчик и лучше остальных, но насколько он лучше и в чем совершенно не раскрыто. Может вся его «лучшесть» не несет смысла в бытовом применении, а может несет, но выигрыш от нее настолько мал, что более высокая цена ее напрочь убивает.
+
avatar
0
Сравнить не с чем, ничего нет. На пару постов выше electronus сравнивал с прибором Autopilot APCEM2.

SCD30, мне порекомендовали тут на муське пару лет назад. После я ещё отзывы читал. Все отмечали хорошую точность, высокую стабильность и кучность результатов. Из доступных он выглядит самым привлекательным. Тогда его не купил, жаба задушила $50 отдавать. Щас он подешевел и деньги лишние появились.
+
avatar
0
Покупал на али похожие датчики по 300 руб два года назад. 2 шт. Проверял в хвост и в гриву, работают отлично. Сейчас такой халявы конечно нет…
+
avatar
0
Я помню эту халяву на муське. Они бу, поэтому их так дёшево и отдавали. Причём прошивка в них старая, в новых есть поддержка i2c.

Говорят, что они показывают попугаи, те то что они выводят не соответствует реальным значениям co2.

Вы их сравнивали хотя-бы с MH-Z19?
+
avatar
0
У меня с i2c. Сравнивал, конечно не с калибрами а с бытовыми приборами, все рубль в рубль. Для контроля проветривания самое то. К ХА цепляются. Жалею что не взял десяток.
+
avatar
0
а как вам удалось запустить его на i2c? читал люди соединяли/коротили все пины по инструкции, вешали подтягивающие резисторы, а в ответ тишина.
+
avatar
  • Blex
  • 08 июля 2022, 19:20
0
Ну не то чтобы нет, сейчас там продается модуль с распаянным двухлучевым СМ1108. За 510р.
+
avatar
0
А можно ссылку, а то лень искать?
+
avatar
  • Blex
  • 09 июля 2022, 07:49
+1
+
avatar
0
спасибо. дорого. ко мне платная доставка по цене сенсора. проще докинуть $10 и взять проверенный S8 с отличной документацией.
+
avatar
+1
SCD30 — отличный датчик (в отличие от MH-Z19, про который я уже высказывался), но и у него есть недостатки:
— работает медленнее всех конкурентов,
— при опросе раз в 30 секунд примерно каждый десятый ответ — NA,
— требует тип float, что не для всех микроконтроллеров приемлимо,
— склонен к завышению показаний на 100-150ppm, в сравнении с другими, в том числе двухкамерными сенсорами,
— врет по температуре (это можно скомпенсировать), и по влажности (это скомпенсировать не получится).
+
avatar
+2
работает медленнее всех конкурентов
На какой частоте у вас работает датчик? 2сек...5сек или больше?

при опросе раз в 30 секунд примерно каждый десятый ответ — NA
А вы перед чтением measurement ready status проверяете?
+
avatar
  • gjf
  • 12 июля 2022, 17:45
+1
У сенсора предусмотренно два типа калибровки: ASC (automatic self-calibration) и FRC (forced re-calibration). Оба метода дают одинаковую точность измерения. Главное отличие в том, что для FRC нужен газ с известной концентраций CO2, а ASC находит эталонное значение CO2 сам.
Это как? У датчика идеально линейная зависимость отклика от концентрации, исходящая из физического нуля?
Тогда зачем
вводим коррекцию температуры
и вообще все танцы со стабилизацией и поправками, если всё точно по самокалибровке?

Из опыта знаю, что основная проблема всех газоанализаторов: это правильная калибровка и регулярная поверка дрейфа этой самой калибровки. Обрадовался, что наконец-то увидел двулучевой нормальный датчик СО2 на ИК — и тут такая шляпа.
+
avatar
0
Обрадовался, что наконец-то увидел двулучевой нормальный датчик СО2 на ИК — и тут такая шляпа.
за что купил за то и продаю.

Это как? У датчика идеально линейная зависимость отклика от концентрации, исходящая из физического нуля?
имелось ввиду, что при всех соблюденных условиях ASC и FRC даст точность измерения CO2 ±(30ppm + 3% от ИВ) в диапазоне 400ppm..10000ppm

условия для FRC:
— активировать режим непрерывного измерения с интервалом измерения 2сек..5сек
— поместить сенсор в закрытую среду с известной концентрацией CO2. Самый доступный способ — вынести сенсор на свежий воздух, концентрация которого в нормальных условиях колеблется в диапазоне 350ppm...480ppm.
— убедится, что температура окружающей среды в пределах 0°C..+50°C, на сенсор не светит солнце и не дует ветер.
— после 2-х минут акклиматизации, установить значение FRC равное 400ppm.
для ASC читаем в статье, лень копипастить.
+
avatar
  • gjf
  • 13 июля 2022, 03:48
+1
точность измерения CO2 ±(30ppm + 3% от ИВ) в диапазоне 400ppm..10000ppm
А вот теперь стало совсем интересно.

Есть такая штука: СанПиН 2.1.3685-21. Там говорится, что в воздухе рабочей зоны максимально разово допускается 27000 ppm углекислого газа, а среднесменно значение не должно превышать 9000 ppm. На 9000 (что в диапазон попадает и очень хорошо) ошибка составит 30+3*9000/100=300 ppm или 3,3%. Это на самом деле неплохо.

Калибровка по воздуху — тоже неплохо, и в принципе 400 ppm — самое то, судя по статистике.

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

На точке 400 ppm анализатор даст ошибку 30 + 3*400/100 = 42 ppm или 10,5%. Эта ошибка в итоге «размажется» по всему диапазону и показывать он будет ерунду. Я уже молчу, что 400 — эта самая первая точка измеряемого диапазона, а что будет, если «повезёт» и в воздухе окажется 380 ppm, а не 400? Ведь по характеристикам датчик ниже 400 не измеряет! Это как откалибровать весы, на которых будем сами взвешиваться, стограммовой гирькой.

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

Жаль.
+
avatar
0
А вы батенька трансформатор.

На калибровке в середе газа с концентрацией 400ppm он не даст никакой ошибки, он лишь скопирует ошибку концентрации эталонного газа.

Реализация нормальная, как у всех NDIR датчиков и даже лучше. У вас просто ожидания на счёт датчика не сошлись с действительностью, вот вы и придираетесь.
+
avatar
  • gjf
  • 13 июля 2022, 17:03
+1
Датчик как раз нормальный.
Подход ненормальный.
Касательно ошибки — не буду тут устраивать лекции, откройте руководство по эксплуатации любого приличного анализатора — тот же Honeywell, ThermoFisher или Teledyne — посмотрите, как это дело калибруется. И Вы ошибаетесь: при калибровке будет среднее квадратичное ошибки аттестации и ошибки измерения — так что Ваши ±(30ppm + 3% от ИВ) никуда не денутся, анализатор волшебным образом при калибровке не начинает идеально точно измерять.
Да, я понимаю «что Вы хотите за эту цену» — но покупать игрушку, но называть её анализатор — это не оправдает никакая цена.
+
avatar
-1
Вы правы. Тысяча извинений.
+
avatar
  • ufaman
  • 17 марта 2023, 15:47
0
Купил этот датчик. Есть некоторые проблемы. Например, он категорически отказывается работать на одной шине I2C с другими устройствами. Пересадил его на второй канал I2C — тоже не помогло. Почитал Datasheet. Maximal I2C speed is 100 kHz and the master has to support clock stretching. Clock stretching period in write- and readframes is 12 ms, however, due to internal calibration processes a maximal clock stretching of 150 ms may occur once per day. Поставил эту частоту и датчик заработал. При опросе раз в 5 секунд данные выдает почти без сбоев, но температуру завышает примерно на 1 градус, и данные CO2 довольно сильно «плавают». С усреднением выглядит вполне нормально. Калибровку проводить ещё не пробовал. Слегка разочарован особенностями работы датчика по I2C. Может быть есть смысл перейти на Modbus? Никто не пробовал?
ЗЫ. ESP32 этот самый clock stretching не поддерживает.
+
avatar
  • habl
  • 18 марта 2023, 22:59
0
Тоже купил этот датчик. Нормально запустил на ESP32C3. Продолжаю эксперименты.
+
avatar
  • ufaman
  • 18 марта 2023, 23:12
0
Тоже продолжаю. Куда ж деваться? ) Посадил датчик на Serial2. Полёт нормальный. На I2С датчик отваливался в непредсказуемый момент времени, на Serial2 работает стабильно.

А на ESP32C3 I2C работает нормально на дефолных настройках? Странно…
+
avatar
  • habl
  • 18 марта 2023, 23:30
+1
Использую эту библиотеку github.com/sparkfun/SparkFun_SCD30_Arduino_Library?utm_source=platformio&utm_medium=piohome

Самый первый пример. Датчик на i2c на C3 заводится даже на 250 000кГц. Выше просто не пробовал. Покупал здесь https://aliexpress.ru/item/item/1005004954487213.html
Дополнительная информация
+
avatar
  • ufaman
  • 19 марта 2023, 01:28
0
Ну, заводиться-то он у меня и на 400кГц заводился. Но состояния Ready никогда не выдавал. Соответственно, вис на ожидании готовности данных. На 100кГц данные выдавал, но вис через 5-30 минут на том же ожидании готовности. ESP32 DOIT DEVKIT v1. Причем ни с какими другими i2c модулями проблем отродясь не бывало.
ЗЫ. Библиотеку от SparkFun тоже пробовал. Питание датчика от 3.3В ESP32. Может быть, стоило попробовать подтянуть линии i2c к питанию?
+
avatar
  • habl
  • 19 марта 2023, 16:56
0
Может, питания не хватает? У меня отдельный LDO стоит на его питании. Все-таки там три несколько потребителей.
+
avatar
0
Самый первый пример. Датчик на i2c на C3 заводится даже на 250 000кГц
вы осциллографом смотрели? вангую там просто сработал clock stretching и сенсор затормозил шину до комфортных ему 100кгц.

имхо это даже вредно тк время передачи данных, на ваших 250кГц, будет дольше чем на 100кГц из-за накладных расходов на clock stretching.

пы.сы. по умолчанию в ARDUINO ESP32 clock stretching равен 50msec, те теоретический slave (сенсор) может тормознуть шину аж до 20гц. складывается ощущение, что вы не разобрались с темой и крутите все ручки до которых руки дотянулись.
+
avatar
0
Например, он категорически отказывается работать на одной шине I2C с другими устройствами.
вы какой библиотекой пользуетеь?

ESP32 этот самый clock stretching не поддерживает.
вы ошибаетесь. ARDUINO ESP32 поддерживает clock stretching и в моей библиотеке это реализованно.

При опросе раз в 5 секунд данные выдает почти без сбоев
вы мой обзор точно читали? чтоб опрашивать чаще измените сначала интервала измерения — setMeasurementInterval(). только зачем? датчик то не быстрый. складывается ощущение, что вы не разобрались с темой и крутите все ручки до которых руки дотянулись.

пы.сы у меня уже почти год работает с отключенной ASC и калибровка не сбилась — на улице показывает 400ppm

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.