Πίνακας περιεχομένων:

Αισθητήρας θερμοκρασίας και υγρασίας Arduino: 7 βήματα
Αισθητήρας θερμοκρασίας και υγρασίας Arduino: 7 βήματα

Βίντεο: Αισθητήρας θερμοκρασίας και υγρασίας Arduino: 7 βήματα

Βίντεο: Αισθητήρας θερμοκρασίας και υγρασίας Arduino: 7 βήματα
Βίντεο: Αισθητήρας βροχής με Arduino 2024, Νοέμβριος
Anonim

Ακολουθήστε περισσότερα από τον συγγραφέα:

PIC16F877A Μετατροπέας αναλογικού σε ψηφιακό (ADC)
PIC16F877A Μετατροπέας αναλογικού σε ψηφιακό (ADC)
PIC16F877A Μετατροπέας αναλογικού σε ψηφιακό (ADC)
PIC16F877A Μετατροπέας αναλογικού σε ψηφιακό (ADC)
Διασύνδεση LCD με μικροελεγκτή PIC16F877A
Διασύνδεση LCD με μικροελεγκτή PIC16F877A
Διασύνδεση LCD με μικροελεγκτή PIC16F877A
Διασύνδεση LCD με μικροελεγκτή PIC16F877A
DIY Τροφοδοτικό Modular Bench
DIY Τροφοδοτικό Modular Bench
DIY Τροφοδοτικό Modular Bench
DIY Τροφοδοτικό Modular Bench

Σε αυτό το σεμινάριο, θα εξηγήσω την κατασκευή ενός αισθητήρα θερμοκρασίας και υγρασίας χρησιμοποιώντας μίνι πίνακα Arduino pro με αισθητήρα DHT11 (ή DHT22).

Βήμα 1: Δείτε το βίντεο

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

www.youtube.com/watch?v=56LKl7Xd770

Βήμα 2: Απαραίτητα ανταλλακτικά

Τα μέρη που απαιτούνται για αυτό το έργο είναι:

1- Arduino pro mini board (ή οποιοδήποτε Arduino).

2- Αισθητήρας θερμοκρασίας και υγρασίας DHT11 (ή DHT22).

3- Οθόνη LCD 16x2.

4- Ένα περίβλημα της επιλογής σας, κατά προτίμηση το ίδιο με αυτό που χρησιμοποιείται στο βίντεο.

5- Ποτενσιόμετρο 10Κ.

6- Βιδωτοί ακροδέκτες.

7- Αντιστάσεις διαφορετικών τιμών.

Μπαταρία 8- 9v.

ενώ τα εργαλεία που χρειάζονται είναι:

1- τρυπάνι χειρός σαν Dremil.

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

3- Χέρια βοήθειας.

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

Βήμα 3: Σχηματικός σχεδιασμός

Σχηματική σχεδίαση
Σχηματική σχεδίαση

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

Αυτή είναι η σελίδα του έργου στον ιστότοπο easyEDA:

Η επεξήγηση του σχηματικού έχει ως εξής:

1- Έχω χρησιμοποιήσει έναν προσαρμογέα ICSP 6 ακίδων για να προγραμματίσω το Arduino pro mini αφού δεν συνοδεύεται από ένα. είναι J2 στο σχηματικό.

2- Το R2 είναι 100 Ohms και ρυθμίζει τη φωτεινότητα της οθόνης LCD. Βασικά, θα μπορούσατε να βάλετε μεγαλύτερη αντίσταση από 100R εάν θέλετε ο οπίσθιος φωτισμός LCD να είναι πιο αμυδρός. Better ακόμα καλύτερα, πάρτε ένα ποτενσιόμετρο για να λειτουργήσει ως μεταβλητή σειρά αντίστασης.

3- Το JP1 είναι απλώς ένας σύνδεσμος που έχει ένα ωραίο αποτύπωμα PCB. Ποτέ δεν έβαλα πραγματικό τερματικό αλλά αντίθετα κόλλησα τα καλώδια. Κάνε όπως σου αρέσει.

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

5- Το LCD1 είναι το στοιχείο LCD στην easyEDA. Έχει τη βασική σύνδεση με το Arduino pro mini. Βεβαιωθείτε ότι οι καρφίτσες εδώ είναι πανομοιότυπες με αυτές του λογισμικού.

6- Το RV1 είναι ένα ποτενσιόμετρο 10Κ για ρύθμιση της αντίθεσης LCD. Θα πρέπει να χρησιμοποιείται μόνο μία φορά και είναι όταν τροφοδοτείτε για πρώτη φορά την οθόνη LCD.

Βήμα 4: Σχεδιασμός PCB

Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB

Αφού τελειώσετε το σχηματικό σχέδιο και καταλάβετε τι σημαίνουν όλα, ήρθε η ώρα να φτιάξετε ένα PCB γι 'αυτό.

Θα πρέπει να πατήσετε "Μετατροπή σε PCB" στο EasyEDA για να δημιουργήσετε το PCB στον επεξεργαστή PCB. Στη συνέχεια, ξεκινήστε να τοποθετείτε εξαρτήματα και να κάνετε δρομολόγηση ως συνήθως. Ωστόσο, προτείνω να μην χρησιμοποιείτε ποτέ τον αυτόματο δρομολογητή.

Έχω χρησιμοποιήσει πολλές vias για να μετακινηθώ από το επάνω στο κάτω στρώμα αφού ο χώρος είναι τόσο μικρός.

Βήμα 5: Κατασκευάστε το PCB

Τώρα, ο σχεδιασμός του PCB έχει τελειώσει. Ελέγξαμε τα πάντα και δεν βρέθηκε πρόβλημα. Πρέπει να στείλουμε τα αρχεία σχεδιασμού (τα ζέρμπερ) στην εταιρεία κατασκευής PCB της επιλογής μας, ώστε να το κάνει για εμάς.

Η εταιρεία επιλογής μου είναι η JLCPCB. Είναι τα καλύτερα για τέτοια έργα και πρωτότυπα και προσφέρουν τιμή μόνο 2 $ για 10 ολόκληρα κομμάτια του σχεδίου σας!

Έτσι, τώρα κάνουμε κλικ στο (….) Και επιλέγουμε JLCPCB. Κατευθυνόμαστε στον ιστότοπο της JLCPCB αφού είναι συνεργάτες με την EasyEDA. Τώρα συμπληρώστε τα πάντα και κάντε την παραγγελία. Τώρα περιμένετε μέχρι να φτάσουν τα PCB.

Αξίζει να αναφερθεί ότι τα JLCPCB όχι μόνο έχουν EasyEDA που σχετίζονται με αυτά, αλλά έχουν επίσης ένα μεγάλο κατάστημα εξαρτημάτων επίσης! Το όφελος εδώ είναι να αποσταλεί τόσο η παραγγελία PCB όσο και η παραγγελία εξαρτημάτων! Ναι, δεν χρειάζεται να περιμένετε 2 πακέτα να φτάσουν ξεχωριστά, αλλά αντίθετα έρχονται συνδυασμένα σε ένα πακέτο. Το συνιστώ ανεπιφύλακτα να το χρησιμοποιήσετε.

Βήμα 6: Συναρμολόγηση

Έχουμε τα PCB μόνο με όλα τώρα. Είναι καιρός να συγκεντρώσουμε τα πάντα μαζί.

Πρώτον, πρέπει να συγκολλήσουμε τα ηλεκτρονικά σύμφωνα με το σχηματικό σχήμα. Είναι ένα εύκολο έργο για αυτό το έργο.

Αφού τελειώσετε τη συγκόλληση, κόψτε τώρα τις απαραίτητες οπές στο πλαστικό περίβλημα και στη συνέχεια στερεώστε το PCB με άλλα εξαρτήματα καλά μέσα χρησιμοποιώντας πιστόλι θερμής κόλλας.

Θα πρέπει τώρα να χρησιμοποιήσετε το ποτενσιόμετρο για να ρυθμίσετε την αντίθεση της οθόνης LCD, ενώ επιλέγοντας την απαιτούμενη βαλβίδα αντίστασης για τη φωτεινότητα, έχω επιλέξει 100R.

Βήμα 7: Κωδικός

Ο κώδικας για αυτό το έργο επισυνάπτεται σε αυτό το βήμα και η επεξήγηση έχει ως εξής:

// περιλαμβάνει τον κωδικό της βιβλιοθήκης: #include #include "DHT.h" // ορίστε το DHT Pin #define DHTPIN 2

Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες και ορίστε τον ακροδέκτη 2 του Arduino pro mini ως τον ακροδέκτη δεδομένων για τον αισθητήρα. Βεβαιωθείτε ότι έχετε εγκαταστήσει αυτές τις βιβλιοθήκες εάν δεν τις έχετε.

// προετοιμάστε τη βιβλιοθήκη με τους αριθμούς των ακίδων διεπαφής LiquidCrystal lcd (9, 8, 7, 6, 5, 4). #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

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

Η τελευταία γραμμή λέει ότι έχουμε αισθητήρα DHT11 και η καρφίτσα δεδομένων είναι στην ακίδα "DHTPIN", η οποία είναι η ακίδα 2 όπως την ορίσαμε προηγουμένως.

void setup () {// ρυθμίστε τον αριθμό των στηλών και των σειρών LCD: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Θερμοκρασία και"); lcd.setCursor (0, 1); lcd.print ("αισθητήρας υγρασίας"); καθυστέρηση (3000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); καθυστέρηση (3000)? }

Τώρα είναι ώρα ρύθμισης! και ιδού τι συμβαίνει:

Η οθόνη LCD είναι τύπου 16 επί 2.

Εκκινήστε την εντολή DHT για να λάβετε τιμές.

Εκτυπώστε "Αισθητήρας θερμοκρασίας και υγρασίας" στις 2 γραμμές.

Καθυστέρηση 3 δευτερόλεπτα.

Καθαρή οθόνη

Εκτυπώστε "THUNDERTRONICS" στην πρώτη γραμμή και στη συνέχεια εκτυπώστε το "Hossam Moghrabi" στη 2η γραμμή.

Καθυστέρηση 3 δευτερόλεπτα.

^Το έχω κάνει ως οθόνη καλωσορίσματος που διαρκεί περίπου 6 δευτερόλεπτα πριν εμφανιστούν οι τιμές.

void loop () {// διαβάστε την υγρασία int h = dht.readHumidity (); // ανάγνωση θερμοκρασίας σε c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("ERROR"); ΕΠΙΣΤΡΟΦΗ; }

Τώρα βρισκόμαστε μέσα στον αιώνιο βρόχο μας που θα επαναλαμβάνεται συνεχώς.

Αποθηκεύστε τις ενδείξεις υγρασίας μέσα στη μεταβλητή "h" και τις ενδείξεις θερμοκρασίας μέσα στη μεταβλητή "t".

Στη συνέχεια, έχουμε μια πρόταση if. Αυτό επιστρέφει βασικά ένα μήνυμα σφάλματος όταν υπάρχει σφάλμα. Αφήστε το χωρίς να το αλλάξετε.

Τώρα έχουμε όλες τις αξίες που χρειαζόμαστε.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.print (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Υγρασία ="); lcd.print (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); καθυστέρηση (2000).

Τέλος, εμφανίζουμε αυτές τις τιμές στην οθόνη LCD. Μπορείτε να το αλλάξετε με τον τρόπο που θέλετε επειδή απλώς εκτυπώνει τιμές μέσα στις μεταβλητές "h" και "t". Η καθυστέρηση 2 δευτερολέπτων είναι προαιρετική, αλλά δεν θα ωφεληθείτε πολύ από το να το κάνετε γρηγορότερα, καθώς ο ίδιος ο αισθητήρας δεν είναι τόσο γρήγορος και ακόμα κι αν είναι, οι φυσικές τιμές δεν αλλάζουν ποτέ τόσο γρήγορα. Έτσι, 2 δευτερόλεπτα είναι πολύ πολύ γρήγορα για τη δουλειά!

Αυτό είναι!

Συνιστάται: