Πώς να συνδέσετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 στο Arduino

Πίνακας περιεχομένων:

Πώς να συνδέσετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 στο Arduino
Πώς να συνδέσετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 στο Arduino

Βίντεο: Πώς να συνδέσετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 στο Arduino

Βίντεο: Πώς να συνδέσετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 στο Arduino
Βίντεο: Arduino Αισθητήρες & Περιφερειακά | Αισθητήρας θερμοκρασίας 2024, Ενδέχεται
Anonim

Ο αισθητήρας θερμοκρασίας και υγρασίας DHT17 είναι ένας δημοφιλής και φθηνός αισθητήρας που μπορεί να χρησιμοποιηθεί σε ένα αρκετά ευρύ φάσμα θερμοκρασιών και σχετικής υγρασίας. Ας δούμε πώς να το συνδέσουμε στο Arduino και πώς να διαβάζουμε δεδομένα από αυτό.

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

Απαραίτητη

  • - Arduino;
  • - Αισθητήρας θερμοκρασίας και υγρασίας DHT17.

Οδηγίες

Βήμα 1

Έτσι, ο αισθητήρας DHT11 έχει τα ακόλουθα χαρακτηριστικά:

- εύρος μέτρησης σχετικής υγρασίας - 20..90% με σφάλμα έως 5%, - εύρος μετρημένων θερμοκρασιών - 0..50 βαθμούς Κελσίου με σφάλμα έως 2 μοίρες.

- χρόνος απόκρισης σε αλλαγές υγρασίας - έως 15 δευτερόλεπτα, θερμοκρασία - έως 30 δευτερόλεπτα.

- η ελάχιστη περίοδος ψηφοφορίας είναι 1 δευτερόλεπτο.

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

Η εικόνα δείχνει την εμφάνιση του αισθητήρα και τις διαστάσεις του σε χιλιοστά.

Εμφάνιση και διαστάσεις του αισθητήρα DHT11
Εμφάνιση και διαστάσεις του αισθητήρα DHT11

Βήμα 2

Εξετάστε το διάγραμμα σύνδεσης του αισθητήρα θερμοκρασίας και υγρασίας DHT11 στον μικροελεγκτή, ειδικότερα, στο Arduino. Στην εικόνα:

- MCU - μικροελεγκτής (για παράδειγμα, Arduino ή παρόμοιος) ή υπολογιστής μονής πλακέτας (Raspberry Pi ή παρόμοιος).

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

- ΔΕΔΟΜΕΝΑ - δίαυλος δεδομένων εάν το μήκος του καλωδίου σύνδεσης από τον αισθητήρα στον μικροελεγκτή δεν υπερβαίνει τα 20 μέτρα, συνιστάται να τραβήξετε αυτό το δίαυλο στην τροφοδοσία με αντίσταση 5, 1 kOhm εάν είναι περισσότερα από 20 μέτρα, τότε μια άλλη κατάλληλη τιμή (μικρότερη).

- VDD - τροφοδοσία αισθητήρα. επιτρεπόμενες τάσεις από ~ 3,0 έως ~ 5,5 βολτ DC. εάν χρησιμοποιείται τροφοδοσία ~ 3,3 V, συνιστάται να χρησιμοποιείτε καλώδιο τροφοδοσίας όχι μεγαλύτερο από 20 cm.

Ένα από τα καλώδια του αισθητήρα - το τρίτο - δεν είναι συνδεδεμένο με τίποτα.

Ο αισθητήρας DHT11 πωλείται συχνά ως πλήρες συγκρότημα με την απαραίτητη αντίσταση σωληνώσεων - pull-up και πυκνωτή φίλτρου.

Διάγραμμα σύνδεσης του αισθητήρα DHT11 με μικροελεγκτή
Διάγραμμα σύνδεσης του αισθητήρα DHT11 με μικροελεγκτή

Βήμα 3

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

Αισθητήρας DHT11 και Arduino
Αισθητήρας DHT11 και Arduino

Βήμα 4

Ας πάμε με τον απλό τρόπο: κατεβάστε τη βιβλιοθήκη για τον αισθητήρα DHT11 (σύνδεσμος στην ενότητα "Πηγές"), εγκαταστήστε τον με τον τυπικό τρόπο (αποσυσκευασία στον κατάλογο / βιβλιοθήκες / του περιβάλλοντος ανάπτυξης Arduino).

Ας γράψουμε ένα τόσο απλό σκίτσο. Ας το φορτώσουμε στο Arduino. Αυτό το σχέδιο θα εξάγει τα μηνύματα RH και Temperature που διαβάζονται από τον αισθητήρα DHT11 στη σειριακή θύρα του υπολογιστή κάθε 2 δευτερόλεπτα.

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

Βήμα 5

Τώρα, χρησιμοποιώντας το διάγραμμα χρονισμού που λαμβάνεται από τον λογικό αναλυτή, ας υπολογίσουμε πώς πραγματοποιείται η ανταλλαγή πληροφοριών.

Ο αισθητήρας θερμοκρασίας και υγρασίας DHT11 χρησιμοποιεί σειριακή διασύνδεση ενός καλωδίου για επικοινωνία με τον μικροελεγκτή. Μια ανταλλαγή δεδομένων διαρκεί περίπου 40 ms και περιέχει: 1 bit αιτήματος από τον μικροελεγκτή, 1 bit απόκρισης αισθητήρα και 40 bit δεδομένων από τον αισθητήρα. Τα δεδομένα περιλαμβάνουν: 16 bit πληροφοριών υγρασίας, 26 bit πληροφοριών θερμοκρασίας και 8 bit ελέγχου.

Ας ρίξουμε μια πιο προσεκτική ματιά στο διάγραμμα χρονισμού της επικοινωνίας Arduino με τον αισθητήρα DHT11.

Από το σχήμα φαίνεται ότι υπάρχουν δύο τύποι παλμών: μικρές και μεγάλες. Οι σύντομοι παλμοί σε αυτό το πρωτόκολλο ανταλλαγής δηλώνουν μηδενικά, μεγάλους παλμούς - αυτούς.

Έτσι, οι δύο πρώτοι παλμοί είναι το αίτημα του Arduino στο DHT11 και, κατά συνέπεια, η απόκριση του αισθητήρα. Στη συνέχεια έρχονται 16 bit υγρασίας. Επιπλέον, χωρίζονται σε byte, υψηλή και χαμηλή, υψηλή στα αριστερά. Δηλαδή, στο σχήμα μας, τα δεδομένα υγρασίας έχουν ως εξής:

0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.

Δεδομένα θερμοκρασίας παρόμοια με:

0001011100000000 = 00000000 00010111 = 0x17 = 23 βαθμούς Κελσίου.

Check bit - το άθροισμα ελέγχου είναι μόνο το άθροισμα των 4 byte δεδομένων που λαμβάνονται:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 σε δυαδικό ή 16 + 23 = 39 σε δεκαδικό.

Συνιστάται: