Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Monitore a Qualidade do Ar com Precisão usando o Sensor Sharp GP2Y1010AU0F

Componentes e Materiais

Componente Quantidade
Arduino Nano R3 1
Capacitor 220 µF 1
Resistor 150 ohm (furo passante) 1

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

O Sensor Óptico de Poeira Sharp (GP2Y1010AU0F) é especialmente eficaz na detecção de partículas muito finas como fumaça de cigarro, sendo comum em sistemas purificadores de ar. Um diodo emissor infravermelho e um fototransistor são dispostos diagonalmente para detectar a luz refletida pela poeira no ar.

Em vídeos anteriores mostrei monitores baseados nos sensores DSM501A e PPD42NS. Agora apresento o mesmo dispositivo baseado no Sharp GP2Y1010AU0F, também muito barato (~$5). O esquema elétrico é simples. O sensor consome pouca corrente (20mA máx, 11mA típico) e pode ser alimentado diretamente pelo Arduino. A saída é tensão analógica proporcional à densidade de poeira, com sensibilidade de 0.5V/0.1mg/m³.

Modifiquei o código de exemplo Arduino da "Dfrobot" para leitura em µg/m³. Escrevi um código Processing baseado na biblioteca "meter" para representar os valores no monitor do PC como um grande instrumento analógico, dando efeito visual distinto.

Monitore a Qualidade do Ar com Precisão usando o Sensor Sharp GP2Y1010AU0F

Comparação dos Sensores

Comparando os três sensores (DSM501A, PPD42NS e Sharp GP2Y1010AU0F) nas mesmas condições, o vencedor é o Sharp GP2Y1010AU0F. Pontos positivos:

Este sensor pode ser comprado no AliExpress: link

Obrigado por assistir.

Código

Código Arduino Arduino

/* Standalone Sketch para Arduino UNO com Sensor Óptico de Poeira Sharp GP2Y1010AU0F */
int measurePin = 0; // Conecte sensor ao pino A0 do Arduino
int ledPower = 2;   // Conecte 3 pinos do driver do LED do sensor ao D2 do Arduino
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); // Liga o LED
  delayMicroseconds(samplingTime);
  voMeasured = analogRead(measurePin); // Lê valor de poeira
  delayMicroseconds(deltaTime);
  digitalWrite(ledPower, HIGH); // Desliga o LED
  delayMicroseconds(sleepTime);
  // 0-5V mapeado para 0-1023
  calcVoltage = voMeasured * (5.0 / 1024.0);
  // Equação linear de https://www.howmuchsnow.com/arduino/airquality/
  // Chris Nafis (c) 2012
  dustDensity = 170 * calcVoltage - 0.1;
  Serial.println(dustDensity); // unidade: µg/m³
  delay(1000);
}

Código Processing C/C++

/* Meter como círculo parcial. Altere algumas cores.
   O círculo começa em 90 graus (6 horas) e move no sentido horário.
   Criado em 19 abril 2017 por Bill (Papa) Kujawa. Domínio público. */
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);
  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("Qualidade do Ar (µg/m³)");
  m.setDisplayDigitalMeterValue(true);
}

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

Esquemáticos

Monitore a Qualidade do Ar com Precisão usando o Sensor Sharp GP2Y1010AU0F

Processo de manufatura

  1. Bosch Sensortec Apresenta Sensor de Qualidade do Ar BME688 com IA para Reduzir Risco de Transmissão Viral
  2. Construa uma Estação Meteorológica e de Qualidade do Ar com Raspberry Pi, InfluxDB e Grafana
  3. Monitoramento de Qualidade do Ar com OpenSensors: Guia Arduino e Python
  4. Sensor de Qualidade do Ar Solar com Helium: Guia de Projeto e Deploy
  5. Sistema de Monitoramento de Qualidade do Ar para Cidades Inteligentes Baseado em LoRa
  6. Construa um Relógio Retrô Numitron com Arduino: Simples, Confiável e Eficiente
  7. Projeto DHT11: Sensor Temperatura/Umidade com LEDs Indicadores e Buzzer
  8. Sistema Inteligente de Monitoramento de Qualidade do Ar Interno e Resíduos
  9. Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
  10. Sensor Avançado de NO₂ Baseado em Carbono Melhora Monitoramento da Qualidade do Ar Interno