Yoshi

DHT22(AM2302) + Arduino Uno (Αισθητήρας θερμοκρασίας και υγρασίας)

Recommended Posts

Ένα απλό projectακι, χρησιμοποιώντας το arduino για να πάρουμε μετρήσεις θερμοκρασίας και υγρασίας με τον αισθητήρα DHT22

Απαιτήσεις

Τι θα χρειαστούμε:

1) Ενα pc!! με μία διαθέσιμη θύρα usb (ή mac), για να περάσουμε το πρόγραμμα στο Arduino αλλά και να παρακολουθούμε τις ενδείξεις μέσω σειριακού

2) Το λογισμικό Arduino IDE

3) Arduino Uno (το project μπορεί να δουλέψει και σε άλλες εκδόσεις του arduino φυσικά)

4) Τον αισθητήρα ΑΜ2302 (που είναι μία συνδεμένη έκδοση του DHT22)

5) Την βιβλιοθήκη για το DHT22

6) Καλώδιο για τη σύνδεση και την τροφοδοσία του arduino στο pc μας (συνήθως usb b σε usb)

Προαιρετικά:

Breadboard και καλώδια jumper wires (male to male) για να αποφύγουμε τις κολλήσεις

Συνδεσμολογία

Προτού συνδέσουμε το Arduino στο pc μας, θα πρέπει να προετοιμάσουμε τη σύνδεση του αισθητήρα.

Η συνδεσμολογία έχει ώς εξής

humidity.png

Αφού συνδέσουμε τον αισθητήρα, εγκαθιστούμε το λογισμικό του Arduino και τους drivers που ερχονται πακετο.

Μπορούμε να συνδέσουμε και το Arduino στο PC μας.

Στο μενού Tools->Board διαλέγουμε το αντίστοιχο (Arduino Uno για την περίπτωση που έχουμε το uno)

Στο μενού Tools->Serial Port διαλέγουμε το port που είναι συνδεμένο το Arduino. Εάν δεν μπορούμε να το βρούμε ανοίγουμε τη διαχείριση συσκευών (device manager) του pc μας.

Βιβλιοθήκες

Τις απαραίτητες βιβλιοθήκες (libraries) για το πρόγραμμά μας μπορούμε να τις προμηθευτούμε από το Arduino playground ή απο το github του ανθρώπου που τις έγραψε

Δημιουργούμε ένα φάκελο με όνομα dht στη διαδρομή που βρίσκονται εγκατεστημένες οι βιβλιοθήκες από το Arduino IDE

Συνήθωσ είναι η " C:\Program Files (x86)\Arduino\libraries "

Αντιγράφουμε το dht.cpp και το dht.h μέσα στο φάκελο

Στο Arduino IDE πηγαίνουμε Scetch->Import Library->Add Library και επιλέγουμε το φάκελο dht

Κώδικας

Ο δοκιμαστικός κώδικας παρέχεται δωρεάν στο github στο φάκελο examples του δημιουργού και έχει όνομα dht22_test.ino

δέν έχουμε παρά να αντιγράψουμε το αρχείο και να το ανεβάσουμε στο Arduino

Πατώντας το κουμπί Upload, γίνεται compile του κώδικα και ανεβαίνει στο Arduino

Για να δούμε τις μετρήσεις, πατάμε Ctrl+Shift+M στο Arduino IDE

Note: προσέχουμε στο serial monitor το baud rate, που θα πρέπει να είναι 115200 γιατί θα μας βγάζει "κινέζικα" :P

Είμαστε έτοιμοι και θα πρέπει να μας επιστρέφει την θερμοκρασία και την υγρασία (και το timeout του αισθητήρα για λόγους ευκολίας)

UPDATE:

Συφωνα με μετρήσεις δίπλα σε αναλογικό υγρασιόμετρο, το DHT22 παρουσιάζει σφάλμα και μας δείχνει περίπου 10% λιγότερο απο το αναλογικό, οταν το αναλογικό δείχνει απο 55% ώς 65% υγρασία. Επίσης παρουσιάζει μεγάλη ευαισθησία σε ρεύματα αέρα και δέν θα το πρότεινα για εξωτερικές μετρήσεις ή κοντά σε ανεμιστήρες. Ίσως ένα Honeywell HIH 6131 να ήτανε καλύτερο εδώ αλλα δέν το έχω στη διάθεσή μου.

Η θερμοκρασία απο την άλλη μεριά ήταν ακριβέστατη στο φάσμα 30-40 βαθμούς με απόκλιση 0.1 βαθμών, σε σύγκριση με άλλη ψηφιακό επαγκελματικό θερμόμετρο χώρου κλίμακας δεκάτου.

humidity.png

humidity.png

humidity.png.8828aba8dfb87382de59eefb3d0

Edited by Yoshi
Link to comment
Share on other sites

UPDATE με μετρήσεις δίπλα σε αναλογικό υγρασιόμετρο και ψηφ. επαγκελματικό θερμόμετρο

(δυστυχως το ξεχασα και δεν εβγαλα καμια φωτογραφια)

Edited by Yoshi
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now