1. Περίληψη, Συνοπτική Περιγραφή.
Σχεδιάσαμε, κατασκευάσαμε και προγραμματίσαμε μία φορητή συσκευή καρπού με μορφή ρολογιού χειρός, με δυνατότητα αυτόματης ανίχνευσης επικίνδυνων καταστάσεων, όπως καρδιακά επεισόδια, πτώσεις ή χαμηλά επίπεδα οξυγόνου, μέσω εξελιγμένων αισθητήρων παρακολούθησης ζωτικών λειτουργιών. Σε περίπτωση ανίχνευσης κινδύνου, ο χρήστης της συσκευής λαμβάνει ειδοποίηση 15 δευτερολέπτων για ακύρωση, διαφορετικά ενεργοποιείται αυτόματη η αποστολή ειδοποίησης (αποστολή SMS) και η τηλεφωνική κλήση βοήθειας σε προεπιλεγμένους αριθμούς μέσω του συνδεδεμένου (με bluetooth) κινητού τηλεφώνου του χρήστη. Η συσκευή διαθέτει OLED οθόνη για άμεση εμφάνιση δεδομένων και πληροφοριών, προσφέροντας αίσθημα ασφάλειας σε ηλικιωμένους, άτομα με χρόνιες παθήσεις, εργαζόμενους σε επικίνδυνα περιβάλλοντα, αθλητές, κ.α.
2. Εισαγωγή, Αφορμή για την επιλογή του θέματος.
Όλοι έχουμε αγαπημένα πρόσωπα τα οποία είτε ανήκουν σε ομάδες υψηλού κινδύνου (πχ ηλικιωμένοι που ζουν μόνοι τους, άτομα με χρόνιες παθήσεις, άτομα με αναπηρίες ή κινητικές δυσκολίες, κλπ) είτε όχι (πχ εργαζόμενοι σε επικίνδυνες εργασίες, αθλητές που αθλούνται μόνοι τους σε απομακρυσμένες περιοχές, μικρά παιδιά, κλπ) θέλουμε να έχουν τη δυνατότητα να καλέσουν σε βοήθεια σε περίπτωση που βρεθούν σε κατάσταση κινδύνου.
Αυτή τη στιγμή η βασική λύση ειδοποίησης και κλήσης σε βοήθεια σε περίπτωση (έκτακτου) κινδύνου / ανάγκης είναι το κινητό μας τηλέφωνο, το οποίο όμως δεν είναι ιδιαίτερα εύχρηστο και αποτελεσματικό γιατί σε περίπτωση ατυχήματος (π.χ. πτώσης ηλικιωμένου ατόμου) θα πρέπει να βγει από την τσάντα ή την τσέπη μας, να “ξεκλειδωθεί”, να γίνει αναζήτηση στον τηλεφωνικό κατάλογο και στη συνέχεια να γίνει κλήση για ενημέρωση και βοήθεια. Μάλιστα οι παραπάνω ενέργειες θα πρέπει να γίνουν κάτω από πολύ δύσκολες συνθήκες.
Αποφασίσαμε λοιπόν να σχεδιάσουμε και να υλοποιήσουμε μία συσκευή εύκολης ειδοποίησης και κλήσης σε βοήθεια σε περίπτωση ανάγκης η οποία θα είναι ιδιαίτερα χρήσιμη για:
- Ηλικιωμένους που ζουν μόνοι τους.
- Άτομα με προβλήματα υγείας.
- Εργαζόμενους σε επικίνδυνα επαγγέλματα.
- Γυναίκες που κινδυνεύουν από κακοποίηση
- Νέους που μπορεί να βρεθούν σε καταστάσεις εκφοβισμού ή επίθεσης
- Αθλητές που προπονούνται μόνοι τους και
- γενικότερα για οποιονδήποτε μπορεί να βρεθεί σε κατάσταση κινδύνου / έκτακτης ανάγκης.
3. Αναλυτική περιγραφή της ιδέας μας
Η συσκευή που σχεδιάσαμε, συναρμολογήσαμε και προγραμματίσαμε βασίζεται σε τεχνολογίες ανοιχτής αρχιτεκτονικής, είναι χαμηλού κόστους, μικρού μεγέθους και μπορεί να εύκολα να ειδοποιήσει / ζητήσει βοήθεια σε περίπτωση ανάγκης, είτε πλήρως αυτοματοποιημένα (χωρίς την παρέμβαση του χρήστη) είτε ημι-αυτοματόματα (με το πάτημα ενός κουμπιού από τον χρήστη).
Για την υλοποίηση της παραπάνω συσκευής συν-εργαστήκαμε τέσσερις μαθητές και τέσσερις μαθήτριες της Γ’ τάξης του Γυμνασίου του σχολείου μας.
Αρχικά αναζητήσαμε διαθέσιμες τεχνολογίες για να κατασκευάσουμε τη συσκευή μας και καταλήξαμε σε δύο διαφορετικές πλατφόρμες ανοικτής αρχιτεκτονικής που θα μπορούσαν να αξιοποιηθούν:
- το μικροελεγκτή BBC microbit και
- την οικογένεια μικροελεγκτών ESP.
Για λόγους πειραματισμού και γνωριμίας και με τις δύο παραπάνω πλατφόρμες αποφασίσαμε να δουλέψουμε παράλληλα σε δύο διαφορετικές αλλά συνεργαζόμενες ομάδες και να υλοποιήσουμε δύο διαφορετικές λύσεις, μία με τον μικροελεγκτή BBC microbit και μία με τον μικροελεγκτή ESP.
Η δική μας η ομάδα με όνομα HealthGuard Experimenters που αποτελείται από 4 αγόρια της Γ Γυμνασίου (Αβραμίδης Θωμάς, Καράτσης Αθανάσιος, Κουτρουμπάκης Δημήτριος, Φλωρεντίν Ιωσήφ) αποφασίσαμε να αξιοποίήσουμε
- τον μικροελεγκτή ESP32-C3 single-core Wi-Fi and Bluetooth 5 (LE), βασισμένο σε ανοιχτή αρχιτεκτονική RISC-V
για να δημιουργήσουμε μία φορητή συσκευή καρπού η οποία εκτός από τη δυνατότητα ανίχνευσης πτώσεων θα μπορεί να ανιχνεύει αυτόματα πιθανά καρδιακά επεισόδια και χαμηλά επίπεδα οξυγόνου στο αίμα μέσω εξελιγμένων αισθητήρων ζωτικών λειτουργιών.
Για τον σκοπό αυτό στον μικροελεγκτή ESP32-C3 συνδέσαμε
- ένα επιταχυνσιόμετρο & γυροσκόπιο (Triple Axis Gyroscope & Accelerometer IMU – MPU6050) για παρακολούθηση κίνησης
- εναν αισθητήρα (DFRobot Heart Rate & Oximeter Sensor V2.0 – MAX30102) για παρακολούθηση καρδιακού ρυθμού και επιπέδων οξυγόνου στο αίμα
- ένα Real Time Clock – RTC DS3231 για ακριβή μέτρηση χρόνου.
- έναν αισθητήρα θερμοκρασίας, υγασίας και πίεσης BME280
- μία οθόνη OLED Display 1.3″ 128×64 – I2C
- μία μπαταρία (Polymer Lithium Ion Battery – 3.7v 600mAh)
- ένα κουμπί ενεργοποίησης (ημι-αυτόματη λειτουργία)
Η παραπάνω κατασκευή ενσωματώθηκε / τοποθετήθηκε σε θήκη που σχεδιάστηκε στο λογισμικό TinkerCad (https://www.tinkercad.com/) και εκτυπώθηκε στον 3D εκτυπωτή του σχολείου μας.
Αποφασίσαμε να ονομάσουμε τη συσκευή μας Help_Mate.
Η συσκευή Help_Mate έχει τη δυνατότητα να στέλνει είτε πλήρως αυτοματοποιημένα είτε ημί-αυτόματα (με το πάτημα του κουμπιού) ειδοποίηση για βοήθεια.
Ειδικότερα σε περίπτωση ανίχνευσης μίας εκ των τριών παρακάτω επικίνδυνων καταστάσεων
- ανίχνευση πτώσης (το επιταχυνσιόμετρο ανιχνεύει έντονο κραδασμό)
- ανίχνευση χαμηλών καρδιακών παλμών (ο αισθητήρας εντοπίζει καρδιακούς παλμούς κάτω του καθορισμένου ορίου)
- ανίχνευση χαμηλών επιπέδων οξυγόνου στο αίμα (ο αισθητήρας εντοπίζει επίπεδα οξυγόνου κάτω του καθορισμένου ορίου)
ο χρήστης της Help_Mate αρχικά λαμβάνει ηχητική ειδοποίηση διάρκειας 15 δευτερολέπτων κατά τη διάρκεια της οποίας έχει τη δυνατότητα (πατώντας το κουμπί της συσκευής) να ακυρώσει την κλήση σε βοήθεια. Σε περίπτωση ακύρωσης η συσκευή Help_Mate επανέρχεται στην κατάσταση ανίχνευσης. Αν ο χρήστης δεν ακυρώσει την κατάσταση κινδύνου τότε η συσκευή
- στέλνει σε προκαθορισμένο αριθμό κατάλληλο μήνυμα βοήθειας (SMS) με το γεωγραφικό στίγμα της συσκευής
- καλεί προκαθορισμένο αριθμό (τηλεφωνική κλήση) σε ανοιχτή ακρόαση
Οι παραπάνω ενέργειες πραγματοποιούνται μέσω του συνδεδεμένου κινητού τηλεφώνου του χρήστη με τη συσκευή Help_Mate, ενώ υπάρχει δυνατότητα παρακολούθησης των ενέργειών από την οθόνη OLED της συσκευής.
Εκτός από την παραπάνω πλήρως αυτοματοποιημένη λειτουργία της Help_Mate, υπάρχει η δυνατότητα χειροκίνητης αποστολής αιτήματος για βοήθεια, με το παρατεταμένο πάτημα του κουμπιού της συσκευής.
Οι παραπάνω ενέργειες ελέγχονται και υλοποιούνται από δύο διαφορετικές αλλά συνεργαζόμενες μεταξύ τους εφαρμογές που είναι εγκατεστημένες
- στον μικροελεγκτή ESP32-C3 και έχει δημιουργηθεί στο περιβάλλον προγραμματισμού Arduino IDE (https://www.arduino.cc/en/software/)
- στο κινητό τηλέφωνο του χρήση και έχει δημιουργηθεί στο περιβάλλον προγραμματισμού MIT App Inventor (https://appinventor.mit.edu/).

Το κόστος της συσκευής Help_Mate δεν ξεπέρασε τα 50 ευρώ στο οποίο συμπεριλαμβάνεται το κόστος του μικροελεγκτή ESP32-C3, του επιταχυνσιόμετρου / γυροσκοπίου, του αισθητήρα παρακολούθησης καρδιακού ρυθμού και επιπέδων οξυγόνου στο αίμα, της οθόνης, του κουμπιού, καθώς και το κόστος των αναλώσιμων της εκτύπωσης.
4. Στάδια υλοποίησης της εργασίας μας και δυσκολίες που αντιμετωπίσαμε
Η κατασκευή / υλοποίηση του Help_Mate περιελέμβανε στα εξής τέσσερα στάδια:
- Συναρμολόγηση του Help_Mate και προγραμματισμός του μικροελεγκτή ESP
- Δημιουργία της εφαρμογής για την πλευρά του κινητού τηλεφώνου του χρήστη
- Σχεδίαση και εκτύπωση της θήκης πάνω στην οποία θα τοποθετηθεί το Help_Mate και του σχετικού προσαρμογέα (λουράκι) για τον καρπό του χρήστη
- Τεκμηρίωση των παραπάνω ενεργειών
4.1 Συναρμολόγηση και προγραμματισμός του Help_Mate
Συναρμολόγηση
Παραλάβαμε την παραγγελία μας 🙂
Δημιουργήσαμε το πρώτο κύκλωμα της συσκευής μας σε BreadBoard
Αφού βεβαιωθήκαμε ότι το κύκλωμα μας λειτουργούσε σωστά αποφασίσαμ να σχεδιάσουμε και να παραγγείλουμε πλακέτα PCB (printed circuit board).
Τοποθετήσαμε τα εξαρτήματα της κατασκευής μας πάνω στο PCB Board
Προσθέσαμε ένα expansion bοard/prototype board στο οποίο συνδέσαμε κάποιους επιπλέον αισθητήρες (BME680 και RTC Clock) καθώς και τον αρχικό max30102 και την μπαταρία.
Αντιμετωπίσαμε προβλήματα με το BLE και με το Button, οπότε αφαιρέσαμε το Push Button και προσθέσαμε ένα Bluetooth Module (HC-05).
Προγραμματισμός
Επικοινωνία με Περιφερειακά
- Η επικοινωνία με την οθόνη, RTC, BME680 και MPU6050 γίνεται μέσω I2C (SDA=GPIO8, SCL=GPIO9).
- BLE χαρακτηριστικά υλοποιούνται μέσω της βιβλιοθήκης BLEDevice.h, προσφέροντας ασύρματη μετάδοση ειδοποιήσεων.
Αρχικοποίηση (setup)
- Ορίζεται BLE server με όνομα Helpmate.
- Δημιουργείται BLE υπηρεσία (UUID 180D) και χαρακτηριστικό (UUID 2A37) για την αποστολή ειδοποιήσεων πτώσης.
- Γίνεται αρχικοποίηση και διαμόρφωση αισθητήρων:
- BME680 για λήψη θερμοκρασίας.
- RTC για χρονικές πληροφορίες.
- MPU6050 με DLPF και βαθμονόμηση αισθητήρων.
Κεντρικός βρόχος επανάληψης (Main Loop)
- Ανανεώνονται
- Η ώρα και ημερομηνία.
- Η θερμοκρασία μέσω BME680.
- Καλείται η συνάρτηση checkFallDetection() για ανίχνευση πιθανής πτώσης.
- Καλείται η drawDisplay() για την ενημέρωση της OLED οθόνης.
Ανίχνευση Πτώσης
- Η συνάρτηση checkFallDetection() διαβάζει τιμές από το MPU6050 και υπολογίζει τη συνολική επιτάχυνση.
- Αν η επιτάχυνση πέσει κάτω από το όριο (9000), θεωρείται πτώση:
- Ενεργοποιείται αντίστροφη μέτρηση 5 δευτερολέπτων.
- Αποστέλλεται ειδοποίηση μέσω BLE.
- Μετά από 5 δευτερόλεπτα χωρίς νέα πτώση, η ειδοποίηση επανέρχεται σε “No Fall”.
Απεικόνιση στην Οθόνη
- Ώρα (μεγάλους χαρακτήρες), ημερομηνία, θερμοκρασία, και αριθμός βημάτων.
Εμφάνιση εικονιδίων:
- Καιρού, βημάτων, κάμερας, και προειδοποίησης (ή κόκκινο alert σε περίπτωση πτώσης).
Δομικά στοιχεία γραφικών για οργάνωση περιεχομένου (γραμμές και διαχωριστικά).
- Ασφάλεια BLE
- Υποστηρίζεται εικονική επαλήθευση κωδικού (PIN 123456).
- Η τάση είναι σε mode χωρίς σύζευξη (No Bond), με κρυπτογράφηση κλειδιού.
Δυσκολίες που αντιμετωπίσαμε στη συναρμολόγηση / προγραμματισμό
Κατά την ανάπτυξη του κώδικα και τη σύνδεση των module, προέκυψαν αρκετές τεχνικές δυσκολίες, τις οποίες αντιμετωπίσαμε μετά από δοκιμές και έρευνα:
1. Βιβλιοθήκες για το MPU6050
Αρχικά αντιμετωπίσαμε πρόβλημα με τη βιβλιοθήκη που χρησιμοποιούσαμε για τον αισθητήρα MPU6050. Η αρχική βιβλιοθήκη που δοκιμάσαμε ήταν: https://github.com/tockn/MPU6050_tockn. Ωστόσο, η βιβλιοθήκη αυτή δεν παρείχε ικανοποιητική ακρίβεια ή σταθερότητα στις μετρήσεις. Τελικά επιλέξαμε τη βιβλιοθήκη: https://github.com/ElectronicCats/mpu6050 που μας έδωσε σταθερές μετρήσεις και υποστήριζε τη βαθμονόμηση.
2. Σύγκρουση Διευθύνσεων I2C (RTC & MPU6050)
Τόσο ο αισθητήρας επιτάχυνσης MPU6050 όσο και το ρολόι DS3231 λειτουργούν μέσω του πρωτοκόλλου I2C και από προεπιλογή έχουν την ίδια διεύθυνση (0x68). Αυτό προκαλούσε πρόβλημα, καθώς δεν μπορούσαν να λειτουργούν ταυτόχρονα στο ίδιο bus. Για να αντιμετωπίσουμε το πρόβλημα αυτό συνδέσαμε το pin AD0 του MPU6050 στο VCC, ώστε να αλλάξει η I2C διεύθυνσή του από 0x68 σε 0x69. Έτσι, οι δύο συσκευές λειτουργούν ταυτόχρονα χωρίς σύγκρουση.
3. Αισθητήρας MAX30102 (παλμικό οξύμετρο)
Παρόλο που συνδέσαμε σωστά τον αισθητήρα MAX30102, δεν καταφέραμε να τον λειτουργήσουμε καθώς: Δεν βρέθηκε μια σταθερή και λειτουργική βιβλιοθήκη που να συνεργάζεται σωστά με τον ESP32-C3 Mini.
Δοκιμάσαμε διάφορες βιβλιοθήκες, χωρίς επιτυχία. Ωστόσο, τρέχοντας I2C scanner επιβεβαιώσαμε ότι ο αισθητήρας αναγνωρίζεται από τον μικροελεγκτή, οπότε η συνδεσμολογία είναι σωστή. Το πρόβλημα φαίνεται να είναι καθαρά θέμα λογισμικού/υποστήριξης. Λόγω του παπαραπάνω προβλήματος επιλέξαμε να αφαιρέσουμε τον αισθητήρα από τη συσκευή μας.
Ένα ακόμη πρόβλημα παρουσιάστηκε με το push button στο PCB, το οποίο για κάποιο λόγο προκαλούσε βραχυκύκλωμα στο κύκλωμα. Γι’ αυτό, αποφασίσαμε να το αφαιρέσουμε. Επιπλέον, είχαμε προβλήματα και με τη λειτουργία του Bluetooth, οπότε προσθέσαμε ένα BLE module, το οποίο στο τέλος δούλεψε κανονικά.
Τα προβλήματα που συναντήσαμε μπορεί να μας προκάλεσαν δυσκολίες. ήταν όμως αφορμή για να αναζητήσουμε και να βρόυμε λύσεις, να δοκιμάσουμε εναλλακτικές και τελικά να αποκτήσουμε νέες γνώσεις.
4.2 Δημιουργία της εφαρμογής για την πλευρά του κινητού τηλεφώνου του χρήστη
Η εφαρμογή που δημιουργήσαμε στην πλευρά του κινητού
- συνδέεται μέσω bluetooth με το Help_Mate και περιμένει…
- σε περίπτωση που δεχτεί αίτημα βοήθειας από το Help_Mate (μέσω του BlueTooth)
- στέλνει σχετικό μήνυμα (SMS) βοήθειας
- και καλεί σε ανοιχτή ακρόαση προκαθορισμένο τηλεφωνικό αριθμό
4.3 Σχεδίαση της θήκης πάνω στην οποία θα τοποθετηθεί το Help_Mate και του σχετικού προσαρμογέα για τον καρπό του χρήστη
Για την στήριξη του Help_Mate και την προσαρμογή του στο χέρι του χρήστη σχεδιάσαμε μία θηκη και ένα προσαρμογέα καρπού (λουράκι) με το λογισμικό TinkerCad (http://tinkercad.com/)
5. Τελικά Παραδοτέα
Μετά την ολοκλήρωση της εργασίας μας έχουμε δημιουργήσει
- μία φορετή συσκευή καρπού χειρός, με δυνατότητα αυτόματης ανίχνευσης επικίνδυνων για την ζωή καταστάσεων (πτώση, υψηλή πίεση, χαμηλό οξυγόνο, κλπ) και άμεσης ειδοποίησης / αποστολής αιτήματος για βοήθεια σε συνεργασία με το κινητό τηλέφωνο του χρήστη, είτε πλήρως αυτοματοποιημένα, είτε χειροκίνητα (πάτημα κουμπιού από τον χρήστη)
- δύο εφαρμογές ανοιχτού κώδικα διαθέσιμος στο αποθετήριο GitHub του έργου
- μία εφαρμογή εγκατεστημένη στην πλευρά του ελεγκτή ESP32
- μία εφαρμογή εγκατεστημένη στην πλευρά του κινητού τηλεφώνου του χρήστη
- 3d σχέδια έτοιμα προς εκτύπωση όλων των θηκών διαθέσιμο στο αποθετήριο GitHub του έργου
- εργασία με τίτλο “Κλικ βοήθειας: Δημιουργώντας φορητές συσκευές άμεσης κλήσης για βοήθεια με Τεχνολογίες Ανοιχτής Αρχιτεκτονικής” που παρουσιάστηκε στο 17ο Μαθητικό Συνέδριο Πληροφορικής Κεντρικής Μακεδονίας
- Το κείμενο της εργασίας / εισήγησης είναι διαθέσιμο ΕΔΩ και η σχετική παρουσίαση είναι διαθέσιμη ΕΔΩ
- ακολουθεί και το σχετικό βίντεο της εισήγησης μας στο μαθητικό συνέδριο
Φωτογραφικό υλικό από τον πρόγραμμα μας είναι διαθέσιμο στο φωτογραφικό Album που ακολουθεί

6. Δράσεις Διάχυσης
Η εργασία μας παρουσιάστηκε
- στο 17ο Μαθητικό Συνέδριο Πληροφορικής Κεντρικής Μακεδονίας
- στην ημέρα παρουσίασης / διάχυσης των δράσεων του σχολείου μας (Ανοιχτή Ημέρα του Πειραματικού Σχολείου του Πανεπιστημίου Θεσσαλονίκης)
- στην ιστοσελίδα του του 7ου Πανελλήνιου διαγωνισμού Ανοιχτών Τεχνολογιών
- στην ιστοσελίδα του σχολείου μας
7. Βιβλιογραφικές Αναφορές και Πηγές
Espressif https://www.espressif.com/en/products/socs/esp32
MIT AppInventor https://appinventor.mit.edu/
Κλικ Ζωής https://clickzois.gr/
AutoDesk Tinkercad https://www.tinkercad.com/
Πανελλήνιος Διαγωνισιμός Ανοιχτών Τεχνολογιών https://openedtech.ellak.gr/