Το διαδίκτυο των πραγμάτων (Internet of Things ή IoT) είναι ένας κλάδος που εξελίσσεται ραγδαία ειδικά τα τελευταία χρόνια. Υπάρχει η δυνατότητα ανάπτυ ξης όλο και περισσότερων εφαρμογών, χρήσιμες για πολλούς ανθρώπους, είτε έχουν να κάνουν με απλές λειτουργίες σε συστήματα αυτοματισμού, είτε με μεγαλύτε ρης κλίμακας εφαρμογές στη βιομηχανία. Επομένως, όλο και περισσότερος κόσμος επιθυμεί να ασχοληθεί με το αντικείμενο αυτό. Η διαδικασία υλοποίησης ενός IoT συστήματος περιλαμβάνει την ανάπτυξη κώ δικα για τον έλεγχο των συσκευών. Μάλιστα, στις περισσότερες περιπτώσεις η γρήγορη απόκριση είναι υψίστης σημασίας, επομένως απαιτείται η ανάπτυξη χαμη λού επιπέδου κώδικα, καθώς και η χρήση λειτουργικών συστημάτων πραγματικού χρόνου (Real Time Operating System ή RTOS). Επίσης, λόγω της μεγάλης ετερογέ νειας IoT συσκευών που υπάρχουν στην αγορά, κρίνεται αναγκαία η κατανόηση των δυνατοτήτων που η εκάστοτε συσκευή μπορεί να προσφέρει, ώστε να γίνε ται η κατάλληλη επιλογή τους, προσαρμοσμένη στις ανάγκες του συστήματος προς υλοποίηση. Οι ενέργειες αυτές είναι λογικό να φαίνονται περίπλοκες σε κάποιους χρήστες, ειδικότερα στα άτομα που είναι τεχνολογικά ακατάρτιστα, δεν έχουν δηλαδή τις απαραίτητες προγραμματιστικές γνώσεις, αλλά παρόλα αυτά επιθυμούν να κατα σκευάσουν ένα IoT σύστημα π.χ. για προσωπική τους χρήση. Αυτό έχει ως αποτέ λεσμα μεγάλη μερίδα κόσμου που θέλει να ασχοληθεί με το IoT να αποθαρρύνεται. Η μοντελοστρεφής μηχανική (Model Driven Engineering ή MDE), έρχεται να δώσει λύση στα προβλήματα που μπορεί να αντιμετωπίσουν όσοι/ες θέλουν να ασχολη θούν με το IoT, αλλά και γενικότερα να απλοποιήσει τη διαδικασία παραγωγής λογισμικού, καθώς μπορεί να παρέχει την ανάπτυξη IoT συστημάτων σε ένα πιο αφαιρετικό επίπεδο, το οποίο είναι πιο φιλικό προς τον απλό χρήστη. Μέσω της παρούσας διπλωματικής εργασίας, δίνεται η δυνατότητα σε κάποιον/α να περιγράψει, με χρήση μοντέλων, IoT συσκευές, μέσω δύο γλωσσών συγκεκριμέ νου πεδίου (Domain Specific Language ή DSL) που αναπτύχθηκαν, για την περιγραφή των συσκευών και των μεταξύ τους συνδέσεων. Από τα μοντέλα πραγματοποιεί ται ένας Model-to-Text μετασχηματισμός για την αυτόματη παραγωγή λογισμικού, για μια πληθώρα IoT συσκευών, προσαρμοσμένη στα χαρακτηριστικά που επιθυ μεί ο χρήστης να έχει. Το λογισμικό ελέγχου των IoT συσκευών που παράγεται υλοποιεί την λήψη μετρήσεων από αισθητήρες και την αποστολή τους σε κάποιον μεσολαβητή (broker), αλλά και τον έλεγχο ενεργοποιητών μέσω του broker. Επίσης αποτελείται από χαμηλού επιπέδου κώδικα, καθώς έχει σχεδιαστεί σύμφωνα με τις απαιτήσεις ενός λειτουργικού συστήματος πραγματικού χρόνου, το RIOT. Τέλος, πραγματοποιείται και ένας Model-to-Model μετασχηματισμός για την παραγωγή διαγραμμάτων τα οποία βοηθούν στην οπτικοποίηση και άρα καλύτερη αντίληψη από τον χρήστη για τη συνδεσμολογία και ενδοεπικοινωνία του συστήματός του.
Static Analysis of Python code and Identification of Potential Security Vulne...
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου και χαμηλής κατανάλωσης
1. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
6 Οκτωβρίου 2021 1
Μοντελοστρεφής ανάπτυξη λογισμικού για
IoT συσκευές πραγματικού χρόνου και
χαμηλής κατανάλωσης
Εκπόνηση
Μανώλης Αθανάσιος
ΑΕΜ: 8856
Επιβλέποντες
Αν. Καθ. Συμεωνίδης Ανδρέας
Υπ. Δρ. Παναγιώτου Κωνσταντίνος
2. Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
2
https://iot-analytics.com/state-of-the-iot-2020-12-billion-iot-connections-surpassing-non-iot-for-the-first-time/
Οκτώβριος 2021
Ενεργές συνδέσεις IoT συσκευών
ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
3. ΠΡΟΒΛΗΜΑΤΑ
ΕΤΕΡΟΓΕΝΕΙΑ
ΓΝΩΣΕΙΣ ΚΩΔΙΚΑ
ΕΛΕΓΧΟΣ ΛΑΘΩΝ
ΑΥΤΟΜΑΤΟΠΟΙΗΣΗ
Κατασκευή όλο και περισσότερων διαφορετικών IoT συσκευών
Απαιτήσεις κώδικα χαμηλού επιπέδου και πραγματικού χρόνου
Έλλειψη κάποιου είδους ελέγχου της ορθότητας
Αυξανόμενο ενδιαφέρον σε αυτοματοποίηση διαδικασιών
3
ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
Οκτώβριος 2021
4. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
4
Οκτώβριος 2021
Γλώσσα συγκεκριμένου πεδίου για μοντελοποίηση
των συσκευών
Γλώσσα συγκεκριμένου πεδίου για μοντελοποίηση
των διασυνδέσεων
Παραγωγή διαγραμμάτων οπτικοποίησης του
συστήματος
Αυτόματη παραγωγή λογισμικού για την υλοποίηση
βασικών λειτουργιών
Ανάπτυξη μηχανής λογισμικού
μοντελοστραφούς λογικής
5. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Περιγραφή μετα-μοντέλου
συσκευών
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
5
Οκτώβριος 2021
6. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
6
Οκτώβριος 2021
Περιγραφή μετα-μοντέλου
συνδέσεων
12. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
12
Οκτώβριος 2021
Μικροελεγκτής NodeMCU-32s
Αισθητήρας περιβάλλοντος
BME680
LED Neopixel Ring x12
Sonar HC-SR04
Raspberry Pi 3B+
Broker
13. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
13
Οκτώβριος 2021
Σύνδεση sonar
Σύνδεση αισθητήρα
περιβάλλοντος Σύνδεση LED
Αρχείο συνδέσεων
14. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
14
Οκτώβριος 2021
Παραγωγή διαγραμμάτων (1/4)
15. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
15
Οκτώβριος 2021
Παραγωγή διαγραμμάτων (2/4)
16. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
16
Οκτώβριος 2021
Παραγωγή διαγραμμάτων (3/4)
17. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
17
Οκτώβριος 2021
Παραγωγή διαγραμμάτων (4/4)
18. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
18
Οκτώβριος 2021
19. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
19
Οκτώβριος 2021
Υλοποίηση ενός IoT
συστήματος με αφαιρετικό
τρόπο
Δυνατότητα ενασχόλησης με
το IoT χωρίς την προϋπόθεση
τεχνολογικού υπόβαθρου
Δυνατότητα έγκαιρης
αντιμετώπισης λαθών
Καλύτερη αντίληψη του
συστήματος μέσω των
διαγραμμάτων
20. ΚΙΝΗΤΡΟ ΣΚΟΠΟΣ ΜΕΘΟΔΟΛΟΓΙΑ ΠΑΡΑΔΕΙΓΜΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ
Μοντελοστρεφής ανάπτυξη λογισμικού για IoT συσκευές πραγματικού χρόνου
και χαμηλής κατανάλωσης
20
Οκτώβριος 2021
Υποστήριξη περισσότερων
συσκευών και λειτουργικών
συστημάτων
Συγγραφή περισσότερων
πρότυπων αρχείων κώδικα
Ανάπτυξη γραφικού
περιβάλλοντος για την
περιγραφή μοντέλων