Έργο μετεωρολογικού σταθμού Arduino - Αισθητήρας βροχής Hydreon-Μερος 4

 Σύνδεση του αισθητήρα βροχής Hydreon RG-11 (Μέρος 4)


Παρατήρηση: Ο αισθητήρας Hydreon δεν είναι τόσο ακριβής όσο ένας μετρητής βροχής με ανατρεπόμενο κάδο. Συγκριτικά τείνει να δείχνει υψηλές τιμές. Ωστόσο, αυτός ο αισθητήρας θα ανιχνεύσει τη βροχή πριν από έναν μετρητή ανατρεπόμενου κάδου.


Αφού επιβεβαιώσουμε ότι οι αισθητήρες DS18B20 και BME280 λειτουργούν σωστά, συνδέουμε τον αισθητήρα βροχής Hydreon RG-11. Αυτός ο αισθητήρας απαιτεί 12V DC για να λειτουργήσει. Όταν βρέχει, ένα ρελέ ενεργοποιείται όταν ανιχνεύεται μια ποσότητα βροχής. Αυτό ρυθμίζεται μέσω των διακοπτών dip στο εσωτερικό του αισθητήρα. Το Arduino έχει ρυθμιστεί έτσι ώστε να ανιχνεύει το άνοιγμα και το κλείσιμο αυτού του ρελέ.



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

Ο αισθητήρας βροχής εμφανίζεται στο Arduino ως διακόπτης και είναι συνδεδεμένος με τον ίδιο τρόπο όπως η σύνδεση ενός διακόπτη στο Arduino. Το RG-11 διαθέτει είτε NO (Κανονικά ανοικτή) είτε NC (Κανονικά κλειστή) έξοδο.

Έχουμε συνδεθεί στο RG-11 χρησιμοποιώντας τις εξόδους NO (κανονικά ανοικτές). Όταν δεν ανιχνεύεται βροχή, η ψηφιακή είσοδος στον μικροελεγκτή (Arduino) θα τραβηχτεί στα 5V μέσω της αντίστασης 10K. Εάν ανιχνευθεί βροχή, τότε η έξοδος NO του RG-ll θα κλείσει και η ψηφιακή είσοδος θα πάει στη γείωση.

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

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

Κώδικας
Όσον αφορά το Arduino, ο αισθητήρας βροχής εμφανίζεται ως διακόπτης. Όταν ανιχνεύεται η βροχή, η είσοδος τραβιέται στη γη πριν επιστρέψει στα 5V. Έτσι πρέπει να ανιχνεύσουμε αυτό το γεγονός που συμβαίνει. Ένας τρόπος για να το κάνουμε αυτό είναι στο βρόχο του sketch όπου ελέγχουμε την κατάσταση της ψηφιακής εισόδου που είναι συνδεδεμένη με τον αισθητήρα. Ωστόσο, ένας καλύτερος τρόπος για να το κάνουμε αυτό είναι να χρησιμοποιήσουμε μια διακοπή υλικού και έναν χειριστή για να ανιχνεύσουμε αυτόν τον παλμό.

Μόνο οι ψηφιακές ακίδες 2 και 3 υποστηρίζουν διακοπές στη σειρά Arduino Uno. Εμείς χρησιμοποιούμε τον ακροδέκτη 3 (ο ακροδέκτης 2 είναι για το ανεμόμετρο). Στο σκίτσο χρησιμοποιήσαμε μια μέθοδο που ονομάζεται attachInterrupt (γραμμή 41) για να επισυνάψουμε μια ρουτίνα χειρισμού διακοπής για να ενεργοποιηθεί όταν αυτή η διακοπή δημιουργείται από έναν πτωτικό παλμό. Η συνάρτηση χειρισμού ονομάζεται rgisr. Στο κάτω μέρος του σκίτσου ορίζουμε τη συνάρτηση που ονομάζεται rgisr με τον κώδικα που θα εκτελεστεί από τη διακοπή.

Ο κώδικας χειρισμού της διακοπής πρέπει να είναι όσο το δυνατόν πιο σύντομος. Σε αυτή την περίπτωση κάνουμε μια μικρή αποδυνάμωση του σήματος πριν ενημερώσουμε το tipCount. Αυτό είναι όλο. Τα υπόλοιπα διεκπεραιώνονται στο βρόχο.

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

Σε αυτό το σκίτσο έχουμε ενεργοποιήσει το led μετάδοσης δεδομένων το οποίο θα χρησιμοποιήσουμε όταν μεταδίδουμε δεδομένα στον διακομιστή ιστού. Έχουμε τοποθετήσει το led τροφοδοσίας και μετάδοσης δεδομένων έτσι ώστε να είναι ορατά έξω από το κουτί του ελεγκτή. Είναι χρήσιμο για την αποσφαλμάτωση και ενοχλεί τους αρουραίους τη νύχτα. Το led δεδομένων ορίζεται από το TX_Pin και είναι συνδεδεμένο με τον ψηφιακό ακροδέκτη 8. Σε αυτό το σκίτσο απλά εναλλάσσουμε το led κάθε 2 δευτερόλεπτα όταν εξάγουμε δεδομένα στην κονσόλα.

Όλος ο νέος κώδικας έχει επισημανθεί.

Βιβλιοθήκη
Δεν απαιτείται βιβλιοθήκη για τον αισθητήρα βροχής.

Σκίτσο λογισμικού




Έξοδος κονσόλας σκίτσου
Το σκίτσο εμφανίζει δεδομένα από όλους τους αισθητήρες που έχουμε συνδέσει μέχρι στιγμής. Για να προσομοιώσουμε τη βροχή ρίξαμε λίγο νερό από ένα φλιτζάνι στον αισθητήρα.


Στο επομενο θα μιλησουμε για το ανεμομετρο 






Post a Comment

0 Comments