background image

5.3

Ανάλυση λογισμικού Arduino

Στο τελευταίο κομμάτι της διπλωματικής αυτής εργασίας, πλην του επιλόγου,

γίνεται αναφορά στον προγραμματισμό του μικρο-ελεγκτή Arduino Uno. Σε πρώτο

στάδιο, θα πραγματοποιηθεί η ανάλυση της λειτουργίας της συσκευής ώστε να γίνει

πιο εύκολη η κατανόηση του κώδικα που αναπτύχθηκε. Στη συνέχεια θα παρουσια-

στούν οι βιβλιοθήκες, καθώς και οι συναρτήσεις οι οποίες χρησιμοποιήθηκαν κατά

την ανάπτυξη του προγράμματος του Arduino.

5.3.1

Ανάλυση λειτουργίας συσκευής

Κατά την εκκίνηση της συσκευής αρχικοποιούνται τρεις Ethernet clients, ένας

TCP για τα POST και GET ερωτήματα προς την εφαρμογή, ένας UDP για τη δια-

σύνδεση με τον NTP server και ένας για τον MQTT client. Κατόπιν, εκκινείται η σει-

ριακή θύρα και εμφανίζει κατάλληλο μήνυμα εκκίνησης της συσκευής στο χρήστη.

Ακολουθεί η ρύθμιση των ακροδεκτών του Arduino για να τεθούν στην κατάλληλη

κατάσταση και αρχικοποιείται η κάρτα δικτύου Ethernet. Έπειτα, αρχικοποιείται

και η διασύνδεση με τον NTP server και πραγματοποιείται η σύνδεση με τον MQTT

broker. Εφόσον έχει πραγματοποιηθεί η ρύθμιση της δικτύωσης της συσκευής, απο-

στέλλεται POST ερώτημα από τη συσκευή στην εφαρμογή για την ενημέρωση της

τελευταίας σχετικά με βασικά στοιχεία της πρώτης. Στο ερώτημα αυτό περιλαμ-

βάνεται η έκδοση, ο σειριακός αριθμός και η τρέχουσα IP διεύθυνση της συσκευής.

Έπεται, το ερώτημα τύπου GET από την συσκευή προς την εφαρμογή για την απο-

στολή δεδομένων μέσω του MQTT καναλιού, σχετικά με τα προγράμματα, τα quick

buttons και τις τρέχουσες ρυθμίσεις των χαρακτηριστικών. Τέλος, γίνεται η ενεργο-

ποίηση του watchdog, η αρχικοποίηση των led και η εκτύπωση στη σειριακή θύρα

του σειριακού αριθμού και της έκδοσης Firmware της συσκευής. Πλέον, η συσκευή

έχει αρχικοποιηθεί και είναι έτοιμη να ξεκινήσει την κανονική της λειτουργία.

Στο στάδιο κανονικής λειτουργίας της συσκευής πραγματοποιείται έλεγχος για

το αν έχουν πατηθεί κάποια από τα κουμπιά της συσκευής και ενημερώνεται η

κατάσταση των led. Ακόμα, η εφαρμογή πληροφορείται σχετικά με την κατάσταση

της συσκευής. Πιο αναλυτικά, η συσκευή παρακολουθεί αν έχει πατηθεί το κουμπί

ενεργοποίησης/απενεργοποίησης του έλεγχου της εξόδου καθώς και αν έχει πατη-

76