Как подключить датчик CCS811 к Arduino

Сегодня познакомимся с датчиком, который работает как настоящая лаборатория на чипе — CCS811. Это не просто датчик газа, а полноценный микроконтроллер с МЭМС-сенсором, который сам вычисляет эквивалент углекислого газа (eCO₂) и общую концентрацию летучих органических соединений (TVOC). Применяется в системах вентиляции, в умных очистителях воздуха и при мониторинге воздуха в офисе/классе.

Ардуино датчик CCS811 характеристики, распиновка

Датчик воздуха CCS811 распиновка, характеристики
Датчик воздуха CCS811 распиновка, характеристики

Датчик нагревает чувствительный слой до определённой температуры и измеряет изменение сопротивления при контакте с молекулами газов. По этим данным внутренний процессор рассчитывает eCO₂ (эквивалент CO₂) — от 400 до 8192 ppm и TVOC (общие летучие органические соединения) — от 0 до 1187 ppb. Датчик чувствителен к силиконам, спиртам, уксусу (это не дефект сенсора, так задумано).

Характеристики датчика качества воздуха CCS811 (datasheet)

  • Напряжение питания: 1.8 – 3.6 V (обычно 3.3V)
  • Ток потребления: ~20 мА (активный), ~5 мА (ожидание)
  • Интерфейс: I²C (адрес 0x5A или 0x5B)
  • Диапазон eCO₂: 400 – 8192 ppm
  • Диапазон TVOC: 0 – 1187 ppb
  • Время прогрева: 48 часов (полная стабилизация)
  • Режимы работы: 1 с / 10 с / 60 с / 250 м
  • Компенсация: температура и влажность
  • Размер: 2.7×4.0×1.7 мм (чип)

Подключение датчика CCS811 к Arduino Uno

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • сенсор качества воздуха CCS811
  • провода «папа-мама», «папа-папа»
Подключение датчика CCS811 к Arduino
Подключение датчика качества воздуха CCS811 к Arduino

Схема подключения датчика качества воздуха CCS811:

  • VCC → 3.3V Arduino
  • GND → GND Arduino
  • SDA → A4 Arduino
  • SCL → A5 Arduino

Сенсор CCS811 не измеряет настоящий CO₂ (как инфракрасные датчики), а вычисляет его на основе набора газов, типичных для выдыхаемого воздуха и бытовой химии. Для большинства DIY-проектов этого достаточно. В первые 20 минут после включения датчик выдаёт завышенные значения. Через 48 часов непрерывной работы он стабилизируется. Не паникуйте, если в первый час показывает 2000 ppm — это норма.

Скетч для датчика качества воздуха CCS811 Ардуино

#include "Wire.h"
#include "Adafruit_CCS811.h"

Adafruit_CCS811 ccs;

void setup() {
  Serial.begin(9600);
  Serial.println("CCS811 тест");
  
  if (!ccs.begin()) {
    Serial.println("Ошибка инициализации CCS811!");
    while (1);
  }
  
  // Датчику нужно время на прогрев
  Serial.println("Датчик готов. Первые 20 минут - нестабильные данные.");
  
  // Установка режима измерения: 1 секунда
  ccs.setDriveMode(CCS811_DRIVE_MODE_1SEC);
}

void loop() {
  if (ccs.available()) {
    if (!ccs.readData()) {
      float eCO2 = ccs.geteCO2();
      float TVOC = ccs.getTVOC();
      
      Serial.print("eCO₂: ");
      Serial.print(eCO2);
      Serial.print(" ppm\t\tTVOC: ");
      Serial.print(TVOC);
      Serial.println(" ppb");
      
      // Простая индикация качества
      if (eCO2 > 1000) {
        Serial.println("Плохой воздух! Проветрите помещение!");
      } else if (eCO2 > 600) {
        Serial.println("Нормально, но можно и проветрить.");
      } else {
        Serial.println("Воздух свежий.");
      }
    } else {
      Serial.println("Ошибка чтения данных!");
    }
  }
  
  delay(1000); // Опрос раз в секунду
}

Пояснения к коду:

  1. лучшая библиотека для работы с сенсором Adafruit CCS811;
  2. сенсор требует стабильного питания 3.3V (шум искажает показания).

Настройка и решение проблем

  1. Датчик не инициализируется (не находится по I²C)
    Проверьте, что питаете модуль 3.3V (или 5V, если модуль с преобразователем). Запустите сканер I²C (скетч i2c_scanner). Адрес должен быть 0x5A (или 0x5B, если перемычка ADDR замкнута).
  2. Значения скачут или слишком высокие
    Наличие спирта, ацетона рядом (лак для волос, краска, даже пары от силиконовых герметиков). Проветрите помещение, дайте датчику «отдышаться» 10–20 минут.
  3. Ошибка чтения (readData возвращает false)
    Датчик ещё не готов или слишком частая выборка. Вставьте задержку 100–200 мс перед первым чтением. Увеличьте интервал до 1 секунды.
  4. Шумные показания при питании от Arduino
    Поставьте конденсатор 10 мкФ и 0.1 мкФ между VCC и GND у модуля. Питайте датчик от отдельного стабилизатора 3.3V

Заключение. CCS811 — это отличный цифровой «нюх», который сам считает eCO₂ и TVOC. Он не требует сложной математики, легко подключается по I²C и даёт понятные цифры. Датчик контроля качества воздуха идеален для проектов умной вентиляции и контроля качества воздуха. Ищите готовый модуль CCS811 и избегайте покупки «голого» чипа CCS811 без обвязки, если вы не уверены в своих навыках пайки.



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.