Διασύνδεση αισθητήρα υγρασίας θερμοκρασίας DHTxx με το Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





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

Θα δούμε τις προδιαγραφές τους, έτσι ώστε να μπορείτε να επιλέξετε τον καλύτερο αισθητήρα για το έργο σας και τέλος θα το συνδέσουμε με το arduino και θα διαβάσουμε τις τιμές στη σειριακή οθόνη του λογισμικού arduino IDE.



Το DHTxx αποτελείται από δύο μόνο σειρές DHT11 και DHT22. Η κύρια διαφορά μεταξύ τους είναι η προδιαγραφή και το κόστος τους. Το DHT11 είναι αισθητήρα χαμηλού άκρου και το DHT22 είναι υψηλό. Το DHT22 είναι πιο ακριβό από το DHT11, αλλά το low end είναι αρκετά αξιοπρεπές για το χόμπι, εκτός εάν κάνετε κάποια σοβαρή μέτρηση με το έργο σας.

Το DHTxx είναι συσκευή 4 ακίδων, ένα από αυτά είναι NC ή χωρίς σύνδεση, έτσι θα χρησιμοποιήσουμε μόνο 3 ακίδες. Δύο από αυτούς είναι πείροι τροφοδοσίας και το υπόλοιπο είναι πείρος εξόδου. Ο αισθητήρας μπορεί να φαίνεται απλός, αλλά απαιτεί βιβλιοθήκη για τον χειρισμό του.



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

DHT11:
• Το εύρος τάσης λειτουργίας είναι 3 έως 5V.
• Η μέγιστη κατανάλωση ρεύματος είναι 2,5mA.
• Μπορεί να μετρήσει την υγρασία που κυμαίνεται από 20% έως 80% - / + 5% ακρίβεια.
• Μπορεί να μετρήσει τη θερμοκρασία που κυμαίνεται από 0 έως 50 βαθμούς Κελσίου +/- 2% ακρίβεια.
• Ανανεώνει την αξία του κάθε δευτερόλεπτο.
• Το μέγεθός του είναι 15,5 mm x 12 mm x 5,5 mm

DHT22:
• Η τάση λειτουργίας είναι 3 έως 5V
• Η μέγιστη κατανάλωση ρεύματος είναι 2,5mA.
• Μπορεί να μετρήσει την υγρασία που κυμαίνεται από 0% έως 100% ακρίβεια 2-5%.
• Μπορεί να μετρήσει τη θερμοκρασία που κυμαίνεται από -40 έως +125 βαθμούς Κελσίου +/- 0,5% ακρίβεια.
• Ανανεώνει την τιμή δύο φορές κάθε δευτερόλεπτο.
• Το μέγεθός του είναι 15,1 mm x 25 mm x 7,7 mm
Από τις παραπάνω πρώτες προδιαγραφές μπορείτε να επιλέξετε ποια είναι η βέλτιστη για το έργο σας.

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

Ο πείρος δεδομένων πρέπει πάντα να συνδέεται με μια αντίσταση pull-up από 4,7K έως 10K. Ο παραπάνω απεικονιζόμενος αισθητήρας συνοδεύτηκε από PCB με εξουδετερωμένο πείρο NC και με αντίσταση έλξης. Ωστόσο, ορισμένοι αισθητήρες έρχονται χωρίς αυτά τα χαρακτηριστικά, χωρίς την αντίσταση pull-up, οι μετρήσεις που αποστέλλονται στο arduino θα είναι θανατηφόρες τιμές σφάλματος.

Τώρα πρόκειται να διασυνδέσουμε τον αισθητήρα DHT με το arduino. Πριν προχωρήσετε στο έργο, κατεβάστε το αρχείο βιβλιοθήκης από τον ακόλουθο σύνδεσμο:

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Χρειάζεστε μόνο αυτά τα τέσσερα στοιχεία: αισθητήρα DHTxx, arduino Uno, καλώδιο USB και έναν υπολογιστή.

Απλά εισαγάγετε τον αισθητήρα σε αναλογικές ακίδες του arduino όπως φαίνεται στο πρωτότυπο και αφήστε τον κωδικό στο arduino, ανοίξτε τη σειριακή οθόνη και μπορείτε να δείτε τις ενδείξεις.
Πρωτότυπο συγγραφέα:

Διασύνδεση αισθητήρα υγρασίας θερμοκρασίας DHTxx με το Arduino//----------------------Program developed by R.Girish-------------// #include dht DHT #define DHTxxPIN A1 int p = A0 int n = A2 int ack int f void setup(){ Serial.begin(9600) pinMode(p,OUTPUT) pinMode(n,OUTPUT) } void loop() { digitalWrite(p,1) digitalWrite(n,0) ack=0 int chk = DHT.read11(DHTxxPIN) switch (chk) { case DHTLIB_ERROR_CONNECT: ack=1 break } if(ack==0) { f=DHT.temperature*1.8+32 Serial.print('Temperature(°C) = ') Serial.println(DHT.temperature) Serial.print('Temperature(°F) = ') Serial.print(f) Serial.print(' ') Serial.print('Humidity(%) = ') Serial.println(DHT.humidity) Serial.print(' ') delay(500) } if(ack==1) { Serial.print('NO DATA') Serial.print(' ') delay(500) } } //----------------------Program developed by R.Girish-------------//

Έξοδος σειριακής οθόνης:




Προηγούμενο: Κάντε αυτό το κύκλωμα βρύσης χωρίς αφή για έλεγχο βρύσης χωρίς χέρια Επόμενο: Δημιουργήστε αυτό το κύκλωμα ψηφιακής θερμοκρασίας, μετρητή υγρασίας χρησιμοποιώντας το Arduino