Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Moniteur de qualité de l'air Arduino avec capteur DSM501A

Composants et fournitures

Arduino Nano R3
× 1
Module capteur de poussière DSM501A
× 1
LCD alphanumérique, 16 x 2
× 1
Kit ventilateur 40mm
× 1
LED (générique)
× 5
Résistance 221 ohm
× 1
Potentiomètre à un tour - 10k ohms
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

La surveillance de la qualité de l'air est une science bien connue et établie qui a commencé dans les années 80. A cette époque, la technologie était assez limitée, et la solution utilisée pour quantifier la pollution de l'air complexe, lourde et vraiment coûteuse.

Heureusement, de nos jours, avec les technologies les plus récentes et les plus modernes, les solutions utilisées pour la surveillance de la qualité de l'air deviennent non seulement plus précises, mais aussi plus rapides à mesurer. Les appareils sont de plus en plus petits et coûtent beaucoup plus abordables que jamais. L'appareil présenté utilise le capteur de poussière Samyoung "DSM501A" qui est l'un des moins chers du marché et peut être acheté sur AliExpress pour quelques dollars. Ce capteur est capable de détecter les particules PM2,5 ainsi que PM10.

Dans l'image ci-dessous, vous pouvez voir la disposition des broches mais ne faites pas attention à la couleur des fils car ils peuvent être différents.

Le circuit est très simple :

Vout1 (PM2.5) du capteur est connecté à D2 d'Arduino, Vout2 (PM10) à D3, Vcc à Arduino +5V et GND à la broche Arduino Gnd. Les diodes LED sont connectées aux broches analogiques A1 à A5 d'Arduino qui sont définies comme sorties dans le code. L'écran LCD avec 61x2 caractères est compatible avec le Hitachi HD44780. Il montre la concentration de particules PM10 en pcs/0.01cf et 5 états de qualité de l'air :

- Nettoyer

- Bien

- Acceptable

- Lourd

- Danger

La concentration de PM10 et PM2.5 peut être surveillée sur le moniteur série arduino. Selon le degré de contamination (PM10), une LED appropriée d'une certaine couleur s'allumera pour permettre une lecture rapide et facile du résultat. Je n'ai pas beaucoup d'expérience dans l'écriture de codes, alors peut-être que le code peut être amélioré. Il est très important de souligner qu'en installant un ventilateur qui aspire l'air de la sortie du capteur, améliore considérablement les caractéristiques dans le domaine des valeurs de crête indésirables. L'ensemble de l'appareil est assemblé dans une boîte en plastique pour l'installation électrique.

À l'avenir, je prévois de tester quelques autres capteurs de poussière bon marché afin que vous puissiez trouver les résultats dans l'un de mes prochains projets.

Code

  • code
codeArduino
 #include LiquidCrystal lcd(8, 9, 4, 5, 6, 7);int pin2 =3;int pin1 =2;unsigned long duration1;unsigned duration2;unsigned long starttime;unsigned long sampletime_ms =3000;//sampe 1s;unsigned long lowpulseoccupancy1 =0;unsigned long lowpulseoccupancy2 =0;float ratio1 =0;float ratio2 =0;float concentration1 =0;float concentration2 =0;int wLed =A1;int gLed =A2;int yLed =A3;int rLed =A4;int bLed =A5;void setup() { Serial.begin(9600); pinMode(2,ENTRÉE); pinMode(3,ENTRÉE); pinMode(wLed,SORTIE); pinMode(gLed,SORTIE); pinMode(yLed,SORTIE); pinMode(rLed,SORTIE); pinMode(bLed,OUTPUT); starttime =millis(); // obtenir l'heure actuelle ; lcd.begin (16, 2);}boucle vide() { duration1 =pulseIn(pin1, LOW); durée2 =pulseIn(pin2, LOW); lowpulseoccupancy1 =lowpulseoccupancy1+duration1 ; lowpulseoccupancy2 =lowpulseoccupancy2+duration2 ; if ((millis()-starttime)> sampletime_ms)//si le temps d'échantillonnage ==30s { ratio1 =lowpulseoccupancy1/(sampletime_ms*10.0); // Pourcentage entier 0=>100 concentration1 =1.1*pow(ratio1,3)-3.8*pow(ratio1,2)+520*ratio1+0.62; // en utilisant le rapport de courbe de feuille de spécifications2 =lowpulseoccupancy2/(sampletime_ms*10.0); // Pourcentage entier 0=>100 concentration2 =1.1*pow(ratio2,3)-3.8*pow(ratio2,2)+520*ratio2+0.62; // lcd.setCursor(0, 0); lcd.print("PM10 "); lcd.setCursor (6, 0); lcd.print(concentration1,3) ; Serial.print("concentration1 ="); Serial.print(concentration1) ; Serial.print(" pcs/0.01cf - "); Serial.print("concentration2 ="); Serial.print(concentration2); Serial.print(" pcs/0.01cf - "); if (concentration1 <1000) { lcd.setCursor (0, 1); for (int i =0; i <16; ++i) { lcd.write(' '); } lcd.setCursor(4, 1); lcd.print("NETTOYER"); digitalWrite(wLed, HAUT); digitalWrite(gLed, LOW); digitalWrite(yLed, LOW); digitalWrite(rLed, LOW); digitalWrite(bLed, LOW); } if (concentration1> 1000 &&concentration1 <10000) { lcd.setCursor (0, 1); for (int i =0; i <16; ++i) { lcd.write(' '); } lcd.setCursor(4, 1); lcd.print("BON"); digitalWrite(wLed, LOW); digitalWrite(gLed, HIGH); digitalWrite(yLed, LOW); digitalWrite(rLed, LOW); digitalWrite(bLed, LOW); } if (concentration1> 10000 &&concentration1 <20000) { lcd.setCursor (0, 1); for (int i =0; i <16; ++i) { lcd.write(' '); } lcd.setCursor(4, 1); lcd.print("ACCEPTABLE"); digitalWrite(wLed, LOW); digitalWrite(gLed, LOW); digitalWrite(yLed, HIGH); digitalWrite(rLed, LOW); digitalWrite(bLed, LOW); } if (concentration1> 20000 &&concentration1 <50000) { lcd.setCursor (0, 1); for (int i =0; i <16; ++i) { lcd.write(' '); } lcd.setCursor(4, 1); lcd.print("LOURD"); digitalWrite(wLed, LOW); digitalWrite(gLed, LOW); digitalWrite(yLed, LOW); digitalWrite(rLed, HAUT); digitalWrite(bLed, LOW); } if (concentration1> 50000 ) {lcd.setCursor (0, 1);for (int i =0; i <16; ++i){ lcd.write(' ');} lcd.setCursor(4, 1); lcd.print("DANGER"); digitalWrite(wLed, LOW); digitalWrite(gLed, LOW); digitalWrite(yLed, LOW); digitalWrite(rLed, LOW); digitalWrite(bLed, HIGH); } faibleoccupation d'impulsion1 =0 ; faibleoccupation du pouls2 =0 ; heure de début =millis(); }}

Schémas


Processus de fabrication

  1. Comment mesurer la qualité de l'air sur OpenSensors
  2. Capteur de qualité de l'air à l'hélium
  3. Jeu de gyroscope Arduino avec MPU-6050
  4. Capteur de température multiple
  5. Surveillance du CO2 avec le capteur K30
  6. Capteur d'obstacles simple avec Arduino
  7. Capteur d'empreintes digitales capacitif avec un Arduino ou ESP8266
  8. Jauge IoT avec Arduino, Yaler et IFTTT
  9. Capteur de qualité de l'air à base de carbone