ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΣΥΝΤΗΡΗΣΗΣ ΚΑΤΟΙΚΙΔΙΟΥ ΣΚΥΛΟΥ


  


Στο σύστημά από την ώρα που θα τροφοδοτηθεί το arduino, ξεκινάει να τρέχει ο κώδικας.


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

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


 Έπειτα, ζητούνται πληροφορίες όπως το πόσες φορές θα ταΐζεται ο σκύλος, το πότε, και τι ώρα είναι εκείνη την στιγμή. Τέλος, ρυθμίζεται η δυναμό-κυψέλη.

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







** Το κείμενο και οι φωτογραφίες (σε μορφή HTML) ετοιμάστηκαν από το Χρήστο Δανάσκο και αποτελούν μικρό απόσπασμα από την πτυχιακή του εργασία.

ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ

Στην εικόνα 1.1 παρουσιάζεται το λογικό διάγραμμα ροής του συστήματος. Εκεί αναφέρεται η λειτουργία του συστήματος σύμφωνα με τον χρόνο και τα συμβάντα που συμβαίνουν (π.χ. αν είναι η στιγμή για το τάισμα).


Εικόνα 1.1



ΠΙΝΑΚΑΣ ΣΥΝΑΡΤΗΣΕΩΝ
ΣΥΝΑΡΤΗΣΗ
ΠΑΡΑΜΕΤΡΟΙ
ΠΕΡΙΓΡΑΦΗ
readMyKeypad
x
Διαβάζει από το πληκτρολόγιο αριθμούς μέχρι το σύνολο των ψηφίων να είναι ίσο με το x
Readfores
-
Διαβάζει από το πληκτρολόγιο ένα στοιχείο και το αποθηκεύει στην global μεταβλητή key
readwra1
-
Διαβάζει από το πληκτρολόγιο δύο στοιχεία και τα αποθηκεύει στον πίνακα pinakas_wras[2]
readwra2
a
Διαβάζει από το πληκτρολόγιο 2*a στοιχεία και τα αποθηκεύει στον πίνακα wres[4]
read_wra
-
Διαβάζει την ώρα από το πληκτρολόγιο και την αποθηκεύει στην μεταβλητή twrini_wra
read_lepta
-
Διαβάζει τα λεπτά της ώρας και τα αποθηκεύει στην μεταβλητήtwrina_lepta

setDateTime
wra, lepta
Ρύθμιση του ρολογιού πραγματικού χρόνου (RTC) στην ώρα που δόθηκε από τον χρήστη
decToBcd
Val
Μετατρέπει ένα byte από δεκαδικό σε δυαδικό
bcdToDec
val
Μετατρέπει ένα byte από δυαδικό σε δεκαδικό
read_weigh
-
Διαβάζει τα volt από το A1 και τα επιστρέφει στο πρόγραμμα.
voltage_to_weigh
voltage
Μετατρέπει την τιμή voltage σε μία float τιμή η οποία αντιπροσωπεύει το βάρος.



ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΙΘΑΝΕΣ ΕΠΕΚΤΑΣΕΙΣ

Στην κατασκευή του συστήματος υπήρξαν αρκετές δυσκολίες.
Η πρώτη ήταν το μέτρημα της τάσης από την δυναμοκυψέλη.

 Το arduino δεν μπορεί να διαβάσει την κλίμακα των mV.
 Η δυναμοκυψέλη παίρνει σαν είσοδο τάση 5V και μας επιστρέφει στην έξοδό της τάση σε mV. Οπότε έπρεπε να βρεθεί ο κατάλληλος ενισχυτής τάσης τέτοιος ώστε να μπορούμε να μετρήσουμε σωστά την έξοδό μας και να αποφύγουμε τα λάθος αποτελέσματα. 

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

Η μεγαλύτερη δυσκολία, παρόλα ταύτα, ήταν στο καπάκι από το «χωνί ζύγισης» διότι έπρεπε να είναι κάτι ελαφρύ, για να το αντέχει το servo,αλλά και κάτι σκληρό για να κρατάει το βάρος από τις κροκέτες. Τελικά κατασκευάστηκε ένα «χωνί» από δύο πλαστικές γλάστρες.
ΠΙΘΑΝΈΣ ΕΠΕΚΤΑΣΕΙΣ

Μελλοντικά στο σύστημα αυτό θα μπορούσε να τοποθετηθεί ένα σύστημα συναγερμού, ένα gps module για την εύρεση του που βρίσκεται το σύστημα ανά πάσα στιγμή, μία κάμερα για την παρακολούθηση του περιβάλλοντος του συστήματος, ή ακόμα και ένα σύστημα με RSA κωδικοποίηση για να μπορεί να ταϊστεί μόνο ο σκύλος που θα διαθέτει το κολάρο του συστήματος. 

Τέλος θα μπορούσε να τοποθετηθεί ένα ηλιακό panel και με τον τρόπο αυτό το σύστημα να γίνει αυτόνομο από θέμα ενέργειας.