background image

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

 

29 

 

React Native MQTT 
Το  React  Native  MQTT  είναι  μια  βιβλιοθήκη  λογισμικού,  που  αξιοποιείται  για  την 
σύνδεση  της  κινητής  εφαρμογής  με  τον  MQTT  Server  και  την  αποστολή  και  λήψη 

μηνυμάτων [20] προς και από την συσκευή. 
 
React Native BLE plx 
Το React Native BLE plx είναι μια βιβλιοθήκη λογισμικού, η οποία δίνει την δυνατότητα 

σε μια εφαρμογή να ανακαλύψει συσκευές Bluetooth στον χώρο, καθώς και να διαβάσει 
ή να γράψει δεδομένα από και προς τις συσκευές αυτές [21]. 
 

 

2.2.5 Η γλώσσα προγραμματισμού C/C++ 

 

 
Η  C  είναι  μια  διαδικαστική  γλώσσα  προγραμματισμού  γενικής  χρήσης,  η  οποία 

αναπτύχθηκε από τον Ντένις Ρίτσι και εμφανίστηκε πρώτη φορά το 1972 [22]. Η γλώσσα 
C++  είναι  ένα  υπερσύνολο  της  C  με  την  βασική  τους  διαφορά  να  είναι  η 

αντικειμενοστρέφεια. Αναπτύχθηκε το 1979 από τον Μπιάρνε Στρούστρουπ, με σκοπό την 
επέκταση της C [23]. 
 

Στο  έργο  αυτό,  οι  C  και  C++  χρησιμοποιήθηκαν  για  τον  προγραμματισμό  του 

μικροεπεξεργαστή ESP-32. Για την χρήση των C και C++, ήταν αναγκαία η εγκατάσταση 
της  συλλογής  ανάπτυξης  λογισμικού  (SDK)  της  εταιρείας  ESPRESSIF

2

.  Επιπλέον, 

χρησιμοποιήθηκαν οι εξής βιβλιοθήκες ανοιχτού κώδικα: 

❖ 

WiFi  - Είναι μια προεγκατεστημένη βιβλιοθήκη, η οποία δίνει την δυνατότητα στον 
μικροεπεξεργαστή  να  συνδεθεί  σε  ένα  δίκτυο  WiFi,  να  σαρώσει  το  χώρο  για  τα 
διαθέσιμα δίκτυα WiFi, αλλά και να δημιουργήσει ένα φορητό σημείο πρόσβασης 
για συνδεθούν άλλες συσκευές. 

❖ 

BLE  –  Είναι  και  αυτή  μια  προεγκατεστημένη  βιβλιοθήκη  λογισμικού,  η  οποία 
μπορεί να συμπεριληφθεί ώστε να δώσει την δυνατότητα στον μικροεπεξεργαστή 
ESP-32  να  σαρώσει  το  χώρο  για  συσκευές  BLE  (Bluetooth  Low  Energy),  να 

δημιουργήσει ένα διακομιστή (Server) BLE ή να δημιουργήσει ένα πελάτη (Client) 
BLE.  

❖ 

Preferences – Αποτελεί προεγκατεστημένη βιβλιοθήκη κώδικα, η οποία επιτρέπει 

την μόνιμη αποθήκευση δεδομένων με την μορφή κλειδιού-τιμής (key-value). 

❖ 

HTTPClient – Είναι μια προεγκατεστημένη βιβλιοθήκη λογισμικού, που επιτρέπει 
την αποστολή αιτημάτων HTTP, είτε με την μέθοδο GET, είτε με την μέθοδο POST. 

❖ 

Arduino_JSON  –  Σε  συνδυασμό  με  την  βιβλιοθήκη  HTTPClient,  η  βιβλιοθήκη 

λογισμικού  Arduino_JSON  χρησιμοποιείται  για  την  ανάλυση  των  μηνυμάτων 
τύπου JSON που αποστέλλει ο διακομιστής. 

❖ 

SDM  –  Η  βιβλιοθήκη  SDM  αποτελεί  ένα  πακέτο  λογισμικού,  που  επιτρέπει  την 

αποστολή και λήψη μηνυμάτων με το πρωτόκολλο  Modbus. Η βιβλιοθήκη, αφού 
ρυθμιστούν κατάλληλα οι διάφορες παράμετροι της, απλοποιεί την επικοινωνία 
με συσκευές που υποστηρίζουν Modbus [24].  

 
 
 
 

 

2

 https://www.espressif.com/en/support/download/sdks-demos