Σε αυτό το άρθρο, ο Οδηγός θα μας πει πώς να δημιουργήσουμε ένα σύστημα παρακολούθησης και ελέγχου της στάθμης του νερού σε μια δεξαμενή. Πρόκειται για ένα απλό και αξιόπιστο σύστημα.
Βασικά χαρακτηριστικά του είναι τα εξής:
Παρακολούθηση στάθμης νερού σε πραγματικό χρόνο.
Αυτόματη αντλία ενεργοποίησης / απενεργοποίησης.
Απενεργοποίηση έκτακτης ανάγκης της αντλίας.
Εργαλεία και υλικά:
-Arduino Pro mini
- υπερήχων αισθητήρα HC-SR04;
- Μονάδα MAX485.
- Μονάδα LCD i2c.
LCD 1602;
- μικροελεγκτής ATTINY45 / 85;
- Ρυθμιστής τάσης LM7805.
Τρανζίστορ ΝΡΝ (2η3904).
Μ-καναλιού MOSFET IRFD024PBF.
Δίοδος 1Ν4007;
Υποδοχή 5 ακίδων
4-ακροδέκτη
-2 ακροδέκτη pin.
- Τερματικά με 2 επαφές (μπλε) - 2 τεμάχια.
- Ακροδέκτης με 2 επαφές (πράσινο).
Υποδοχή DC (- 2 τεμ.)
-Αύκολο (αρσενικό / θηλυκό) - 2 τεμάχια.
- Αντίσταση 1 kOhm.
- Αντίσταση 10 kOhm - 3 τεμάχια.
- Πυκνωτής 100 nF - 3 τεμάχια.
Πυκνωτής 100 uF.
- Κουμπί SMD, 6x3,5mm.
- Διακόπτες DIP (SPST 2) - 2 τεμάχια.
- κουμπί λειτουργίας.
-Μικρόφωνο.
-12V DC ρελέ?
-Ανασυνδέτη ρελέ.
- Τροφοδοσία DC 5 V (> 200 mA).
- Τροφοδοσία DC 12V (> 500 mA).
-Τα κουτιά για την περίπτωση κατάλληλου μεγέθους.
-Συνδέσεις.
-Αξαρτήματα αξεσουάρ
- κατσαβίδι ·
-Wire;
Βήμα πρώτο: Μονάδα αισθητήρα
Αυτή η μονάδα μετρά τη στάθμη νερού και αποστέλλει δεδομένα στον κεντρικό ελεγκτή. Έχει δύο αισθητήρες για τη μέτρηση της στάθμης του νερού. Ο ένας είναι ο υπερηχητικός αισθητήρας απόστασης HC-SR04, ενώ οι άλλοι δύο μακρινοί κοχλίες προεξέχουν προς τα έξω, όπως φαίνεται στη φωτογραφία.
Για να εγκαταστήσετε τους αισθητήρες πρέπει να εκτελέσετε τα παρακάτω βήματα:
Τοποθετήστε τον υπερηχητικό μετατροπέα ανάποδα στο μπροστινό μέρος του καλύμματος κοντά στην κορυφή και σημειώστε τις δύο οπές για τον πομπό και δέκτη υπερήχων.
Κόψτε τις τρύπες και στερεώστε τον αισθητήρα στη θέση του με ζεστή κόλλα.
Στη συνέχεια, τρυπάτε δύο τρύπες με διάμετρο 3 mm με ένα κενό 2-3 cm στο κέντρο του καλύμματος.
Τοποθετήστε τα μακριά μπουλόνια M3 με τον ακροδέκτη καλωδίου που συσφίγγεται ανάμεσα στις δύο ροδέλες στο πίσω μέρος του καλύμματος και σφίξτε τα περικόχλια M3 στην άλλη πλευρά.
Η μονάδα αισθητήρα χρησιμοποιεί το ATTINY45 ως πρωτεύον μικροελεγκτή. Όπως αναφέρθηκε προηγουμένως, το HC-SR04 χρησιμοποιείται για τη μέτρηση της στάθμης του νερού. Λειτουργεί με τη μέτρηση της απόστασης από την κορυφή της δεξαμενής.
Επίσης, ο έλεγχος πραγματοποιείται με τη χρήση δύο βιδών στο κύκλωμα, στα οποία έχει εγκατασταθεί το τρανζίστορ. Ο μικροελεγκτής διαβάζει δεδομένα και από τους δύο αυτούς αισθητήρες και στέλνει δεδομένα στο Arduino που είναι εγκατεστημένο στη μονάδα ελέγχου.
Πρώτον, ο πλοίαρχος ήθελε να στείλει δεδομένα μέσω των μονάδων RF HC-12. Αλλά το εύρος αυτών των μονάδων δεν ταιριάζει με τις απαιτήσεις.Ο οδηγός χρησιμοποίησε τον μετατροπέα MAX485 TTL σε RS485 και έκανε μια μικρή ανύψωση για να εγκαταστήσει στη θέση των μονάδων HC-12.
Σχέδιο και σύνδεση με το διοικητικό συμβούλιο μπορούν να μεταφορτωθούν σε αυτή τη διεύθυνση.
Η εγκατάσταση είναι η εξής:
HC-SR04 στο κύριο κύκλωμα:
Vcc - 5V (CN1).
trig - trigPin (CN1).
ηχώ - echoPin (CN1).
GND (CN1).
Μ3 βίδες στο κύριο κύκλωμα:
Βίδα 1 - 5 V (CN1).
Βίδα 2-100 (CN1).
Μονάδα MAX485 (TX):
VCC - 5V (σύνδεσμος HC-12)
A - υποδοχή ήχου 1/4 ιντσών.
B - υποδοχή ήχου 1/4 ιντσών.
GND - GND (υποδοχή HC-12)
R0 - RX (βύσμα HC-12)
RE - VCC (MAX485) ή 5V.
DE - RE (συντομογραφία RE και DE).
DI - TX (βύσμα HC - 12).
Υποδοχή συνεχούς ρεύματος (υποδοχή P1):
Συμβουλή - 5V
Μανίκι - GND
Βήμα δεύτερο: Ελεγκτής
Η λειτουργία του ελεγκτή είναι απλή. Το Arduino χρησιμοποιείται ως κύριος ελεγκτής. Λαμβάνει δεδομένα αισθητήρων που αποστέλλονται από την πλακέτα πομπού μέσω της μονάδας max485. Διαθέτει οθόνη LCD 1602 που εμφανίζει την τρέχουσα στάθμη νερού και λειτουργία αντλίας. Χρησιμοποιεί ένα ρελέ 12 V ως διακόπτη για την ενεργοποίηση του ρελέ. Διαθέτει δύο διακόπτες, έναν για τον οπίσθιο φωτισμό της οθόνης LCD και έναν για την ενεργοποίηση / απενεργοποίηση μιας αντλίας έκτακτης ανάγκης.
Ένας σύνδεσμος στο διάγραμμα κυκλωμάτων και ο σχεδιασμός της πλακέτας τυπωμένου κυκλώματος για τον πομπό και τον δέκτη βρίσκεται εδώ.
Η μονάδα i2c LCD συνδέεται απευθείας στην LCD οθόνη 1602. Ο βραχυκυκλωτήρας οπίσθιου φωτισμού στη μονάδα i2c είναι συνδεδεμένος στο διακόπτη εναλλαγής για ενεργοποίηση / απενεργοποίηση. Το κουμπί έκτακτης ανάγκης (μεγάλο) συνδέεται στο κύριο κύκλωμα μέσω του συνδετήρα P4.
Μονάδα LCD I2c στο κύριο κύκλωμα (CN4):
GND - CN4-1 (GND1).
VCC-CN4-2 (5ν).
SCL - CN4-3 (Α5).
SDA - CN4-4 (Α4).
Συνδέσεις ρελέ:
A1 - 230 VAC1 (μηδέν).
A2 - ΟΧΙ (επαφή ρελέ).
S1 - 230 VAC1 (μηδέν).
S2 - 230 VAC2 (φάση)
L1 - Σύρμα κινητήρα αντλίας 1
L2 - Σύρμα κινητήρα αντλίας 2.
Συνδέστε την επαφή ρελέ COM σε 230 VAC2 (γραμμή).
Βήμα τρίτο: Λογισμικό και Προγραμματισμός
Τώρα πρέπει να προγραμματίσετε τους ελεγκτές και στις δύο συσκευές.
Για να κατεβάσετε τον κώδικα στο ATTINY45, κατεβάζει τη βιβλιοθήκη SoftwareSerial.h.
Στη λειτουργία Loop,
> Ελέγξτε πρώτα αν η δεξαμενή είναι γεμάτη ή όχι.
> Εάν είναι γεμάτο, στέλνει "255."
> Εάν δεν είναι γεμάτο, ελέγχει τη στάθμη του νερού με έναν υπερηχητικό αισθητήρα ήχου και μεταδίδει δεδομένα μέσω σειριακής επικοινωνίας.
Αυτό το πρόγραμμα χρησιμοποιεί το getwtrLvl () subfunction για να πάρει την τρέχουσα στάθμη νερού. Κατ 'αρχάς, μετράει το χρόνο που χρειάζεται ο αισθητήρας να μεταδώσει και να λάβει υπερηχητικά κύματα. Στη συνέχεια, ο χρόνος μετατρέπεται σε απόσταση χρησιμοποιώντας την ταχύτητα του ήχου.
dist = παλμόςIn (echoPin, HIGH); // χρόνο που δαπανάται από το ηχητικό κύμα.
dist = dist / 28/2; // μεταφράστε το χρόνο σε απόσταση σε cm
dist = dist * 1.25; // εδώ 1,25 είναι ο συντελεστής διόρθωσης για να ξεπεραστεί το σφάλμα μέτρησης
επιστροφή; // Επιστρέφει την απόσταση στη λειτουργία κλήσης
Τώρα για τον Arduino.
Στη λειτουργία Loop:
> Αρχικά ελέγχεται εάν πατηθεί ή όχι το κουμπί έκτακτης ανάγκης.
> Έλεγχος αισθητήρα. Μέρος του προγράμματος ελέγχει για σφάλμα αισθητήρα. δηλαδή αν τα ληφθέντα δεδομένα είναι άκυρα (<= 1) 5 φορές, τότε στην οθόνη εμφανίζεται το σφάλμα του αισθητήρα και η αντλία τερματίζεται.
> Το επόμενο μέρος εμφανίζει την τρέχουσα στάθμη νερού και δίνει μια εντολή για την αντλία 1 εάν η στάθμη του νερού είναι μικρή ή το 0 αν είναι 100% (πλήρης).
Αυτό το πρόγραμμα χρησιμοποιεί δύο υπολειτουργίες updtMotor () και getWaterLvl (). Η λειτουργία updtMotor () δείχνει τη λειτουργία της αντλίας στην οθόνη LCD και επίσης στέλνει ένα σήμα στο ρελέ.
Η λειτουργία getWaterLvl ελέγχει πρώτα για να διαπιστώσει εάν υπάρχει κάποιο σφάλμα σύνδεσης. Εάν η σύνδεση μεταξύ του πομπού και του δέκτη δεν έχει καθοριστεί κατά τη διάρκεια του χρόνου αναμονής (3000 ms). Εμφανίζει σφάλμα αισθητήρα και απενεργοποιεί την αντλία.
Όταν η σύνδεση αποκατασταθεί, η λειτουργία συνεχίζεται.
Όλα είναι έτοιμα, χάρη στον κύριο για ένα ενδιαφέρον σπιτικό.