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

В этой статье расскажу как с помощью датчика качества воздуха CCS811 и OLED дисплея сделать небольшой анализатор качества воздуха, в качестве контроллера будем использовать Arduino UNO.

Необходимые детали:
► Контроллер Arduino UNO R3  x 1 шт.
► Провода DuPont, 2,54 мм, 20 см x 1 шт.
► Датчик качества воздуха CCS811, CO2, TVOC x 1 шт. x 1 шт.
► OLED-дисплей 0.96, 128х64, I2C, SSD1306 x 1 шт.

Описание:
В данном примере с помощью контроллера Arduino UNO будем считывать показания с датчика CCS811, полученные данные (CO2 и TVOC) отобразим на на OLED дисплеи, так же будем дублировать данные в последовательный монитор.

Подключение:
Подключаем контакты VCC и GND от датчика CCS811 к контактам 3.3 В и GND на Arduino UNO (не подключайте к 5 В, в противном случаи модуль сгорит). Далее, подключаем контакты SDA и SCL датчика к контактам A4 и A5 соответственно, не забываем подключить вывод WAKE к GND. Теперь осталось подключить OLED дисплей, контакты VCC, GND, SDA, SCL подключаем к контактам 3.3 В, GND, A4 и A5. Для удобства приведу схему подключения.

Установка библиотек:
Для работы с дисплеем и датчиком необходимо установить две библиотеки «SparkFun CCS811 Arduino library» и «u8g2«, скачать их можно в программе, для этого перейдите в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «CCS811», найдите библиотеку «SparkFun CCS811 Arduino library» и установите данную библиотеку.

Затем, в строке поиска вводим «u8g2«, найдите библиотеку «u8g2 by oliver» и установите ее.

Программа:
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в Arduino UNO.

#include "SparkFunCCS811.h"                     // Подключаем библиотеку для работы с CCS811
#include "U8glib.h"                             // Подключаем библиотеку для работы с OLED
 
#define CCS811_ADDR 0x5A                        // Указываем адрес датчика CCS811 устройства I2C, по умолчанию 0x5B, второй адрес устройства 0x5B
CCS811 mySensor(CCS811_ADDR);                   // Создаем объект

U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI  
 
void setup()
{
  Serial.begin(115200);                         // Создаем последовательную связь
  Serial.println("CCS811 Basic Example");       // Отправка сообщения
  Wire.begin();                                 // Инициализация связь I2C
 
// Инициализация CCS811, в противном случаи печатаем сообщение об ошибки
  if (mySensor.begin() == false)
  {
    Serial.print("CCS811 error. Please check wiring. Freezing...");
    while (1);
  }
}

void loop()
{
  mySensor.readAlgorithmResults();            // Чтение данных с датчика CCS811
  delay(10);                                    // Пауза 

u8g.firstPage();  
  do    {draw();  } 
  while (u8g.nextPage());
}

void draw(void) {  
  u8g.setFont(u8g_font_unifont);              // Указываем шрифт
  u8g.setPrintPos(0, 12);                     // Устанавливаем координаты
  u8g.print("CO2[");                          // Отправка данных на дисплей
  Serial.print("CO2[");                       // Печать текста
  u8g.print(mySensor.getCO2());               // Отправка данных на дисплей
  Serial.print(mySensor.getCO2());            // Отправка данных CO2
  u8g.print("]");                             // Отправка данных на дисплей
  u8g.setPrintPos(0, 27);                     // Установка координат
  u8g.print("tVOC[");                         // Отправка данных на дисплей
  Serial.print("] tVOC[");                    // Печать текста    
  u8g.print(mySensor.getTVOC());              // Отправка  данных на дисплей
  Serial.print(mySensor.getTVOC());           // Отправка данных TVOC
  u8g.print("]");                             // Отправка данных на дисплей
  Serial.print("]");                          // Печать текста 
  Serial.println();                           // Новая строка
  delay(200);                                 // Пауза 0,2 с
}

Загрузите скетч и откройте «Последовательный монитор» из Arduino IDE. 

Ссылки
  Библиотека SparkFun CCS811 Arduino 2.0.0
  Библиотека u8g2

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Комплект проводов DuPont, 2,54 мм, 20 см
  Датчик качества воздуха CCS811, CO2, TVOC
  OLED-дисплей 0.96,128х64, белый, DC 3.3-5B, SPI, IIC

Вам может также понравиться...

1 комментарий

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

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