- 110 -
Nokia5110::write(): η συνάρτηση αυτή εκτυπώνει στην οθόνη ακατέργαστα
δεδομένα σε μορφή δύο δεκαεξαδικών ψηφίων που δέχεται ως παραμέτρους.
4.4.3 Χρονοπρογραμματισμός συσκευής
Ένας βασικός περιορισμός του Arduino Uno είναι ότι δεν παρέχει υποστήριξη για
παράλληλη εκτέλεση δύο νημάτων λόγω περιορισμού της αρχιτεκτονικής του. Αυτό αποτελεί
βασικό πρόβλημα σε αυτήν τη διπλωματική εργασία μιας και είναι αναγκαίος ένας μηχανισμός
χρονομετρητή, ο οποίος θα καθορίζει κάθε πότε το Arduino Uno θα πρέπει να επικοινωνεί με
τον εξυπηρετητή και πότε θα εκτελεί όλες τις κρίσιμες ρουτίνες του αρτοπαρασκευαστή
περιοδικά.
Ένας τέτοιος μηχανισμός είναι ο χρονομετρητής TIMER1 που προσφέρεται εγγενώς στο
ολοκληρωμένο κύκλωμα του Arduino Uno. Στη συνάρτηση initialize_Timer1() εκτελούνται όλες
οι απαραίτητες ρουτίνες για την αρχικοποίηση του χρονομετρητή και τη ρύθμισή του να εκτελεί
τη συνάρτηση ISR(TIMER1_COMPA_vect) ανά δευτερόλεπτο. Αυτό προσφέρει στον
προγραμματιστή ένα εργαλείο ψευδοπαραλληλοποίησης μιας και δίνει ένα χρονικό μέσο
αναφοράς. Βάσει της συνάρτησης ISR(TIMER1_COMPA_vect) μπορούμε να εκτελούμε το
σύνολο των κρίσιμων ρουτινών του αρτοπαρασκευαστή κατά τη λειτουργία του, ώστε αυτή να
μην επηρεάζεται από άλλες καταστάσεις και ταυτόχρονα να μετράμε σταθερά χρονικά
διαστήματα ενός δευτερολέπτου μέχρι το σύνολο των 5, όπου επιτρέπεται η σύνδεση του
Arduino Uno με τον εξυπηρετητή για ενημέρωση. Αυτό έχει ως αποτέλεσμα την απρόσκοπτη
λειτουργία του αρτοπαρασκευαστή, ενώ ταυτόχρονα κάθε 5 δευτερόλεπτα το Arduino Uno
συνδέεται, ενημερώνει τον εξυπηρετητή, λαμβάνει εντολές και κλείνει επιτυχώς τη σύνδεση με
αυτόν.
4.4.4 Η επικοινωνία Arduino Uno – εξυπηρετητή
Όπως προαναφέρθηκε, η επικοινωνία με τον εξυπηρετητή γίνεται κάθε 5 δευτερόλεπτα
με σκοπό να ελαχιστοποιήσουμε το χρονικό διάστημα απόκρισης της συσκευής στις εντολές του
εξυπηρετητή και ανανέωσης των τιμών σε αυτόν.
Κάθε φορά που το Arduino Uno επικοινωνεί με τον εξυπηρετητή συνδέεται σε μια σελίδα
PHP η οποία αναλαμβάνει τη διαχείριση των δεδομένων επικοινωνίας. Εκεί αποστέλλει ως