Η υγρασία και η θερμοκρασία είναι κοινές παράμετροι για τη μέτρηση των περιβαλλοντικών συνθηκών. Σε αυτό το έργο που βασίζεται στο Arduino θα μετρήσουμε τη θερμοκρασία και την υγρασία του περιβάλλοντος και θα το εμφανίσουμε σε μια οθόνη LCD 16x2. Ένας συνδυασμένος αισθητήρας θερμοκρασίας και υγρασίας DHT11 χρησιμοποιείται με το Arduino uno για την ανάπτυξη αυτού του θερμομέτρου κλίμακας Κελσίου και της μέτρησης ποσοστού υγρασίας. Σε ένα από τα προηγούμενα έργα μου, ανέπτυξα επίσης ένα ψηφιακό θερμόμετρο χρησιμοποιώντας τον αισθητήρα θερμοκρασίας LM35.
Αυτό το έργο αποτελείται από τρία τμήματα - το ένα ανιχνεύει την υγρασία και τη θερμοκρασία χρησιμοποιώντας τον αισθητήρα υγρασίας και θερμοκρασίας DHT11. Η δεύτερη ενότητα διαβάζει την έξοδο της μονάδας DHTsensor και εξάγει τις τιμές θερμοκρασίας και υγρασίας σε κατάλληλο αριθμό σε κλίμακα ποσοστού και Κελσίου. Και το τρίτο μέρος του συστήματος εμφανίζει υγρασία και θερμοκρασία σε LCD.
Η εργασία αυτού του έργου βασίζεται σε απλή σειριακή επικοινωνία. Πρώτα το arduino στέλνει ένα σήμα έναρξης στη μονάδα DHT και στη συνέχεια το DHT δίνει ένα σήμα απόκρισης που περιέχει δεδομένα θερμοκρασίας και υγρασίας. Το Arduino συλλέγει και εκχυλίζει σε δύο μέρη το ένα είναι υγρασία και το δεύτερο είναι θερμοκρασία και έπειτα στείλτε τα σε οθόνη LCD 16x2.
Εδώ σε αυτό το έργο χρησιμοποιήσαμε μια μονάδα αισθητήρα, δηλαδή το DHT11. Αυτή η μονάδα διαθέτει σύμπλεγμα υγρασίας και θερμοκρασίας με βαθμονομημένη έξοδο ψηφιακού σήματος. Η μονάδα αισθητήρα DHT11 είναι μια συνδυασμένη μονάδα για την ανίχνευση υγρασίας και θερμοκρασίας που δίνει βαθμονομημένο ψηφιακό σήμα εξόδου. Το DHT11 μας δίνει πολύ ακριβή τιμή υγρασίας και θερμοκρασίας και εξασφαλίζει υψηλή αξιοπιστία και μακροπρόθεσμη σταθερότητα. Αυτός ο αισθητήρας έχει ένα στοιχείο μέτρησης υγρασίας αντίστασης τύπου και ένα στοιχείο μέτρησης θερμοκρασίας τύπου NTC με ενσωματωμένο μικροελεγκτή 8-bit που έχει γρήγορη απόκριση και οικονομικά αποδοτικό και διατίθεται σε πακέτο μονής σειράς 4 ακίδων.
Η ενότητα DHT11 λειτουργεί σε σειριακή επικοινωνία, δηλαδή επικοινωνία με ένα καλώδιο Αυτή η ενότητα αποστέλλει δεδομένα με τη μορφή παλμού τρένου συγκεκριμένης χρονικής περιόδου Πριν από την αποστολή δεδομένων στο arduino χρειάζεται κάποια εντολή αρχικοποίησης με χρονική καθυστέρηση. Και ο συνολικός χρόνος της διαδικασίας είναι περίπου 4ms. Μια πλήρης μετάδοση δεδομένων είναι 40-bit και η μορφή δεδομένων αυτής της διαδικασίας δίνεται παρακάτω:
8-bit ενσωματωμένα δεδομένα RH + 8-bit δεκαδικά δεδομένα RH + 8-bit ενσωματωμένα δεδομένα T + 8-bit δεκαδικά δεδομένα T + 8-bit άθροισμα ελέγχου.
Ολοκληρωμένη διαδικασία
Πρώτα απ 'όλα, το arduino στέλνει σήμα υψηλής έως χαμηλής εκκίνησης στο DHT11 με καθυστέρηση 18 μs για να διασφαλιστεί η ανίχνευση του DHT. Και στη συνέχεια arduino τραβήξτε τη γραμμή δεδομένων και περιμένετε 20-40μs για την απόκριση της DHT. Μόλις το DHT εντοπίσει σήμα εκκίνησης, θα στείλει ένα σήμα απόκρισης στάθμης χαμηλής τάσης στο arduino χρονικής καθυστέρησης περίπου 80μs. Και έπειτα ο ελεγκτής DHT σηκώνει τη γραμμή δεδομένων και τη διατηρεί για 80μs για τη διευθέτηση της αποστολής δεδομένων από την DHT.
Όταν ο δίαυλος δεδομένων βρίσκεται σε επίπεδο χαμηλής τάσης σημαίνει ότι το DHT11 στέλνει σήμα απόκρισης. Μόλις ολοκληρωθεί, το DHT κάνει πάλι τη γραμμή δεδομένων για 80μs για την προετοιμασία της μετάδοσης δεδομένων.
Η μορφή δεδομένων που αποστέλλει η DHT στο arduino για κάθε bit αρχίζει με επίπεδο χαμηλής τάσης 50μs και το μήκος σήματος στάθμης υψηλής τάσης καθορίζει εάν το bit δεδομένων είναι "0" ή "1".
Ένα σημαντικό πράγμα είναι να βεβαιωθείτε ότι η τιμή της αντίστασης τραβήγματος προς τα πάνω, επειδή εάν τοποθετούμε τον αισθητήρα DHT σε απόσταση <20 μέτρων, συνιστάται αντίσταση έλξης 5k. Εάν τοποθετήσετε DHT περισσότερο από το 20 μέτρο τότε χρησιμοποιήστε την κατάλληλη αντίσταση τραβήγματος προς τα πάνω.
Διάγραμμα κυκλώματος και επεξήγηση
Μια οθόνη υγρών κρυστάλλων χρησιμοποιείται για την εμφάνιση θερμοκρασίας και υγρασίας που συνδέεται άμεσα με το arduino σε λειτουργία 4-bit. Οι ακίδες LCD, δηλαδή RS, EN, D4, D5, D6 και D7 συνδέονται με τον ψηφιακό πείρο arduino 2, 3, 4, 5, 6 και 7. Και μια μονάδα αισθητήρα DHT11 συνδέεται επίσης με τον ψηφιακό πείρο 12 του arduino με 5k αντίσταση έλξης.
Περιγραφή προγραμματισμού
Στον προγραμματισμό, πρόκειται να χρησιμοποιήσουμε προκατασκευασμένες βιβλιοθήκες για τον αισθητήρα DHT11 και την οθόνη LCD.
Στη συνέχεια, είχαμε καθορισμένες καρφίτσες για αισθητήρα LCD και DHT και αρχικοποιήσαμε όλα τα πράγματα στη ρύθμιση. Στη συνέχεια, σε έναν βρόχο χρησιμοποιώντας τη λειτουργία dht διαβάζει τον αισθητήρα DHT και στη συνέχεια χρησιμοποιώντας μερικές λειτουργίες dht εξάγουμε την υγρασία και τη θερμοκρασία και τις εμφανίζουμε σε LCD
Εδώ το σύμβολο βαθμού δημιουργείται χρησιμοποιώντας τη μέθοδο προσαρμοσμένου χαρακτήρα.