- Απαιτούμενα στοιχεία
- Αισθητήρας CO2 υπέρυθρων βαρύτητας
- Ενότητα οθόνης OLED 0,96 '
- Διάγραμμα κυκλώματος
- Κωδικός Arduino για τη μέτρηση της συγκέντρωσης CO2
- Δοκιμή της διασύνδεσης του αισθητήρα CO2 υπέρυθρου βαρύτητας
Η αυξανόμενη συγκέντρωση διοξειδίου του άνθρακα στον αέρα έχει γίνει ένα σοβαρό πρόβλημα τώρα. Σύμφωνα με την έκθεση NOAA, η συγκέντρωση CO2 στο όζον έχει φτάσει το 0,0385% (385 ppm) και είναι το υψηλότερο ποσό σε 2,1 εκατομμύρια χρόνια. Αυτό σημαίνει ότι σε ένα εκατομμύριο σωματίδια αέρα, υπάρχουν 385 σωματίδια διοξειδίου του άνθρακα. Αυτό το αυξανόμενο επίπεδο CO2 έχει επηρεάσει άσχημα το περιβάλλον και μας οδήγησε να αντιμετωπίσουμε την κατάσταση όπως η κλιματική αλλαγή και η υπερθέρμανση του πλανήτη. Υπάρχουν πολλές συσκευές μέτρησης ποιότητας αέρα εγκατεστημένες στους δρόμους για να πούμε το επίπεδο CO2, αλλά μπορούμε επίσης να κατασκευάσουμε μια συσκευή μέτρησης CO2 DIY και να την εγκαταστήσουμε στην περιοχή μας.
Σε αυτό το σεμινάριο, πρόκειται να συνδέσουμε τον αισθητήρα CO2 υπέρυθρων βαρύτητας με το Arduino για να μετρήσουμε τη συγκέντρωση CO2 στο PPM. Ο αισθητήρας CO2 υπέρυθρου βαρύτητας είναι ένας αναλογικός αισθητήρας CO2 υψηλής ακρίβειας. Μετρά το περιεχόμενο CO2 στην περιοχή από 0 έως 5000 ppm. Μπορείτε επίσης να ελέγξετε τα προηγούμενα έργα μας όπου χρησιμοποιήσαμε τον αισθητήρα αερίου MQ135, τον αισθητήρα Sharp GP2Y1014AU0F και τον αισθητήρα Nova PM SDS011 για τη δημιουργία μίας οθόνης ποιότητας αέρα.
Απαιτούμενα στοιχεία
- Arduino Nano
- Αισθητήρας CO2 υπέρυθρου βαρύτητας V1.1
- Καλώδια αλτών
- Ενότητα οθόνης OLED 0,96 'SPI
- Ψωμί
Αισθητήρας CO2 υπέρυθρων βαρύτητας
Το Gravity Infrared CO2 Sensor V1.1 είναι ο τελευταίος υψηλής ακρίβειας αναλογικός υπέρυθρος αισθητήρας CO2 που κυκλοφόρησε από την DFRobot. Αυτός ο αισθητήρας βασίζεται σε τεχνολογία μη διασποράς υπέρυθρων (NDIR) και έχει καλή επιλεκτικότητα και εξάρτηση χωρίς οξυγόνο. Ενσωματώνει αντιστάθμιση θερμοκρασίας και υποστηρίζει έξοδο DAC. Το πραγματικό εύρος μέτρησης αυτού του αισθητήρα είναι από 0 έως 5000ppm με ακρίβεια ± 50ppm + 3%. Αυτός ο αισθητήρας υπερύθρων CO2 μπορεί να χρησιμοποιηθεί σε HVAC, παρακολούθηση ποιότητας αέρα εσωτερικού χώρου, βιομηχανική διαδικασία και παρακολούθηση προστασίας ασφάλειας, γεωργία και παρακολούθηση παραγωγικής διαδικασίας παραγωγής ζώων.
Pinout αισθητήρα υπερύθρων CO2 :
Όπως αναφέρθηκε προηγουμένως, ο αισθητήρας υπερύθρων CO2 διαθέτει υποδοχή 3 ακίδων. Το παρακάτω σχήμα και ο πίνακας δείχνουν τις αντιστοιχίσεις ακίδων για τον αισθητήρα υπερύθρων CO2:
Pin No. |
Όνομα καρφιτσώματος |
Περιγραφή |
---|---|---|
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% RH (χωρίς συμπύκνωση)
- Αδιάβροχο και αντιδιαβρωτικό
- Μεγάλη διάρκεια ζωής
- Παρεμβολή υδρατμών
Ενότητα οθόνης OLED 0,96 '
Το OLED (Organic Light-Emitting Diodes) είναι μια τεχνολογία αυτόματης εκπομπής φωτός, κατασκευασμένη τοποθετώντας μια σειρά από οργανικά λεπτά φιλμ μεταξύ δύο αγωγών. Ένα φωτεινό φως παράγεται όταν εφαρμόζεται ηλεκτρικό ρεύμα σε αυτές τις μεμβράνες. Τα OLED χρησιμοποιούν την ίδια τεχνολογία με τις τηλεοράσεις, αλλά έχουν λιγότερα pixel από ό, τι στις περισσότερες τηλεοράσεις μας.
Για αυτό το έργο, χρησιμοποιούμε μια οθόνη OLED Monochrome 7-pin SSD1306 0,96 ”. Μπορεί να λειτουργήσει σε τρία διαφορετικά πρωτόκολλα επικοινωνίας: SPI 3 Wire mode, SPI four-wire mode και I2C mode. Οι ακίδες και οι λειτουργίες της εξηγούνται στον παρακάτω πίνακα:
Έχουμε ήδη καλύψει το OLED και τους τύπους του στο προηγούμενο άρθρο.
Όνομα καρφιτσώματος |
Αλλα ονόματα |
Περιγραφή |
Gnd |
Εδαφος |
Καρφίτσα γείωσης της μονάδας |
Vdd |
Vcc, 5V |
Τροφοδοτικό (3-5V ανεκτό) |
SCK |
D0, SCL, CLK |
Λειτουργεί ως καρφίτσα ρολογιού. Χρησιμοποιείται τόσο για I2C όσο και για SPI |
SDA |
D1, MOSI |
Καρφίτσα δεδομένων της ενότητας. Χρησιμοποιείται τόσο για IIC όσο και για SPI |
ΑΠΕ |
RST, ΕΠΑΝΑΦΟΡΑ |
Επαναφέρει τη μονάδα (χρήσιμο κατά τη διάρκεια SPI) |
DC |
Α0 |
Καρφίτσα εντολών δεδομένων. Χρησιμοποιείται για πρωτόκολλο SPI |
CS |
Επιλογή τσιπ |
Χρήσιμο όταν περισσότερες από μία λειτουργικές μονάδες χρησιμοποιούνται στο πρωτόκολλο SPI |
Προδιαγραφές OLED:
- IC οδηγού OLED: SSD1306
- Ανάλυση: 128 x 64
- Οπτική γωνία:> 160 °
- Τάση εισόδου: 3.3V ~ 6V
- Χρώμα Pixel: Μπλε
- Θερμοκρασία λειτουργίας: -30 ° C ~ 70 ° C
Μάθετε περισσότερα για το OLED και τη διασύνδεσή του με διαφορετικούς μικροελεγκτές ακολουθώντας τον σύνδεσμο.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για διασύνδεση του αναλογικού υπέρυθρου αισθητήρα CO2 υπέρυθρων για το Arduino δίνεται παρακάτω:
Το κύκλωμα είναι πολύ απλό, καθώς συνδέουμε μόνο τον αισθητήρα CO2 υπέρυθρων βαρύτητας και την οθόνη OLED Display με το Arduino Nano. Οι μονάδες υπερύθρων CO2 Sensor και OLED Display τροφοδοτούνται και με + 5V και GND. Ο ακροδέκτης σήματος (Αναλογική έξοδος) του αισθητήρα CO2 συνδέεται με τον ακροδέκτη A0 του Arduino Nano. Δεδομένου ότι η ενότητα OLED Display χρησιμοποιεί επικοινωνία SPI, έχουμε δημιουργήσει μια επικοινωνία SPI μεταξύ της μονάδας OLED και του Arduino Nano. Οι συνδέσεις φαίνονται στον παρακάτω πίνακα:
ΝΟ |
Καρφίτσα μονάδας OLED |
Arduino Pin |
1 |
GND |
Εδαφος |
2 |
VCC |
5V |
3 |
Δ0 |
10 |
4 |
Δ1 |
9 |
5 |
ΑΠΕ |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Αφού συνδέσετε το υλικό σύμφωνα με το διάγραμμα κυκλώματος, θα πρέπει να μοιάζει παρακάτω:
Κωδικός Arduino για τη μέτρηση της συγκέντρωσης CO2
Ο πλήρης κωδικός για αυτό το Gravity Analog Infrared CO2 Sensor for Arduino project δίνεται στο τέλος του εγγράφου. Εδώ εξηγούμε ορισμένα σημαντικά μέρη του κώδικα.
Ο κώδικας χρησιμοποιεί το Adafruit_GFX , και Adafruit_SSD1306 βιβλιοθήκες. Μπορείτε να κατεβάσετε αυτές τις βιβλιοθήκες από τη Διαχείριση βιβλιοθηκών στο Arduino IDE και να την εγκαταστήσετε από εκεί. Για αυτό, ανοίξτε το Arduino IDE και μεταβείτε στο Σκίτσο> Συμπερίληψη βιβλιοθήκης> Διαχείριση βιβλιοθηκών . Τώρα αναζητήστε το Adafruit GFX και εγκαταστήστε τη βιβλιοθήκη Adafruit GFX από το Adafruit.
Ομοίως, εγκαταστήστε τις βιβλιοθήκες Adafruit SSD1306 από το Adafruit. Ο αισθητήρας υπερύθρων CO2 δεν απαιτεί βιβλιοθήκη καθώς διαβάζουμε τις τιμές τάσης απευθείας από τον αναλογικό πείρο του Arduino.
Αφού εγκαταστήσετε τις βιβλιοθήκες στο Arduino IDE, ξεκινήστε τον κωδικό συμπεριλαμβάνοντας τα απαραίτητα αρχεία βιβλιοθήκης. Ο αισθητήρας σκόνης δεν απαιτεί βιβλιοθήκη καθώς η ανάγνωση λαμβάνεται απευθείας από τον αναλογικό πείρο του Arduino.
#περιλαμβάνω
Στη συνέχεια, ορίστε το πλάτος και το ύψος OLED. Σε αυτό το έργο, χρησιμοποιούμε οθόνη OLED 128 × 64 SPI. Μπορείτε να αλλάξετε την SCREEN_WIDTH , και SCREEN_HEIGHT μεταβλητές σύμφωνα με την οθόνη σας.
# καθορισμός 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 όπου είναι συνδεδεμένος ο αισθητήρας CO2.
int sensorIn = A0;
Τώρα μέσα στη λειτουργία setup () , αρχικοποιήστε το Serial Monitor με ρυθμό baud 9600 για σκοπούς εντοπισμού σφαλμάτων. Επίσης, αρχικοποιήστε την οθόνη OLED με τη λειτουργία έναρξης () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Μέσα στη συνάρτηση loop () , διαβάστε πρώτα τις τιμές σήματος στον αναλογικό πείρο του Arduino καλώντας τη λειτουργία analogRead () . Μετά από αυτό, μετατρέψτε αυτές τις αναλογικές τιμές σήματος σε τιμές τάσης.
void loop () {int sensorValue = analogRead (sensorIn); τάση επιπλεόντος = αισθητική τιμή * (5000 / 1024.0);
Μετά από αυτό, συγκρίνετε τις τιμές τάσης. Εάν η τάση είναι 0 V, αυτό σημαίνει ότι έχει προκύψει κάποιο πρόβλημα με τον αισθητήρα. Εάν η τάση είναι μεγαλύτερη από 0 V αλλά μικρότερη από 400 V, αυτό σημαίνει ότι ο αισθητήρας βρίσκεται ακόμη στη διαδικασία προθέρμανσης.
if (voltage == 0) {Serial.println ("Σφάλμα"); } αλλιώς εάν (τάση <400) {Serial.println ("προθέρμανση"); }
Εάν η τάση είναι ίση ή μεγαλύτερη από 400 V, τότε μετατρέψτε την σε τιμές συγκέντρωσης CO2.
αλλιώς {int voltage_diference = voltage-400; συγκέντρωση πλωτήρα = διαφορά τάσης * 50.0 / 16.0;
Μετά από αυτό, ορίστε το μέγεθος κειμένου και το χρώμα κειμένου χρησιμοποιώντας το setTextSize () και το setTextColor () .
display.setTextSize (1); display.setTextColor (ΛΕΥΚΟ);
Στη συνέχεια, στην επόμενη γραμμή, ορίστε τη θέση από την οποία ξεκινά το κείμενο χρησιμοποιώντας τη μέθοδο 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 υπέρυθρου βαρύτητας
Μόλις το υλικό και ο κωδικός είναι έτοιμοι, είναι καιρός να δοκιμάσετε τον αισθητήρα. Για αυτό, συνδέστε το Arduino στον φορητό υπολογιστή, επιλέξτε την πλακέτα και τη θύρα και πατήστε το κουμπί μεταφόρτωσης. Στη συνέχεια, ανοίξτε τη σειριακή οθόνη και περιμένετε λίγο (διαδικασία προθέρμανσης), τότε θα δείτε τα τελικά δεδομένα.
Οι τιμές θα εμφανίζονται στην οθόνη OLED όπως φαίνεται παρακάτω:
Σημείωση: Πριν χρησιμοποιήσετε τον αισθητήρα, αφήστε τον αισθητήρα να ζεσταθεί για περίπου 24 ώρες για να λάβετε τις σωστές τιμές PPM. Όταν ενεργοποίησα τον αισθητήρα για πρώτη φορά, η συγκέντρωση CO2 εξόδου ήταν 1500 PPM έως 1700PPM και μετά από μια διαδικασία 24ωρης προθέρμανσης, η συγκέντρωση CO2 εξόδου μειώθηκε σε 450 PPM σε 500 PPM που είναι οι σωστές τιμές PPM. Επομένως, είναι απαραίτητο να βαθμονομήσετε τον αισθητήρα πριν τον χρησιμοποιήσετε για να μετρήσετε τη συγκέντρωση CO2.
Έτσι μπορεί να χρησιμοποιηθεί ένας αισθητήρας υπερύθρων CO2 για τη μέτρηση της ακριβούς συγκέντρωσης CO2 στον αέρα. Ο πλήρης κώδικας και το βίντεο εργασίας δίνονται παρακάτω. Εάν έχετε αμφιβολίες, αφήστε τους στην ενότητα σχολίων ή χρησιμοποιήστε τα φόρουμ μας για τεχνική βοήθεια.