- רכיבים נדרשים
- 0.96 'מודול תצוגת OLED
- הכנת חיישן MQ-135
- תרשים מעגל לממשק MQ135 עם Arduino
- חישוב ה- R
- קוד למדידת CO2 באמצעות חיישן MQ135 Arduino
- בדיקת הממשק של חיישן MQ-135
רמת ה- CO2 האטמוספירה של כדור הארץ עולה מיום ליום. ממוצע הפחמן הדו-חמצני האטמוספרי העולמי בשנת 2019 היה 409.8 חלקים למיליון ובאוקטובר 2020 הוא 411.29. פחמן דו חמצני הוא גז חממה מרכזי ואחראי לכשלושה רבעים מהפליטה. אז ניטור רמת CO2 התחיל לקבל חשיבות.
בפרויקט הקודם השתמשנו בחיישן ה- CO2 הכבידה אינפרא אדום למדידת ריכוז ה- CO2 באוויר. בפרויקט זה אנו נשתמש בחיישן MQ-135 עם Arduino למדידת ריכוז ה- CO2. ערכי ריכוז ה- CO2 הנמדדים יוצגו במודול ה- OLED ולבסוף נשווה גם את קריאות חיישני ה- Arduino MQ-135 עם קריאות חיישני ה- CO2 האינפרא-אדום. מלבד CO2, מדדנו גם את הריכוז של גז גפ"מ, עשן ואמוניה באמצעות ארדואינו.
רכיבים נדרשים
- ארדואינו ננו
- חיישן MQ-135
- חוטי מגשר
- 0.96 'מודול תצוגת SPI OLED
- קרש לחם
- נגד 22KΩ
0.96 'מודול תצוגת OLED
OLED (דיודות פולטות אור אורגניות) היא טכנולוגיה הפולטת אור עצמית, שנבנתה על ידי הצבת סדרה של סרטים דקים אורגניים בין שני מוליכים. אור בהיר מופק כאשר זרם חשמלי מוחל על סרטים אלה. OLEDs משתמשים באותה טכנולוגיה כמו טלוויזיות, אך יש להם פחות פיקסלים מאשר ברוב הטלוויזיות שלנו.
לפרויקט זה אנו משתמשים בתצוגת OLED מונוכרום 7 פינים SSD1306 0.96 אינץ '. זה יכול לעבוד על שלושה פרוטוקולי תקשורת שונים: מצב חוט SPI 3, מצב ארבעה חוטים SPI ומצב I2C. תוכל גם ללמוד עוד על היסודות של תצוגת OLED וסוגיה על ידי קריאת המאמר המקושר. הסיכות ותפקידיה מוסברים בטבלה שלהלן:
שם סיכה |
שמות אחרים |
תיאור |
Gnd |
קרקע, אדמה |
סיכת קרקע של המודול |
Vdd |
Vcc, 5V |
פינת חשמל (נסבלת 3-5 V) |
SCK |
D0, SCL, CLK |
פועל כסיכת השעון. משמש גם ל- I2C וגם ל- SPI |
SDA |
D1, MOSI |
סיכת נתונים של המודול. משמש גם ל- IIC וגם ל- SPI |
RES |
RST, RESET |
מאפס את המודול (שימושי במהלך SPI) |
זֶרֶם יָשָׁר |
A0 |
סיכת פקודת נתונים. משמש לפרוטוקול SPI |
CS |
בחר שבב |
שימושי כאשר משתמשים ביותר ממודול אחד תחת פרוטוקול SPI |
מפרט OLED:
- נהג OLED IC: SSD1306
- רזולוציה: 128 x 64
- זווית ראייה:> 160 °
- מתח כניסה: 3.3V ~ 6V
- צבע פיקסל: כחול
- טמפרטורת עבודה: -30 C ~ 70 C
הכנת חיישן MQ-135
חיישן הגז MQ-135 הוא חיישן איכות אוויר לזיהוי מגוון רחב של גזים, כולל NH3, NOx, אלכוהול, בנזן, עשן ו- CO2. ניתן לרכוש חיישן MQ-135 כמודול או רק כחיישן בלבד. בפרויקט זה אנו משתמשים במודול חיישן MQ-135 למדידת ריכוז CO2 ב- PPM. תרשים המעגל ללוח MQ-135 מופיע להלן:
נגד העומס RL ממלא תפקיד חשוב מאוד בהפעלת החיישן. נגד זה משנה את ערך ההתנגדות שלו בהתאם לריכוז הגז. על פי גיליון הנתונים MQ-135, ערך נגדי העומס יכול לנוע בין 10KΩ ל- 47KΩ. גליון הנתונים ממליץ לך לכייל את הגלאי לריכוז אלכוהול של 100 ppm NH3 או 50 ppm באוויר ולהשתמש בערך עמידות עומס (RL) של כ -20 KΩ. אבל אם אתה עוקב אחר עקבות ה- PCB שלך כדי למצוא את הערך של ה- RL שלך בלוח, אתה יכול לראות נגד עומס 1KΩ (102).
אז כדי למדוד את ערכי ריכוז CO2 המתאימים, עליכם להחליף את הנגד 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 Display משתמש בתקשורת SPI, הקמנו תקשורת SPI בין מודול ה- OLED לבין Arduino Nano. החיבורים מוצגים בטבלה שלהלן:
S.No |
סיכת מודול OLED |
פין ארדואינו |
1 |
GND |
קרקע, אדמה |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
זֶרֶם יָשָׁר |
11 |
7 |
CS |
12 |
לאחר חיבור החומרה על פי דיאגרמת המעגל, הגדרת חיישן Arduino MQ135 אמורה להיראות כמו למטה:
חישוב ה- R
עכשיו, כשאנחנו יודעים את הערך של RL, בואו נמשיך כיצד לחשב את ערכי ה- R o באוויר נקי. כאן נשתמש ב- MQ135.h כדי למדוד את ריכוז ה- CO2 באוויר. אז הורד תחילה את ספריית MQ-135, ואז חמם את החיישן 24 שעות לפני קריאת ערכי ה- R o. לאחר תהליך החימום מראש, השתמש בקוד שלמטה כדי לקרוא את ערכי R o:
# כלול "MQ135.h" הגדרת חלל () {Serial.begin (9600); } לולאה בטלה () {MQ135 gasSensor = MQ135 (A0); // חבר את החיישן לסיכה A0 לצוף rzero = gasSensor.getRZero (); Serial.println (rzero); עיכוב (1000); }
עכשיו ברגע שקיבלתם את ערכי ה- R o, עבור אל מסמכים> Arduino> ספריות> תיקיית MQ135-master ופתח את הקובץ MQ135.h ושנה את ערכי RLOAD & RZERO.
/// עמידות העומס על הלוח # הגדר RLOAD 22.0 /// התנגדות כיול ברמת CO2 אטמוספרית # הגדר RZERO 5804.99
כעת גלול מטה והחלף את ערך ATMOCO2 עם ה- CO2 האטמוספרי הנוכחי שהוא 411.29
/// רמת CO2 אטמוספרית למטרות כיול # הגדר ATMOCO2 397.13
קוד למדידת CO2 באמצעות חיישן MQ135 Arduino
הקוד השלם לממשק חיישן MQ-135 עם Arduino ניתן בסוף המסמך. כאן אנו מסבירים כמה חלקים חשובים בקוד MQ135 Arduino.
קוד משתמש Adafruit_GFX , ו Adafruit_SSD1306 , ו MQ135.h ספריות. ניתן להוריד ספריות אלה ממנהל הספרייה ב- IDU של ארדואינו ולהתקין אותו משם. לשם כך, פתח את ה- Arduino IDE ועבור אל סקיצה <כלול ספרייה <נהל ספריות . כעת חפש את Adafruit GFX והתקן את ספריית AdFruit GFX על ידי Adafruit.
באופן דומה, התקן את ספריות Adafruit SSD1306 על ידי Adafruit. ניתן להוריד את ספריית MQ135 מכאן.
לאחר התקנת הספריות ל- Arduino IDE, התחל את הקוד על ידי הכללת קבצי הספריות הדרושים.
# כלול "MQ135.h" # כלול
לאחר מכן, הגדירו את רוחב וגובה ה- OLED. בפרויקט זה אנו משתמשים בתצוגת SPI OLED 128 × 64. אתה יכול לשנות את המשתנים SCREEN_WIDTH ו- SCREEN_HEIGHT בהתאם לתצוגה שלך.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
ואז הגדירו את סיכות התקשורת של SPI בהן מחובר OLED Display.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
לאחר מכן, צור מופע תצוגה של Adafruit עם הרוחב והגובה שהוגדרו קודם לכן באמצעות פרוטוקול התקשורת SPI.
תצוגת Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
לאחר מכן, הגדירו את סיכת הארדואינו בה מחובר חיישן MQ-135.
int sensorIn = A0;
כעת בתוך פונקציית setup () , אתחל את צג הסידורי בקצב שידור של 9600 למטרות ניפוי באגים. בנוסף, אתחל את תצוגת ה- OLED באמצעות פונקציית התחל () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
בתוך פונקציית loop () , קרא תחילה את ערכי האות בסיכה האנלוגית של Arduino על ידי קריאה לפונקציה analogRead () .
val = analogRead (A0); Serial.print ("raw =");
ואז בשורה הבאה, התקשר ל- gasSensor.getPPM () לחישוב ערכי ה- PPM. ערכי ה- PPM מחושבים באמצעות נגן העומס, R 0, וקריאה מהסיכה האנלוגית.
ppm לצוף = gasSensor.getPPM (); Serial.print ("עמודים לדקה:"); Serial.println (עמודים לדקה);
לאחר מכן, הגדר את גודל הטקסט וצבע הטקסט באמצעות setTextSize () ו- setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
ואז בשורה הבאה, הגדירו את המיקום בו הטקסט מתחיל בשיטת setCursor (x, y) . והדפיס את ערכי CO2 על תצוגת OLED באמצעות פונקציית display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (עמודים לדקה);
ובאחרון, התקשר לשיטת display () כדי להציג את הטקסט בתצוגת OLED.
display.display (); display.clearDisplay ();
בדיקת הממשק של חיישן MQ-135
לאחר שהחומרה והקוד מוכנים, הגיע הזמן לבדוק את החיישן. לשם כך, חבר את הארדואינו למחשב הנייד, בחר את הלוח והנמל ולחץ על כפתור ההעלאה. ואז פתח את המסך הטורי שלך והמתן זמן מה (תהליך חימום מראש), ואז תראה את הנתונים הסופיים. הערכים יוצגו בתצוגת OLED כמוצג להלן:
כך ניתן להשתמש בחיישן MQ-135 למדידת CO2 מדויק באוויר. להלן קוד ה- Arduino של חיישן איכות האוויר MQ135 וסרטון העבודה. אם יש לך ספקות, השאר אותם במדור התגובות.