5
Καλησπέρα σε όλους!
Σήμερα θα σας παρουσιάσω έναν πίνακα ελέγχου για συναγερμό (σε συνεργασία με το μέλος airgeorge), του οποίου η αρχική υλοποίηση ξεκίνησε το 2017 και από τότε τον βελτιώνω με πολύ μικρά βήματα.
Ο λόγος που ξεκίνησα την κατασκευή ήταν απλά για να βελτιώσω τον τότε συναγερμό που είχα και για προσωπική εξάσκηση.
Μετά από περίπου 2½ χρόνια συνεχούς χρήσης χωρίς πρόβλημα, αποφάσισα να το ανεβάσω στην κοινότητα.
Τα κύρια υλικά της κατασκευής είναι τα εξής:
- 1x Arduino Mega
- 1x Arduino Nano
- 1x 3.2" Οθόνη Αφής (σαν αυτήν εδώ)
- 1x Real-Time Clock module DS3231
- 2x Bluetooth HC-05
- 1x pushbutton
- 1x buzzer
- 1x transistor NPN 8050 (το έχω για να οδηγεί το buzzer, ίσως δεν χρειαστεί αν το κάνετε με κάποιο άλλο)
- 1x SD Card (προαιρετική, αποθηκεύει τους κωδικούς αν το επιλέξει ο χρήστης)
Ο πίνακας δίνει τη δυνατότητα στο χρήστη να έχει 3 κωδικούς:
- 4 ψηφίων για να οπλίσει τον συναγερμό (μπορεί να απενεργοποιηθεί από τις ρυθμίσεις)
- 5 ψηφίων για προσωρινό αφόπλισμα
- 6 ψηφίων για οριστικό αφόπλισμα (σε μελλοντική έκδοση θα μπορεί να απενεργοποιηθεί)
Μετά την εισαγωγή του 5-ψήφιου κωδικού, το σύστημα μπαίνει στην κατάσταση αυτόματου οπλίσματος, όπου μετά από Χ δευτερόλεπτα (ορίζονται από το χρήστη), οπλίζεται αυτόματα.
Κατά το όπλισμα, η πλακέτα στέλνει ένα σήμα στο συνδεδεμένο Bluetooth, το οποίο με τη σειρά του επικοινωνεί με το "ζεύγος" του για να οπλίσει το σύστημα.
Μπορεί κάποιος αν θέλει να παρακάμψει αυτό το βήμα τροποποιώντας τον κώδικα, στην περίπτωσή μου η μονάδα του συναγερμού είναι ξεχωριστή από αυτήν του control panel.
Όταν ξεκινάει το πρόγραμμα, γίνονται κάποιοι έλεγχοι για ύπαρξη του ρολογιού / SD Card όπως φαίνεται στην παρακάτω εικόνα:
Όταν φορτώσει το πρόγραμμα, ο χρήστης θα δει το κεντρικό μενού, όπου μπορεί να προχωρήσει στις ρυθμίσεις ή να οπλίσει το σύστημα:
Στις ρυθμίσεις μπορούμε να ορίσουμε τον κάθε κωδικό (αποθήκευση εσωτερικά ή και στην SD, στο μέλλον θα γίνεται αποθήκευση στην EEPROM),
τον χρόνο (σε sec) που θα πρέπει να περάσουν για το αυτόματο όπλισμα, ώρα / ημερομηνία και κάποιες επιπλέον ρυθμίσεις (εντοπισμός SD, ενεργοποίηση/απενεργοποίηση του 4-ψήφιου κωδικού).
Όταν οπλίζουμε το σύστημα, βλέπουμε στην οθόνη την ώρα, την ημερομηνία και τη θερμοκρασία του συστήματος (ο αισθητήρας είναι μέρος του ρολογιού):
Και η οθόνη όταν το σύστημα είναι σε κατάσταση αυτόματου οπλισμού:
Για να εισαχθεί και ο 6-ψήφιος κωδικός, πατάμε ένα κουμπάκι (το βάζετε όπου σας βολεύει περισσότερο) και μας ζητείται να βάλουμε τον κωδικό.
Αυτό θα μας πάει πίσω στο κεντρικό μενού. Αν για οποιοδήποτε λόγο σβήσει το control panel, το Arduino Nano θα οπλίσει μόνο του το σύστημα.
Αν σβήσει το control panel όταν ο συναγερμός ήταν οπλισμένος, τότε όταν ανοίξει θα εμφανίσει μία μπλε οθόνη, θα ξανακάνει τους ελέγχους του και θα προχωρήσει στην
κατάσταση οπλίσματος. Σε αυτήν την περίπτωση, αν έχουν κουμπωμένη την SD με τους κωδικούς, θα τους φορτώσει αυτόματα, αλλιώς θα έχει τους default. Στο μέλλον
που θα γίνεται η αποθήκευση και στην EEPROM, δεν θα υπάρχει ανάγκη για SD.
LIBRARIES
- Για την οθόνη: UTFT, URTouch, UTFT_Geometry ΣΗΜΕΙΩΣΗ: ΙΣΩΣ ΥΠΑΡΧΟΥΝ ΔΙΑΦΟΡΕΣ ΣΤΑ ΜΟΝΤΕΛΑ 3.2" ΤΩΝ ΟΘΟΝΩΝ, ΣΥΜΒΟΥΛΕΥΤΕΙΤΕ ΤΟΝ ΠΩΛΗΤΗ ΓΙΑ ΤΟ ΜΟΝΤΕΛΟ ΠΟΥ ΑΓΟΡΑΖΕΤΕ (έχει επίπτωση στο μοντέλο που δηλώνουμε στον κώδικα)
- Για το ρολόι: DS3221
Όλα τα libraries θα πρέπει να μπουν στον φάκελο libraries του Arduino (Έγγραφα/Arduino/libraries)
ΣΧΗΜΑΤΙΚΟ
SOURCE CODE
Οι φάκελοι "Graphics" & "Security" πρέπει να μπουν στον φάκελο libraries του Arduino (Έγγραφα/Arduino/libraries). Αυτήν τη στιγμή η πιο πρόσφατη έκδοση είναι η 3.0.3.
YOUTUBE VIDEO
Μπορείτε να επισκεφτείτε και τη σελίδα του project στο Hackster, εδώ
Καλές κατασκευές και καλό καλοκαίρι!