Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Σε αυτό το σεμινάριο θα δοκιμάσουμε τον αισθητήρα DHT11 χρησιμοποιώντας το Arduino.
Το DHT11 μπορεί να χρησιμοποιηθεί για τη μέτρηση θερμοκρασίας και υγρασίας.
Απαιτούμενα συστατικά:
- Arduino Nano
- Αισθητήρας θερμοκρασίας και υγρασίας DHT11
- USB Mini
- Καλώδια βραχυκύκλωσης
Απαραίτητη Βιβλιοθήκη:
Βιβλιοθήκη DHT
Βήμα 1: Συνδέστε το DHT11 στο Arduino
Συνδέστε το DHT11 στο Arduino χρησιμοποιώντας καλώδια βραχυκυκλωτήρων.
Δείτε την εικόνα ή ακολουθήστε τις παρακάτω οδηγίες.
DHT11 προς Arduino
+ => + 5V
έξω => D12
- => GND
Στη συνέχεια, συνδέστε το arduino στον υπολογιστή χρησιμοποιώντας ένα μικρό USB
Βήμα 2: Προσθέστε τη βιβλιοθήκη DHT
Μπορείτε να κατεβάσετε τη βιβλιοθήκη DHT εδώ:
Βιβλιοθήκη DHT11.
Για να προσθέσετε μια βιβλιοθήκη δείτε την παραπάνω εικόνα ή ακολουθήστε τις παρακάτω οδηγίες:
Ανοίξτε το Sketch ==> Include Library ==> add. Zip Library
Βρείτε το αρχείο βιβλιοθήκης που έχετε κατεβάσει.
Εάν είναι επιτυχής, κλείστε το Arduino και ανοίξτε το ξανά.
Βήμα 3: Επιλέξτε Arduino Board
Μεταβείτε στα Εργαλεία και προσαρμόστε τον πίνακα arduino στην παραπάνω εικόνα.
Πίνακας "Arduino Nano"
Επεξεργαστής "ATmega328P (Old Bootloader)"
Για ένα πιο ολοκληρωμένο άρθρο, μπορείτε να διαβάσετε το "Πώς να χρησιμοποιήσετε το Arduino Nano v.3" που έφτιαξα νωρίτερα.
Βήμα 4: Πρόγραμμα
Συμπεριλάβετε αυτόν τον κωδικό για να διαβάσετε την τιμή από τον αισθητήρα DHT11
// DHT Temperature & Humidity Sensor // Unified Sensor Library Παράδειγμα // Γράφτηκε από τον Tony DiCola για τις βιομηχανίες Adafruit // Κυκλοφόρησε με άδεια MIT.
// ΑΠΑΙΤΕΙ τις ακόλουθες βιβλιοθήκες Arduino:
// - Βιβλιοθήκη αισθητήρων DHT: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#περιλαμβάνω
#συμπεριλάβω #συμπεριλάβω
#define DHTPIN 2 // Digitalηφιακή ακίδα συνδεδεμένη στον αισθητήρα DHT
// Φτερό HUZZAH ESP8266 σημείωση: χρησιμοποιήστε τις καρφίτσες 3, 4, 5, 12, 13 ή 14 - // Η καρφίτσα 15 μπορεί να λειτουργήσει, αλλά το DHT πρέπει να αποσυνδεθεί κατά τη μεταφόρτωση προγράμματος.
// Μην σχολιάσετε τον τύπο αισθητήρα που χρησιμοποιείται:
//#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Ανατρέξτε στον οδηγό για λεπτομέρειες σχετικά με την καλωδίωση και τη χρήση του αισθητήρα:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup () {
Serial.begin (9600); // Αρχικοποίηση συσκευής. dht.begin (); Serial.println (F ("Παράδειγμα ενοποιημένου αισθητήρα DHTxx")); // Εκτύπωση λεπτομερειών αισθητήρα θερμοκρασίας. sensor_t sensor? dht.temperature (). getSensor (& αισθητήρας); Serial.println (F ("------------------------------------")); Serial.println (F ("Αισθητήρας θερμοκρασίας")); Serial.print (F ("Τύπος αισθητήρα:")); Serial.println (sensor.name); Serial.print (F ("Verver Ver:")); Serial.println (sensor.version); Serial.print (F ("Unique ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Μέγιστη τιμή:")); Serial.print (sensor.max_value); Serial.println (F ("° C")); Serial.print (F ("Ελάχιστη τιμή:")); Serial.print (sensor.min_value); Serial.println (F ("° C")); Serial.print (F ("Resolution:")); Serial.print (sensor.resolution); Serial.println (F ("° C")); Serial.println (F ("----------------------------------------")); // Εκτύπωση λεπτομερειών αισθητήρα υγρασίας. dht.humidity (). getSensor (& αισθητήρας); Serial.println (F ("Αισθητήρας υγρασίας")); Serial.print (F ("Τύπος αισθητήρα:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (sensor.version); Serial.print (F ("Unique ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Μέγιστη τιμή:")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Ελάχιστη τιμή:")); Serial.print (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Resolution:")); Serial.print (sensor.resolution); Serial.println (F ("%")); Serial.println (F ("----------------------------------------")); // Ορίστε καθυστέρηση μεταξύ των μετρήσεων του αισθητήρα με βάση τις λεπτομέρειες του αισθητήρα. delayMS = sensor.min_delay / 1000; }
void loop () {
// Καθυστέρηση μεταξύ των μετρήσεων. καθυστέρηση (delayMS)? // Λάβετε το συμβάν θερμοκρασίας και εκτυπώστε την τιμή του. sensors_event_t event? dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println (F ("Σφάλμα ανάγνωσης θερμοκρασίας!")); } else {Serial.print (F ("Θερμοκρασία:")); Serial.print (event.temperature)? Serial.println (F ("° C")); } // Λάβετε το συμβάν υγρασίας και εκτυπώστε την τιμή του. dht.humidity (). getEvent (& event); if (isnan (event.relative_humidity)) {Serial.println (F ("Σφάλμα ανάγνωσης υγρασίας!")); } else {Serial.print (F ("Υγρασία:")); Serial.print (event.relative_humidity); Serial.println (F ("%")); }}
Or κατεβάστε το αρχείο κάτω από το Σκίτσο που σας παρέχω παρακάτω.
Στη συνέχεια, κάντε κλικ στο upload και περιμένετε να τελειώσει.
Βήμα 5: Αποτέλεσμα
Για να δείτε τα αποτελέσματα των μετρήσεων θερμοκρασίας και υγρασίας, κάντε κλικ στο Serial Monitor. Τα αποτελέσματα θα εμφανιστούν εκεί.
Εάν είναι επιτυχημένα, τα αποτελέσματα θα μοιάζουν με το Σχήμα 1
αν ο αισθητήρας δεν είναι εγκατεστημένος θα μοιάζει με εικόνα 2
σας ευχαριστώ για την ανάγνωση, εάν υπάρχουν ερωτήσεις, γράψτε το στη στήλη σχολίων