تصميم مراقب تركيز الغبار DSM501A PM2.5 باستخدام اردوينو اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث أي مشكلة لا سمح الله.

شرح فكرة المشروع

  • حساس DSM501A هو مُستشعِر للغُبار، إذ يُمكنه قياس تركيز الجُسيمات الدقيقة في الهواء التي تكون بحجم 2.5 ميكرومتر أو أقل.
  • يُستخدم هذا النوع من الحساسات في تحديد نسبي لجودة الهواء.
  • ينتج الحساس إشارة كهربائية تتناسب مع تركيز الجُسيمات الدقيقة في الهواء.
  • يمكن توصيل DSM501A بوحدات تحكم مثل لوحات أردوينو (Arduino)
  • كما يُمكن استخدامه في أنظمة التحكم التلقائي لتحسين جودة الهواء في الأماكن المغلقة أو المفتوحة.
  • ويُرجى الانتباه إلى أن قراءات DSM501A تعتمد على حساسية المُستشعر والظروف المحيطة به.
  • وقد يحتاج المُستخدم إلى عملية معايرة أو ضبط للحصول على قراءات دقيقة وموثوقة.
  • قد تُوفر وثائق الشركة المُصنِعة للحساس المزيد من المعطيات حول التحكم والاستخدام الأمثل.
  • في هذا المشروع، سيتم استخدام  مستشعر DSM501A مع لوحة أردوينو وأضواء LED.
  • الفكرة العامة للمشروع، هي قراءة قيم التركيز من مستشعر DSM501A، وبناءً على قيمة التركيز تلك، سيتم تشغيل إحدى الأضواء LED بناءً على جودة الهواء.
  • حيث سيتم استخدام ثلاثة أضواء LED بألوان مختلفة لتمثيل ثلاث حالات: جودة جيدة (ضوء أخضر)، جودة متوسطة (ضوء أصفر)، وجودة سيئة (ضوء أحمر).

ادوات المشروع

تنويه: استخدم لوحة Bread board لتوصيل الوحدات بمنفذ 5V و GND
  • اردوينو اونو مع سلك توصيل Arduino Uno: عدد 1
  • موديول حساس الغبار DSM501A PM2.5: عدد 1
  • لوح تجارب 400 نقطة لون ابيض Solderless Breadboard: عدد 1
  • ليد احمر Red LED: عدد 1
  • ليد لون اصفر Yellow LED: عدد 1
  • ليد لون اخضر Green LED: عدد 1
  • أسلاك توصيل ذكر لذكر 40 قطعة 20 سم Male to Male jumper wires
  • أسلاك توصيل من ذكر إلى أنثى 40 دبوس 20 سم wires 40pcs Male to Female
  • 9V Maxell Alkaline Battery بطارية قلوية: عدد 1
  • موصل بطارية 9 فولت + مقبس تيار مستمر (غطاء موصل البطارية) Battery snap connector: عدد 1
  • اسلاك توصيل تمساح 10 حبات Alligator Clips Electrical (يمكن أن تستعمل لتجنب تلحيم اسلاك حساس الغبار مع أسلاك توصيل أردوينو)
  • مقاومة 220 أوم: عدد 3

مخطط المشروع

الكود البرمجي

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.
  • للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
  • في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.

int pin = 8;
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 1000;
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0;

void setup() {
Serial.begin(9600);
pinMode(pin, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
starttime = millis();//get the current time;
int toggle = 1;
Serial.println(“Waiting 1 minute to stablize sensor!”);
for(int i = 0; i < 60; i++){
delay(1000);
digitalWrite(13, toggle);
digitalWrite(12, toggle);
digitalWrite(11, toggle);
toggle = !toggle;
}
Serial.println(“Stable!”);
}

void loop() {
duration = pulseIn(pin, LOW);
lowpulseoccupancy = lowpulseoccupancy + duration;

if ((millis() – starttime) > sampletime_ms)
{
ratio = lowpulseoccupancy / (sampletime_ms * 10.0); // Integer percentage 0=>100
concentration = 1.1 * pow(ratio, 3) – 3.8 * pow(ratio, 2) + 520 * ratio + 0.62; // using spec sheet curve
lowpulseoccupancy = 0;
Serial.println(“C:” + String(concentration));

if (concentration > 1000 && concentration < 10000) {
Serial.println(“Good”);
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}

if (concentration > 10000 && concentration < 30000) {
Serial.println(“Acceptable”);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
}

if (concentration > 30000) {
Serial.println(“Heavy”);
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
}

starttime = millis();
}
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *