Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программа

Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программа Анемометр
Содержание
  1. Что такое ардуино
  2. Версии аппаратной части платформы ардуино
  3. Видео, демонстрирующее работу проекта
  4. Влияние содержания со2 на человека
  5. История создания arduino
  6. Исходный код программы (скетча)
  7. Как сделать датчик газа на ардуино своими руками
  8. Контроль уровня co2 (углекислого газа) на arduino
  9. Модуль oled дисплея (0.96’ oled display module)
  10. Необходимые компоненты
  11. Объяснение программы для измерения концентрации co2 с помощью arduino и датчика mq-135
  12. Подготовка датчика mq-135 к измерению углекислого газа
  13. Подключаем инфракрасный датчик co2 к arduino для измерения концентрации углекислого газа
  14. Подключение mh-z19 к ардуино
  15. Проект сборки детектора углекислого газа с датчиком mq-135 на платформе ардуино
  16. Проект сборки детектора углекислого газа с инфракрасным датчиком mh-z19
  17. Скетч
  18. Схема проекта
  19. Тестирование работы проекта
  20. Устройство и принцип работы датчика углекислого газа для ардуино
  21. Шаг 1. комплектующие и инструменты
  22. Шаг 2. делаем корпус
  23. Шаг 3. монтаж деталей детектора газа
  24. Шаг 4. подключение
  25. Шаг 5. загрузка кода
  26. Шаг 6. тестирование

Что такое ардуино

Такое название носит аппаратно-программное устройство. Плата небольших размеров с процессором обладает собственной памятью. На ней расположено довольно много клеммных-контактов, к которым можно подсоединять различные устройства: контроллеры, световые приборы, электродвигатели и многое другое.

Универсальность электронной платформы заключается в том, что её можно загружать разными программами, с помощью которых можно управлять самыми разнообразными гаджетами. Ардуино — это своеобразная конструкторская база, с помощью которой можно создавать уникальные управляющие системы любого назначения, в том числе измеритель уровня загазованности окружающего пространства CO2.

Версии аппаратной части платформы ардуино

На сегодняшний день существует несколько видов плат Arduino. Последняя разработка Leonardo использует микроконтроллер AT mega 32u4, а Duemilanove построена на Atmel At mega 328. Для сборки детектора углекислого газа применяют чаще всего более дешёвую модель — Arduino Uno, основанную на том же микроконтроллере, что и предыдущая версия платформы.

Платформа Ардуино Уно:

Видео, демонстрирующее работу проекта

5 213 просмотров

Влияние содержания со2 на человека

С повышением уровня углекислого газа в помещении люди начинают ощущать духоту, учащается сердцебиение, появляется утомляемость. Дальнейшее ухудшение качества воздуха может и вовсе привести к трагическим последствиям. Концентрацию газа в атмосфере ограниченного объёма измеряют в ppm.

Содержание СО2, ppmСимптомы
1400–800Отличное самочувствие
2800–1200Сонливость, утомляемость, падает внимание
31200 и болееПотеря трудоспособности, угроза здоровью

Влияние СО2 на человека:

История создания arduino

Автором универсального прибора считается житель итальянского городка Ивреа в провинции Пьемонт. Молодой преподаватель местного университета Массимо Банци с коллегами в 2005 году, пытаясь создать универсальную платформу для обучения студентов программированию, оснастил микроконтроллер ATMEGA дополнительной обвязкой. В результате Банци получил продукт, крайне востребованный на рынке электроники.

Интересен сам факт названия электронной платформы. Группа университетских программистов частенько засиживалась в местном баре под названием Arduino. Так в давние времена звали местного правителя. Вот авторы изобретения и решили так назвать своё детище.

Исходный код программы (скетча)

Как сделать датчик газа на ардуино своими руками

Для того чтобы собрать своими руками датчик углекислого газа, потребуется знание основ электротехники, опыт обращения с инструментами и оборудованный рабочий стол. Кроме того, нужен компьютер с выходом в интернет и опыт обращения с операционной системой ПК.

Существует несколько проектов сборки детектора углекислого газа на Ардуино. Стоит рассмотреть два наиболее популярных из них. В принципе оба отличаются тем, что в первом случае используется датчик углекислого газа MQ-135, а в другом варианте применяется китайский инфракрасный прибор MH-Z19B.

Контроль уровня co2 (углекислого газа) на arduino

Про анемометры:  Котел 1000 кВт газовый. Цена от производителя.

Модуль oled дисплея (0.96’ oled display module)

OLED (Organic Light-Emitting Diodes, органический светоизлучающий диод) – это светоизлучающая технология, которая применяется в большинстве современных телевизоров. В OLED дисплеях используется тот же принцип формирования изображения, что и в современных телевизорах, только количество пикселей в них значительно меньше.

Для нашего проекта мы использовали монохромный 7-ми контактный OLED дисплей SSD1306 с диагональю 0.96”. Он может использовать 3 различных коммуникационных протокола: 3-х проводный SPI, 4-х проводный SPI и I2C.

Назначение его контактов (распиновка) приведены в следующей таблице.

Номер контактаНазвание контактаАльтернативное название контактаНазначение контакта
1GndGroundземля (общий провод)
2VddVcc, 5Vнапряжение питания (в диапазоне 3-5 В)
3SCKD0, SCL, CLKконтакт синхронизации (clock pin). Применяется в интерфейсах I2C и SPI
4SDAD1, MOSIконтакт данных. Применяется в интерфейсах I2C и SPI
5RESRST, RESETконтакт сброса модуля. Применяется в интерфейсе SPI
6DCA0контакт команд (Data Command pin). Применяется в интерфейсе SPI
7CSChip Select (выбор чипа)используется когда несколько устройств взаимодействуют по интерфейсу SPI

Подключение данного дисплея к плате Arduino рассматривалось в этой статье, а все проекты с использованием данного дисплея на нашем сайте вы можете посмотреть по следующей ссылке.

Технические характеристики OLED дисплея SSD1306:

  • драйвер микросхемы OLED: SSD1306;
  • разрешение: 128 x 64;
  • угол зрения: >160°;
  • входное напряжение: 3.3V ~ 6V;
  • цвет пикселов: синий;
  • диапазон рабочих температур: -30°C ~ 70°C.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Датчик газа MQ135 (купить на AliExpress).
  3. 0.96’ SPI OLED Display Module – модуль OLED дисплея с диагональю 0.96’ и поддержкой интерфейса SPI (купить на AliExpress – если будете покупать по приведенной ссылке, то выбирайте модель OLED дисплея с 7 контактами).
  4. Резистор 22 кОм (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Объяснение программы для измерения концентрации co2 с помощью arduino и датчика mq-135

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Датчик газа MQ-135 способен обнаруживать широкий диапазон различных газов в окружающем воздухе: NH3, NOx, алкоголь, бензол, дым и углекислый газ (CO2). Датчик MQ-135 можно купить как в виде модуля, так и в виде отдельного датчика. В нашем проекте мы будем использовать его в виде модуля для измерения концентрации CO2 в единицах PPM (parts per million – частей на миллион). Схема модуля датчика MQ-135 показана на следующем рисунке:

В этой схеме весьма важную роль играет нагрузочный резистор RL – его сопротивление может изменяться в зависимости от концентрации газа. В соответствии с даташитом на датчик MQ-135 сопротивление нагрузочного резистора может изменяться от 10 кОм до 47 кОм.

Про анемометры:  Как проверить фреон в холодильнике: признаки утечки и диагностика

Даташит рекомендует чтобы вы калибровали датчик для 100ppm NH3 или для 50ppm концентрации алкоголя в воздухе и использовали значение нагрузочного резистора RL примерно 20 кОм. Но если вы внимательно посмотрите на плату модуля MQ-135, то вы увидите что значение резистора RL на ней составляет 1 кОм (102).

Поэтому, чтобы корректно измерять концентрацию CO2, вам необходимо заменить этот резистор 1 кОм на резистор сопротивлением 22 кОм.

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

Повышение концентрации углекислого газа в воздухе стало серьезной проблемой. Согласно последним данным, концентрация 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-дисплее, как показано на следующем изображении.

© anemometers.ru

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

Подключение mh-z19 к ардуино

Наша задача на сегодня – разобрать подключение MH-Z19 к Ардуино, а также базовые характеристики и практичность применения PIR датчика углекислого газа. В принципе с последним пунктом более-менее все понятно. Мы все понимаем, что в целях безопасности не помешает постоянно отслеживать концентрацию CO2 в квартире ∕ доме ∕ офисе. Конечно, можно приобрести готовую бытовую систему, но она обойдется вам в круглую сумму, а вот так называемый комнатный прибор, сделанный своими руками, сэкономит семейный бюджет и принесет огромную пользу.

Само устройство инфракрасного измерителя концентрации CO2, с которым мы сегодня знакомимся, создано для определения удельного содержания газа. Сенсор не требует высокой мощности, стабилен в работе (до 5 лет эксплуатации), имеет малое энергопотребление и высокую чувствительность, способен передавать данные через 2 выходных интерфейса: PWM и UART.

Теперь обратимся к техническим особенностям модуля:

  • напряжение: 3.6 – 5.5V;
  • потребляемый ток: < 18 мА;
  • диапазон измерений: 0 – 0.5 %;
  • время измерения: T90 < 60 сек.;
  • диапазон рабочих температур: 0-50 С;
  • допустимая влажность: 0 – 95% RH;
  • габариты: 33 ×20 × 9 мм;
  • вес: около 21 грамм

Рассмотрим схему подключения инфракрасного датчика к Arduino:
Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программа

В ней мы задействовали такие аппаратные компоненты: плату расширения Arduino Nano (можно использовать другие совместимые микроконтроллеры), модуль MH-Z19, комплект соединительных проводов.

Наша следующая задача – написать коды для чтения значений с устройства (и проверки его работоспособности). Пример такого скетча:

#define pwmPin 5
#define LedPin 13

int prevVal = LOW;
long th, tl, h, l, ppm;

void setup() {
  Serial.begin(9600);
  pinMode(pwmPin, INPUT);
  pinMode(LedPin, OUTPUT);
}

void loop() {
  long tt = millis();
  int myVal = digitalRead(pwmPin);

  //Если обнаружили изменение
  if (myVal == HIGH) {
    digitalWrite(LedPin, HIGH);
    if (myVal != prevVal) {
      h = tt;
      tl = h - l;
      prevVal = myVal;
    }
  }  else {
    digitalWrite(LedPin, LOW);
    if (myVal != prevVal) {
      l = tt;
      th = l - h;
      prevVal = myVal;
      ppm = 5000 * (th - 2) / (th   tl - 4);
      Serial.println("PPM = "   String(ppm));
    }
  }
}

Управление осуществляется через монитор COM-порта (Ctrl Shift M).

На базе указанного образца можно модернизировать всю систему, дополнив ее. Например, при желании можно собрать портативный девайс для измерения уровня CO2 в воздухе. Для него будут использоваться дисплей (типа Nokia 5110), источник питания на 5 В, а также несколько специализированных библиотек.

Для справки: существует несколько типов или классов «загазованности» помещений согласно ГОСТ:
Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программаИменно на эти параметры мы ориентируемся при тестировании.
Надеемся, вы оцените преимущества подобного прибора и будете им пользоваться на постоянной основе! До новых встреч!

Проект сборки детектора углекислого газа с датчиком mq-135 на платформе ардуино

Перед сборкой следует подготовить следующее:

  • платформа Ардуино Уно;
  • датчик MQ-135;
  • зуммер (любое звуковое сигнальное устройство);
  • LCD дисплей 16×2;
  • батарейка 9 вольт;
  • два трёхжильных шлейфа;
  • два резистора 1 кОм;
  • плата расширения Troyka Shield.

Плата Тройка Шилд:

Центром построения электронной системы контроля за качеством воздуха является плата расширения «Тройка». Панель имеет сеть контактных отверстий, через которые можно подключать различные приборы. По периметру панели расположены группы тройных контактов «S-V-G», к которым трёхжильными шлейфами подключают датчик углекислого газа и платформу Ардуино, где:

  • S — аналоговый или цифровой сигнал;
  • V — питание с рабочим напряжением;
  • G — масса (земля).

Плата Тройка Шилд и датчик с обозначением контактов:

Датчик газа подключают к управляющей платформе проводами двух шлейфов. Как это сделать, видно на нижнем фото.

Схема подсоединения MQ-135 к панели Troyka Shield:

Проект сборки детектора углекислого газа с инфракрасным датчиком mh-z19

Прибором MQ-135 может стать датчик MH-Z19. Модуль оснащён двумя выходами, совместимыми с 5-вольтовой логикой. Измеритель может работать в одном из диапазонов газовой насыщенности СО2 от 0 до 2000 ppm и от 0 до 5000 ppm.

Датчик MH-Z19:

Датчик соединяется через панель Troyka Shield c любой платформой Ардуино. В отличие от MQ-135, китайский инфракрасный детектор страдает некоторой инерционностью показаний данных. При изменении уровня содержания в атмосфере углекислого газа, прибору требуется около минуты для коррекции показаний. Положительным является то, что срок службы MH-Z19 намного больше вышеуказанного аналога, но и стоит он дороже.

Скетч

Для переносного датчика MH-Z19 с дисплеем Nokia 5110. Потребуются библиотеки Adafruit_GFX_5110 и DHT11.

#include<SPI.h>#include<Adafruit_GFX.h>#include<dht11.h>#include<Adafruit_PCD8544.h>Adafruit_PCD8544display=Adafruit_PCD8544(7,6,5,4,3);dht11DHT;#defineDHT11_PIN8#definepwmPin2#defineLedPin13intprevVal=LOW,times=0;longth,tl,h,l,ppm;voidsetup(){
  Serial.begin(9600);
  pinMode(pwmPin,INPUT);
  pinMode(LedPin,OUTPUT);
  display.begin();
  display.clearDisplay();
  display.setContrast(60);
  display.setTextSize(2);
  display.setTextColor(BLACK);}voidloop(){
  longtt=millis();

  //чтение PWM от CO2
  intmyVal=digitalRead(pwmPin);
  if(myVal==HIGH){
    digitalWrite(LedPin,HIGH);
    if(myVal!=prevVal){
      h=tt;
      tl=h-l;
      prevVal=myVal;
    }
  }  else{
    digitalWrite(LedPin,LOW);
    if(myVal!=prevVal){
      l=tt;
      th=l-h;
      prevVal=myVal;
      ppm=5000*(th-2)/(th tl-4);
      Serial.println("PPM = " String(ppm));
      display.clearDisplay();
      display.setCursor(0,0);
      if(ppm<1000)
        display.println(String(ppm) "ppm");
      else
        display.print(String(ppm) "ppm");
      times  ;

      if(times>=3){
        times=0;
        intchk=DHT.read(DHT11_PIN);    // Чтение данных
        switch(chk){
          caseDHTLIB_OK:
            break;
          caseDHTLIB_ERROR_CHECKSUM:
            display.println("Checksum error, t");
            break;
          caseDHTLIB_ERROR_TIMEOUT:
            display.println("Time out error, t");
            break;
          default:
            display.println("Unknown error, t");
            break;
        }
        // Выводим показания влажности и температуры
        display.print("Hum:");
        display.println(DHT.humidity,1);
        display.print("Temp:");
        display.println(DHT.temperature,1);
      }

      display.display();
    }
  }}

Схема проекта

Схема подключения датчика MQ-135 к плате Arduino представлена на следующем рисунке.

Про анемометры:  Ответ недели: классификация видов основных фондов из группировки ОКОФ - Дайджесты новостей

Схема подключения датчика MQ-135 к плате ArduinoКак видите, схема достаточно проста, в ней необходимо подключить к плате Arduino датчик MQ-135 и OLED дисплей. Датчик газа MQ-135 и OLED дисплей оба запитываются от контактов 5V и GND платы Arduino. Аналоговый выход датчика MQ-135 подключен к контакту A0 платы Arduino Nano. OLED дисплей подключен к плате Arduino Nano по интерфейсу SPI, схема их соединений показана в следующей таблице.

OLED дисплейПлата Arduino
GNDGround
VCC5V
D010
D19
RES13
DC11
CS12

После сборки схемы на макетной плате у нас получилась конструкция следующего вида:

Тестирование работы проекта

После того как аппаратная часть проекта будет готова, загрузите программу в плату Arduino. Затем откройте окно монитора последовательной связи (serial monitor) и подождите некоторое время, необходимое для предварительного прогрева датчика. После этого вы в окне монитора последовательной связи сможете наблюдать окончательные (правильные) значения CO2. Также эти значения будут отображаться и на экране OLED дисплея:

CO2 — диоксид углерода тяжелее воздуха, поэтому он имеет способность скапливаться в нижних слоях атмосферы помещений и представляет угрозу для органов дыхания человека. Поэтому нужно вовремя определить опасный уровень загазованности в пространстве, где находятся люди. Самый распространённый вид детекторов СО2 — это датчик серии MQ.

Модель MQ-135 — электрохимический прибор. Он построен на принципе изменения сопротивления чувствительного химического элемента устройства при соприкосновении с углекислым газом. Элемент представляет собой керамическую трубку, на покрытие которой из оксида алюминия (Al2O3) нанесена тонкая плёнка диоксида олова (SnO2).

Модуль датчика газа:

Для нормального функционирования датчик должен находиться постоянно в нагретом состоянии. Нагреватель внутри трубки доводит её поверхность до нужного уровня температуры, при которой чувствительный слой при соприкосновении с молекулами углекислого газа меняет своё сопротивление.

Под сеткой кроме трубки находятся 6 контактных головок. Две из них питают нагревательную спиральку внутри трубки током. Остальные две пары соединены проволочками и служат для дополнительного анализа состояния сопротивления элемента.

Что находится под защитной сеткой MQ-135:

Изменение характеристик тока, протекающего через устройство, фиксируются платой Ардуино. Процессор, обрабатывая информацию о превышении безопасного уровня СО2, отдаёт команды на включение звуковой сигнализации (зуммера), и на реле включения вытяжной вентиляции. Таким образом датчик выполняет функцию контроля за безопасным уровнем загазованности углекислым газом помещения.

Следует учитывать то, что датчик рассчитан на эксплуатацию при влажности 65% и температуре окружающего воздуха 20 °С. При влажности 95% прибор перестаёт адекватно реагировать на изменение содержания СО2. Кроме этого большую роль играет срок службы детектора.

Шаг 1. комплектующие и инструменты

В целом стоимость проекта будет варьироваться в зависимости от качества деталей, которые вы хотите использовать. Но, к счастью, большинство комплектующих могут быть легко использованы для других проектов.

Первое, что вам нужно сделать, это собрать необходимые детали для нашего детектора газа Ардуино. Обычно, первым делом мы подбираем нужную электронику.

Инструменты:

  1. пистолет для горячего клея
  2. острый нож
  3. металлическая линейка
  4. некоторые инструменты рисования (в зависимости от ваших личных предпочтений)

Комплектующие:

  1. Arduino Nano
  2. USB-кабель
  3. Датчик газа MQ-4
    Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программа
  4. Дисплей (семисегментный индикатор)
    Измерение концентрации CO2 с помощью Arduino и датчика MQ-135: схема и программа
  5. Картон или другой материал для корпуса (вы можете использовать прилагаемый чертеж и распечатать его на толстой бумаге) или заказать трехмерный

Шаг 2. делаем корпус

Самый простой вариант сделать корпус – использовать картон. Можно воспользоваться рисунком ниже для создания корпуса.

Шаг 3. монтаж деталей детектора газа

На этом шаге добавляем детали в корпус детектора газа. На рисунках показано, как монтировать детали с помощью пистолета для горячего клея.

Как можно заметить были использованы небольшие кусочки картона, склеенные для прокладок и монтажных опор. Это особенно важно, если вы хотите, чтобы кнопка сброса на ардуине работала правильно. Обязательно надежно закрепляйте детали на месте, но все равно держите электронные контакты и кнопки чистыми.

Шаг 4. подключение

Как только у вас появятся все детали, вы можете их подключить. Подключите ардуино к датчику и дисплею в соответствии с приведенными ниже фото.

Подключение датчика (сенсора)

Подключение дисплея

Подключение делаем следующим образом:

7-сегментный дисплейАрдуино цифр. выходы
a2
b3
c4
d6
e7
f9
g8
DP5

Шаг 5. загрузка кода

Ардуино детектор газа нужно запрограммировать, это очень легко сделать. Мы используем программное обеспечение, представленное на официальном сайте Ардуино – www.arduino.cc.

Возьмите код или файл ниже и загрузите его в arduino.

int sensorValue;
int num;


      void setup()
      {
          pinMode(2, OUTPUT);
          pinMode(3, OUTPUT);
          pinMode(4, OUTPUT);
          pinMode(5, OUTPUT);
          pinMode(6, OUTPUT);
          pinMode(7, OUTPUT);
          pinMode(8, OUTPUT);
          pinMode(9, OUTPUT);
          Serial.begin(9600);      // sets the serial port to 9600
       }


      void loop()
      {
        sensorValue = analogRead(0);       // read analog input pin 0
        
              if (sensorValue < 400)      // if there is little or no gas detected display blinking lights
              {
                
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                  digitalWrite(6, LOW);
                  digitalWrite(7, LOW);
                  digitalWrite(8, LOW);
                  digitalWrite(9, LOW);
                
              digitalWrite(3, LOW);
              digitalWrite(8, HIGH);
              delay(500);
              digitalWrite(8, LOW);
              digitalWrite(6, HIGH);
              delay(500);
              digitalWrite(6, LOW);
              digitalWrite(3, HIGH);
              delay(500);
              }
              else
              {
                  if (sensorValue >= 900)               // the value of the gas measurement between 400 and 900 is displayed (this part refers to the cases below) 
                  {num = 9;}
                  else if (sensorValue >= 800)
                  {num = 8;}
                  else if (sensorValue >= 700)
                  {num = 7;}
                  else if (sensorValue >= 600)
                  {num = 6;}
                  else if (sensorValue >= 500)
                  {num = 5;}
                  else if (sensorValue >= 400)
                  {num = 4;} 
              }
              
              if (sensorValue > 700)                // if there is a lot of gas detected, the dot on the led display will blink
              {
              digitalWrite(5, HIGH);
              delay(100);
              digitalWrite(5, LOW);
              delay(100);
              }  
        
        
                  switch (num)
                  {
                  case 9:
                  digitalWrite(2, LOW);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 8:
                  digitalWrite(2, HIGH);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 7:
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, LOW);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 6:
                  digitalWrite(2, HIGH);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, LOW);
                  break;
                  case 5:
                  digitalWrite(2, LOW);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, LOW);
                  break;
                  case 4:
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  digitalWrite(9, HIGH);
                  break;
                  }
        
        
      }

Шаг 6. тестирование

Теперь вы можете проверить свой детектор газа! Финальный вариант работы нашего детектора газа Ардуино можно увидеть на видео ниже:

Измените пороговые значения в коде, если вы не удовлетворены реакцией датчика.

Оцените статью
Анемометры
Добавить комментарий