Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A

Komponen dan perlengkapan

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
Arduino Nano R3
×1
Modul Sensor Debu DSM501A
×1
Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
LCD Alphanumerik, 16 x 2
×1
Kit Kipas 40mm
×1
Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
LED (umum)
×5
Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
Resistor 221 ohm
×1
Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
Potensiometer Satu Putaran - 10k ohm
×1

Alat dan mesin yang diperlukan

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
Solder (umum)

Aplikasi dan layanan online

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A
Arduino IDE

Tentang proyek ini

Pemantauan kualitas udara adalah ilmu yang terkenal dan established yang dimulai pada tahun 80-an. Pada saat itu, teknologi cukup terbatas, dan solusi yang digunakan untuk mengukur polusi udara kompleks, memberatkan, dan sangat mahal.

Untungnya, saat ini, dengan teknologi modern terbaru, solusi yang digunakan untuk pemantauan kualitas udara menjadi tidak hanya lebih akurat, tetapi juga lebih cepat dalam pengukuran. Perangkat menjadi lebih kecil, dan biaya jauh lebih terjangkau dari sebelumnya. Perangkat yang disajikan menggunakan sensor debu Samyoung "DSM501A" yang merupakan salah satu sensor termurah di pasar dan dapat dibeli di AliExpress dengan beberapa dolar. Sensor ini mampu mendeteksi partikel PM2.5 serta PM10.

Pada gambar di bawah ini, Anda dapat melihat tata letak pin, tetapi jangan memperhatikan warna kabel karena mungkin berbeda.

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A

Rangkaian sangat sederhana:

Vout1 (PM2.5) dari sensor terhubung ke D2 Arduino, Vout2 (PM10) ke D3, Vcc ke Arduino +5V, dan GND ke pin GND Arduino. Dioda LED terhubung ke pin analog A1 hingga A5 Arduino yang didefinisikan sebagai output dalam kode. Tampilan LCD dengan karakter 16x2 kompatibel dengan Hitachi HD44780. Ini menampilkan konsentrasi partikel PM10 dalam pcs/0.01cf, dan 5 status kualitas udara:

- Bersih

- Baik

- Dapat diterima

- Tinggi

- Berbahaya

Konsentrasi PM10 dan PM2.5 dapat dipantau pada serial monitor Arduino. Tergantung pada tingkat kontaminasi (PM10), LED warna tertentu akan menyala untuk memungkinkan pembacaan hasil yang cepat dan mudah. Saya tidak memiliki banyak pengalaman dalam menulis kode, jadi mungkin kode dapat ditingkatkan. Sangat penting untuk ditekankan bahwa dengan memasang kipas yang menarik udara keluar dari sensor, secara signifikan meningkatkan karakteristik di area nilai puncak yang tidak diinginkan. Seluruh perangkat dirangkaian dalam kotak plastik untuk instalasi listrik.

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A

Di masa depan, saya berencana menguji beberapa sensor debu murah lainnya sehingga Anda dapat menemukan hasilnya dalam salah satu proyek saya selanjutnya.

Kode

  • kode
kodeArduino
 #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); int pin2 = 3; int pin1 = 2; unsigned long duration1; unsigned long 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,INPUT); pinMode(3,INPUT); pinMode(wLed,OUTPUT); pinMode(gLed,OUTPUT); pinMode(yLed,OUTPUT); pinMode(rLed,OUTPUT); pinMode(bLed,OUTPUT); starttime = millis();//get the current time; lcd.begin(16, 2); } void loop() { duration1 = pulseIn(pin1, LOW); duration2 = pulseIn(pin2, LOW); lowpulseoccupancy1 = lowpulseoccupancy1+duration1; lowpulseoccupancy2 = lowpulseoccupancy2+duration2; if ((millis()-starttime) > sampletime_ms)//if the sampel time == 30s { ratio1 = lowpulseoccupancy1/(sampletime_ms*10.0); // Integer percentage 0=>100 concentration1 = 1.1*pow(ratio1,3)-3.8*pow(ratio1,2)+520*ratio1+0.62; // using spec sheet curve ratio2 = lowpulseoccupancy2/(sampletime_ms*10.0); // Integer percentage 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("CLEAN"); digitalWrite(wLed, HIGH); 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("GOOD"); 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("HEAVY"); digitalWrite(wLed, LOW); digitalWrite(gLed, LOW); digitalWrite(yLed, LOW); digitalWrite(rLed, HIGH); 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("HAZARD"); digitalWrite(wLed, LOW); digitalWrite(gLed, LOW); digitalWrite(yLed, LOW); digitalWrite(rLed, LOW); digitalWrite(bLed, HIGH); } lowpulseoccupancy1 = 0; lowpulseoccupancy2 = 0; starttime = millis(); } } 

Skematik

Buat Pengamanan Kualitas Udara Berbasis Arduino dengan Sensor Debu DSM501A

Proses manufaktur

  1. Mengukur Kualitas Udara dengan OpenSensors: Panduan Arduino & Python
  2. Panduan Desain & Penerapan Sensor Kualitas Udara Tenaga Surya Berbasis Helium
  3. Buat Game Gyroskop Real-Time dengan Arduino Nano & Sensor MPU-6050
  4. Sistem Sensor Suhu Multi-Posisi untuk Integrasi Rumah Cerdas
  5. Sensor CO2 K30: Pemantauan Kualitas Udara Indoor dalam Waktu Nyata
  6. Bangun Sensor Halangan Sederhana dengan Arduino – Tutorial Mudah LED IR & Fotodioda
  7. Mengintegrasikan Sensor Sidik Jari Kapasitif DFRobot dengan Arduino atau ESP8266
  8. Buat Pengukur IoT Aktif Web dengan Arduino, Yaler, dan IFTTT
  9. Levitasi Magnetik Repulsif Berbasis Arduino: Rangkaian Sederhana & Panduan DIY
  10. Sensor NO2 Berbasis Karbon Canggih Tingkatkan Pemantauan Kualitas Udara Dalam Ruangan