Почему SCD41 показывает завышенную температуру?
Обновлено Редакция GAW
Внутри SCD4x стоит датчик температуры и влажности, который нужен прежде всего для компенсации измерения CO₂. Он находится в одном корпусе с инфракрасным излучателем и меряет температуру воздуха у себя, а не в комнате. Sensirion в разделе 3.7.1 даташита перечисляет, от чего зависит разница: режим измерений, самонагрев соседних деталей, температура окружения и поток воздуха. Заводское смещение — 4 °C, и в готовом устройстве оно почти всегда другое.
Как определить и задать смещение
- Собрать устройство в корпусе и включить его в том режиме, в котором оно будет работать, — например, периодические измерения раз в 5 с.
- Дождаться теплового равновесия и поставить рядом эталонный термометр.
- Посчитать новое смещение по формуле (1) даташита:
- Остановить измерения (0x3F86), записать смещение командой 0x241D, сохранить командой 0x3615 и снова запустить измерения.
Слово для команды: смещение · (2¹⁶ − 1) / 175, а после слова — CRC-8 с полиномом 0x31 и начальным значением 0xFF, её проверит калькулятор CRC.
| Величина | Пример (наш расчёт) |
|---|---|
| Показание SCD41 | 27,5 °C |
| Эталонный термометр | 24,0 °C |
| Текущее смещение (get_temperature_offset) | 4,0 °C |
| Новое смещение | 27,5 − 24,0 + 4,0 = 7,5 °C |
| Слово для 0x241D | 7,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 записей, поэтому записывайте один раз после калибровки, а не при каждом запуске.
Источники
- 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 циклов записи
- Sensirion. Design-in Guide SCD4x CO2 Sensor, Version 1.1, March 2022 — разд. 1.2: источники тепла рядом с SCD4x сильно влияют на измеряемую температуру — процессор, дисплей, модуль Wi-Fi, стабилизаторы, батареи; постоянный нагрев компенсирует смещение, переменный — сложно; датчик ставят в самой холодной части устройства, обычно внизу, подальше от греющихся деталей; сигналы RH и T нужны и для внутренней компенсации CO₂
Нашли ошибку?
Смотрите также
- Датчики газа MQ, CO и CO₂MQ-2, MQ-135, MQ-7B, ZE07-CO, MH-Z19C, SCD41, SGP41: принципы, нагрев, калибровка, протоколы
- Чем SCD40 отличается от SCD41?SCD41 точнее, с диапазоном до 5000 ppm и однократным режимом для батарейных устройств
- Датчики влажности SHT3x, HDC1080, HDC2080, BME280Точность, адреса, питание, отклик, дрейф, нагреватель, пересчёт и размещение
- Почему два датчика влажности показывают разную влажность?Погрешности складываются, а относительная влажность зависит от температуры датчика
- Калькулятор CRCCRC-8, CRC-16, CRC-32, Modbus, блок CRC STM32, код на C