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

Monitor de qualidade do ar Arduino com sensor DSM501A

Componentes e suprimentos

Arduino Nano R3
× 1
Módulo sensor de poeira DSM501A
× 1
LCD alfanumérico, 16 x 2
× 1
Kit de ventilador 40 mm
× 1
LED (genérico)
× 5
Resistor 221 ohm
× 1
Potenciômetro de volta única - 10k ohms
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto




O monitoramento da qualidade do ar é uma ciência bem conhecida e estabelecida, que começou nos anos 80. Naquela época, a tecnologia era bastante limitada, e a solução utilizada para quantificar a poluição do ar, complexa e muito cara.

Felizmente, hoje em dia, com as tecnologias mais recentes e modernas, as soluções utilizadas para o monitoramento da qualidade do ar estão se tornando não só mais precisas, mas também mais rápidas na medição. Os dispositivos estão se tornando menores e custam muito mais acessíveis do que nunca. O dispositivo apresentado usa o sensor de poeira Samyoung "DSM501A" que é um dos mais baratos do mercado e pode ser adquirido no AliExpress por alguns dólares. Este sensor é capaz de detectar tanto partículas PM2.5 quanto PM10.

Na foto abaixo você pode ver o layout dos pinos, mas não preste atenção na cor dos fios, pois podem ser diferentes.

O circuito é muito simples:

Vout1 (PM2.5) do sensor está conectado ao D2 do Arduino, Vout2 (PM10) ao D3, Vcc ao Arduino + 5V e GND ao pino Gnd do Arduino. Os diodos LED são conectados aos pinos analógicos A1 a A5 do Arduino, que são definidos como saídas no código. O display LCD com caracteres 61x2 é compatível com o Hitachi HD44780. Mostra a concentração de partículas PM10 em pcs / 0,01cf e 5 estados de qualidade do ar:

- Limpar

- Boa

- Aceitável

- Pesado

- Perigo

A concentração de PM10 e PM2.5 pode ser monitorada no monitor serial arduino. Dependendo do grau de contaminação (PM10), acenderá um LED apropriado de uma determinada cor para permitir uma leitura rápida e fácil do resultado. Não tenho muita experiência em escrever códigos, então talvez o código possa ser melhorado. É muito importante enfatizar que ao instalar um ventilador que retira o ar da saída do sensor, melhora significativamente as características na área de valores de pico indesejados. Todo o aparelho é montado em uma caixa plástica para instalação elétrica.



No futuro, pretendo testar mais alguns sensores de poeira baratos para que você possa encontrar os resultados em um de meus próximos projetos.

Código

  • código
código Arduino
 #include  LiquidCrystal lcd (8, 9, 4, 5, 6, 7); int pin2 =3; int pin1 =2; sem sinal de longa duração1; sem sinal de longa duração2; tempo de início longo sem sinal; longo sem sinal sampletime_ms =3000; // sampe 1s; sem sinal longo lowpulseoccupancy1 =0; sem sinal longo lowpulseoccupancy2 =0; razão de flutuação1 =0; razão de flutuação 2 =0; concentração de flutuação1 =0; concentração de flutuação2 =0; int wLed =A1; int gLed =A2; int yLed =A3; int rLed =A4; int bLed =A5; configuração de vazio () {Serial.begin (9600); pinMode (2, INPUT); pinMode (3, INPUT); pinMode (wLed, OUTPUT); pinMode (gLed, OUTPUT); pinMode (yLed, OUTPUT); pinMode (rLed, OUTPUT); pinMode (bLed, OUTPUT); starttime =millis (); // obtém a hora atual; lcd.begin (16, 2);} void loop () {duration1 =pulseIn (pin1, LOW); duração2 =pulseIn (pin2, LOW); ocupação de pulso baixa1 =ocupação de pulso baixa1 + duração1; ocupação de pulso baixa2 =ocupação de pulso baixa2 + duração2; if ((millis () - starttime)> sampletime_ms) // se o tempo sampel ==30s {ratio1 =lowpulseoccupancy1 / (sampletime_ms * 10.0); // Porcentagem inteira 0 => 100 concentração1 =1,1 * pow (proporção1,3) -3,8 * pow (proporção1,2) + 520 * proporção1 + 0,62; // usando a curva da folha de especificações ratio2 =lowpulseoccupancy2 / (sampletime_ms * 10.0); // Porcentagem inteira 0 => 100 concentração2 =1,1 * pow (proporção2,3) -3,8 * pow (proporção2,2) + 520 * proporção2 + 0,62; // lcd.setCursor (0, 0); lcd.print ("PM10"); lcd.setCursor (6, 0); lcd.print (concentração 1,3); Serial.print ("concentração1 ="); Serial.print (concentração 1); Serial.print ("pcs / 0,01cf -"); Serial.print ("concentração2 ="); Serial.print (concentração2); Serial.print ("pcs / 0,01cf -"); if (concentração1 <1000) {lcd.setCursor (0, 1); para (int i =0; i <16; ++ i) {lcd.write (''); } lcd.setCursor (4, 1); lcd.print ("CLEAN"); digitalWrite (wLed, HIGH); digitalWrite (gLed, LOW); digitalWrite (yLed, LOW); digitalWrite (rLed, LOW); digitalWrite (bLed, LOW); } if (concentração1> 1000 &&concentração1 <10000) {lcd.setCursor (0, 1); para (int i =0; i <16; ++ i) {lcd.write (''); } lcd.setCursor (4, 1); lcd.print ("BOM"); digitalWrite (wLed, LOW); digitalWrite (gLed, HIGH); digitalWrite (yLed, LOW); digitalWrite (rLed, LOW); digitalWrite (bLed, LOW); } if (concentração1> 10000 &&concentração1 <20000) {lcd.setCursor (0, 1); para (int i =0; i <16; ++ i) {lcd.write (''); } lcd.setCursor (4, 1); lcd.print ("ACEITÁVEL"); digitalWrite (wLed, LOW); digitalWrite (gLed, LOW); digitalWrite (yLed, HIGH); digitalWrite (rLed, LOW); digitalWrite (bLed, LOW); } if (concentração1> 20000 &&concentração1 <50000) {lcd.setCursor (0, 1); para (int i =0; i <16; ++ i) {lcd.write (''); } lcd.setCursor (4, 1); lcd.print ("PESADO"); digitalWrite (wLed, LOW); digitalWrite (gLed, LOW); digitalWrite (yLed, LOW); digitalWrite (rLed, HIGH); digitalWrite (bLed, LOW); } if (concentração1> 50000) {lcd.setCursor (0, 1); for (int i =0; i <16; ++ i) {lcd.write ('');} lcd.setCursor (4, 1); lcd.print ("PERIGO"); digitalWrite (wLed, LOW); digitalWrite (gLed, LOW); digitalWrite (yLed, LOW); digitalWrite (rLed, LOW); digitalWrite (bLed, HIGH); } ocupação de pulso baixa1 =0; lowpulseoccupancy2 =0; hora de início =milis (); }} 

Esquemas


Processo de manufatura

  1. Como medir a qualidade do ar em OpenSensors
  2. Sensor de qualidade do ar de hélio
  3. Jogo Arduino Gyroscope com MPU-6050
  4. Sensor de temperatura múltipla
  5. Monitoramento de CO2 com Sensor K30
  6. Sensor de obstáculo simples com Arduino
  7. Sensor capacitivo de impressão digital com um Arduino ou ESP8266
  8. IoT Gauge com Arduino, Yaler e IFTTT
  9. Levitação eletromagnética repulsiva Arduino
  10. Sensor de qualidade do ar à base de carbono