цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

Автор: Mike(admin) от 9-11-2020, 03:55

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


Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

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


Инфракрасный датчик CO2

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


Инфракрасный датчик CO2 имеет 3-контактный разъем. На приведенном далее рисунке показано назначение контактов инфракрасного датчика CO2.


Инфракрасный датчик CO2

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


OLED-дисплей

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


Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

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


Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

Код программы 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 к ноутбуку, выберите плату и порт и нажмите кнопку загрузки. Затем откройте монитор последовательного порта и подождите некоторое время (процесс предварительного нагрева), затем вы увидите окончательные данные.


Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа

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


Подключаем инфракрасный датчик CO2 к Arduino для измерения концентрации углекислого газа



© digitrode.ru


Теги: Arduino, датчик газа




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Selene

  • 26 ноября 2020 10:13
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Its like you read my mind! You appear to know so much about this,
like youu wrote the book in it or something. I think that you ckuld do with some
pics to drive thee message home a bit, but other than that,
thjs is great blog. A fantastic read. I'll certainly be back.

Dapoetina opinioni wbsite ordinare kammagra Effervescenti