M. Galliakis
Πτυχιακή & Διπλωματική Εργασία | 2016 - 2018

Ολοκληρωμένο Σύστημα Διαχείρισης Έξυπνων Χώρων.

Μελέτη, σχεδιασμός και ανάπτυξη ενός κατανεμημένου συστήματος για την απομακρυσμένη διαχείριση μικροελεγκτών σε πραγματικό χρόνο. Μια πλήρης υλοποίηση από τη φυσική διασύνδεση αισθητήρων, μέχρι τη δημιουργία υποδομής Cloud και τη δημοσίευση στο PCI 2018.

Smart pill dispenser prototype

Σκοπός της Έρευνας

Ο βασικός στόχος των εργασιών δεν ήταν απλά ο αυτοματισμός ενός χώρου, αλλά η δημιουργία ενός πρακτικού συστήματος χαμηλού κόστους για την αυτόνομη διαβίωση και την υποβοήθηση υπερηλίκων και ασθενών.

Κατασκευή έξυπνου μηχανισμού (Pillbox) για την υπενθύμιση λήψης φαρμάκων μέσω οπτικών και ηχητικών ενδείξεων.

Αναγνώριση κινδύνων (π.χ. πυρκαγιά, ανίχνευση κίνησης) και άμεση ειδοποίηση των οικείων προσώπων.

Απομακρυσμένος έλεγχος ηλεκτρικών συσκευών και ζωντανή παρακολούθηση της κατάστασης του χώρου.

Διεπαφές Χρήστη (User Interfaces)

Σχεδιασμός εφαρμογών για Desktop, Web και Mobile, εξασφαλίζοντας εύκολη εποπτεία από παντού.

Desktop UI Floorplan

Desktop User Client

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

Android UI Screens

Android User Client

Η φορητή έκδοση του συστήματος για κινητά. Επιτρέπει την απομακρυσμένη διαχείριση (switches, sliders) και τη ζωντανή εποπτεία της συσκευής απευθείας από το smartphone.

Emergency Notification UI

Ειδοποιήσεις (Alarms)

Όταν συμβαίνει κάποιο σημαντικό γεγονός στο σπίτι (π.χ. ανίχνευση καπνού), οι χρήστες λαμβάνουν άμεσα ειδοποιήσεις στις ηλεκτρονικές συσκευές τους, ανεξάρτητα αν κάνουν εποπτεία εκείνη τη στιγμή.

Web UI

Web Application (Angular)

Μια δυναμική ιστοσελίδα για τη διαχείριση των λογαριασμών (User/Device), την αποδοχή δικαιωμάτων προσπέλασης και τον χρονοπρογραμματισμό των υπενθυμίσεων.

Σενάρια Χρήσης

Πώς το σύστημα ανταποκρίνεται σε πραγματικές συνθήκες, ενώνοντας το Hardware με τις εφαρμογές των χρηστών.

Event recognition data flow

Σενάριο 1: Αναγνώριση Γεγονότων (Event Recognition)

Όταν ένας αισθητήρας ανιχνεύσει π.χ. φωτιά, το Arduino στέλνει σήμα στον Device Client. Το συμβάν καταγράφεται στη βάση δεδομένων μέσω του Web Service, το οποίο με τη σειρά του ειδοποιεί (alarm) άμεσα τους συνδεδεμένους χρήστες.

Reminder execution data flow

Σενάριο 2: Καταχώρηση Υπενθύμισης (Reminder)

Ο χρήστης προγραμματίζει μια υπενθύμιση φαρμάκου από την ιστοσελίδα. Το Web Service την αποθηκεύει και την προωθεί στον Device Client την καθορισμένη ώρα, ο οποίος δίνει εντολή στο Arduino να ανάψει το αντίστοιχο LED.

Αρχιτεκτονική Κατανεμημένου Συστήματος

Hardware Level

Μικροελεγκτές & Μονάδες

Φυσική διασύνδεση μονάδων (αισθητήρες, led, κουμπιά) με Arduino Uno. Χρήση ρελέ για την απομόνωση κυκλωμάτων και τον έλεγχο ηλεκτρικών συσκευών.
Communication flow
Application Level

Λογισμικά Ελέγχου (Clients)

Ανάπτυξη Desktop και Android εφαρμογών για την παρακολούθηση από τους χρήστες, καθώς και του Device Client που συντονίζει τους μικροελεγκτές του χώρου.
Distributed architecture
Core & Database

Πυρήνας Συστήματος & API

Η καρδιά του συστήματος. Περιλαμβάνει έναν Java Server για τη διαχείριση των Sockets, ένα RESTful API για τα HTTP αιτήματα και τη βάση δεδομένων (MongoDB) για την αποθήκευση των στοιχείων.
Core DB architecture

Τεχνικές Προκλήσεις & Υλοποίηση

Σημαντικά σημεία από τον σχεδιασμό του λογισμικού και του hardware.

Java Chat Simulation

Σχεδιασμός Πρωτοκόλλου Επικοινωνίας

Για την αυτοματοποιημένη επικοινωνία μεταξύ των εφαρμογών (Hardware, Clients, Server), σχεδιάστηκε από το μηδέν ένα 'πρωτόκολλο' ανταλλαγής μηνυμάτων (σε μορφή συμβολοσειρών) μέσω TCP Sockets.

Server Terminal

Διαχείριση Ταυτόχρονων Συνδέσεων

Ανάπτυξη πολυνηματικού (multi-threaded) Server σε Java. Ο εξυπηρετητής διαχειρίζεται ταυτόχρονα αιτήματα από συσκευές (Device Clients) και επόπτες (User Clients), συγχρονίζοντας την επικοινωνία τους σε πραγματικό χρόνο.

Arduino Setup

Προγραμματισμός Μικροελεγκτών

Συγγραφή κώδικα (C++) για μικροελεγκτές Arduino. Αναπτύχθηκαν ρουτίνες που φιλτράρουν τον θόρυβο των αναλογικών αισθητήρων, αποστέλλοντας δεδομένα στον υπολογιστή μόνο όταν καταγράφεται ουσιαστική μεταβολή.

Η Εξέλιξη της Εργασίας

2016

Πτυχιακή Εργασία (2016)

Η βάση του συστήματος. Αναπτύχθηκε μια Client-Server εφαρμογή σε Java που επέτρεπε τη διαχείριση συσκευών Arduino μέσω δικτύου, κάνοντας χρήση Sockets και βάσης δεδομένων MySQL.

2018

Διπλωματική Εργασία (2018)

Μετάβαση σε κατανεμημένη αρχιτεκτονική. Το σύστημα αναβαθμίστηκε με Web Services (Node.js), NoSQL βάση (MongoDB) και Web App, εκτελώντας τα επιμέρους λογισμικά σε Docker containers.

PCI

Δημοσίευση (PCI 2018)

Το αποτέλεσμα της έρευνας παρουσιάστηκε επίσημα στο 22ο Πανελλήνιο Συνέδριο Πληροφορικής (PCI) υπό τον τίτλο 'A low-cost Smart Home for the assistance of elderly persons and patients'.

Τεχνολογίες & Εργαλεία

Μικροελεγκτές

Arduino IDE, Wiring (C++), Ηλεκτρονικά Κυκλώματα (Breadboards, Relays, Sensors).

Λογισμικό & Δίκτυα

Java (Desktop & Server), Multi-threading, Sockets, Android SDK.

Web & Βάσεις Δεδομένων

Node.js (Express), AngularJS, MongoDB, MySQL, Docker, HTML/CSS.