63
επικοινωνία με μία ή περισσότερες περιφερειακές συσκευές σε μικρές αποστάσεις. Μπορεί
επίσης, να χρησιμοποιηθεί για την επικοινωνία μεταξύ των δύο μικροεπεξεργαστών.
3.5.2.
Προγραμματισμός
μικροελεγκτή
Arduino
Η επικοινωνία του Arduino με το server είναι μονόδρομη: το Arduino έχει το ρόλο του
αποστολέα και ο server το ρόλο του παραλήπτη. Για τις ανάγκες της συγκεκριμένης
διπλωματικής εργασίας έχουν υλοποιηθεί τρεις συσκευές ψηφοφορίας, κάθε μια από τις
οποίες αποτελείται από ένα Arduino Uno R3. Σε κάθε μια από τις πλακέτες Arduino έχει
δοθεί ένα συγκεκριμένο device_id, το οποίο είναι καταχωρημένο στη βάση δεδομένων του
συστήματος. Ο χρήστης μέσα από τον ιστοχώρο έχει τη δυνατότητα να δεσμεύσει τις
συσκευές που θέλει να χρησιμοποιήσει, δηλαδή να τις δεσμεύσει στο δικό του user_id στη
βάση δεδομένων.
Στη σελίδα που βρίσκονται οι ερωτήσεις μιας ψηφοφορίας, υπάρχει δίπλα από κάθε
ερώτηση το εικονίδιο
. Πατώντας αυτό το εικονίδιο, ο χρήστης ορίζει ότι όλες οι συσκευές
που έχει δεσμεύσει για λογαριασμό του θα στέλνουν την ψήφο τους για την ερώτηση με το
question_id
της επιλεγμένης ερώτησης.
Πιέζοντας κάποιο από τα πέντε κουμπιά της συσκευής, ο ψηφοφόρος στέλνει μια
διεύθυνση url στο server και συγκεκριμένα στο αρχείο arduino.php, η οποία περιέχει τις τιμές
συγκεκριμένων μεταβλητών. Οι μεταβλητές αυτές ενημερώνουν το server για το ποιο είναι
το device_id της συσκευής που του στέλνει τα δεδομένα και για το ποια είναι η απάντηση
που έχει επιλεγεί. Στη συνέχεια, ο server ελέγχει σε ποιο question_id έχει οριστεί να στέλνει
τις απαντήσεις της η συγκεκριμένη συσκευή και καταχωρεί την ψήφο στην απάντηση που
έχει επιλεγεί.
Ο κώδικας της εικόνας 32 περιγράφει τις διαδικασίες που επιτελούνται σε περίπτωση
που επιλεγεί το πλήκτρο της απάντησης 1 από τη συσκευή με device_id = 1.