background image

 

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.