Κατηγορίες: Κύκλωμα μικροελεγκτή
Αριθμός προβολών: 9996
Σχόλια σχετικά με το άρθρο: 0

Μετρήστε τη θερμοκρασία και την υγρασία στο Arduino - μια επιλογή από τρόπους

 

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

Μετρήστε τη θερμοκρασία και την υγρασία στο Arduino - μια επιλογή από τρόπους

Μέτρηση θερμίστορ

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

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

Εξάρτηση της αντίστασης από την θερμοκρασία

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

Για να μετατρέψετε τη θερμοκρασία σε αντίσταση, μπορείτε να πάρετε τις τιμές χειροκίνητα, αλλά αυτό είναι δύσκολο να γίνει στο σπίτι και χρειάζεστε ένα θερμόμετρο για να καθορίσετε τις πραγματικές τιμές της θερμοκρασίας του μέσου. Στα δελτία δεδομένων ορισμένων εξαρτημάτων, ένας τέτοιος πίνακας δίνεται, για παράδειγμα, για μια σειρά από NTC θερμίστορες από τη Vishay.

Datashit Vishay TC Θερμοστάτες

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

Για να περιγράψουμε αυτήν την αλλαγή, υπάρχει η εξίσωση Steinhart-Hart.

Steinhart-hart εξίσωση

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

Οι σταθερές θερμίστορ

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

Β - βήτα συντελεστής από φύλλο δεδομένων

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

beta αναλογία

Αυτό σημαίνει ότι ο συντελεστής υπολογίστηκε με βάση τα δεδομένα που λαμβάνονται κατά τη μέτρηση της αντίστασης σε θερμοκρασίες 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

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

Σχέδιο σύνδεσης του αισθητήρα ds18b20 με το Arduino
Σχέδιο σύνδεσης του αισθητήρα ds18b20 με το Arduino

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

Διάγραμμα σύνδεσης αισθητήρα Arduino

Σε αυτή τη λειτουργία, η σωστή λειτουργία δεν είναι εγγυημένη όταν μετράτε θερμοκρασίες άνω των 100 βαθμών Κελσίου.

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

Ψηφιακός αισθητήρας θερμοκρασίας DS18B20

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

Σκίτσο

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


DHT11 και DHT22 - αισθητήρες υγρασίας και θερμοκρασίας

DHT11 και DHT22 - αισθητήρες υγρασίας και θερμοκρασίας

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

 
DHT11
DHT22
Προσδιορισμός υγρασίας στην περιοχή
20-80%
0-100%
Ακρίβεια μέτρησης
5%
2-5%
Προσδιορισμός θερμοκρασίας
0 ° C έως + 50 ° C
-40 ° C έως + 125 ° C
Ακρίβεια μέτρησης
2,5%
συν ή μείον 0,5 βαθμούς Κελσίου
Συχνότητα τηλεπαραλαβής
1 φορά ανά δευτερόλεπτο
1 φορά σε 2 δευτερόλεπτα
Σχέδιο σύνδεσης αισθητήρα υγρασίας σε arduino

Το διάγραμμα σύνδεσης είναι αρκετά απλό:

  • 1 συμπέρασμα - διατροφή.

  • 2 συμπέρασμα - δεδομένα.

  • 3 συμπέρασμα - δεν χρησιμοποιείται.

  • 4 συμπέρασμα - το γενικό καλώδιο.

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

Σχέδιο σύνδεσης του αισθητήρα υγρασίας με τη μορφή ενός δομοστοιχείου σε arduino

Για εργασία, χρειαζόμαστε τη βιβλιοθήκη dht.h, δεν είναι στο κανονικό σετ, οπότε πρέπει να το κατεβάσετε και να το εγκαταστήσετε στο φάκελο βιβλιοθηκών στο φάκελο με το IDE arduino. Υποστηρίζει όλους τους αισθητήρες αυτής της οικογένειας:

  • DHT 11;

  • DHT 21 (ΑΜ2301);

  • DHT 22 (AM2302, AM2321).

Παράδειγμα χρήσης βιβλιοθήκης:

Παράδειγμα χρήσης της βιβλιοθήκης

Συμπέρασμα

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

Δείτε επίσης σχετικά με αυτό το θέμα:Δημοφιλείς αισθητήρες για το Arduino - σύνδεση, διαγράμματα, σκίτσα

Δείτε επίσης στο i.electricianexp.com:

  • Οι πιο δημοφιλείς αισθητήρες για το Arduino
  • Σύνδεση αναλογικών αισθητήρων με Arduino, ανάγνωση αισθητήρων
  • Η χρήση της γέφυρας Wheatstone για τη μέτρηση των μη ηλεκτρικών μεγεθών
  • Αισθητήρες θερμοκρασίας. Μέρος δεύτερο Θερμοστάτες
  • Αισθητήρες υγρασίας - πώς είναι διευθετημένοι και εργάζονται

  •