Повышение концентрации углекислого газа в воздухе стало серьезной проблемой. Согласно последним данным, концентрация CO2 в озоне достигла 0,0385 процента (385 частей на миллион), и это самый высокий показатель за 2,1 миллиона лет. Это означает, что в одном миллионе частиц воздуха содержится 385 частиц диоксида углерода. Этот рост уровня CO2 сильно повлиял на окружающую среду и заставил нас столкнуться с такими ситуациями, как изменение климата и глобальное потепление. Сегодня в различных местах установлено множество приборов для измерения качества воздуха, которые определяют уровень CO2, но мы также можем создать прибор для измерения содержания углекислого газа в воздухе своими руками и установить его в своем районе.

В рамках этого проекта мы подключим инфракрасный датчик CO2 и Arduino для измерения концентрации углекислого газа в PPM (кол-во частей на миллион). Инфракрасный датчик CO2 – это высокоточный аналоговый датчик углекислого газа. Он измеряет содержание CO2 в диапазоне от 0 до 5000 ppm.

Инфракрасный датчик Gravity Infrared CO2 Sensor V1.1 представляет собой новейший высокоточный аналоговый инфракрасный датчик углекислого газа, выпущенный компанией DFRobot. Этот датчик основан на технологии недисперсионного инфракрасного излучения (NDIR) и имеет хорошую селективность и бескислородную зависимость. Он включает температурную компенсацию и поддерживает выход ЦАП. Эффективный диапазон измерения этого датчика составляет от 0 до 5000 ppm с точностью ± 50 ppm + 3%. Этот инфракрасный датчик CO2 может использоваться в системах отопления, вентиляции и кондиционирования воздуха, мониторинга качества воздуха в помещениях, промышленных процессов и мониторинга безопасности, мониторинга производственных процессов в сельском хозяйстве и животноводстве.
Инфракрасный датчик CO2 имеет 3-контактный разъем. На приведенном далее рисунке показано назначение контактов инфракрасного датчика CO2.

Также для отображения информации в данном проекте мы задействуем OLED-дисплей 0,96'' с драйвером SSD1306.

Схема подключения аналогового инфракрасного датчика гравитации CO2 к Arduino приведена далее.

Схема очень проста, поскольку мы подключаем только инфракрасный датчик CO2 и модуль OLED-дисплея с Arduino Nano. Инфракрасный датчик CO2 и модуль OLED-дисплея питаются от +5 В. Сигнальный вывод (аналоговый выход) датчика CO2 подключен к выводу A0 Arduino Nano. Поскольку модуль OLED-дисплея использует интерфейс SPI, мы установили связь SPI между модулем OLED и Arduino Nano. После подключения оборудования в соответствии с принципиальной схемой оно должно выглядеть примерно так.

Код программы Arduino для определения содержания углекислого газа приведен далее. Не забудьте загрузить библиотеки Adafruit_GFX и Adafruit_SSD1306 через менеджер библиотек в Arduino IDE, чтобы обеспечить работу OLED-дисплея.
int sensorIn = A4;
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
void setup(){
Serial.begin(9600);
analogReference(DEFAULT);
display.begin(SSD1306_SWITCHCAPVCC);
display.clearDisplay();
display.display();
}
void loop(){
int sensorValue = analogRead(sensorIn);
float voltage = sensorValue*(5000/1024.0);
if(voltage == 0)
{
Serial.println("Fault");
}
else if(voltage < 400)
{
Serial.println("preheating");
}
else
{
int voltage_diference=voltage-400;
float concentration=voltage_diference*50.0/16.0;
Serial.print("voltage: ");
Serial.print(voltage);
Serial.println("mv");
Serial.print("CO2 Concentration: ");
Serial.print(concentration);
Serial.println("ppm");
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(18,43);
display.println("CO2");
display.setCursor(63,43);
display.println("(PPM)");
display.setTextSize(2);
display.setCursor(28,5);
display.println(concentration);
display.display();
display.clearDisplay();
}
delay(2000);
}
Как только оборудование и код будут готовы, пора проверить датчик. Для этого подключите Arduino к ноутбуку, выберите плату и порт и нажмите кнопку загрузки. Затем откройте монитор последовательного порта и подождите некоторое время (процесс предварительного нагрева), затем вы увидите окончательные данные.

Также значения концентрации углекислого газа в PPM будут отображаться на OLED-дисплее, как показано на следующем изображении.

© digitrode.ru