Κατηγορίες: Κύκλωμα μικροελεγκτή
Αριθμός προβολών: 9996
Σχόλια σχετικά με το άρθρο: 0
Μετρήστε τη θερμοκρασία και την υγρασία στο Arduino - μια επιλογή από τρόπους
Για να δημιουργήσετε έναν οικιακό μετεωρολογικό σταθμό ή ένα θερμόμετρο, θα πρέπει να μάθετε πώς μπορείτε να συνδυάσετε τον πίνακα Arduino και μια συσκευή μέτρησης της θερμοκρασίας και της υγρασίας. Η μέτρηση της θερμοκρασίας μπορεί να αντιμετωπιστεί με τη χρήση θερμίστορ ή ψηφιακού αισθητήρα DS18B20, αλλά για μέτρηση της υγρασίας χρησιμοποιήστε πιο πολύπλοκες συσκευές - αισθητήρες DHT11 ή DHT22. Σε αυτό το άρθρο, θα σας δείξουμε πώς να μετρήσετε τη θερμοκρασία και την υγρασία χρησιμοποιώντας το Arduino και αυτούς τους αισθητήρες.

Μέτρηση θερμίστορ
Ο ευκολότερος τρόπος για τον προσδιορισμό της θερμοκρασίας είναι η χρήση θερμίστορ. Αυτός είναι ένας τύπος αντιστάτη του οποίου η αντίσταση εξαρτάται από τη θερμοκρασία περιβάλλοντος. Υπάρχουν θερμοστάτες με θετικό και αρνητικό συντελεστή θερμοκρασίας αντίστασης - PTC (επίσης ονομαζόμενοι υποστοιχείς) και NTC θερμοστάτες, αντίστοιχα.
Στο παρακάτω γράφημα βλέπετε την εξάρτηση της αντίστασης από την θερμοκρασία. Η διακεκομμένη γραμμή δείχνει την εξάρτηση για έναν αρνητικό θερμικό αντιστάτη TCS (NTC) και τη συμπαγή γραμμή για θετικό θερμικό αντιστάτη TCS (PTC).

Τι βλέπουμε εδώ; Το πρώτο πράγμα που αγγίζει το μάτι σας είναι ότι το χρονοδιάγραμμα για τον θερμικό αντιστάτη PTC είναι σπασμένο και θα είναι δύσκολο ή αδύνατο να μετρηθεί μια σειρά θερμοκρασιακών τιμών, αλλά το πρόγραμμα για το NTC thermistor είναι περισσότερο ή λιγότερο ομοιόμορφο, αν και είναι σαφώς μη γραμμικό. Τι σημαίνει αυτό; Χρησιμοποιώντας ένα θερμοστάτη NTC είναι ευκολότερο να μετράτε τη θερμοκρασία, επειδή είναι ευκολότερο να εντοπίσετε τη λειτουργία με την οποία αλλάζουν οι τιμές της.
Για να μετατρέψετε τη θερμοκρασία σε αντίσταση, μπορείτε να πάρετε τις τιμές χειροκίνητα, αλλά αυτό είναι δύσκολο να γίνει στο σπίτι και χρειάζεστε ένα θερμόμετρο για να καθορίσετε τις πραγματικές τιμές της θερμοκρασίας του μέσου. Στα δελτία δεδομένων ορισμένων εξαρτημάτων, ένας τέτοιος πίνακας δίνεται, για παράδειγμα, για μια σειρά από NTC θερμίστορες από τη Vishay.

Στη συνέχεια, μπορείτε να οργανώσετε τη μετάφραση μέσω των κλάδων χρησιμοποιώντας τη λειτουργία if ... else ή switchcase. Ωστόσο, εάν δεν υπάρχουν τέτοιοι πίνακες στα δελτία δεδομένων, πρέπει να υπολογίσετε τη συνάρτηση με την οποία η αντίσταση αλλάζει με την αύξηση της θερμοκρασίας.
Για να περιγράψουμε αυτήν την αλλαγή, υπάρχει η εξίσωση Steinhart-Hart.

όπου Α, Β και C είναι οι σταθερές θερμίστορ που προσδιορίζονται με μέτρηση τριών θερμοκρασιών με διαφορά τουλάχιστον 10 βαθμών Κελσίου. Ταυτόχρονα, διαφορετικές πηγές δείχνουν ότι για ένα τυπικό 10 kΩ NTC θερμίστορ είναι ίσοι με:


Β - βήτα, υπολογίζεται με βάση τη μέτρηση της αντίστασης για δύο διαφορετικές θερμοκρασίες. Δείχνεται είτε στο δελτίο δεδομένων (όπως απεικονίζεται παρακάτω), είτε υπολογίζεται ανεξάρτητα.

Στην περίπτωση αυτή, το Β υποδεικνύεται στη μορφή:

Αυτό σημαίνει ότι ο συντελεστής υπολογίστηκε με βάση τα δεδομένα που λαμβάνονται κατά τη μέτρηση της αντίστασης σε θερμοκρασίες 25 και 100 βαθμών Κελσίου, και αυτή είναι η πιο κοινή επιλογή. Στη συνέχεια υπολογίζεται από τον τύπο:
Β = (ln (R1) - Ιη (R2)) / (1 / Τ1 - 1 / Τ2)
Ένα τυπικό διάγραμμα σύνδεσης ενός θερμίστορ σε έναν μικροελεγκτή φαίνεται παρακάτω.

Εδώ το R1 είναι ένας σταθερός αντιστάτης, ο θερμίστορ συνδέεται με την πηγή ισχύος και τα δεδομένα λαμβάνονται από το μέσον μεταξύ τους, το διάγραμμα υποδηλώνει υπό όρους ότι το σήμα τροφοδοτείται στον ακροδέκτη Α0 - αυτό αναλογική είσοδος Arduino.

Για να υπολογίσετε την αντίσταση ενός θερμίστορ, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο:
R του θερμίστορ = R1⋅ ((Vcc / Voutput) -1)
Για να μεταφράσετε σε μια γλώσσα που είναι κατανοητή για arduino, θα πρέπει να θυμάστε ότι το arduino έχει ADC 10 bit, έτσι ώστε η μέγιστη ψηφιακή τιμή του σήματος εισόδου (τάση 5V) θα είναι 1023. Στη συνέχεια, υπό όρους:
-
Dmax = 1023;
-
D είναι η πραγματική τιμή του σήματος.
Στη συνέχεια:
R του θερμίστορ = R1⋅ ((Dmax / D) -1)
Τώρα χρησιμοποιούμε αυτό για να υπολογίσουμε την αντίσταση και στη συνέχεια υπολογίσουμε τη θερμοκρασία του θερμίστορ χρησιμοποιώντας την εξίσωση beta σε μια γλώσσα προγραμματισμού για το Arduino. Το σκίτσο θα είναι έτσι:

DS18B20
Ακόμα πιο δημοφιλής για τη μέτρηση της θερμοκρασίας με.Η Arduino βρήκε έναν ψηφιακό αισθητήρα DS18B20. Επικοινωνεί με τον μικροελεγκτή μέσω της διασύνδεσης 1 καλωδίου, μπορείτε να συνδέσετε αρκετούς αισθητήρες (έως 127) σε ένα καλώδιο και για να έχετε πρόσβαση σε αυτές θα πρέπει να βρείτε το αναγνωριστικό καθενός από τους αισθητήρες.
Σημείωση: πρέπει να γνωρίζετε το αναγνωριστικό ακόμη και αν χρησιμοποιείτε μόνο 1 αισθητήρα.

Το διάγραμμα σύνδεσης του αισθητήρα ds18b20 με το Arduino μοιάζει με αυτό:


Υπάρχει επίσης ένας παρασιτικός τρόπος λειτουργίας - το διάγραμμα σύνδεσης φαίνεται έτσι (χρειάζεστε δύο σύρματα αντί για τρία):

Σε αυτή τη λειτουργία, η σωστή λειτουργία δεν είναι εγγυημένη όταν μετράτε θερμοκρασίες άνω των 100 βαθμών Κελσίου.
Ο ψηφιακός αισθητήρας θερμοκρασίας DS18B20 αποτελείται από ένα ολόκληρο σύνολο κόμβων, όπως και κάθε άλλο SIMS. Μπορείτε να παρακολουθήσετε την εσωτερική συσκευή της παρακάτω:

Για να συνεργαστείτε με αυτό, πρέπει να κάνετε λήψη της βιβλιοθήκης Onewire για το Arduino και για τον ίδιο τον αισθητήρα συνιστάται να χρησιμοποιήσετε τη βιβλιοθήκη DallasTemperature.

Αυτό το παράδειγμα κώδικα δείχνει τα βασικά της εργασίας με 1 αισθητήρα θερμοκρασίας, το αποτέλεσμα σε βαθμούς Κελσίου εξάγεται μέσω της σειριακής θύρας μετά από κάθε ανάγνωση.
DHT11 και DHT22 - αισθητήρες υγρασίας και θερμοκρασίας

Αυτοί οι αισθητήρες είναι δημοφιλείς και συχνά χρησιμοποιούνται για τη μέτρηση της υγρασίας και της θερμοκρασίας περιβάλλοντος. Στον παρακάτω πίνακα υποδείξαμε τις κύριες διαφορές τους.

Το διάγραμμα σύνδεσης είναι αρκετά απλό:
-
1 συμπέρασμα - διατροφή.
-
2 συμπέρασμα - δεδομένα.
-
3 συμπέρασμα - δεν χρησιμοποιείται.
-
4 συμπέρασμα - το γενικό καλώδιο.
Εάν ο αισθητήρας σας είναι κατασκευασμένος με τη μορφή ενός δομοστοιχείου, θα έχει τρεις εξόδους, αλλά δεν απαιτείται αντίσταση - είναι ήδη συγκολλημένο στον πίνακα.

Για εργασία, χρειαζόμαστε τη βιβλιοθήκη dht.h, δεν είναι στο κανονικό σετ, οπότε πρέπει να το κατεβάσετε και να το εγκαταστήσετε στο φάκελο βιβλιοθηκών στο φάκελο με το IDE arduino. Υποστηρίζει όλους τους αισθητήρες αυτής της οικογένειας:
-
DHT 11;
-
DHT 21 (ΑΜ2301);
-
DHT 22 (AM2302, AM2321).
Παράδειγμα χρήσης βιβλιοθήκης:

Συμπέρασμα
Σήμερα, η δημιουργία του δικού σας σταθμού για τη μέτρηση της θερμοκρασίας και της υγρασίας είναι πολύ απλή χάρη στην πλατφόρμα Arduino. Το κόστος τέτοιων έργων είναι 3-400 ρούβλια. Μπορεί να χρησιμοποιηθεί η διάρκεια ζωής της μπαταρίας και να μην εξάγεται σε υπολογιστή εμφάνιση χαρακτήρων (τα περιγράψαμε σε ένα πρόσφατο άρθρο), τότε μπορείτε να δημιουργήσετε μια φορητή συσκευή για χρήση τόσο στο σπίτι όσο και στο αυτοκίνητο. Γράψτε στα σχόλια τι άλλο θέλετε να μάθετε για τις απλές σπιτικές τεχνικές στο arduino!
Δείτε επίσης σχετικά με αυτό το θέμα:Δημοφιλείς αισθητήρες για το Arduino - σύνδεση, διαγράμματα, σκίτσα
Δείτε επίσης στο electro-el.tomathouse.com
: