- المكونات مطلوبة
- 0.96 'OLED Display Module
- تحضير مستشعر MQ-135
- مخطط الدائرة لواجهة MQ135 مع Arduino
- حساب R
- كود لقياس CO2 باستخدام مستشعر Arduino MQ135
- اختبار التواصل بين حساس MQ-135
يتزايد مستوى ثاني أكسيد الكربون في الغلاف الجوي للأرض يومًا بعد يوم. بلغ المتوسط العالمي لثاني أكسيد الكربون في الغلاف الجوي في عام 2019 409.8 جزء في المليون وفي أكتوبر -2020 بلغ 411.29. ثاني أكسيد الكربون هو أحد الغازات الدفيئة الرئيسية وهو مسؤول عن حوالي ثلاثة أرباع الانبعاثات. لذلك بدأت مراقبة مستوى ثاني أكسيد الكربون تكتسب أهمية أيضًا.
في مشروعنا السابق ، استخدمنا مستشعر Gravity Infrared CO2 لقياس تركيز ثاني أكسيد الكربون في الهواء. في هذا المشروع ، سنستخدم مستشعر MQ-135 مع Arduino لقياس تركيز ثاني أكسيد الكربون. سيتم عرض قيم تركيز ثاني أكسيد الكربون المقاسة على وحدة OLED ، وسنقوم في النهاية بمقارنة قراءات مستشعر Arduino MQ-135 مع قراءات مستشعر الأشعة تحت الحمراء CO2. بصرف النظر عن ثاني أكسيد الكربون ، قمنا أيضًا بقياس تركيز غاز البترول المسال والدخان وغاز الأمونيا باستخدام Arduino.
المكونات مطلوبة
- اردوينو نانو
- مستشعر MQ-135
- أسلاك توصيل
- 0.96 'SPI OLED Display Module
- اللوح
- 22KΩ المقاوم
0.96 'OLED Display Module
OLED (الثنائيات العضوية الباعثة للضوء) هي تقنية انبعاث للضوء ذاتيًا ، يتم إنشاؤها عن طريق وضع سلسلة من الأغشية الرقيقة العضوية بين موصلين. يتم إنتاج ضوء ساطع عند تطبيق تيار كهربائي على هذه الأفلام. تستخدم OLEDs نفس التكنولوجيا المستخدمة في أجهزة التلفزيون ، ولكن بها عدد بكسلات أقل من معظم أجهزة التلفزيون لدينا.
بالنسبة لهذا المشروع ، نستخدم شاشة OLED أحادية اللون ذات 7 أسنان SSD1306 0.96 بوصة. يمكن أن تعمل على ثلاثة بروتوكولات اتصالات مختلفة: SPI 3 Wire mode و SPI four-wire mode و I2C mode. يمكنك أيضًا معرفة المزيد حول أساسيات شاشة OLED وأنواعها من خلال قراءة المقالة المرتبطة. يتم شرح المسامير ووظائفها في الجدول أدناه:
اسم الدبوس |
اسماء اخرى |
وصف |
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 IC: SSD1306
- الدقة: 128 × 64
- زاوية بصرية:> 160 درجة
- جهد الإدخال: 3.3 فولت ~ 6 فولت
- لون البكسل: أزرق
- درجة حرارة العمل: -30 درجة مئوية ~ 70 درجة مئوية
تحضير مستشعر MQ-135
مستشعر الغاز MQ-135 هو مستشعر جودة الهواء للكشف عن مجموعة واسعة من الغازات ، بما في ذلك NH3 وأكاسيد النيتروجين والكحول والبنزين والدخان وثاني أكسيد الكربون. يمكن شراء مستشعر MQ-135 كوحدة نمطية أو كمستشعر وحده. في هذا المشروع ، نستخدم وحدة استشعار MQ-135 لقياس تركيز ثاني أكسيد الكربون في جزء في المليون. فيما يلي مخطط الدائرة للوحة MQ-135:
يلعب مقاوم الحمل RL دورًا مهمًا جدًا في جعل المستشعر يعمل. يغير هذا المقاوم قيمة مقاومته وفقًا لتركيز الغاز. وفقًا لورقة البيانات MQ-135 ، يمكن أن تتراوح قيمة مقاوم الحمل في أي مكان من 10KΩ إلى 47K. توصي ورقة البيانات بمعايرة الكاشف لـ 100 جزء في المليون من NH3 أو 50 جزء في المليون من تركيز الكحول في الهواء واستخدام قيمة مقاومة الحمل (RL) تبلغ حوالي 20 KΩ. ولكن إذا قمت بتتبع آثار PCB الخاصة بك للعثور على قيمة RL الخاصة بك في اللوحة ، فيمكنك رؤية مقاوم تحميل 1KΩ (102).
لذلك لقياس قيم تركيز ثاني أكسيد الكربون المناسبة ، عليك استبدال المقاوم 1KΩ بمقاوم 22KΩ.
مخطط الدائرة لواجهة MQ135 مع Arduino
فيما يلي المخططات الكاملة لتوصيل مستشعر الغاز MQ-135 مع Arduino:
الدائرة بسيطة للغاية لأننا نقوم فقط بتوصيل مستشعر MQ-135 ووحدة عرض OLED مع Arduino Nano. يتم تشغيل مستشعر الغاز MQ-135 ووحدة العرض OLED مع + 5V و GND. يتم توصيل دبوس Analog Out الخاص بمستشعر MQ-135 بالدبوس A0 في 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 |
بعد توصيل الجهاز وفقًا لمخطط الدائرة ، يجب أن يبدو إعداد مستشعر Arduino MQ135 كما يلي:
حساب R
الآن بعد أن عرفنا قيمة R ، دعنا ننتقل إلى كيفية حساب قيم R o في الهواء النظيف. هنا سنستخدم MQ135.h لقياس تركيز ثاني أكسيد الكربون في الهواء. لذا قم أولاً بتنزيل مكتبة MQ-135 ، ثم قم بتسخين المستشعر مسبقًا لمدة 24 ساعة قبل قراءة قيم R o. بعد عملية التسخين المسبق ، استخدم الكود أدناه لقراءة قيم R o:
# تضمين إعداد باطل "MQ135.h" () {Serial.begin (9600)؛ } حلقة فارغة () {MQ135 gasSensor = MQ135 (A0) ؛ // إرفاق المستشعر بالدبوس A0 float rzero = gasSensor.getRZero () ؛ Serial.println (rzero) ؛ تأخير (1000) ؛ }
الآن بمجرد حصولك على قيم R o ، انتقل إلى المستندات> Arduino> المكتبات> مجلد MQ135-master وافتح ملف MQ135.h وقم بتغيير قيم RLOAD & RZERO.
/// مقاومة الحمل على اللوحة # تعريف RLOAD 22.0 /// مقاومة المعايرة عند مستوى ثاني أكسيد الكربون في الغلاف الجوي # تعريف RZERO 5804.99
الآن قم بالتمرير لأسفل واستبدل قيمة ATMOCO2 بـ Atmospheric CO2 الحالي وهو 411.29
/// مستوى ثاني أكسيد الكربون في الغلاف الجوي لأغراض المعايرة # تعريف ATMOCO2 397.13
كود لقياس CO2 باستخدام مستشعر Arduino MQ135
تم تقديم الكود الكامل لربط مستشعر MQ-135 مع Arduino في نهاية المستند. نوضح هنا بعض الأجزاء المهمة من كود MQ135 Arduino.
يستخدم رمز Adafruit_GFX ، و Adafruit_SSD1306 ، و MQ135.h المكتبات. يمكن تنزيل هذه المكتبات من Library Manager في Arduino IDE وتثبيتها من هناك. لذلك ، افتح Arduino IDE وانتقل إلى Sketch <Include Library <Manage Libraries . ابحث الآن عن Adafruit GFX وقم بتثبيت مكتبة Adafruit GFX بواسطة Adafruit.
وبالمثل ، قم بتثبيت مكتبات Adafruit SSD1306 بواسطة Adafruit. يمكن تنزيل مكتبة MQ135 من هنا.
بعد تثبيت المكتبات على Arduino IDE ، ابدأ الكود بتضمين ملفات المكتبات المطلوبة.
# تضمين "MQ135.h" # تضمين
ثم حدد عرض وارتفاع 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) ؛
بعد ذلك ، حدد دبوس Arduino حيث يتم توصيل مستشعر MQ-135.
حساس int = A0 ؛
الآن داخل وظيفة setup () ، قم بتهيئة Serial Monitor بمعدل باود 9600 لأغراض التصحيح. أيضًا ، قم بتهيئة شاشة OLED باستخدام وظيفة البدء () .
Serial.begin (9600) ؛ display.begin (SSD1306_SWITCHCAPVCC) ، display.clearDisplay () ،
داخل وظيفة الحلقة () ، اقرأ أولاً قيم الإشارة في الدبوس التناظري في Arduino عن طريق استدعاء الوظيفة analogRead () .
val = analogRead (A0) ؛ Serial.print ("raw =") ؛
ثم في السطر التالي ، اتصل بـ gasSensor.getPPM () لحساب قيم PPM. يتم حساب قيم PPM باستخدام مقاومة التحميل ، R 0 ، والقراءة من الدبوس التناظري.
تعويم جزء في المليون = gasSensor.getPPM () ؛ Serial.print ("ppm:") ؛ Serial.println (جزء في المليون) ؛
بعد ذلك ، قم بتعيين حجم النص ولون النص باستخدام setTextSize () و setTextColor () .
display.setTextSize (1) ، display.setTextColor (WHITE) ،
ثم في السطر التالي ، حدد الموضع الذي يبدأ فيه النص باستخدام طريقة setCursor (x، y) . وقم بطباعة قيم ثاني أكسيد الكربون على شاشة OLED باستخدام وظيفة display.println () .
display.setCursor (18،43) ؛ display.println ("CO2") ؛ display.setCursor (63،43) ؛ display.println ("(PPM)") ؛ display.setTextSize (2) ، display.setCursor (28،5) ؛ عرض. println (جزء في المليون) ؛
وفي النهاية ، اتصل بطريقة العرض () لعرض النص على شاشة OLED.
display.display () ، display.clearDisplay () ،
اختبار التواصل بين حساس MQ-135
بمجرد أن يصبح الجهاز والرمز جاهزًا ، فقد حان الوقت لاختبار المستشعر. لذلك ، قم بتوصيل Arduino بالكمبيوتر المحمول ، وحدد اللوحة والمنفذ ، واضغط على زر التحميل. ثم افتح جهاز العرض التسلسلي وانتظر بعض الوقت (عملية التسخين المسبق) ، ثم سترى البيانات النهائية. سيتم عرض القيم على شاشة OLED كما هو موضح أدناه:
هذه هي الطريقة التي يمكن بها استخدام مستشعر MQ-135 لقياس دقيق لثاني أكسيد الكربون في الهواء. فيما يلي رمز Arduino لمستشعر جودة الهواء MQ135 الكامل وفيديو العمل. إذا كانت لديك أي شكوك ، فاتركها في قسم التعليقات.