- Αισθητήρες αερίου σειράς MQ
- Προετοιμασία του υλικού σας:
- Προσέγγιση μέτρησης PPM από αισθητήρες αερίου MQ:
- Υπολογισμός της τιμής του Ro στον καθαρό αέρα:
- Μετρήστε την τιμή των Rs:
- Σχέση λόγου Rs / Ro με PPM:
- Πρόγραμμα υπολογισμού PPM χρησιμοποιώντας αισθητήρα MQ:
- Εμφάνιση τιμής PPM σε Hardware με Arduino και MQ-137:
Αμέσως από την εποχή της βιομηχανικής εποχής, εμείς η ανθρωπότητα αναπτύσσεται ραγδαία. Με κάθε πρόοδο μολύνουμε επίσης το περιβάλλον μας και τελικά το υποβαθμίζουμε. Τώρα η υπερθέρμανση του πλανήτη είναι μια ανησυχητική απειλή και ακόμη και ο αέρας που αναπνέουμε γίνονται κρίσιμοι. Έτσι, η παρακολούθηση της ποιότητας του αέρα έχει επίσης αρχίσει να αποκτά σημασία. Έτσι, σε αυτό το άρθρο θα μάθουμε πώς να χρησιμοποιούμε οποιονδήποτε αισθητήρα αερίου σειράς MQ με το Arduino και να δείχνουμε την έξοδο σε PPM (μέρη ανά εκατομμύριο). Το PPM εκφράζεται επίσης ως χιλιοστόγραμμα ανά λίτρο (mg / L). Αυτοί οι αισθητήρες είναι συνήθως διαθέσιμοι και είναι επίσης αξιόπιστοι για τη μέτρηση διαφορετικών τύπων αερίων που φαίνονται παρακάτω
Αισθητήρες αερίου σειράς MQ
- Διοξείδιο του άνθρακα (CO2): MG-811
- Μονοξείδιο του άνθρακα (CO): MQ-9
- Σύνολο πτητικών οργανικών ενώσεων (TVOC): CCS811
- Ισοδύναμο διοξείδιο του άνθρακα (eCO2): CCS811
- Μεταλλικό Οξείδιο (MOX): CCS811
- Αμμωνία: MQ-137
- Ποιότητα αέρα: MQ-135
- Υγραέριο, αλκοόλ, καπνός: MQ2
Έχουμε ήδη χρησιμοποιήσει το MQ2 για ανίχνευση καπνού και MQ-135 για το έργο παρακολούθησης της ποιότητας του αέρα. Εδώ θα χρησιμοποιήσω τον αισθητήρα MQ-137 από το sainsmart για τη μέτρηση της αμμωνίας σε ppm. Με τον αισθητήρα στο χέρι, πέρασα όλα τα διαθέσιμα σεμινάρια και διαπίστωσα ότι δεν υπάρχει κατάλληλη τεκμηρίωση σχετικά με τον τρόπο μέτρησης του αερίου σε ppm. Τα περισσότερα σεμινάρια είτε αφορούν μόνο τις αναλογικές τιμές είτε εισάγουν κάποιες σταθερές που δεν είναι αξιόπιστες για τη μέτρηση όλων των τύπων αερίου. Έτσι, αφού έπαιξα στο διαδίκτυο για πολύ καιρό, βρήκα τελικά πώς να χρησιμοποιήσω αυτούς τους αισθητήρες αερίου σειράς MQ για να μετρήσω το ppm χρησιμοποιώντας το Arduino. Εξηγώ πράγματα από κάτω χωρίς βιβλιοθήκες, ώστε να μπορείτε να χρησιμοποιήσετε αυτό το άρθρο για οποιονδήποτε αισθητήρα αερίου που διατίθεται μαζί σας.
Προετοιμασία του υλικού σας:
Οι αισθητήρες αερίου MQ μπορούν να αγοραστούν είτε ως μονάδα είτε ως αισθητήρας μόνο. Εάν ο σκοπός σας είναι να μετρήσετε μόνο ppm, τότε είναι καλύτερο να αγοράσετε τον αισθητήρα μόνο αφού η μονάδα είναι καλή μόνο για τη χρήση του Ψηφιακού πείρου. Έτσι, εάν έχετε ήδη αγοράσει τη λειτουργική μονάδα, τότε πρέπει να εκτελέσετε ένα μικρό hack που θα συζητηθεί περαιτέρω. Προς το παρόν, ας υποθέσουμε ότι έχετε αγοράσει τον αισθητήρα. Το pinout και η σύνδεση του αισθητήρα φαίνονται παρακάτω
Όπως μπορείτε να δείτε, πρέπει απλώς να συνδέσετε το ένα άκρο του «Η» για παροχή και το άλλο άκρο του «Η» στο έδαφος. Στη συνέχεια συνδυάστε τόσο τα Α όσο και τα δύο Β. Συνδέστε ένα σετ για παροχή τάσης και το άλλο στον αναλογικό σας πείρο. Η αντίσταση R L διαδραματίζει πολύ σημαντικό ρόλο στη λειτουργία του αισθητήρα. Γι 'αυτό, σημειώστε ποια τιμή χρησιμοποιείτε, συνιστάται τιμή 47k.
Εάν έχετε ήδη αγοράσει μια ενότητα, τότε θα πρέπει να παρακολουθείτε τα ίχνη PCB για να βρείτε την τιμή του R L σας στον πίνακα. Η Grauonline έχει ήδη κάνει αυτό το έργο για εμάς και το διάγραμμα κυκλώματος της πλακέτας αισθητήρα αερίου MQ δίνεται παρακάτω.
Όπως μπορείτε να δείτε, η αντίσταση R L (R2) είναι συνδεδεμένη μεταξύ του πείρου Aout και της γείωσης, οπότε αν έχετε μια μονάδα, η τιμή του R L μπορεί να μετρηθεί χρησιμοποιώντας ένα πολύμετρο σε λειτουργία αντίστασης σε ολόκληρο τον πείρο Vout και τον πείρο Vcc του η ενότητα. Στον αισθητήρα αερίου sainsmart MQ-137 η τιμή του RL ήταν 1K και βρισκόταν εδώ όπως φαίνεται στην παρακάτω εικόνα.
Ωστόσο, η ιστοσελίδα ισχυρίζεται ότι παρέχει μια μεταβλητή κατσαρόλα Ε Ε που δεν είναι αλήθεια, όπως μπορείτε να δείτε καθαρά στο διάγραμμα του κυκλώματος, το δοχείο χρησιμοποιείται για τη ρύθμιση της μεταβλητής τάσης για την op-amp και δεν έχει καμία σχέση με την Ε Ε. Επομένως, πρέπει να κολλήσουμε με μη αυτόματο τρόπο την αντίσταση SMD (1K) που φαίνεται παραπάνω και πρέπει να χρησιμοποιήσουμε τη δική μας αντίσταση σε όλη την γείωση και τον πείρο Vout που θα λειτουργήσει ως RL. Η καλύτερη τιμή για το RL θα είναι 47K όπως προτείνεται από το δελτίο δεδομένων, επομένως θα χρησιμοποιήσουμε το ίδιο.
Προσέγγιση μέτρησης PPM από αισθητήρες αερίου MQ:
Τώρα που γνωρίζουμε την τιμή του R L, ας προχωρήσουμε στον τρόπο μέτρησης των ppm από αυτούς τους αισθητήρες. Όπως όλοι οι αισθητήρες, το μέρος για να ξεκινήσετε είναι το δελτίο δεδομένων του. Το φύλλο δεδομένων MQ-137 δίνεται εδώ, αλλά βεβαιωθείτε ότι βρείτε το σωστό φύλλο δεδομένων για τον αισθητήρα σας. Μέσα στο δελτίο δεδομένων χρειαζόμαστε μόνο ένα γράφημα που θα σχεδιάζεται έναντι (Rs / Ro) VS PPM, αυτό είναι αυτό που χρειαζόμαστε για τους υπολογισμούς μας. Οπότε μαλακώστε το και κρατήστε το κάπου βολικό. Ο παρακάτω για τον αισθητήρα μου εμφανίζεται παρακάτω.
Αποδεικνύεται ότι ο αισθητήρας MQ137 μπορεί να μετρήσει NH3, C2H6O και ακόμη και CO. Όμως, εδώ ενδιαφέρομαι μόνο για τις τιμές του NH3. Ωστόσο, μπορείτε να χρησιμοποιήσετε την ίδια μέθοδο για τον υπολογισμό του ppm για οποιονδήποτε αισθητήρα θέλετε. Αυτό το γράφημα είναι η μόνη πηγή για εμάς να βρούμε την τιμή των ppm και αν μπορούσαμε κάπως να υπολογίσουμε το μερίδιο Rs / Ro (άξονας X) μπορούμε να χρησιμοποιήσουμε αυτό το γράφημα για να βρούμε την τιμή του ppm (άξονας Y). Για να βρούμε την τιμή Rs / Ro πρέπει να βρούμε την τιμή Rs και την τιμή Ro. Όπου Rs είναι η αντίσταση του αισθητήρα σε συγκέντρωση αερίου και το Ro είναι η αντίσταση του αισθητήρα σε καθαρό sir.
Ναι… αυτό είναι το σχέδιο ας δούμε πώς μπορούμε να ξεφύγουμε με αυτό….
Υπολογισμός της τιμής του Ro στον καθαρό αέρα:
Σημειώστε ότι στο γράφημα η τιμή Rs / Ro είναι σταθερή για τον αέρα (παχιά μπλε γραμμή), ώστε να μπορούμε να το χρησιμοποιήσουμε προς όφελός μας και να πούμε ότι όταν ο αισθητήρας λειτουργεί σε καθαρό αέρα η τιμή των Rs / Ro θα είναι 3,6 ανατρέξτε στην εικόνα παρακάτω
Rs / Ro = 3,6
Από το δελτίο δεδομένων έχουμε επίσης έναν τύπο για τον υπολογισμό της αξίας Rs. Ο τύπος φαίνεται παρακάτω. Εάν ενδιαφέρεστε να μάθετε πώς παράγεται αυτός ο τύπος, μπορείτε να διαβάσετε τα συστήματα jay con, θα ήθελα επίσης να τους πιστώσω που με βοηθούν να το λύσω.
Σε αυτόν τον τύπο η τιμή του Vc είναι η τάση τροφοδοσίας μας (+ 5V) και η τιμή του R L είναι αυτή που υπολογίσαμε ήδη (47K για τον αισθητήρα μου). Εάν γράψουμε ένα μικρό πρόγραμμα Arduino θα μπορούσαμε επίσης να βρούμε την τιμή του V RL και τελικά να υπολογίσουμε την τιμή των Rs. Έχω δώσει ένα πρόγραμμα Arduino παρακάτω το οποίο διαβάζει την αναλογική τάση (V RL) του αισθητήρα και υπολογίζει την τιμή Rs χρησιμοποιώντας αυτόν τον τύπο και τελικά το εμφανίζει στη σειριακή οθόνη. Το πρόγραμμα εξηγείται καλά μέσω της ενότητας σχολίων, επομένως παραλείπω την εξήγησή του εδώ για να διατηρήσω αυτό το άρθρο σύντομο.
/ * * Πρόγραμμα για τη μέτρηση της τιμής R0 για μια γνωστή RL σε κατάσταση καθαρού αέρα * Πρόγραμμα από: B.Aswinth Raj * Ιστοσελίδα: www.circuitdigest.com * Ημερομηνία: 28-12-2017 * / // Αυτό το πρόγραμμα λειτουργεί καλύτερα σε ένα δωμάτιο καθαρού αέρα με θερμοκρασία Θερμοκρασία: 20 ℃, Υγρασία: 65%, συγκέντρωση O2 21% και όταν η τιμή του Rl είναι 47K # καθορισμός RL 47 // Η τιμή της αντίστασης RL είναι 47K κενή ρύθμιση () // Εκτελείται μόνο μία φορά {Serial.begin (9600) // Ξεκινήστε το σειριακό COM για την εμφάνιση της τιμής} void loop () {float analog_value; float VRL; επιπλέουν Rs; επιπλέω Ro; για (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Διαβάστε την αναλογική έξοδο του αισθητήρα για 200 φορές {analog_value = analog_value + analogRead (A0); // προσθέστε τις τιμές για 200} analog_value = analog_value / 500.0; // Λήψη μέσου VRL = αναλογική τιμή * (5.0 / 1023.0).// Μετατροπή αναλογικής τιμής σε τάση // RS = ((Vc / VRL) -1) * RL είναι οι τύποι που αποκτήσαμε από το φύλλο δεδομένων Rs = ((5.0 / VRL) -1) * RL; // Το RS / RO είναι 3,6 καθώς αποκτήσαμε από το γράφημα του δελτίου δεδομένων Ro = Rs / 3.6; Serial.print ("Ro at fresh air ="); Serial.println (Ro); // Οθόνη υπολογισμένη καθυστέρηση Ro (1000). // καθυστέρηση 1 δευτερολέπτου}
Σημείωση: Η τιμή του Ro θα κυμαίνεται, αφήστε τον αισθητήρα να προθερμανθεί τουλάχιστον για 10 ώρες και στη συνέχεια χρησιμοποιήστε την τιμή του Ro.
Κατέληξα στο συμπέρασμα ότι η τιμή του Ro είναι 30 KΩ για τον αισθητήρα μου (όταν το R L είναι 47kΩ). Η δική σας μπορεί να διαφέρει ελαφρώς.
Μετρήστε την τιμή των Rs:
Τώρα που γνωρίζουμε την τιμή του Ro, μπορούμε εύκολα να υπολογίσουμε την τιμή Rs χρησιμοποιώντας τους παραπάνω δύο τύπους. Σημειώστε ότι η τιμή Rs που υπολογίστηκε προηγουμένως αφορά την κατάσταση του καθαρού αέρα και δεν θα είναι η ίδια όταν υπάρχει αμμωνία στον αέρα. Ο υπολογισμός της αξίας Rs δεν είναι ένα μεγάλο ζήτημα το οποίο μπορούμε άμεσα να φροντίσουμε στο τελικό πρόγραμμα.
Σχέση λόγου Rs / Ro με PPM:
Τώρα που ξέρουμε πώς να μετρήσουμε την τιμή των Rs και Ro, θα μπορούσαμε να βρούμε την αναλογία του (Rs / Ro). Στη συνέχεια μπορούμε να χρησιμοποιήσουμε το γράφημα (φαίνεται παρακάτω) για να συσχετιστούμε με την αντίστοιχη τιμή του PPM.
Αν και η γραμμή NH3 (κυανό χρώμα) φαίνεται να είναι γραμμική, στην πραγματικότητα δεν είναι γραμμική. Η εμφάνιση οφείλεται στο ότι η κλίμακα χωρίζεται ομοιόμορφα για εμφάνιση. Έτσι η σχέση μεταξύ Rs / Ro και PPM είναι στην πραγματικότητα λογαριθμική που μπορεί να αναπαρασταθεί με την παρακάτω εξίσωση.
log (y) = m * log (x) + b όπου, y = λόγος (Rs / Ro) x = PPM m = κλίση της γραμμής b = σημείο τομής
Για να βρούμε τις τιμές m και b πρέπει να λάβουμε υπόψη δύο σημεία (x1, y1) και (x2, y2) στη γραμμή αερίου μας. Εδώ εργαζόμαστε με αμμωνία, οπότε τα δύο σημεία που έχω εξετάσει είναι (40,1) και (100,0.8) όπως φαίνεται στην παραπάνω εικόνα (επισημαίνεται ως κόκκινο) με κόκκινη σήμανση.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Ομοίως για το (b) ας πάρουμε την τιμή του μέσου σημείου (x, y) από το γράφημα που είναι (70,0.75) όπως φαίνεται στην παραπάνω εικόνα (επισημαίνεται με μπλε χρώμα)
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
Αυτό είναι τώρα που έχουμε υπολογίσει την τιμή των m και b μπορούμε να εξισώσουμε την τιμή του (Rs / Ro) με το PPM χρησιμοποιώντας τον παρακάτω τύπο
PPM = 10 ^ {/ m}
Πρόγραμμα υπολογισμού PPM χρησιμοποιώντας αισθητήρα MQ:
Το πλήρες πρόγραμμα για τον υπολογισμό του PPM χρησιμοποιώντας έναν αισθητήρα MQ δίνεται παρακάτω. Λίγες σημαντικές γραμμές εξηγούνται παρακάτω.
Πριν προχωρήσουμε στο πρόγραμμα πρέπει να τροφοδοτήσουμε τις τιμές της αντίστασης φορτίου (RL), της κλίσης (m), της παρεμβολής (b) και της τιμής αντίστασης στον καθαρό αέρα (Ro). Η διαδικασία λήψης όλων αυτών των τιμών έχει ήδη εξηγηθεί, οπότε ας τις τροφοδοτήσουμε τώρα
#define RL 47 // Η τιμή της αντίστασης RL είναι 47K #define m -0.263 // Εισαγωγή υπολογιζόμενης κλίσης #define b 0,42 // Εισαγωγή υπολογιζόμενης αναχαίτισης #define Ro 30 // Enter βρέθηκε τιμή Ro
Στη συνέχεια, διαβάστε την πτώση τάσης στον αισθητήρα (VRL) και μετατρέψτε την σε τάση (0V έως 5V), καθώς η αναλογική ένδειξη θα επιστρέψει μόνο τιμές από 0 έως 1024.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Μετρήστε την πτώση τάσης και μετατρέψτε σε 0-5V
Τώρα, που υπολογίζεται η τιμή του VRL, μπορείτε να χρησιμοποιήσετε τον τύπο που συζητήθηκε παραπάνω για να υπολογίσετε την τιμή Rs και επίσης την αναλογία (Rs / Ro)
αναλογία = Rs / Ro; // εύρεση αναλογίας Rs / Ro
Τέλος, μπορούμε να υπολογίσουμε το PPM με τον λογαριθμικό τύπο μας και να το εμφανίσουμε στη σειριακή οθόνη μας όπως φαίνεται παρακάτω
διπλό ppm = pow (10, ((log10 (λόγος) -b) / m)); // χρησιμοποιήστε τον τύπο για τον υπολογισμό ppm Serial.print (ppm); // Εμφάνιση ppm
Εμφάνιση τιμής PPM σε Hardware με Arduino και MQ-137:
Αρκετά από όλη τη θεωρία ας δημιουργήσουμε ένα απλό κύκλωμα με τον αισθητήρα και την οθόνη LCD για την εμφάνιση της τιμής του αερίου στο PPM. Εδώ ο αισθητήρας που χρησιμοποιώ είναι MQ137 ο οποίος μετρά την αμμωνία, το διάγραμμα κυκλώματος για τη ρύθμιση μου φαίνεται παρακάτω.
Συνδέστε τον αισθητήρα και την οθόνη LCD όπως φαίνεται στο διάγραμμα κυκλώματος και ανεβάστε τον κωδικό που δίνεται στο τέλος του προγράμματος. Πρέπει να τροποποιήσετε την τιμή Ro όπως εξηγείται παραπάνω. Πραγματοποιήστε επίσης τις αλλαγές στις τιμές των παραμέτρων εάν χρησιμοποιείτε οποιαδήποτε άλλη αντίσταση ως RL εκτός από 4.7K.
Αφήστε τη συσκευή σας ενεργοποιημένη για τουλάχιστον 2 ώρες προτού προβείτε σε μετρήσεις, (συνιστάται 48 ώρες για ακριβέστερες τιμές). Αυτή τη φορά ονομάζεται χρόνος θέρμανσης, κατά την οποία ο αισθητήρας θερμαίνεται. Μετά από αυτό, θα πρέπει να μπορείτε να δείτε την τιμή του PPM και την τάση που εμφανίζεται στην οθόνη LCD όπως φαίνεται παρακάτω.
Τώρα για να βεβαιωθείτε ότι οι τιμές σχετίζονται πραγματικά με την παρουσία αμμωνίας, ας τοποθετήσουμε αυτήν τη διάταξη μέσα σε ένα κλειστό δοχείο και στείλτε αέριο αμμωνίας μέσα σε αυτό για να ελέγξετε αν οι τιμές αυξάνονται. Δεν έχω έναν κατάλληλο μετρητή PPM μαζί μου να το βαθμονομήσω και θα ήταν υπέροχο αν κάποιος με μετρητή μπορούσε να δοκιμάσει αυτή τη ρύθμιση και να με ενημερώσει.
Μπορείτε να παρακολουθήσετε το παρακάτω βίντεο για να ελέγξετε πώς ποικίλουν οι μετρήσεις με βάση την παρουσία αμμωνίας. Ελπίζω να καταλάβατε την ιδέα και να σας άρεσε να την μαθαίνετε. Εάν έχετε αμφιβολίες αφήστε τους στην ενότητα σχολίων ή για πιο αναλυτική βοήθεια χρησιμοποιήστε το φόρουμ εδώ.