background image

ο συγκεκριμένος ακροδέκτης, για να ενεργοποιηθεί η εσωτερική pull-up αντί-

σταση.

Προσοχή χρειάζεται να δοθεί στο ότι εάν δεν έχει οριστεί το pinMode() σε

OUTPUT για τον ακροδέκτη και έχει συνδεθεί κάποιο ηλεκτρονικό στοιχείο

σε αυτόν τον ακροδέκτη, κατά την κλήση της ψηφιακής εγγραφής (HIGH),

τότε αυτό μπορεί να υπολειτουργεί. Χωρίς τη ρητή ρύθμιση του pinMode(),

το digitalWrite() θα ενεργοποιήσει την εσωτερική αντίσταση pull-up, η οποία

περιορίζει το ρεύμα προς το συνδεδεμένο ηλεκτρονικό στοιχείο.

• digitalRead(pin): Λαμβάνει την τιμή ενός ψηφιακού ακροδέκτη, HIGH ή LOW.

Όπου pin τοποθετείται ο αριθμός του ακροδέκτη από τον οποίο επιθυμεί κά-

ποιος να διαβάσει τις τιμές του.

• shiftOut(dataPin, clockPin, bitOrder, value): Μεταθέτει ένα byte δεδομένων από

ένα bit τη φορά. Ξεκινάει από το πιο σημαντικό (MSBFIRST) ή απο το λιγό-

τερο σημαντικό (LSBFIRST) ψηφίο. Κάθε bit γράφεται με τη σειρά του στον

ακροδέκτη δεδομένων ανά έναν παλμό ρολογιού.

Όπου dataPin ο ακροδέκτης εξόδου σειριακών δεδομένων, clockPin ο παλμός

ρολογιού, bitOrder η σειρά με την οποία θα διαβάσει τα bits (MSBFIRST ή

LSBFIRST) και value τα δεδομένα που θα εξαχθούν (byte).

ArduinoJson.h [7]

Η βιβλιοθήκη ArduinoJson χρησιμοποιείται για την μετατροπή των JSON δε-

δομένων, που λαμβάνονται από την εφαρμογή του συστήματος, σε πίνακες C++,

προκειμένου να χρησιμοποιηθούν από το πρόγραμμα του Arduino.

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

κλάσεις και μεταβλητές:

• StaticJsonBuffer<200> jsonBuffer: Προ-καταλαμβάνει ένα ποσό μνήμης στην

SRAM του Arduino, για τη δημιουργία του JSON πίνακα. Ο αριθμός ‘200’

υποδηλώνει το μέγεθος της κατειλημμένης μνήμης σε bytes. Για πολύπλοκα

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

• JsonObject& root = jsonBuffer.parseObject(json): Η συνάρτηση parseObject() κα-

τανέμει τα δεδομένα από το json string σε ένα JsonObject δια της αναφο-

79