Получение данных с CCS811 ========================= CCS811 — датчик качества воздуха. Возвращает два расчётных параметра: - ``eCO2`` — эквивалентная концентрация CO₂ (ppm); - ``TVOC`` — суммарные летучие органические соединения (ppb). .. note:: Это не «настоящий» CO₂ — реального оптического датчика углекислого газа на CCS811 нет. ``eCO2`` рассчитывается из уровня летучих органики (``TVOC``) по эмпирической модели. Цифры реагируют на дыхание и проветривание, но абсолютная точность невысокая. Расположение в кубсате — шина I²C, адрес ``0x5A`` (см. :doc:`coding-setup`). Про пин WAK ----------- У CCS811 есть пин ``WAK`` (wake): пока он ``HIGH`` — датчик в спячке и **не отвечает по I²C**. На большинстве модулей китайских клонов пин ``WAK`` уже припаян/притянут к ``GND``, и сценарий «всегда активен» работает по умолчанию. В нашей сборке так и есть. Если ``i2c_scanner`` не видит ``0x5A``, при том что питание подведено — первое подозрение на ``WAK``: проверьте перемычку/провод от ``WAK`` к ``GND``. Необходимые библиотеки ---------------------- - ``Adafruit CCS811 Library`` (Adafruit); - ``Adafruit BusIO`` (зависимость). Тестовый скетч -------------- .. literalinclude:: ../../../examples/ccs811_read/ccs811_read.ino :language: cpp :caption: examples/ccs811_read/ccs811_read.ino Как запустить ------------- 1. Залейте скетч. 2. Откройте Serial Monitor на скорости **115200**. 3. **Прогрев — обязательно.** Дайте датчику 2-5 минут на стабилизацию, первые значения обычно бесполезны. Что должно быть видно --------------------- Сразу после старта:: CCS811 init (Adafruit lib)... CCS811 OK Warm-up: wait 2-5 minutes eCO2_ppm,TVOC_ppb Дальше — числа дважды в секунду:: 400,0 400,0 410,1 420,3 ... Значения «как в комнате»: .. list-table:: :header-rows: 1 :widths: 20 30 50 * - Параметр - Типично в помещении - Что считать значимым * - ``eCO2`` - 400-1200 ppm - > 1500 — пора проветрить; < 400 — фон * - ``TVOC`` - 0-300 ppb - резкий скачок при дыхании в датчик, парфюме, маркере Про прогрев ----------- - При **первом включении нового датчика** даташит требует до 20 минут на conditioning — пока внутренние значения «устаканятся». - При повседневном включении достаточно 2-5 минут. - Если запустить тест на холодном датчике, первые ~30 секунд значения будут константные (``400, 0``) — это нормально. Если ``CCS811 not found`` ------------------------- - Проверьте, что :doc:`coding-i2c-check` показывает ``0x5A``. - Проверьте перемычку ``WAK → GND`` (см. выше). - Если адрес видится, но Adafruit-библиотека не инициализируется — попробуйте перезапитать датчик (отключить-подключить ``VCC``).