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

 
» » » Анализатор качества воздуха своими руками на основе Arduino и датчика Sharp GP2Y1014AU0F

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

Автор: Mike(admin) от 19-10-2020, 06:35

Загрязнение воздуха является серьезной проблемой во многих городах, и индекс качества воздуха ухудшается с каждым днем. Согласно отчету Всемирной организации здравоохранения, больше людей погибает преждевременно от воздействия опасных частиц, присутствующих в воздухе, чем от автомобильных аварий. По данным Агентства по охране окружающей среды (EPA), воздух в помещении может быть в 2-5 раз токсичнее, чем воздух снаружи. Поэтому в сегодняшних реалиях желательно иметь под рукой анализатор качества воздух, который мы с вами создадим в рамках данного проекта.


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

В данном проекте мы собираемся соединить датчик Sharp GP2Y1014AU0F с Arduino Nano для измерения плотности пыли в воздухе. Помимо датчика пыли и Arduino Nano, для отображения измеренных значений также используется OLED-дисплей. Датчик пыли GP2Y1014AU0F компании Sharp очень эффективен для обнаружения очень мелких частиц, таких как сигаретный дым. Он разработан для использования в очистителях воздуха и кондиционерах.


Sharp GP2Y1014AU0F

Sharp GP2Y1014AU0F - это крошечный шестиконтактный оптический датчик качества воздуха / пыли с аналоговым выходом, предназначенный для обнаружения частиц пыли в воздухе. Работает по принципу лазерного рассеяния. Внутри модуля датчика инфракрасный излучающий диод и фотодатчик расположены по диагонали рядом с отверстием для впуска воздуха, как показано на следующем изображении.


Sharp GP2Y1014AU0F

Когда воздух, содержащий частицы пыли, попадает в камеру датчика, частицы пыли рассеивают свет ИК-светодиода в сторону фотодетектора. Интенсивность рассеянного света зависит от пылевых частиц. Чем больше в воздухе пылинок, тем больше яркость света. Выходное напряжение на выводе VOUT датчика изменяется в зависимости от интенсивности рассеянного света. Распиновка датчика следующая:


Sharp GP2Y1014AU0F

1 – V-LED питание светодиода (подключите к 5 В через резистор 150 Ом), 2 – LED-GND вывод заземления светодиода (подключить к GND), 3 – LED используется для включения/выключения светодиода (подключить к любому цифровому выводу Arduino), 4 – S-GND контакт заземления датчика (подключить к GND Arduino), 5 – VOUT вывод аналогового выхода датчика (подключить к любому аналоговому выводу), 6 – VCC положительный вывод питания (подключить к 5V Arduino).


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


OLED-дисплей

Схема подключения датчика Sharp GP2Y1014AU0F и сопутствующих компонентов к Arduino приведена далее:


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

Схема очень проста, поскольку мы подключаем только датчик GP2Y10 и модуль OLED-дисплея к Arduino Nano. Датчик GP2Y10 и модуль OLED-дисплея питаются от +5 В и заземления. Вывод V0 соединен с выводом A5 Arduino Nano. Вывод светодиода датчика подключен к цифровому выводу 12 на Arduino. Поскольку модуль OLED-дисплея использует связь SPI, мы установили связь SPI между модулем OLED и Arduino Nano. В качестве конденсатора используется конденсатор емкостью 220 мкФ, а резистор взят с сопротивлением 150 Ом.


Теперь перейдем к программной части. В коде используются библиотеки Adafruit_GFX и Adafruit_SSD1306. Эти библиотеки можно загрузить из диспетчера библиотек в среде разработки Arduino и установить оттуда.


Датчик пыли не требует какой-либо библиотеки, так как мы считываем значения напряжения непосредственно с аналогового вывода Arduino. Полный код Arduino приведен далее.



#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);
 
int measurePin = A5;
int ledPower = 7;
  
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
  
void setup(){
  Serial.begin(9600);
  pinMode(ledPower,OUTPUT);
  display.begin(SSD1306_SWITCHCAPVCC);
  display.clearDisplay();
  display.display();
}
  
void loop(){
  digitalWrite(ledPower,LOW);
  delayMicroseconds(280);
 
  voMeasured = analogRead(measurePin);
 
  delayMicroseconds(40);
  digitalWrite(ledPower,HIGH);
  delayMicroseconds(9680);
 
  calcVoltage = voMeasured*(5.0/1024);
  dustDensity = 0.17*calcVoltage-0.1;
 
  if ( dustDensity < 0)
  {
    dustDensity = 0.00;
  }
  
  Serial.println("Raw Signal Value (0-1023):");
  Serial.println(voMeasured);
 
  Serial.println("Voltage:");
  Serial.println(calcVoltage);
 
  Serial.println("Dust Density:");
  Serial.println(dustDensity);
   
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(85,22);
  display.println("Dust");
  display.setCursor(85,38);
  display.println("Density");
  display.setTextSize(3);
  display.setCursor(0,13);
  display.println(dustDensity);
  display.setCursor(6,43);
  display.setTextSize(2);
  display.println("ug/m3");
  display.display();
  display.clearDisplay();
  
  delay(1000);
}

Как только оборудование и код готовы, пора проверить датчик. Для этого подключите Arduino к ноутбуку, выберите плату и порт и нажмите кнопку загрузки. Как вы можете видеть на изображении ниже, плотность пыли будет отображаться на OLED-дисплее.


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



© digitrode.ru


Теги: Arduino




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

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

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