background image

52 

 

Κεφάλαιο 4 – Ανάλυση Λογισμικού  

Αφού καλύφθηκαν οι απαραίτητες  γνώσεις για το υλικό μέρος του συστήματος, στο 

παρόν κεφάλαιο επεξηγείται η ολοκλήρωση του λογισμικού. Σε τούτο το κεφάλαιο, αναλύονται 

τα  λογισμικά  που  υλοποιήθηκαν  σε  όλες  τις  επιμέρους  συσκευές,  και  η  μεταξύ  τους 

επικοινωνία. Η επιμέρους ανάλυση ξεκινάει από τα μικρότερα και απλούστερα υποσυστήματα, 

καταλήγοντας  στα  μεγαλύτερα  και  πολυπλοκότερα.  Παράλληλα,  αναγράφονται  τρόποι 

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

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

 

4.1 Λογισμικό Μικροελεγκτή 

Όπως αναφέρθηκε στην προηγούμενη ενότητα, για βασικός πυλώνας επικοινωνίας των 

εφαρμογών  με  το  όχημα  αποτελεί  ο  μικροελεγκτής  ESP32-Cam.  Βασική  προϋπόθεση 

λειτουργίας του συστήματος που υλοποιήθηκε είναι σύνδεση του με το διαδίκτυο. Για τον λόγο 

αυτό, χρησιμοποιήθηκε η βιβλιοθήκη WiFi.h που επιτρέπει στον μικροελεγκτή την σύνδεση 

στο διαδίκτυο [18]. H βιβλιοθήκη αυτή, υποστηρίζει κρυπτογράφηση WEP και WPA2 και είναι 

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

αξιοποίηση  όλων  των  λειτουργιών  της  χρησιμοποιήθηκε  η  βιβλιοθήκη  esp_camera.h.  Η 

βιβλιοθήκη αυτή περιλαμβάνει την εφαρμογή της κάμερας καθώς και ένα πλήθος λειτουργιών 

που  διαθέτει.  Στην  συνέχεια,  για  την  λειτουργία  της  ιστοσελίδας  (web  page)  καλείται  η 

βιβλιοθήκη  esp_http_server.h  [29].  Στόχος  της  βιβλιοθήκης  αυτής,  είναι  να  παρέχει  τη 

δυνατότητα εκτέλεσης διακομιστή ιστού (Web Server) και να διασφαλίζει την επικοινωνία του 

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

επικοινωνία της desktop εφαρμογής με τον μικροελεγκτή είναι η WiFiUdp.h [19]. Ο ρόλος της 

βιβλιοθήκης αυτής, είναι να αναδείξει την επικοινωνία UDP μεταξύ ενός διακομιστή και ενός 

εξωτερικού πελάτη. Αυτό επιτυγχάνεται, μέσα στην δομή loop με τον έλεγχο άφιξης πακέτου, 

και έπειτα όταν λαμβάνεται ένα έγκυρο πακέτο, ένα πακέτο αναγνώρισης αποστέλλεται πίσω 

στον πελάτη στην ίδια θύρα που έχει σταλεί. Κάθε πακέτο περιέχει ένα αλφαριθμητικό που 

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

ανάλογα  με  την  εφαρμογή  που  έχει  επιλέξει  ο  χρήστης  να  χρησιμοποιήσει.  Με  την 

κωδικοποίηση αυτή των εντολών αυξάνεται η ασφάλεια του  συστήματος  από κακόβουλους 

χρήστες που θα επιχειρήσουν να χειριστούν το όχημα.