- Απαιτούμενα στοιχεία
- Ενότητα οθόνης OLED 0,96 '
- Προετοιμασία του αισθητήρα MQ-135
- Διάγραμμα κυκλώματος για διασύνδεση MQ135 με Arduino
- Υπολογισμός του R
- Κωδικός για τη μέτρηση του CO2 χρησιμοποιώντας τον αισθητήρα Arduino MQ135
- Δοκιμή της διασύνδεσης του αισθητήρα MQ-135
Το επίπεδο του ατμοσφαιρικού CO2 της γης αυξάνεται μέρα με τη μέρα. Ο παγκόσμιος μέσος όρος ατμοσφαιρικού διοξειδίου του άνθρακα το 2019 ήταν 409,8 μέρη ανά εκατομμύριο και τον Οκτώβριο-2020 είναι 411,29. Το διοξείδιο του άνθρακα είναι ένα βασικό αέριο του θερμοκηπίου και είναι υπεύθυνο για περίπου τα τρία τέταρτα των εκπομπών. Έτσι , η παρακολούθηση του επιπέδου CO2 έχει επίσης αρχίσει να αποκτά σημασία.
Στο προηγούμενο έργο μας, χρησιμοποιήσαμε τον αισθητήρα CO2 υπέρυθρων βαρύτητας για τη μέτρηση της συγκέντρωσης CO2 στον αέρα. Σε αυτό το έργο, θα χρησιμοποιήσουμε έναν αισθητήρα MQ-135 με το Arduino για τη μέτρηση της συγκέντρωσης CO2. Οι μετρημένες τιμές συγκέντρωσης CO2 θα εμφανίζονται στη μονάδα OLED και τελευταίες θα συγκρίνουμε επίσης τις μετρήσεις αισθητήρων Arduino MQ-135 με τις ενδείξεις αισθητήρων υπέρυθρων CO2. Εκτός από το CO2, μετρήσαμε επίσης τη συγκέντρωση υγραερίου LPG, καπνού και αμμωνίας χρησιμοποιώντας το Arduino.
Απαιτούμενα στοιχεία
- Arduino Nano
- Αισθητήρας MQ-135
- Καλώδια αλτών
- Ενότητα οθόνης OLED 0,96 'SPI
- Ψωμί
- Αντίσταση 22KΩ
Ενότητα οθόνης 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
Προετοιμασία του αισθητήρα MQ-135
Ο αισθητήρας αερίου MQ-135 είναι ένας αισθητήρας ποιότητας αέρα για την ανίχνευση ενός ευρέος φάσματος αερίων, συμπεριλαμβανομένων των NH3, NOx, αλκοόλ, βενζολίου, καπνού και CO2. Ο αισθητήρας MQ-135 μπορεί να αγοραστεί είτε ως μονάδα είτε ως αισθητήρας μόνο. Σε αυτό το έργο, χρησιμοποιούμε μια μονάδα αισθητήρα MQ-135 για τη μέτρηση της συγκέντρωσης CO2 σε PPM. Το διάγραμμα κυκλώματος για την πλακέτα MQ-135 δίνεται παρακάτω:
Η αντίσταση φορτίου RL παίζει πολύ σημαντικό ρόλο στη λειτουργία του αισθητήρα. Αυτή η αντίσταση αλλάζει την τιμή αντίστασης ανάλογα με τη συγκέντρωση του αερίου. Σύμφωνα με το φύλλο δεδομένων MQ-135, η τιμή της αντίστασης φορτίου μπορεί να κυμαίνεται οπουδήποτε από 10KΩ έως 47KΩ. Το δελτίο δεδομένων συνιστά να βαθμονομήσετε τον ανιχνευτή για συγκέντρωση αλκοόλης 100ppm NH3 ή 50ppm στον αέρα και να χρησιμοποιήσετε τιμή αντίστασης φορτίου (RL) περίπου 20 KΩ. Αλλά αν παρακολουθείτε τα ίχνη PCB για να βρείτε την τιμή του RL σας στην πλακέτα, μπορείτε να δείτε μια αντίσταση φόρτωσης 1KΩ (102).
Έτσι, για να μετρήσετε τις κατάλληλες τιμές συγκέντρωσης CO2, πρέπει να αντικαταστήσετε την αντίσταση 1KΩ με μια αντίσταση 22KΩ.
Διάγραμμα κυκλώματος για διασύνδεση MQ135 με Arduino
Τα πλήρη σχήματα για τη σύνδεση του αισθητήρα αερίου MQ-135 με το Arduino δίνονται παρακάτω:
Το κύκλωμα είναι πολύ απλό καθώς συνδέουμε μόνο τη μονάδα αισθητήρα MQ-135 και OLED Display με το Arduino Nano. Ο αισθητήρας αερίου MQ-135 και η οθόνη OLED και οι δύο τροφοδοτούνται με + 5V και GND. Ο αναλογικός ακροδέκτης του αισθητήρα MQ-135 συνδέεται με τον ακροδέκτη 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 MQ135 θα πρέπει να μοιάζει παρακάτω:
Υπολογισμός του R
Τώρα που γνωρίζουμε την αξία της RL, ας προχωρήσουμε με τον τρόπο υπολογισμού του R o τιμές σε καθαρό αέρα. Εδώ πρόκειται να χρησιμοποιήσουμε το MQ135.h για να μετρήσουμε τη συγκέντρωση CO2 στον αέρα. Πραγματοποιήστε πρώτα λήψη της βιβλιοθήκης MQ-135 και, στη συνέχεια, προθερμάνετε τον αισθητήρα για 24 ώρες πριν διαβάσετε τις τιμές R o. Μετά τη διαδικασία προθέρμανσης, χρησιμοποιήστε τον παρακάτω κώδικα για να διαβάσετε τις τιμές R o:
#include "MQ135.h" άκυρη ρύθμιση () {Serial.begin (9600); } κενός βρόχος () {MQ135 gasSensor = MQ135 (A0); // Συνδέστε τον αισθητήρα στον πείρο A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); καθυστέρηση (1000) }
Τώρα μόλις λάβετε τις τιμές R o, μεταβείτε στα Έγγραφα> Arduino> βιβλιοθήκες> Κύριος φάκελος MQ135 και ανοίξτε το αρχείο MQ135.h και αλλάξτε τις τιμές RLOAD & RZERO.
/// Η αντίσταση φορτίου στον πίνακα #define RLOAD 22.0 /// Αντίσταση βαθμονόμησης σε ατμοσφαιρικό επίπεδο CO2 #define RZERO 5804.99
Τώρα μετακινηθείτε προς τα κάτω και αντικαταστήστε την τιμή ATMOCO2 με το τρέχον ατμοσφαιρικό CO2 που είναι 411.29
/// Ατμοσφαιρικό επίπεδο CO2 για σκοπούς βαθμονόμησης # καθορισμός ATMOCO2 397.13
Κωδικός για τη μέτρηση του CO2 χρησιμοποιώντας τον αισθητήρα Arduino MQ135
Ο πλήρης κωδικός για τη διασύνδεση του αισθητήρα MQ-135 με το Arduino δίνεται στο τέλος του εγγράφου. Εδώ εξηγούμε ορισμένα σημαντικά μέρη του κωδικού MQ135 Arduino.
Ο κώδικας χρησιμοποιεί το Adafruit_GFX , και Adafruit_SSD1306 , και MQ135.h βιβλιοθήκες. Μπορείτε να κατεβάσετε αυτές τις βιβλιοθήκες από τη Διαχείριση βιβλιοθηκών στο Arduino IDE και να την εγκαταστήσετε από εκεί. Για αυτό, ανοίξτε το Arduino IDE και μεταβείτε στο Σκίτσο <Συμπερίληψη βιβλιοθήκης <Διαχείριση βιβλιοθηκών . Τώρα αναζητήστε το Adafruit GFX και εγκαταστήστε τη βιβλιοθήκη Adafruit GFX από το Adafruit.
Ομοίως, εγκαταστήστε τις βιβλιοθήκες Adafruit SSD1306 από το Adafruit. Μπορείτε να κατεβάσετε τη βιβλιοθήκη MQ135 από εδώ.
Αφού εγκαταστήσετε τις βιβλιοθήκες στο Arduino IDE, ξεκινήστε τον κώδικα συμπεριλαμβάνοντας τα απαραίτητα αρχεία βιβλιοθηκών.
# συμπερίληψη "MQ135.h" #include
Στη συνέχεια, ορίστε το πλάτος και το ύψος 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 όπου είναι συνδεδεμένος ο αισθητήρας MQ-135.
int sensorIn = A0;
Τώρα μέσα στη λειτουργία setup () , αρχικοποιήστε το Serial Monitor με ρυθμό baud 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 και την ανάγνωση από τον αναλογικό πείρο.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Μετά από αυτό, ορίστε το μέγεθος κειμένου και το χρώμα κειμένου χρησιμοποιώντας το setTextSize () και το setTextColor () .
display.setTextSize (1); display.setTextColor (ΛΕΥΚΟ);
Στη συνέχεια, στην επόμενη γραμμή, ορίστε τη θέση από την οποία ξεκινά το κείμενο χρησιμοποιώντας τη μέθοδο 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 (ppm);
Και στο τελευταίο, καλέστε τη μέθοδο display () για να εμφανίσετε το κείμενο στην οθόνη OLED
display.display (); display.clearDisplay ();
Δοκιμή της διασύνδεσης του αισθητήρα MQ-135
Μόλις το υλικό και ο κωδικός είναι έτοιμοι, είναι καιρός να δοκιμάσετε τον αισθητήρα. Για αυτό, συνδέστε το Arduino στον φορητό υπολογιστή, επιλέξτε την πλακέτα και τη θύρα και πατήστε το κουμπί μεταφόρτωσης. Στη συνέχεια, ανοίξτε τη σειριακή οθόνη και περιμένετε λίγο (διαδικασία προθέρμανσης), τότε θα δείτε τα τελικά δεδομένα. Οι τιμές θα εμφανίζονται στην οθόνη OLED όπως φαίνεται παρακάτω:
Έτσι μπορεί να χρησιμοποιηθεί ένας αισθητήρας MQ-135 για τη μέτρηση του ακριβούς CO2 στον αέρα. Ο πλήρης κωδικός Arduino Sensor MQ135 Air Quality και το βίντεο εργασίας δίνονται παρακάτω. Εάν έχετε αμφιβολίες, αφήστε τους στην ενότητα σχολίων.