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

Arduino DHT22 Sensor and Soil Moisture Project Με Μενού: 4 Βήματα
Arduino DHT22 Sensor and Soil Moisture Project Με Μενού: 4 Βήματα

Βίντεο: Arduino DHT22 Sensor and Soil Moisture Project Με Μενού: 4 Βήματα

Βίντεο: Arduino DHT22 Sensor and Soil Moisture Project Με Μενού: 4 Βήματα
Βίντεο: Lesson 11: What is Arduino library and How to use DHT11 Temperature and Humidity Sensor | SunFounder 2024, Ιούλιος
Anonim
Arduino DHT22 Sensor and Soil Moisture Project With Menu
Arduino DHT22 Sensor and Soil Moisture Project With Menu

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

Βήμα 1: Απόκτηση όλων των τμημάτων

Απόκτηση όλων των μερών
Απόκτηση όλων των μερών
Απόκτηση όλων των μερών
Απόκτηση όλων των μερών
Απόκτηση όλων των μερών
Απόκτηση όλων των μερών

Αυτό το έργο χρησιμοποιεί λίγα μέρη. Αυτά τα ανταλλακτικά είναι πολύ φθηνά, οπότε μην ανησυχείτε για την τιμή. Ορισμένα από τα μέρη που χρησιμοποιούνται σε αυτό το έργο μπορούν να αλλάξουν, ώστε το έργο να είναι φθηνότερο. Εναπόκειται σε εσάς ποια μέρη των προτεινόμενων θα χρησιμοποιήσετε και θα κάνετε αυτό το έργο ακόμα καλύτερο. Μέρη που χρησιμοποιούνται σε αυτό το έργο:

  1. Arduino uno rev3 (Μπορείτε επίσης να χρησιμοποιήσετε άλλο Arduino)
  2. Breadboard
  3. LCD 1602 πράσινη οθόνη με I2C (μπορείτε επίσης να χρησιμοποιήσετε οθόνη χωρίς I2C αλλά θα χρειαστείτε περισσότερες ακίδες για να τη συνδέσετε)
  4. Πληκτρολόγιο 16 κουμπιών (με δυνατότητα αλλαγής)
  5. FC-28-d Ενότητα ανίχνευσης υγρόμετρου εδάφους + αισθητήρας υγρασίας εδάφους
  6. Αισθητήρας θερμοκρασίας και υγρασίας DHT22 (Μπορείτε να χρησιμοποιήσετε το DHT11 που είναι φθηνότερο να το αποκτήσετε)
  7. Κόκκινη δίοδος LED
  8. Μπλε δίοδος LED
  9. 2 αντιστάσεις 220 ohm (χρησιμοποιούνται για διόδους)
  10. Αντίσταση 4k7 που χρησιμοποιείται για DHT22 σε σχηματική
  11. Υποδοχή μπαταρίας Arduino
  12. Λίγα καλώδια βραχυκυκλωτή για να συνδέσετε όλα τα μέρη

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

Βήμα 2: Σύνδεση όλων των εξαρτημάτων μαζί

Συνδέοντας όλα τα μέρη μαζί
Συνδέοντας όλα τα μέρη μαζί

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

Όπως μπορείτε να δείτε, χρησιμοποιούμε 5V και GND από το arduino για την τροφοδοσία του breadboard.

ΟΘΟΝΗ ΥΓΡΟΥ ΚΡΥΣΤΑΛΛΟΥ:

  • VCC σε 5v (+ μέρος στο breadboard)
  • GND σε gnd (- μέρος στο breadboard)
  • SDA σε αναλογικό pin A4
  • SCL στην αναλογική ακίδα A5

Πληκτρολόγιο με 16 κουμπιά:

Χρησιμοποιούμε τις ακίδες 9, 8, 7, 6, 5, 4, 3, 2 για να συνδέσουμε το πληκτρολόγιο (αυτός είναι ο λόγος για τον οποίο θα χρησιμοποιούσα έναν περιστροφικό κωδικοποιητή, διότι θα χρειαζόταν μόνο 3 ακίδες στον πίνακα)

Αισθητήρας υγρασίας εδάφους:

  • VCC σε 5v (+ μέρος στο breadboard)
  • GND σε gnd (-μέρος στο breadboard)
  • D0 στην ψηφιακή ακίδα 0
  • A0 στην αναλογική ακίδα A0

DHT22:

  • VCC σε 5v (+ μέρος στο breadboard)
  • GND σε gnd (-μέρος στο breadboard)
  • Ο πείρος εξόδου συνδέεται με τον πείρο 12

Δίοδος σύνδεσης:

  • ένα μέρος της διόδου πηγαίνει - μέρος του σανιδιού
  • το δεύτερο μέρος περνάει από αντίσταση 220 ohm και μετά συνδέεται με τον πείρο 10 (μπλε δίοδο) ή 11 (κόκκινη δίοδο)

Βήμα 3: Σύνταξη κώδικα

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

  1. Το πρώτο μέρος του κώδικα περιλαμβάνει όλες τις χρησιμοποιούμενες βιβλιοθήκες για αυτό το έργο. Λάβετε υπόψη ότι για όλα τα μέρη που είπα ότι χρησιμοποιώ χρειάζεστε τις επόμενες βιβλιοθήκες: Wire, LiquidCrystal_I2C, Keypad και DHT. Όλες οι βιβλιοθήκες μπορούν να βρεθούν στο Arduino IDE εάν μεταβείτε στο τμήμα σκίτσου και, στη συνέχεια, συμπεριλάβετε βιβλιοθήκες. Λάβετε επίσης υπόψη ότι εάν χρησιμοποιείτε κάτι σαν περιστροφικός κωδικοποιητής, πιθανότατα θα χρειαστεί να αποκτήσετε νέες βιβλιοθήκες αντί για πληκτρολόγιο, το οποίο πιθανότατα θα είναι rotary.h και κουμπί. Εάν χρησιμοποιείτε αισθητήρα DHT11, η βιβλιοθήκη εξακολουθεί να είναι DHT.
  2. Στο δεύτερο μέρος του κώδικα θα υπάρχει ορισμός όλων των χρησιμοποιούμενων τμημάτων. Πρώτα απ 'όλα είναι η οθόνη LCD. Μετά από αυτό, υπάρχει αισθητήρας DHT που αντιπροσωπεύει ένα αντικείμενο με αισθητήρα τύπου dht, και επίσης έναν πείρο που είναι συνδεδεμένος. Ο αισθητήρας και οι δίοδοι υγρασίας εδάφους είναι το τρίτο.
  3. Θα περιγράψω λίγο περισσότερο το πληκτρολόγιο. Όπως είπα ο περιστροφικός κωδικοποιητής μου ήταν σπασμένος, έτσι αποφάσισα να τον χρησιμοποιήσω. Για αυτό το έργο αρκεί να έχετε μόνο τέσσερα κουμπιά, ακόμη και τρία είναι καλά για αυτό. Έτσι χρησιμοποιώ τέσσερα κουμπιά στο πληκτρολόγιο για μία μόνο επιλογή. Μπορείτε να χρησιμοποιήσετε μερικά από τα κουμπιά αν θέλετε για κάτι άλλο, αν έχετε μια ιδέα. Πρέπει να ορίσετε γραμμές και στήλες σε αυτό το μέρος. Στη συνέχεια, το hexaKeys θα σας αντιπροσωπεύει τις επιλογές που χρησιμοποιούνται για αυτό το έργο. Στο έργο μου υπάρχουν B (πίσω), U (πάνω), D (κάτω) και A (αποδοχή). Μπορείτε να κάνετε κάθε κουμπί για να κάνετε κάτι άλλο. Ένα κουμπί θα μπορούσε να ανάψει τον οπίσθιο φωτισμό, μπορεί να τον απενεργοποιήσει. Επομένως, μη διστάσετε να παίξετε με αυτό ακόμη περισσότερο
  4. Σε αυτό το μέρος υπάρχουν καθολικές μεταβλητές που χρησιμοποιούνται στον κώδικα. Οι μεταβλητές ομαδοποίησης χρησιμοποιούνται για την αλλαγή οθόνης. Η μεταβλητή καλωσορίσματος ισχύει για λίγα δευτερόλεπτα μόνο όταν ενεργοποιήθηκε το arduino i, μετά από αυτό θα είναι ψευδής για τον υπόλοιπο χρόνο. Η κύρια εστίαση είναι στη μεταβλητή mainScreen. Αυτή η μεταβλητή χρησιμοποιείται για να σας καθοδηγήσει από το μενού σε οποιαδήποτε άλλη επιλογή κώδικα. Εάν αυτή η μεταβλητή είναι ψευδής, τότε αυτό σημαίνει ότι ο χρήστης αποφάσισε να χρησιμοποιήσει μία από τις τέσσερις επιλογές αυτού του έργου.
  5. Εδώ γράφονται όλες οι μέθοδοι που χρησιμοποιούνται σε αυτόν τον κώδικα. Θα προσπαθήσω να εξηγήσω όλες τις γραπτές μεθόδους σε αυτό το μέρος
  • void startScreen (); // μέθοδος έναρξης έργου και arduino
  • int choiceNumber (int επιλογή); // αυτό αλλάζει την επιλογή των επιλογών του έργου. Ο αριθμός κυμαίνεται από 1 έως 4
  • void mainScreenP (int επιλογή)? // θα γραφτούν τέσσερις επιλογές συσκευής που έχει κατασκευαστεί
  • bool mainScreenCS (bool mainScreen); // αυτό αλλάζει την κύρια οθόνη σε ψευδή
  • bool mainScreenBack (κύρια οθόνη κύριας οθόνης); // αυτό αλλάζει την κύρια οθόνη σε true
  • void tempCelsius (); // θερμοκρασία ανάγνωσης στην επιλογή αισθητήρα C DHT
  • void tempFarenheit (); // θερμοκρασία ανάγνωσης στην επιλογή αισθητήρα F DHT
  • void printHumidity (); // ανάγνωση επιλογής αισθητήρα DHT υγρασίας
  • void readSensorData (); // ανάγνωση δεδομένων σε συνδεδεμένους αισθητήρες
  • String getTemperatureC ();
  • String getTemperatureF ();
  • String getHumidity ();
  • void groundMoisture (); // αυτό είναι για άλλο αισθητήρα και διόδους
  • void printSensorSoilMoisture (); // εκτύπωση τμήματος υγρασίας χώματος σε LCD
  • void diodeLights (τιμή int); // ενεργοποίηση και απενεργοποίηση διόδων
  • void printValue (τιμή int);

6. Η ρύθμιση για το arduino είναι μέρος όπου ρυθμίζετε τον αισθητήρα LCD και DHT καθώς και διόδους

7. Κύριο μέρος είναι το μέρος όπου χρησιμοποιούνται όλες οι παραπάνω γραπτές μέθοδοι.

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

Βήμα 4: Χρήση του Arduino σας

Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας
Χρησιμοποιώντας το Arduino σας

Αυτό είναι ίσως το πιο αστείο μέρος. Τουλάχιστον είναι πιο αστείο μετά από όλη την κωδικοποίηση που γράφτηκε. Σε αυτό το μέρος μπορείτε να δείτε εικόνες για το πώς λειτουργεί το έργο. Υπάρχουν 4 επιλογές.

  1. Θερμοκρασία ανάγνωσης σε Κελσίου
  2. Θερμοκρασία ανάγνωσης σε Φαρενάιτ
  3. Υγρασία ανάγνωσης
  4. Ενεργοποίηση διόδων και ανάγνωση τιμών αισθητήρα υγρασίας εδάφους.

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

Εάν υπάρχει οποιαδήποτε άλλη ερώτηση μπορείτε να μου κάνετε. Ευχαριστώ παιδιά που κοιτάξατε το έργο μου. Με όλους τους χαιρετισμούς. Σεμπαστιάν

Συνιστάται: