Общие сведения
Датчик качества воздуха CCS811 — датчик, определяющий значение eCO2 (эквивалент значения концентрации углекислого газа), значение летучих органических веществ в воздухе (TVOC), а так же температуру.
Характеристики
- Диапазон измеряемой концентрации eCO2: 400…8192 ppm;
- Диапазон измеряемых величин TVOC: 0…1187 ppb;
- Диапазон рабочих температур: -40…+85 °C;
- Интерфейс: I2C(400 кГц);
- Напряжение питания: 1,8…3,3 В;
- Период опроса: 0,25/ 1/10/ 60 с;
- Потребляемая мощность (1,8 В): 0,034 мВт (Mode 0); 46 мВт (Mode 1 и 4); 7 мВт (Mode 2); 1,2 мВт (Mode 3);
- Размер: 14мм х 20мм
Подключение
Подключается датчик к микроконтроллеру по шине I2C используя 5 контактов VCC, GNG, SCL, SDA, WAK.
Важно заметить, что у датчика существует некоторый "первичный период использования" (48 часов), в течении которого он должен работать бесперебойно. Этот период считается калибровочным. После этого датчик переходит в рабочий режим. В этом режиме для получения реальных показаний датчику требуется, в среднем, 20 минут с момента подачи на него питания.
Питание
Входное напряжение питания 3,3 В постоянного тока, подаётся на выводы VCC и GND модуля.
Подробнее о датчике
Датчик состоит из 2 частей: встроенный микроконтроллер и датчик MOX (Metal Oxide Semiconductor). Микроконтроллер обеспечивает опрос датчика, передачу данных по шине I2C и управление питанием. Датчик поддерживает несколько режимов питания. Сверхнизкое энергопотребление датчика позволяет использовать его в системах с батарейным питанием.
Данный датчик может использоваться в системах вентиляции для определения уровня TVOC и eCO2 и автоматического проветривания, а так же для оценки качества воздуха в помещении в целом.
Для работы с датчиком рекомендуем вам воспользоваться библиотекой Adafruit_CCS811.
Примеры
Вывод значений eCO2, TVOC и температура в монитор порта.
Таблица подключения выводов датчика:
- VDD - подключается к выводу 3,3V Arduino UNO.
- GND - подключается к выводу GND Arduino UNO.
- SCL - подключается к линии тактирования SCL шины I2C или к выводу A5 Arduino UNO
- SDA - подключается к линии данных SDA шины I2C или к выводу A4 Arduino UNO.
- WAK - подключается параллельно выводу GND
- INT - не используется.
- RST - не используется.
- ADD - не используется.
На плате Arduino UNO напряжение на выходах SCL и SDA равно 5В. Напряжение на входах SCL и SDA датчика CCS811 не должно превышать 3,6В. В связи с этим подключение необходимо производить через делитель напряжения.
Для делителя напряжения Вам понадобятся резисторы номиналом 470 Ом и 1 кОм. Соберите Вашу схему так, как показано на схеме:
После того, как Вы собрали схему, загрузите скетч указанный ниже.
// Подключаем библиотеку #include "Adafruit_CCS811.h" // По умолчанию адрес датчика в библиотеке 0x5A Adafruit_CCS811 ccs; void setup() { Serial.begin(9600); Serial.println("CCS811 test"); if (!ccs.begin()) { Serial.println("Failed to start sensor! Please check your wiring."); // Если при инициализации на старте датчик не найден, while (1); // в мониторе порта вы получите уведомление об этом. } //calibrate temperature sensor while (!ccs.available()); float temp = ccs.calculateTemperature(); ccs.setTempOffset(temp - 25.0); } void loop() { if (ccs.available()) { float temp = ccs.calculateTemperature(); if (!ccs.readData()) { Serial.print("eCO2: "); // Значение уровня eCO2 Serial.print(ccs.geteCO2()); Serial.print("ppm, TVOC: "); // Значение уровня TVOC Serial.print(ccs.getTVOC()); Serial.print("ppb Temp:"); // Температура Serial.println(temp); } else { Serial.println("ERROR!"); while (1); } } delay(500); }
Комплектация
- 1х датчик качества воздуха CCS811;
- 1х Соединитель типа "ПАПА-ПАПА";
Ссылки
- Библиотека Adafruit_CCS811;
- DataSheet;