Μετρώντας την θερμοκρασία και την υγρασία περιβάλλοντος με αισθητήρα DHT

Μετρώντας την θερμοκρασία και την υγρασία περιβάλλοντος με αισθητήρα DHT

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

Πως όμως μπορούμε να μετρήσουμε αυτές τις δύο τιμές; Υπάρχουν πολλοί αισθητήρες που μπορούν να κάνουν αυτή τη δουλειά, όμως αυτοί που έχουν επικρατήσει στην αγορά είναι οι DHT11 και DHT22 λόγω του μικρού μεγέθους τους, της ευκολίας σύνδεσης τους και της χαμηλής τους τιμής.

Ποιες είναι οι διαφορές ανάμεσα στους 2 αυτούς αισθητήρες;

  • Ο DHT22 μετράει με μεγαλύτερη ακρίβεια την θερμοκρασία από ότι ο DHT11. Συγκεκριμένα ο DHT22 μπορεί να μετρήσει θερμοκρασίες από -40 ως 80 βαθμούς κελσίου με απόκλιση μόνο μισό βαθμό, ενώ ο DHT11 μπορεί να μετρήσει θερμοκρασίες από 0 ως 50 βαθμούς κελσίου με απόκλιση 2 βαθμούς.
  • Ο DHT22 μετράει με μεγαλύτερη ακρίβεια την υγρασία από ότι ο DHT11. Συγκεκριμένα ο DHT22 μπορεί να μετρήσει υγρασία από 0 ως 100% με απόκλιση 2%, ενώ ο DHT11 μπορεί να μετρήσει υγρασία από 20 ως 80% με απόκλιση 5%.
  • Ο DHT11 μπορεί να μας δίνει πιο πολλές τιμές από τον DHT22. Συγκεκριμένα ο DHT11 μπορεί να μας στέλνει την θερμοκρασία κάθε δευτερόλεπτο, ενώ ο DHT22 κάθε 2 δευτερόλεπτα.
  • Ο DHT11 είναι πιο μικρός από το DHT22. Αυτό μπορεί να είναι σημαντικό ειδικά αν θέλουμε η τελική κατασκευή μας να μην έχει μεγάλο μέγεθος.
  • Ο DHT11 είναι πιο φθηνός από το DHT22. Αν και οι τιμές σε αυτά τα είδη αλλάζουν πολύ συχνά, συνήθως ο DHT22 έχει διπλάσια τιμή από τον DHT11.

Έτσι κάθε φορά μπορούμε να επιλέγουμε έναν από τους δύο ανάλογα με το σύστημα που φτιάχνουμε. Για παράδειγμα αν θέλουμε να μετράμε θερμοκρασίες σε εξωτερικούς χώρους στην Φλώρινα τη διάρκεια του χειμώνα, τότε θα πρέπει να επιλέξουμε τον DHT22 αφού ο DHT11 δεν μπορεί να μετρήσει θερμοκρασίες κάτω του 0. Αν θέλουμε όμως να μετράμε θερμοκρασίες σε εσωτερικούς χώρους και δεν μας νοιάζει αν υπάρχει μια μικρή απόκλιση μέχρι 2 βαθμούς κελσίου, τότε μπορούμε να επιλέξουμε τον DHT11 που είναι και πιο φθηνός και έχει μικρότερο μέγεθος.

Εμείς στο συγκεκριμένο εργαστήριο θα συνδέσουμε έναν αισθητήρα DHT11 στο Arduino και θα δημιουργήσουμε μια εφαρμογή στο Pictoblox η οποία θα μας λέει την θερμοκρασία και την υγρασία στην ατμόσφαιρα.

Σύνδεση μονάδας DHT11 στο Arduino

Οι αισθητήρες DHT11 και DHT22 συνήθως είναι τοποθετημένοι πάνω σε ειδικές μονάδες που διαθέτουν 3 “ποδαράκια”. Ένα από αυτά είναι το σήμα (Signal) για την μεταφορά δεδομένων και τα άλλα δύο είναι για να γίνει το κύκλωμα (5V και γείωση). Επειδή οι μονάδες αυτές είναι μικρές σε μέγεθος συχνά μπαίνουν ενδείξεις μόνο σε 2 ποδαράκια για να γλιτώσουμε χώρο και το τρίτο ποδαράκι είναι η υποδοχή που μένει.

Στην περίπτωση μου η μονάδα έχει ένδειξη S στο αριστερό ποδαράκι και ένδειξη στο δεξί, ενώ το μεσαίο δεν γράφει τίποτα. Αυτό σημαίνει ότι το αριστερό ποδαράκι είναι το σήμα (Signal) το δεξί ή γείωση (-) και το μεσαίο είναι τα 5V. Άρα θα κάνω τις συνδέσεις με το Arduino ως εξής:

  • Θα συνδέσω το δεξί ποδαράκι (-) με την γείωση του Arduino (GND) χρησιμοποιώντας μαύρο ή καφέ καλώδιο.
  • Θα συνδέσω το μεσαίο ποδαράκι (5V) με τα (5V) του Arduino με κόκκινο καλώδιο.
  • Θα συνδέσω το αριστερό ποδαράκι (S) με κάποια από τις 13 ψηφιακές υποδοχές του Arduino, στην περίπτωση μας την D2.
Συνδέουμε την μονάδα DHT11 με το Arduino

Σύνδεση Pictoblox με Arduino

Πριν ξεκινήσουμε το πρόγραμμα συνδέουμε το Arduino στο Pictoblox και επειδή θα εκτελέσουμε το πρόγραμμα σε κατάσταση stage κάνουμε upload firmware. Αν δεν θυμάστε πως γίνεται η σύνδεση δείτε το αντίστοιχο εργαστήριο.

Προγραμματισμός στο Pictoblox

Στο σενάριο που θα φτιάξουμε θα είμαστε μέσα σε ένα διαστημόπλοιο που ταξιδεύει στο διάστημα και θα έχουμε 2 χαρακτήρες, το σκυλάκι Dot και την Kiran. Ο Dot θα αναφέρει την θερμοκρασία και την υγρασία, ενώ η Κίραν θα σχολιάζει αν οι τιμές αυτές είναι καλές ή όχι.

Βήμα 1ο: Σκηνή και χαρακτήρες

Προσθέτουμε το σκηνικό και τους χαρακτήρες στο έργο μας.

Η Kiran και ο Dot μέσα στο διαστημόπλοιο

Βήμα 2ο: Το σενάριο του Dot

O Dot θα πρέπει συνέχεια να έχει πρόσβαση στον αισθητήρα DHT11, να διαβάζει τις τιμές υγρασίας και θερμοκρασίας και να τις εμφανίζει στην σκηνή μας.

Αρχικά θα δημιουργήσουμε 2 μεταβλητές που θα αποθηκεύονται οι τιμές θερμοκρασίας και υγρασίας.

Αφού δημιουργήσουμε τις μεταβλητές, θα πούμε στον Dot να αποθηκεύει σε αυτές τις τιμές από τον αισθητήρα DHT11. Θα χρειαστούμε την εντολή “Όρισε … σε” από τις μεταβλητές και την εντολή “get temperature/humidity from DHT sensor at pin” από την κατηγορία Sensors. Αφού πάρουμε τις τιμές και τις αποθηκεύσουμε στις μεταβλητές, μπορούμε να βάλουμε τον Dot να “λέει” τις τιμές αυτές μέσα σε ωραίες προτάσεις χρησιμοποιώντας τον τελεστή “ένωσε”.

Το σενάριο του Dot

Τέλος θα βάλουμε όλες τις εντολές σε μια επανάληψη “για πάντα” και θα καθυστερούμε 4 δευτερόλεπτα κάθε φορά για την επόμενη μέτρηση.

Βήμα 3: Το σενάριο της Kiran

Η Kiran θα πρέπει να κάνει τα εξής:

  • Αρχικά να περιμένει 6 δευτερόλεπτα μέχρι να τελειώσει ο Dot με τα δικά του λόγια.
  • Μετά θα ελέγχει αν η θερμοκρασία είναι μεταξύ 20 και 25 βαθμούς κελσίου. Αν είναι θα μας λέει ένα μήνυμα ότι είναι ιδανική, αλλιώς θα βγάζει μήνυμα που θα μας λέει ότι δεν είναι ιδανική.
  • Τέλος θα ελέγχει αν η υγρασία είναι μεταξύ του 30 και 50 και θα μας βγάζει αντίστοιχα μηνύματα.

Παρακάτω δίνουμε την αρχή του σεναρίου που πρέπει να ολοκληρώσετε.

Το μισοτελειωμένο σενάριο της Kiran

Στο τέλος το πρόγραμμα μας θα πρέπει να έχει ένα αποτέλεσμα σαν αυτό που φαίνεται παρακάτω:

Το αποτέλεσμα του προγράμματος

1 Σχόλιο

Αφήστε μια απάντηση