Перейти к содержанию

Почему SCD41 показывает завышенную температуру?

Обновлено Редакция GAW

Внутри SCD4x стоит датчик температуры и влажности, который нужен прежде всего для компенсации измерения CO₂. Он находится в одном корпусе с инфракрасным излучателем и меряет температуру воздуха у себя, а не в комнате. Sensirion в разделе 3.7.1 даташита перечисляет, от чего зависит разница: режим измерений, самонагрев соседних деталей, температура окружения и поток воздуха. Заводское смещение — 4 °C, и в готовом устройстве оно почти всегда другое.

Как определить и задать смещение

  1. Собрать устройство в корпусе и включить его в том режиме, в котором оно будет работать, — например, периодические измерения раз в 5 с.
  2. Дождаться теплового равновесия и поставить рядом эталонный термометр.
  3. Посчитать новое смещение по формуле (1) даташита:
Toffset,new=TSCD4x−Tref+Toffset,prev.T_\text{offset,new} = T_\text{SCD4x} - T_\text{ref} + T_\text{offset,prev}.
  1. Остановить измерения (0x3F86), записать смещение командой 0x241D, сохранить командой 0x3615 и снова запустить измерения.

Слово для команды: смещение · (2¹⁶ − 1) / 175, а после слова — CRC-8 с полиномом 0x31 и начальным значением 0xFF, её проверит калькулятор CRC.

ВеличинаПример (наш расчёт)
Показание SCD4127,5 °C
Эталонный термометр24,0 °C
Текущее смещение (get_temperature_offset)4,0 °C
Новое смещение27,5 − 24,0 + 4,0 = 7,5 °C
Слово для 0x241D7,5 · 65 535 / 175 ≈ 2809 = 0x0AF9

Sensirion рекомендует смещения от 0 до 20 °C. Если получилось больше, датчик стоит слишком близко к источнику тепла, и лучше поправить конструкцию.

Размещение

По руководству Sensirion по размещению, главные источники тепла — процессор, дисплей, модуль Wi-Fi, стабилизаторы и батареи. Постоянный нагрев смещение компенсирует, а переменный — например, когда Wi-Fi то передаёт, то молчит, — почти нет. Датчик ставят в самой холодной части корпуса, обычно внизу, подальше от греющихся деталей и с хорошим доступом воздуха. Расхождение показаний разных датчиков влажности по той же причине разобрано в ответе «Почему датчики влажности показывают по-разному», а остальные настройки SCD4x — в статье «Датчики газа».

Похожие вопросы

Влияет ли завышенная температура на измерение CO₂?

Смещение, которое вы задаёте командой, на точность CO₂ не влияет — так сказано в разделе 3.7 даташита. Но сам нагрев влияет: Sensirion в руководстве по размещению отмечает, что сигналы температуры и влажности нужны датчику для внутренней компенсации CO₂, поэтому развязывать SCD4x от источников тепла стоит в любом случае.

Почему вместе с температурой врёт и влажность?

Относительная влажность зависит от температуры воздуха у чувствительного элемента: нагретый воздух при том же содержании воды суше. Поэтому смещение температуры исправляет и RH — даташит говорит об улучшении обоих сигналов.

Сохранится ли смещение после выключения?

Только после команды persist_settings (0x3615): она записывает настройки в EEPROM и выполняется до 800 мс. Без неё после перезапуска вернутся заводские 4 °C. Злоупотреблять командой не стоит: по разделу 3.10.1 EEPROM гарантированно выдерживает не меньше 2000 записей, поэтому записывайте один раз после калибровки, а не при каждом запуске.

Источники

  1. Sensirion. SCD4x — Breaking the size barrier in optical CO2 sensing: Datasheet, Version 1.7, April 2025 — разд. 1.2–1.3: на характеристики RH и T влияют размещение, самонагрев, режим работы и окружение, для паспортных значений смещение температуры должно быть задано правильно; точность T ±0,8 °C при 15–35 °C; разд. 3.7: смещение не влияет на точность CO₂, менять настройки можно только в режиме ожидания, для сохранения после выключения — persist_settings; разд. 3.7.1: смещение зависит от режима измерений, самонагрева соседних деталей, температуры и потока воздуха, его определяют в готовом устройстве в тепловом равновесии; по умолчанию 4 °C; рекомендуемые значения 0–20 °C; формула (1): T_offset_new = T_SCD4x − T_ref + T_offset_prev; команда 0x241D, слово = T_offset · (2¹⁶ − 1) / 175, пример 5,4 °C → 0x07E6, CRC 0x48; табл. 9: persist_settings 0x3615, 800 мс; разд. 3.10.1: по умолчанию настройки хранятся только в ОЗУ, persist_settings записывает их в EEPROM, которая гарантированно выдерживает не меньше 2000 циклов записи
  2. Sensirion. Design-in Guide SCD4x CO2 Sensor, Version 1.1, March 2022 — разд. 1.2: источники тепла рядом с SCD4x сильно влияют на измеряемую температуру — процессор, дисплей, модуль Wi-Fi, стабилизаторы, батареи; постоянный нагрев компенсирует смещение, переменный — сложно; датчик ставят в самой холодной части устройства, обычно внизу, подальше от греющихся деталей; сигналы RH и T нужны и для внутренней компенсации CO₂

Нашли ошибку?