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

Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: 5 βήματα
Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: 5 βήματα

Βίντεο: Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: 5 βήματα

Βίντεο: Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: 5 βήματα
Βίντεο: ΑΓΡΟΤΙΚΑ & ΥΓΙΕΙΝΑ - ΙΠΠΟΦΑΕΣ 2024, Νοέμβριος
Anonim
Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας
Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας

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

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

Προμήθειες

  • PCBWay Προσαρμοσμένο PCB
  • Αναλογικός αισθητήρας υγρασίας εδάφους για Arduino
  • Arduino UNO
  • Καλώδια βραχυκυκλωτήρων (γενικά)
  • Τυπική οθόνη LCD - 16 x 2 Μπλε
  • UTSOURCE Περιστροφικό ποτενσιόμετρο 10k

Βήμα 1: Ανάπτυξη Έργου

Ανάπτυξη σχεδίου
Ανάπτυξη σχεδίου

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

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

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

Βήμα 2: Εισαγωγή του αισθητήρα υγρασίας στο κύκλωμα

Εισαγωγή του αισθητήρα υγρασίας στο κύκλωμα
Εισαγωγή του αισθητήρα υγρασίας στο κύκλωμα
Εισαγωγή του αισθητήρα υγρασίας στο κύκλωμα
Εισαγωγή του αισθητήρα υγρασίας στο κύκλωμα

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

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

Βήμα 3: Κατανοήστε τις τιμές υγρασίας

Κατανοήστε τις τιμές υγρασίας
Κατανοήστε τις τιμές υγρασίας
Κατανοήστε τις τιμές υγρασίας
Κατανοήστε τις τιμές υγρασίας

Αυτή η χαμηλή ποσοστιαία τιμή αντιπροσωπεύει χαμηλή υγρασία. Τώρα, μετά την εισαγωγή του αισθητήρα στο χώμα του βάζου κάκτων, θα εμφανιστεί μια τιμή 36%, όπως φαίνεται στο σχήμα 4. Δηλαδή, η υγρασία μας είναι χαμηλή και το σύστημα εμφανίζει το μήνυμα Χαμηλή υγρασία επειδή η τιμή είναι μικρότερη από 60%.

Το επόμενο βήμα είναι να ποτίσουμε το χώμα της στάμνας του κάκτου μας και μπορούμε να επαληθεύσουμε την αύξηση της τιμής της υγρασίας στο 69%.

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

Βήμα 4: Λογικός προγραμματισμός

Στη συνέχεια, το λογικό προγραμματισμού θα παρουσιαστεί μέσω του κώδικα που κατασκευάστηκε.

Αρχικά, δηλώθηκε η βιβλιοθήκη Display LCD, μεταβλητών και δημιουργήθηκε ένα αντικείμενο LCD με τις ακίδες σύνδεσης με το Arduino UNO.

#περιλαμβάνω

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; byte UmidityPercent = 0, υγρασία = 0, PreviousValue = 0; int ValUmidade = 0, AnalogValue = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

Μετά από αυτό, η λειτουργία εγκατάστασης και η οθόνη LCD 16x2 αρχικοποιήθηκαν και η ακίδα του αισθητήρα διαμορφώθηκε ως είσοδος. Τέλος, κάναμε την πρώτη ανάγνωση του αισθητήρα μας και χρησιμοποιήσαμε ως αναφορά για τη μεταβλητή PreviousValue, όπως φαίνεται παρακάτω.

{Serial.begin (9600); lcd. αρχή (16, 2); pinMode (αισθητήρας, ΕΙΣΟΔΟΣ); PreviousValue = analogRead (αισθητήρας); }

Με τις μεταβλητές που δημιουργήθηκαν και τις εντολές στη συνάρτηση void setup, θα εξηγήσουμε όλο τον λογικό προγραμματισμό στη συνάρτηση βρόχου.

// Le o valor do pino A0 do sensorAnalogValue = analogRead (αισθητήρας); // Mostra o valor da porta analogica no serial monitor Serial.print ("Analog Port:"); Serial.println (AnalogValue); UmidityPercent = χάρτης (AnalogValue, 0, 1023, 0, 100); υγρασία = 100 - UmidityPercent?

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

Για να διευκολύνουμε την αναπαράσταση της τιμής και να αποτρέψουμε τη σύγχυση της ανάγνωσης του χρήστη, αντιστρέφουμε αυτήν τη λογική και δηλώνουμε ότι το 0% θα είναι χαμηλή υγρασία και 100% υψηλή υγρασία. Αυτό έγινε μέσω του υπολογισμού που πραγματοποιήθηκε μετά τη χαρτογράφηση.

υγρασία = 100 - UmidityPercent?

Αφού διαβάσετε την τιμή υγρασίας, πρέπει να εμφανιστεί στην οθόνη LCD. Το επόμενο βήμα είναι να επαληθεύσετε εάν η τιμή υγρασίας είναι διαφορετική από την τιμή της συν 1 ή την τιμή μείον 1, σύμφωνα με την παρακάτω συνθήκη.

εάν ((υγρασία> (Προηγούμενη τιμή) +1) || (υγρασία <(Προηγούμενη τιμή)- 1))

Αυτή η συνθήκη χρησιμοποιείται για να εμποδίσει το σύστημα να παρουσιάζει την ίδια τιμή αρκετές φορές στην οθόνη LCD. Αλλά, όταν η συνθήκη είναι αληθής, το σύστημα θα παρουσιάσει την τιμή στην οθόνη LCD και θα επαληθεύσει εάν η τιμή είναι μεγαλύτερη ή ίση από 60%ή μικρότερη από 60%. Εάν η τιμή ήταν μεγαλύτερη ή ίση με 60%, το σύστημα είναι παρόν το μήνυμα Υψηλή υγρασία, διαφορετικά, παρουσιάστε το μήνυμα Χαμηλή υγρασία, όπως φαίνεται παρακάτω.

εάν ((υγρασία> (Προηγούμενη τιμή) +1) || (υγρασία <(Προηγούμενη τιμή)- 1)) {lcd.setCursor (1, 0); lcd.print ("Υγρασία:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (υγρασία) lcd.print ("%"); if (υγρασία = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("Υψηλή υγρασία"); HighUmid = 1; LowUmid = 0; } PreviousValue = υγρασία. }

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

Βήμα 5: Ευχαριστίες

Το εργαστήριο Silícios ευχαριστεί το PCBWay για την υποστήριξή του και τη συνεργασία. Και έχουμε πολλά οφέλη για εσάς. Κερδίστε 10 δωρεάν PCB και πολλά νομίσματα φασολιών (Μάθετε περισσότερα) για να ανταλλάξετε προϊόντα στον ιστότοπο του PCBWay.

Εκτός από αυτά, το Silícios Lab ευχαριστεί την UTSOURCE για την υποστήριξή της, που μας προσφέρει τα χαμηλού κόστους ηλεκτρονικά εξαρτήματα εξαιρετικής ποιότητας και καλής εξυπηρέτησης.

Συνιστάται: