DHT11: όλα σχετικά με τον αισθητήρα μέτρησης θερμοκρασίας και υγρασίας

DHT11

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

Στην αγορά υπάρχουν πολλοί αισθητήρες πολύ διαφορετικά εύρη θερμοκρασίας, με υποστηριζόμενα εύρη θερμοκρασίας ή διαφορετικές ακρίβεια. Ένα παράδειγμα αυτού είναι το LM35, ένα από τα πιο δημοφιλή και χρησιμοποιείται στα ηλεκτρονικά. Υπάρχουν επίσης άλλοι αισθητήρες υγρασίας που δρουν με παραλλαγή της αγωγιμότητας, όπως το AD22103KTZ από Analog Devices. Αλλά αν θέλετε να μετρήσετε και τις δύο παραμέτρους, ίσως η συσκευή που συζητάμε σήμερα σε αυτό το άρθρο έχει πολύ μεγαλύτερο ενδιαφέρον ...

Τι είναι το DHT11;

El Το DHT11 είναι ένας απλός αισθητήρας που μετρά τη θερμοκρασία και την υγρασία, όλα σε ένα. Α) Ναι δεν θα χρειαστεί να αγοράσετε δύο αισθητήρες χωριστά. Η τιμή του είναι περίπου 2 €, οπότε είναι αρκετά φθηνό, αν και μπορείτε επίσης να το βρείτε τοποθετημένο σε μια μονάδα (τοποθετημένη σε PCB για ευκολία στη χρήση), όπως είναι συνήθως σε αυτόν τον τύπο ηλεκτρονικών εξαρτημάτων για το Arduino. Στην περίπτωση της πλακέτας, περιλαμβάνει μια αντίσταση έλξης 5 κιλών ohm και ένα LED που μας προειδοποιεί για τη λειτουργία.

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

Παρόμοια προϊόντα

DHT22

Υπάρχει ένα προϊόν παρόμοιο με το DHT11 που μπορεί να σας ενδιαφέρει. είναι το DHT22. Είναι επίσης ένας ενσωματωμένος αισθητήρας θερμοκρασίας και υγρασίας, αλλά σε αυτήν την περίπτωση η τιμή του είναι λίγο υψηλότερη, περίπου 4 €. Η ακρίβεια μέτρησης της θερμοκρασίας είναι διακύμανση 5% όπως και η DHT11, αλλά σε αντίθεση με αυτήν, μετρά πέρα ​​από το εύρος υγρασίας μεταξύ 20 και 80%. Επομένως, μπορεί να σας ενδιαφέρει το DHT22 για έργα όπου πρέπει να μετρήσετε την υγρασία από 0 έως 100%.

La συχνότητα συλλογής δεδομένων Είναι επίσης διπλάσιο αυτού του DHT11, στο DHT22 2 δείγματα λαμβάνονται ανά δευτερόλεπτο αντί για 1 δείγμα ανά δευτερόλεπτο DHT11. Όσον αφορά τη θερμοκρασία, μπορεί να μετρήσει από -40ºC έως + 125ºC με μεγαλύτερη ακρίβεια, καθώς μπορεί να μετρήσει κλάσματα βαθμών, ειδικά μπορεί να εκτιμήσει παραλλαγές συν / μείον 0,5ºC.

Pinout, δυνατότητες και φύλλο δεδομένων

Pinout DHT11

Μπορείτε να βρείτε αρκετές τεχνικές πληροφορίες για το DHT11 στα δελτία δεδομένων σας. Κάθε κατασκευαστής αυτής της συσκευής μπορεί να παρέχει ορισμένες τιμές που ενδέχεται να διαφέρουν, επομένως συνιστώ πάντα να διαβάζετε το PDF του συγκεκριμένου κατασκευαστή της συσκευής που έχετε αγοράσει. Παρόλο που οι περισσότερες τιμές μπορεί να φαίνονται ίδιες για εσάς, μπορεί να υπάρχει κάποια μικρή παραλλαγή από τη μία στην άλλη. Τα πιο σημαντικά τεχνικά χαρακτηριστικά του είναι:

  • Τροφοδοσία 3,5v έως 5v
  • 2,5mA τρέχουσα κατανάλωση
  • Ψηφιακό σήμα εξόδου
  • Θερμοκρασία κυμαίνεται από 0ºC έως 50ºC
  • Ακρίβεια μέτρησης της θερμοκρασίας στους 25ºC περίπου 2ºC
  • Η ανάλυση μέτρησης της θερμοκρασίας είναι 8-bit, 1ºC
  • Η υγρασία μπορεί να μετρηθεί από 20% RH έως 90% RH
  • Ακριβώς για υγρασία 5% RH για θερμοκρασίες μεταξύ 0-50ºC
  • Η ανάλυση είναι 1% RH, δεν μπορεί να πάρει παραλλαγές κάτω από αυτό
  • Δελτίο δεδομένων Mouser

Όσον αφορά τα δεδομένα, μετάδοση σε ψηφιακό. Επομένως, δεν είναι απαραίτητο να μεταβείτε από αναλογικό σε ψηφιακό όπως σε άλλους αισθητήρες. Αυτό περιπλέκει τον κώδικα για να γράψει στο Arduino IDE, αλλά σε αυτήν την περίπτωση δεν είναι απαραίτητο και είναι πολύ πιο εύκολο. Αν και ο ίδιος ο αισθητήρας είναι αναλογικός, αλλά περιλαμβάνει ένα σύστημα για την εκτέλεση της μετατροπής και μπορεί να συνδεθεί απευθείας σε μια ψηφιακή είσοδο του Arduino.

Το αναλογικό σήμα, που είναι μια παραλλαγή της τάσης, από τον αισθητήρα μετατρέπεται σε ψηφιακή μορφή για να σταλεί στον μικροελεγκτή Arduino. Μεταδίδεται σε ένα πλαίσιο 40-bit που αντιστοιχούν στις πληροφορίες υγρασίας και θερμοκρασίας που καταγράφονται από το DHT11. Οι δύο πρώτες ομάδες των 8-bit είναι για υγρασία, δηλαδή, τα πιο σημαντικά 16 bit αυτού του πλαισίου. Στη συνέχεια, οι άλλες 2 ομάδες 8-bit που απομένουν για θερμοκρασία. Δηλαδή, έχει δύο byte για υγρασία και δύο byte για θερμοκρασία. Για παράδειγμα:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

Σε αυτήν την περίπτωση, το 0011 0101 0000 0010 είναι η τιμή υγρασίας και το 0001 1000 0000 0000 είναι η θερμοκρασία. Ένα πρώτο μέρος είναι για το ακέραιο και το δεύτερο είναι για τα δεκαδικά. Όσον αφορά το 0011 1001, δηλαδή το Τα τελευταία 8-bit είναι ισοτιμία για να αποφύγετε λάθη. Με αυτόν τον τρόπο μπορείτε να ελέγξετε ότι όλα είναι σωστά κατά τη διάρκεια των μεταδόσεων. Αντιστοιχεί στο άθροισμα των προηγούμενων bits, επομένως, εάν το άθροισμα είναι ίσο με ισοτιμία, θα είναι σωστό. Στο παράδειγμα που έχω θέσει, δεν θα ήταν, γιατί όπως βλέπετε δεν αντιστοιχεί ... Αυτό θα σήμαινε αποτυχία.

Μόλις γίνει αυτό γνωστό, το επόμενο τεχνικό επίπεδο του DHT11 που πρέπει να σημειωθεί είναι οι ακίδες. ο επαφές ή pinout αυτής της συσκευής είναι απλή, αφού διαθέτει μόνο 4 από αυτές. Ένας από τους ακροδέκτες είναι για τροφοδοσία ή Vcc, το άλλο για μετάδοση δεδομένων από I / O, έναν ακροδέκτη NC που δεν συνδέεται και το GND για τη σύνδεση γείωσης.

Ενσωμάτωση με το Arduino

Σύνδεση του DHT11 με το Arduino

Μόλις ξέρετε το pinout του DHT11 και επίσης η πλακέτα Arduino, η σύνδεση είναι πολύ απλή. Θυμηθείτε ότι εάν έχετε επιλέξει μια μονάδα DHT11 ενσωματωμένη σε ένα PCB, οι ακίδες θα είναι τρεις, καθώς το NC αφαιρείται για να διευκολύνει τα πράγματα. Το μόνο που έχετε να κάνετε είναι να συνδέσετε τον πείρο γείωσης σε μία από τις συνδέσεις GND του Arduino, όπως φαίνεται στο διάγραμμα της προηγούμενης εικόνας.

Από την άλλη πλευρά, ο πείρος τροφοδοσίας πρέπει να είναι συνδεδεμένος η σύνδεση 5v από το Arduino, έτσι ο αισθητήρας θα τροφοδοτείται πλήρως με GND και Vcc, αλλά τώρα τα δεδομένα λείπουν. Για να μεταδώσετε τα δεδομένα από τον αισθητήρα DHT11 στην πλακέτα Arduino, μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις ψηφιακές εισόδους, όπως η 7 που εμφανίζεται στην εικόνα ... Τώρα έχετε όλα έτοιμα να τα χρησιμοποιήσετε μόλις δημιουργήσετε τον απαραίτητο κωδικό στο Arduino IDE ...

Εάν ο αισθητήρας βρίσκεται πολύ μακριά στο έργο σας και πρόκειται να χρησιμοποιήσετε ένα καλώδιο μεγαλύτερο από 20 μέτρα, τότε χρησιμοποιήστε μια αντίσταση pull-up 5k, για μεγαλύτερα καλώδια θα πρέπει να είναι αναλογικά μεγαλύτερη. Σημειώστε ότι εάν χρησιμοποιείτε ισχύ 3,5v αντί για 5v, τότε το καλώδιο δεν πρέπει να υπερβαίνει τα 20cm λόγω πτώσης τάσης.

Θυμηθείτε ότι αυτό που προτείνουν είναι να λαμβάνετε μετρήσεις κάθε 5 δευτερόλεπτα, Αν και η συχνότητα δειγματοληψίας στην οποία μπορεί να λειτουργήσει το DHT11 είναι υψηλότερη, αλλά εάν γίνεται συχνότερα, μπορεί να μην είναι τόσο ακριβής.

Κωδικός σε Arduino IDE

Πηγαίνοντας κατευθείαν στον κωδικό, πείτε ότι στο Arduino IDE Μπορείτε να χρησιμοποιήσετε μια σειρά από υπάρχουσες βιβλιοθήκες με λειτουργίες που θα κάνουν τη ζωή σας πιο εύκολη με το DHT11. Για παράδειγμα, ένα από αυτά είναι αυτό που παρέχει Adafruit. Να θυμάστε ότι έχουμε έναν οδηγό για αρχάριους που ξεκινά με το Arduino σε PDF που μπορείτε κατεβάστε δωρεάν από εδώ και μπορεί να σε βοηθήσει.

Μόλις εγκαταστήσετε την αντίστοιχη βιβλιοθήκη, μπορείτε να σχολιάσετε Εισάγετε τον κωδικό για τον έλεγχο του αισθητήρα θερμοκρασίας και υγρασίας DHT11 για το έργο σας με το Arduino. Για παράδειγμα:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.