Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Точный монитор качества воздуха на датчике Sharp GP2Y1010AU0F

Компоненты и материалы

Arduino Nano R3 × 1
Конденсатор 220 мкФ × 1
Резистор 150 Ом (втыкной) × 1

Инструменты

Приложения и сервисы

О проекте

Оптический датчик пыли Sharp GP2Y1010AU0F отлично обнаруживает сверхмелкие частицы (табачный дым) и используется в очистителях воздуха. ИК-светодиод и фототранзистор расположены диагонально для детекции рассеянного света от частиц.

Ранее показывал мониторы на DSM501A и PPD42NS. Теперь — на Sharp GP2Y1010AU0F, также дешёвом (~$5). Схема проста (см. ниже). Датчик потребляет мало (макс 20 мА, типично 11 мА) — можно питать от Arduino. Выход — аналоговое напряжение, пропорциональное плотности пыли, чувствительность 0.5В / 0.1 мг/м³.

Модифицировал примерный код от DFRobot для вывода в мкг/м³. Написал Processing-код на базе библиотеки meter — значения отображаются на экране ПК как большой аналоговый прибор.

Точный монитор качества воздуха на датчике Sharp GP2Y1010AU0F

Сравнение трёх датчиков

Тестировал DSM501A, PPD42NS и Sharp GP2Y1010AU0F в одинаковых условиях. Победитель — Sharp GP2Y1010AU0F. Преимущества:

Покупка на AliExpress: ссылка

Код

Arduino код

/* Standalone Sketch for Arduino UNO + Sharp Optical Dust Sensor GP2Y1010AU0F */
int measurePin = 0; // A0
int ledPower = 2;   // D2 — управление ИК-светодиодом датчика
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;

void setup(){
  Serial.begin(9600);
  pinMode(ledPower, OUTPUT);
}

void loop(){
  digitalWrite(ledPower, LOW); // ВКЛ ИК-светодиод (активный LOW)
  delayMicroseconds(samplingTime);
  voMeasured = analogRead(measurePin); // чтение
  delayMicroseconds(deltaTime);
  digitalWrite(ledPower, HIGH); // ВЫКЛ ИК-светодиод
  delayMicroseconds(sleepTime);
  // 0-5V -> 0-1023
  calcVoltage = voMeasured * (5.0 / 1024.0);
  // Линейное уравнение от https://www.howmuchsnow.com/arduino/airquality/ (Chris Nafis 2012)
  dustDensity = 170 * calcVoltage - 0.1;
  Serial.println(dustDensity); // мкг/м³
  delay(1000);
}

Processing код (визуализация)

/* Meter as a partial circle. Based on Bill (Papa) Kujawa example. Public domain. */
import processing.serial.*;
import meter.*;

Serial port;
String[] list;
Meter m;

void setup() {
  size(1150, 910);
  background(255, 255, 200);
  port = new Serial(this, "COM4", 9600); // поменяйте COM-порт
  m = new Meter(this, 125, 25, true);
  m.setMeterWidth(850);
  m.setFrameColor(color(100, 0, 0));
  m.setTitleFontColor(color(0, 200, 0));
  m.setPivotPointColor(color(255, 0, 0));
  m.setArcColor(color(0, 0, 200));
  m.setScaleFontColor(color(200, 100, 0));
  m.setTicMarkColor(color(217, 22, 247));
  m.setArcMinDegrees(90.0);
  m.setArcMaxDegrees(360.0);
  m.setArcThickness(5);
  m.setNeedleThickness(4);
  m.setMinScaleValue(0.0);
  m.setMaxScaleValue(800.0);
  m.setInputSignalOutOfRangeFontColor(color(0, 255, 0));
  m.setMinInputSignal(0);
  m.setMaxInputSignal(800);
  m.setHighSensorWarningActive(true);
  m.setHighSensorWarningValue((float)200.0);
  String[] scaleLabelsA = {"0", "100", "200", "300", "400", "500", "600", "700", "800"};
  m.setScaleLabels(scaleLabelsA);
  m.setTitle("Airquality (ug/m3)");
  m.setDisplayDigitalMeterValue(true);
}

void draw() {
  if (port.available() > 0) {
    String val = port.readString();
    list = split(val, ',');
    float air = float(list[0]);
    println("Airquality: " + air + " mg/m3 ");
    m.updateMeter(int(air));
  }
}

Схемы

Точный монитор качества воздуха на датчике Sharp GP2Y1010AU0F

Производственный процесс

  1. Bosch Sensortec представляет AI-сенсор качества воздуха BME688 для снижения риска передачи вирусов
  2. Сборка станции качества воздуха и погоды на Raspberry Pi с InfluxDB и Grafana
  3. Измерение качества воздуха с OpenSensors: руководство по Arduino и Python
  4. Солнечный датчик качества воздуха на Helium: руководство по проектированию и развёртыванию
  5. Система мониторинга качества воздуха Smart City на базе LoRa
  6. Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
  7. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  8. Умная система мониторинга качества воздуха и заполненности мусорных баков
  9. Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
  10. Продвинутый углеродный датчик NO₂ улучшает мониторинг качества воздуха в помещениях