- المكونات مطلوبة
- Nova PM حساس SDS011
- 0.96 'OLED Display Module
- مخطط الدائرة لمحلل جودة الهواء
- بناء الدائرة على لوحة الأداء
- شرح الكود لمراقب جودة الهواء
- اختبار مراقبة جودة الهواء من Arduino
يعد تلوث الهواء مشكلة رئيسية في العديد من المدن ، كما أن مؤشر جودة الهواء يزداد سوءًا كل يوم. وفقًا لتقرير منظمة الصحة العالمية ، يُقتل عدد أكبر من الأشخاص قبل الأوان بسبب آثار الجسيمات الخطرة الموجودة في الهواء أكثر من حوادث السيارات. وفقًا لوكالة حماية البيئة (EPA) ، يمكن أن يكون الهواء الداخلي أكثر سمية بمرتين إلى خمس مرات من الهواء الخارجي. لذلك قمنا هنا ببناء جهاز لمراقبة جودة الهواء عن طريق قياس جزيئات PM2.5 و PM10 في الهواء.
استخدمنا سابقًا مستشعر الغاز MQ135 لمراقبة جودة الهواء ومستشعر Sharp GP2Y1014AU0F لقياس كثافة الغبار في الهواء. هذه المرة نستخدم مستشعر SDS011 مع Arduino Nano لبناء محلل جودة الهواء. يستطيع مستشعر SDS011 حساب تركيزات جزيئات PM2.5 و PM10 في الهواء. هنا سيتم عرض قيم PM2.5 و PM 10 في الوقت الحقيقي على شاشة OLED.
المكونات مطلوبة
- اردوينو نانو
- Nova PM حساس SDS011
- 0.96 'SPI OLED Display Module
- أسلاك توصيل
Nova PM حساس SDS011
مستشعر SDS011 هو مستشعر جودة هواء حديث جدًا طورته شركة Nova Fitness. إنه يعمل على مبدأ تشتت الليزر ويمكنه الحصول على تركيز الجسيمات بين 0.3 إلى 10 ميكرومتر في الهواء. يتكون هذا المستشعر من مروحة صغيرة وصمام مدخل الهواء وصمام ثنائي ليزر وثنائي ضوئي. يدخل الهواء عبر مدخل الهواء حيث يضيء مصدر الضوء (الليزر) الجسيمات ويتحول الضوء المتناثر إلى إشارة بواسطة جهاز كشف ضوئي. ثم يتم تضخيم هذه الإشارات ومعالجتها للحصول على تركيز الجسيمات PM2.5 و PM10.
مواصفات جهاز الاستشعار SDS011:
- الإخراج: PM2.5، PM10.5
- نطاق القياس: 0.0-999.9 ميكروغرام / م 3
- جهد الإدخال: 4.7 فولت إلى 5.3 فولت
- الحد الأقصى الحالي: 100mA
- النوم الحالي: 2mA
- وقت الاستجابة: 1 ثانية
- تردد إخراج البيانات التسلسلية: 1 مرة / ثانية
- دقة قطر الجسيمات: ≤ 0.3μm
- خطأ نسبي: 10٪
- نطاق درجة الحرارة: -20 ~ 50 درجة مئوية
0.96 'OLED Display Module
OLED (الثنائيات العضوية الباعثة للضوء) هي تقنية انبعاث للضوء ذاتيًا ، يتم إنشاؤها عن طريق وضع سلسلة من الأغشية الرقيقة العضوية بين موصلين. يتم إنتاج ضوء ساطع عند تطبيق تيار كهربائي على هذه الأفلام. تستخدم OLEDs نفس التكنولوجيا المستخدمة في أجهزة التلفزيون ، ولكن بها عدد بكسلات أقل من معظم أجهزة التلفزيون لدينا.
بالنسبة لهذا المشروع ، نستخدم شاشة OLED أحادية اللون ذات 7 أسنان SSD1306 0.96 بوصة. يمكن أن تعمل على ثلاثة بروتوكولات اتصالات مختلفة: SPI 3 Wire mode و SPI four-wire mode و I2C mode. يتم شرح المسامير ووظائفها في الجدول أدناه:
اسم الدبوس |
اسماء اخرى |
وصف |
Gnd |
أرض |
الدبوس الأرضي للوحدة |
Vdd |
Vcc ، 5 فولت |
دبوس الطاقة (3-5V مقبول) |
SCK |
D0 ، SCL ، CLK |
بمثابة دبوس الساعة. تستخدم لكل من I2C و SPI |
SDA |
D1 ، MOSI |
دبوس البيانات للوحدة. تستخدم لكل من IIC و SPI |
RES |
RST ، إعادة تعيين |
يعيد تعيين الوحدة (مفيد أثناء SPI) |
العاصمة |
أ 0 |
دبوس أمر البيانات. يستخدم لبروتوكول SPI |
CS |
اختيار رقاقة |
يكون مفيدًا عند استخدام أكثر من وحدة واحدة بموجب بروتوكول SPI |
لقد قمنا بتغطية مقال كامل حول شاشات OLED وأنواعها هنا.
مواصفات OLED:
- سائق OLED IC: SSD1306
- الدقة: 128 × 64
- زاوية بصرية:> 160 درجة
- جهد الإدخال: 3.3 فولت ~ 6 فولت
- لون البكسل: أزرق
- درجة حرارة العمل: -30 درجة مئوية ~ 70 درجة مئوية
تعرف على المزيد حول OLED وتفاعله مع ميكروكنترولر مختلفة باتباع الرابط.
مخطط الدائرة لمحلل جودة الهواء
مخطط الرسم البياني لقياس جسيمات PM2.5 و PM10 باستخدام Arduino بسيط للغاية وموضح أدناه.
يعمل كل من مستشعر SDS011 ووحدة عرض OLED مع + 5V و GND. تتصل دبابيس جهاز الإرسال والاستقبال SDS011 بدبابيس D3 و D4 من Arduino Nano. نظرًا لأن وحدة عرض OLED تستخدم اتصال SPI ، فقد أنشأنا اتصال SPI بين وحدة OLED و Arduino Nano. التوصيلات موضحة في الجدول أدناه:
لا |
دبوس وحدة OLED |
اردوينو دبوس |
1 |
GND |
أرض |
2 |
VCC |
5 فولت |
3 |
د 0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
العاصمة |
11 |
7 |
CS |
12 |
بناء الدائرة على لوحة الأداء
لقد قمت أيضًا بلحام جميع المكونات الموجودة على لوحة الأداء لجعلها تبدو أنيقة. ولكن يمكنك أيضًا صنعها على لوح التجارب. الألواح التي صنعتها أدناه. أثناء اللحام ، تأكد من عدم فرز الأسلاك. يتم عرض لوحة الأداء التي قمت بلحامها أدناه:
شرح الكود لمراقب جودة الهواء
يتم تقديم الكود الكامل لهذا المشروع في نهاية المستند. نحن هنا نوضح بعض الأجزاء المهمة من الكود.
يستخدم رمز SDS011 ، Adafruit_GFX ، و Adafruit_SSD1306 المكتبات. يمكن تنزيل هذه المكتبات من Library Manager في Arduino IDE ويمكن تثبيتها من هناك. لذلك ، افتح Arduino IDE وانتقل إلى Sketch> Include Library> Manage Libraries . ابحث الآن عن SDS011 وقم بتثبيت مكتبة SDS Sensor بواسطة R. Zschiegner.
وبالمثل ، قم بتثبيت مكتبات Adafruit GFX و Adafruit SSD1306 بواسطة Adafruit.
بعد تثبيت المكتبات على Arduino IDE ، ابدأ الكود بتضمين ملفات المكتبة المطلوبة.
#تضمن
في الأسطر التالية ، حدد متغيرين لتخزين قيم PM10 و PM2.5.
تعويم p10 ، p25 ؛
ثم حدد عرض وارتفاع OLED. في هذا المشروع ، نستخدم شاشة OLED مقاس 128 × 64 SPI. يمكنك تغيير متغيري SCREEN_WIDTH و SCREEN_HEIGHT وفقًا لشاشتك .
#define SCREEN_WIDTH 128 # تعريف SCREEN_HEIGHT 64
ثم حدد دبابيس اتصال SPI حيث يتم توصيل شاشة OLED.
# تعريف OLED_MOSI 9 # تعريف OLED_CLK 10 # تعريف OLED_DC 11 # تعريف OLED_CS 12 # تعريف OLED_RESET 13
بعد ذلك ، قم بإنشاء مثيل عرض Adafruit بالعرض والارتفاع المحددين مسبقًا باستخدام بروتوكول الاتصال SPI.
عرض Adafruit_SSD1306 (SCREEN_WIDTH ، SCREEN_HEIGHT ، OLED_MOSI ، OLED_CLK ، OLED_DC ، OLED_RESET ، OLED_CS) ؛
الآن داخل وظيفة setup () ، قم بتهيئة Serial Monitor بمعدل باود 9600 لأغراض التصحيح. أيضًا ، قم بتهيئة شاشة OLED ومستشعر SDS011 بوظيفة البدء () .
my_sds.begin (3،4) ، Serial.begin (9600) ؛ display.begin (SSD1306_SWITCHCAPVCC) ،
داخل الحلقة الفارغة () ، اقرأ قيم PM10 و PM2.5 من مستشعر SDS011 واطبع القراءات على شاشة تسلسلية.
حلقة باطلة () {error = my_sds.read (& p25، & p10)؛ if (! error) {Serial.println ("P2.5:" + String (p25))؛ Serial.println ("P10:" + String (p10)) ؛
بعد ذلك ، قم بتعيين حجم النص ولون النص باستخدام setTextSize () و setTextColor () .
display.setTextSize (2) ، display.setTextColor (WHITE) ،
ثم في السطر التالي ، حدد الموضع لبدء النص باستخدام طريقة setCursor (x، y) . سنعرض هنا قيم PM2.5 و PM10 على شاشة OLED بحيث يبدأ السطر الأول عند (0،15) بينما يبدأ السطر الثاني عند إحداثيات (0 ، 40).
display.setCursor (0،15) ؛ display.println ("PM2.5") ؛ display.setCursor (67،15) ؛ display.println (p25) ؛ display.setCursor (0،40) ؛ display.println ("PM10") ؛ display.setCursor (67،40) ؛ display.println (p10) ؛
وأخيرًا ، اتصل بطريقة العرض () لعرض النص على شاشة OLED.
display.display () ، display.clearDisplay () ،
اختبار مراقبة جودة الهواء من Arduino
بمجرد أن يصبح الجهاز والرمز جاهزًا ، فقد حان الوقت لاختبار الجهاز. لذلك ، قم بتوصيل Arduino بالكمبيوتر المحمول ، وحدد اللوحة والمنفذ ، واضغط على زر التحميل. كما ترى في الصورة أدناه ، ستعرض قيم PM2.5 و PM10 على شاشة OLED.
يتم تقديم فيديو العمل الكامل والكود أدناه. آمل أن تكون قد استمتعت بالبرنامج التعليمي وتعلمت شيئًا مفيدًا. إذا كانت لديك أي أسئلة ، فاتركها في قسم التعليقات أو استخدم منتدياتنا للاستفسارات الفنية الأخرى.