- רכיבים נדרשים
- כוח חיישן אינפרא אדום CO2 לכבידה
- 0.96 'מודול תצוגת OLED
- תרשים מעגל
- קוד ארדואינו למדידת ריכוז CO2
- בדיקת הממשק של חיישן CO2 אינפרא אדום הכבידה
הריכוז הגובר של פחמן דו חמצני באוויר הפך לבעיה רצינית כעת. על פי דו"ח ה- NOAA, ריכוז ה- CO2 באוזון הגיע ל -0.0385 אחוזים (385 עמודים לדקה) וזה הכמות הגבוהה ביותר מזה 2.1 מיליון שנה. המשמעות היא שבמיליון חלקיקי אוויר יש 385 חלקיקים של פחמן דו חמצני. עלייה ברמת CO2 זו השפיעה קשות על הסביבה והובילה אותנו להתמודד עם המצב כמו שינויי אקלים והתחממות כדור הארץ. ישנם מכשירים רבים למדידת איכות אוויר המותקנים על הכבישים כדי לספר את רמת ה- CO2, אך אנו יכולים גם לבנות מכשיר מדידת CO2 DIY ויכול להתקין אותו באזורנו.
במדריך זה אנו מתכוונים לממשק את חיישן ה- CO2 הכבידה אינפרא אדום ל- Arduino כדי למדוד את ריכוז ה- CO2 ב- PPM. חיישן CO2 אינפרא אדום הכבידה הוא חיישן CO2 אנלוגי ברמת דיוק גבוהה. הוא מודד את תכולת ה- CO2 בטווח של 0 עד 5000 עמודים לדקה. אתה יכול גם לבדוק את הפרויקטים הקודמים שלנו שבהם השתמשנו בחיישן הגז MQ135, חיישן ה- GP2Y1014AU0F Sharp, וחיישן ה- Nova PM SDS011 לבניית צג איכות אוויר.
רכיבים נדרשים
- ארדואינו ננו
- כוח חיישן אינפרא אדום CO2 V1.1
- חוטי מגשר
- 0.96 'מודול תצוגת SPI OLED
- קרש לחם
כוח חיישן אינפרא אדום CO2 לכבידה
חיישן CO2 אינפרא אדום Gravity V1.1 הוא חיישן ה- CO2 האינפרא אדום האנלוגי המדויק האחרון שפורסם על ידי DFRobot. חיישן זה מבוסס על טכנולוגיית אינפרא אדום (NDIR) שאינו פיזור ובעל סלקטיביות טובה ותלות ללא חמצן. הוא משלב פיצוי טמפרטורה ותומך בפלט DAC. טווח המדידה האפקטיבי של חיישן זה הוא בין 0 ל 5000 סל"ד עם דיוק של ± 50 סל"ד + 3%. ניתן להשתמש בחיישן CO2 אינפרא אדום זה במערכת HVAC, ניטור איכות אוויר פנימית, ניטור תהליכים תעשייתיים, אבטחת הגנה, חקלאות ומעקב אחר ייצור גידול בעלי חיים.
חיישן אינפרא אדום CO2 Pinout:
כאמור, חיישן CO2 האינפרא אדום מגיע עם מחבר בעל 3 פינים. האיור והטבלה שלהלן מציגים את מטלות הסיכה לחיישן CO2 האינפרא אדום:
מספר סיכה |
שם סיכה |
תיאור |
---|---|---|
1 |
אוֹת |
פלט אנלוגי (0.4 ~ 2V) |
2 |
VCC |
VCC (4.5 ~ 5.5V) |
3 |
GND |
GND |
מפרט ותכונות חיישן CO2 אינפרא אדום :
- איתור גז: פחמן דו חמצני (CO2)
- מתח הפעלה: 4.5 ~ 5.5V DC
- זמן חימום מראש: 3 דקות
- זמן תגובה: 120s
- טמפרטורת הפעלה: 0 ~ 50 ℃
- לחות הפעלה: 0 ~ 95% לחות יחסית (ללא עיבוי)
- עמיד למים ואנטי קורוזיה
- חיי מחזור גבוהים
- הפרעות אדי מים
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
למידע נוסף על OLED והתממשקותו עם מיקרו-בקרים שונים על ידי לחיצה על הקישור.
תרשים מעגל
תרשים מעגלים לממשק חיישן CO2 אינפרא אדום אנלוגי הכבידה ל Arduino מוצג להלן:
המעגל פשוט מאוד מכיוון שאנו מחברים רק חיישן CO2 אינפרא אדום Gravity ומודול תצוגת OLED עם Arduino Nano. חיישן CO2 אינפרא אדום ומודול תצוגת OLED שניהם מופעלים עם + 5V ו- GND. סיכת האות (Analog Out) של חיישן ה- CO2 מחוברת לסיכה 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 |
לאחר חיבור החומרה לפי דיאגרמת המעגל, היא אמורה להיראות בערך כמו למטה:
קוד ארדואינו למדידת ריכוז CO2
הקוד השלם לפרויקט זה של כוח חיישן CO2 אינפרא אדום אנלוגי לכבידה לפרויקט Arduino ניתן בסוף המסמך. כאן אנו מסבירים כמה חלקים חשובים בקוד.
קוד משתמש Adafruit_GFX , ו Adafruit_SSD1306 ספריות. ניתן להוריד ספריות אלה ממנהל הספרייה ב- IDU של ארדואינו ולהתקין אותו משם. לשם כך, פתח את IDE של Arduino ועבור אל סקיצה> כלול ספרייה> נהל ספריות . כעת חפש את Adafruit GFX והתקן את ספריית AdFruit GFX על ידי Adafruit.
באופן דומה, התקן את ספריות Adafruit SSD1306 על ידי Adafruit. חיישן ה- CO2 אינפרא אדום אינו דורש שום ספרייה מכיוון שאנו קוראים את ערכי המתח ישירות מהסיכה האנלוגית של Arduino.
לאחר התקנת הספריות ל- Arduino IDE, התחל את הקוד על ידי הכללת קבצי הספריה הדרושים. חיישן אבק אינו דורש שום ספרייה מכיוון שהקריאה נלקחת ישירות מהסיכה האנלוגית של ארדואינו.
#לִכלוֹל
לאחר מכן, הגדירו את רוחב וגובה ה- 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);
לאחר מכן, הגדירו את סיכת הארדואינו היכן מחובר חיישן ה- CO2.
int sensorIn = A0;
כעת בתוך פונקציית setup () , אתחל את צג הסידורי בקצב שידור של 9600 למטרות ניפוי באגים. בנוסף, אתחל את תצוגת ה- OLED באמצעות פונקציית התחל () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); אנלוגי התייחסות (DEFAULT);
בתוך פונקציית loop () , קרא תחילה את ערכי האות בסיכה האנלוגית של Arduino על ידי קריאה לפונקציה analogRead () . לאחר מכן, המיר את ערכי האות האנלוגיים לערכי מתח.
loop void () {int sensorValue = analogRead (sensorIn); מתח צף = חיישן ערך * (5000 / 1024.0);
לאחר מכן השווה את ערכי המתח. אם המתח הוא 0 וולט, המשמעות היא שהתרחשה בעיה כלשהי בחיישן. אם מתח גדול מ- 0 וולט אך פחות מ -400 וולט, המשמעות היא שהחיישן עדיין נמצא בתהליך חימום מקדים.
אם (מתח == 0) {Serial.println ("תקלה"); } אחרת אם (מתח <400) {Serial.println ("חימום מראש"); }
אם המתח שווה או גדול מ- 400 וולט, המירו אותו לערכי ריכוז CO2.
אחרת {int voltage_diference = מתח -400; ריכוז לצוף = מתח_הפרש * 50.0 / 16.0;
לאחר מכן, הגדר את גודל הטקסט וצבע הטקסט באמצעות setTextSize () ו- setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
ואז בשורה הבאה, הגדירו את המיקום בו הטקסט מתחיל בשיטת setCursor (x, y) . והדפיס את ערכי CO2 על תצוגת OLED באמצעות פונקציית display.println () .
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 ();
בדיקת הממשק של חיישן CO2 אינפרא אדום הכבידה
לאחר שהחומרה והקוד מוכנים, הגיע הזמן לבדוק את החיישן. לשם כך, חבר את הארדואינו למחשב הנייד, בחר את הלוח והנמל ולחץ על כפתור ההעלאה. ואז פתח את המסך הטורי שלך והמתן זמן מה (תהליך חימום מראש), ואז תראה את הנתונים הסופיים.
הערכים יוצגו בתצוגת OLED כמוצג להלן:
הערה: לפני השימוש בחיישן, תן לחיישן להתחמם למשך כ- 24 שעות כדי לקבל ערכי PPM נכונים. כאשר הפעלתי את החיישן בפעם הראשונה, ריכוז ה- CO2 של הפלט היה 1500 PPM ל- 1700 PPPM ואחרי תהליך חימום של 24 שעות, ריכוז ה- CO2 של התפוקה ירד ל- 450 PPM ל- 500 PPM שהם ערכי ה- PPM הנכונים. לכן יש לכייל את החיישן לפני השימוש בו למדידת ריכוז ה- CO2.
כך ניתן להשתמש בחיישן CO2 אינפרא אדום למדידת ריכוז ה- CO2 המדויק באוויר. הקוד המלא וסרטון העבודה מופיעים להלן. אם יש לך ספקות, השאר אותם בסעיף ההערות או השתמש בפורומים שלנו לעזרה טכנית.