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

Σκοπός της Έρευνας
Ο βασικός στόχος των εργασιών δεν ήταν απλά ο αυτοματισμός ενός χώρου, αλλά η δημιουργία ενός πρακτικού συστήματος χαμηλού κόστους για την αυτόνομη διαβίωση και την υποβοήθηση υπερηλίκων και ασθενών.
Κατασκευή έξυπνου μηχανισμού (Pillbox) για την υπενθύμιση λήψης φαρμάκων μέσω οπτικών και ηχητικών ενδείξεων.
Αναγνώριση κινδύνων (π.χ. πυρκαγιά, ανίχνευση κίνησης) και άμεση ειδοποίηση των οικείων προσώπων.
Απομακρυσμένος έλεγχος ηλεκτρικών συσκευών και ζωντανή παρακολούθηση της κατάστασης του χώρου.
Hardware & Κατασκευές
Από τον σχεδιασμό των κυκλωμάτων σε breadboards μέχρι την τελική φυσική υλοποίηση των έξυπνων μηχανισμών.

Μικρογραφία Έξυπνου Σπιτιού

Μικροελεγκτής & Bluetooth

Διαχείριση Κυκλωμάτων (Ρελέ)

Εσωτερικά Κυκλώματα (Pillbox)

Λειτουργία Υπενθύμισης (Pillbox)

Κατασκευή Έξυπνης θήκης χαπιών

Έξυπνη θήκη χαπιών (Ανοιχτή)

Επικοινωνία (Dual Clients)

Μονάδα Ανίχνευσης Φωτιάς

Αισθητήρας Κίνησης (PIR)

Φωτοαισθητήρας (LDR)

Αισθητήρας Απόστασης (Sonar)

Αισθητήρας Υγρασίας & Θερμοκρασίας

Δοκιμή Ανίχνευσης Φλόγας

Αναλογικό Θερμόμετρο

Μονάδα Ρελέ 8 Καναλιών

Ψηφιακός Διακόπτης (Button)

Αισθητήρας Ήχου (Μικρόφωνο)
Διεπαφές Χρήστη (User Interfaces)
Σχεδιασμός εφαρμογών για Desktop, Web και Mobile, εξασφαλίζοντας εύκολη εποπτεία από παντού.

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

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

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

Web Application (Angular)
Μια δυναμική ιστοσελίδα για τη διαχείριση των λογαριασμών (User/Device), την αποδοχή δικαιωμάτων προσπέλασης και τον χρονοπρογραμματισμό των υπενθυμίσεων.
Σενάρια Χρήσης
Πώς το σύστημα ανταποκρίνεται σε πραγματικές συνθήκες, ενώνοντας το Hardware με τις εφαρμογές των χρηστών.

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

Σενάριο 2: Καταχώρηση Υπενθύμισης (Reminder)
Ο χρήστης προγραμματίζει μια υπενθύμιση φαρμάκου από την ιστοσελίδα. Το Web Service την αποθηκεύει και την προωθεί στον Device Client την καθορισμένη ώρα, ο οποίος δίνει εντολή στο Arduino να ανάψει το αντίστοιχο LED.
Αρχιτεκτονική Κατανεμημένου Συστήματος
Μικροελεγκτές & Μονάδες

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

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

Τεχνικές Προκλήσεις & Υλοποίηση
Σημαντικά σημεία από τον σχεδιασμό του λογισμικού και του hardware.

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

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

Προγραμματισμός Μικροελεγκτών
Συγγραφή κώδικα (C++) για μικροελεγκτές Arduino. Αναπτύχθηκαν ρουτίνες που φιλτράρουν τον θόρυβο των αναλογικών αισθητήρων, αποστέλλοντας δεδομένα στον υπολογιστή μόνο όταν καταγράφεται ουσιαστική μεταβολή.
Η Εξέλιξη της Εργασίας
Πτυχιακή Εργασία (2016)
Η βάση του συστήματος. Αναπτύχθηκε μια Client-Server εφαρμογή σε Java που επέτρεπε τη διαχείριση συσκευών Arduino μέσω δικτύου, κάνοντας χρήση Sockets και βάσης δεδομένων MySQL.
Διπλωματική Εργασία (2018)
Μετάβαση σε κατανεμημένη αρχιτεκτονική. Το σύστημα αναβαθμίστηκε με Web Services (Node.js), NoSQL βάση (MongoDB) και Web App, εκτελώντας τα επιμέρους λογισμικά σε Docker containers.
Δημοσίευση (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.