Σ’ αυτό το άρθρο θα παρουσιάσουμε τι έχουμε υλοποιήσει από το συγκεκριμένο Project. Πιστεύουμε ότι έχουμε επιτύχει τους στόχους μας κατά ένα ποσοστό 90-95%. Το μόνο μας εμπόδιο ήταν η πίεση του χρόνου. Αν και υπήρχαν πολλές δυσκολίες, μάθαμε πάρα πολλά πράγματα κατά την ενασχόλησή μας με αυτό το έργο. Για αναλυτική παρουσίαση των βημάτων με φωτογραφίες και video έχουμε δημιουργήσει έναν ιστότοπο στο github web pages ο οποίος θα ανανεώνεται συνεχώς. Επίσης το αποθετήριο με όλο το υλικό του έργου βρίσκεται εδώ.
Ας ξεκινήσουμε με το video της παρουσίασης το οποίο έγινε αρκετά βιαστικά διότι έπρεπε να κλείσουμε για τις διακοπές του Πάσχα.
[youtube https://www.youtube.com/watch?v=EgXMZQicLHs]
Τι ακριβώς κατασκευάσαμε;
Η ομάδα κατασκεύασε μια μακέτα σπιτιού με γκαράζ όπου θα φαίνονται όλες οι ηλεκτρικές συσκευές – εξαρτήματα των οποίων είναι δυνατός ο τηλεχειρισμός. Μερικές από αυτές τις συσκευές είναι:
- Φωτισμός
- Ρευματοδότες (Πρίζες)
- Ηλιακός θερμοσίφωνας και εποπτεία θερμοκρασίας νερού
- Θερμόμετρα χώρου
- Μετρητής υγρασίας χώρου
- Έλεγχος σκίασης μπαλκονιού
- Θέρμανση χώρου
- Έλεγχος θυρών-παραθύρων (ανοικτό-κλειστό)
- Συναγερμός
- Μέτρηση της καταναλισκόμενης ενέργειας *
- Φωνητικές εντολές μέσα από τα δωμάτια χωρίς την χρήση κινητού ή tablet **
- Φωτοβολταϊκά πάνελ
(*) Δεν έχει ακόμη υλοποιηθεί
(**) Δεν είναι πλήρως λειτουργικό
Χρήσεις του έργου
Το έργο μπορεί να χρησιμοποιηθεί ως εποπτικό μέσο για την διδασκαλία των τεχνολογιών IOT σε μαθητές πληροφορικής, ηλεκτρονικής και ηλεκτρολογίας, αλλά και σε πραγματικά σπίτια.
Η ομάδα μας Ursa Robotics
Είμαστε επτά μαθητές των τομέων Πληροφορικής και Ηλεκτρολογίας – Ηλεκτρονικής του 1ου ΕΠΑ.Λ. Πρέβεζας.
Μαθητές Τομέα Πληροφορικής
- Κακιούζης Θεόδωρος Γ’ – Προγραμματισμός Raspberry, Node MCU
- Κορδατζής Θάνος Γ’ – Σχεδιασμός μακέτας, Προγραμματισμός Arduino
- Βασιλειάδης Θωμάς Γ’ – Προγραμματισμός λειτουργιών στο Node Red, Παρουσίαση
- Νούρτσε Νίκος Β’ – Ηλεκτρονική κατασκευή
- Πάσχος Αλέξανδρος Β’ – Ηλεκτρονική κατασκευή
- Γιαούπι Στέλιος Β’ – Παρουσίαση, Ηλεκτρολογική κατασκευή
Μαθητές Τομέα Ηλεκτρολογίας-Ηλεκτρονικής
- Νάτσος Δημήτρης Β’ – Κατασκευή μακέτας, Καλωδίωση, Σύνδεση συσκευών
Οι υπεύθυνοι καθηγητές είναι:
- Σταύρος Φώτογλου – Καθηγητής Πληροφορικής
- Γιώργος Κοτζαμουράτογλου – Καθηγητής Ηλεκτρολογίας
Περιγραφή του έργου
Το κέντρο ελέγχου
Το κέντρο ελέγχου αποτελείται από δύο μέρη:
- Ένα Raspberry Pi 3 στο οποίο έχουμε εγκαταστήσει το Raspbian μαζί με τα εργαλεία προγραμματισμού και τις υπηρεσίες που πρέπει να εκτελούνται ώστε να λειτουργήσει όλο το σύστημα. Τα σχέδια, ο προγραμματισμός και η λειτουργία μπορεί εξολοκλήρου να γίνει μέσα από το Raspberry ή εναλλακτικά από ένα PC με Linux ή και Windows. Τα εργαλεία που εμείς χρησιμοποιήσαμε ήταν τα ακόλουθα:
- IDE Geany όπου γράψαμε τον κώδικα σε micropython και πραγματοποιήθηκε ο κύκλος ανάπτυξης για το Node MCU. Εναλλακτικά σε συστήματα με windows χρησιμοποιήσαμε το EsPy.
- Arduino IDE όπου γράψαμε τον κώδικα για το Arduino Nano.
- Python 3.x για τον προγραμματισμό TTS και αναγνώρισης ομιλίας.
- Putty για επικοινωνία με το Node MCU μόνο κατά τον έλεγχο και το Debugging.
- Το KiCad στο οποίο έγιναν τα ηλεκτρονικά σχέδια και μελλοντικά οι PCBs.
- Το Dia για τα διαγράμματα.
- Το Libre Office για το γράψιμο των κειμένων και της παρουσίασης.
Οι υπηρεσίες που εγκαταστήσαμε είναι:
- Mosquitto mqtt broker
- Node-Red (Είναι εγκατεστημένο στο Raspbian) ή εναλλακτικά το OpenHab.
- Open SSH (Είναι εγκατεστημένο στο Raspbian) για χειρισμό μέσω τερματικού από άλλο υπολογιστή ή σε περίπτωση που θέλουμε να ελέγχουμε το σύστημά μας από το διαδίκτυο με Reverse SSH και tunneling. Απαιτείται χρήση υπηρεσίας FreeDNS και άνοιγμα θυρών στον router (π.χ. 22).
- VNC server π.χ. Real VNC ή Tight VNC για απομακρυσμένη πρόσβαση σε επιφάνεια εργασίας. Κατά την λειτουργία του συστήματος δεν είναι απαραίτητο το γραφικό περιβάλλον.
- Μια χειροποίητη πλακέτα που εμείς την ονομάζουμε ελεγκτή (controller), η οποία βασικά πάνω έχει τα εξής:
- Ένα module μικροελεγκτή 32bit Node MCU με το ESP-8266 που είναι ο “εγκέφαλος” της συγκεκριμένης πλακέτας, κάτω από τις οδηγίες του Raspberry και του Node-Red. Στον μικροελεγκτή εγκαταστήσαμε την micropython η οποία έχει πολλές δυνατότητες. Το συγκεκριμένο module συνδέεται μέσω WiFi με το Raspberry και λειτουργεί ως mqqt client.
- Ένα Arduino Nano. Επειδή το Node MCU έχει περιορισμένο αριθμών ακίδων εισόδου – εξόδου και λειτουργεί σε λογικά επίπεδα 0 – 3,3V, αποφασίσαμε να βάλουμε το Arduino το οποίο λειτουργεί σαν ένας “χαζός” port expander. Στην πραγματικότητα για κάθε arduino που βάζουμε πάνω στην πλακέτα έχουμε 20 επιπλέον ακίδες εισόδου – εξόδου. Αναφέραμε “Χαζός”, γιατί για τον τύπο και την λειτουργία του κάθε pin αποφασίζει το Node MCU. Δηλαδή αν είναι είσοδος, έξοδος, αναλογική, ψηφιακή, servo κλπ.
- Διάφορα άλλα βοηθητικά εξαρτήματα όπως Transistors, Relays, ενδεικτικά LEDs, Δίοδοι, Φωτοαντιστάσεις, Αισθητήρας BME280, Πυκνωτές, Αντιστάτες.
Μεγαλύτερη ανάλυση για την λειτουργία του ελεγκτή θα βρείτε στον ιστότοπο του έργου.
Οι συσκευές της μακέτας
Πάνω στην πλακέτα του ελεγκτή υπάρχουν κλέμες (συνδετήρες) όπου βιδώνονται τα καλώδια των συσκευών που βρίσκονται πάνω στη μακέτα. Αυτές είναι:
- Δύο (2) ψηφιακά θερμόμετρα DS18B20 διαύλου 1-wire
- Τρία (3) Led λευκά με έλεγχο έντασης (dimmer) για φωτισμό.
- Ένας (1) αντιστάτης για προσομοίωση θέρμανσης νερού θερμοσίφωνα.
- Δύο (2) φωτοαντιστάσεις για μέτρηση έντασης ηλικού φωτός του αυτόματου συστήματος σκίασης και του αυτόματου φωτισμού κήπου.
- Δύο (2) μαγνητικές παγίδες για έλεγχο των θυρών και συναγερμό.
- Δύο (2) κόκκινα Led για ένδειξη λειτουργίας ρευματοδοτών (πρίζες).
- Ένα (1) φωτοβολταϊκό πάνελ.
- Δύο (2) κινητήρες micro servo για κίνηση του συστήματος σκίασης και γκαραζόπορτας.
- Ένα (1) Button κουδουνιού.
- Ένα (1) επιπλέον button γενικής χρήση για πραγματοποίηση ασκήσεων.
- Ένα (1) buzzer το οποίο το χρησιμοποιούμε ως σειρήνα για τον συναγερμό.
- Μικρόφωνο με κάρτα ήχου USB για το Raspberry ή USB Web Camera για αναγνώριση ομιλίας.
- Ηχεία για το Raspberry απ’ τα οποία ακούγεται η ομιλία Text To Speech (T.T.S.), ήχοι ή μουσική.
Δυνατότητες επέκτασης
Στη φάση που βρίσκεται σήμερα το έργο, έχουμε διαθέσιμα 3 pins του Arduino και 5 (4 ψηφιακά + 1 αναλογική είσοδο ADC) στο Node MCU. Δηλαδή μπορούμε να προσθέσουμε ακόμη 7 συσκευές ψηφιακού ελέγχου (διακόπτες, φώτα) και 1 αναλογική είσοδο π.χ. μέτρηση καταναλισκόμενης ενέργειας.
Σε ένα πραγματικό σπίτι οι απαιτήσεις σε ακροδέκτες εισόδου εξόδου είναι πολύ περισσότερες. Έτσι μπορούμε να επεκτείνουμε το σύστημα με τους εξής τρόπους:
- Χρήση των ακίδων GPIO του Raspberry. Μέχρι στιγμής καμία ακίδα του συνδετήρα επέκτασης GPIO του Raspberry, δεν έχει χρησιμοποιηθεί.
- Προσθήκη επιπλέον arduino Nano στον δίαυλο I2C. Για κάθε Arduino έχουμε επιπλέον 20 ακίδες.
- Χρήση κατανεμημένων μονάδων Node MCU (ίσως χωρίς Arduino expander) αρκεί να υπάρχει δίκτυο WiFI. Αυτή η λύση είναι η καλύτερη για παλιά σπίτια στα οποία δεν υπάρχει πρόβλεψη για τερματισμό όλων των καλωδίων σ’ ένα σημείο του κεντρικού πίνακα. Η κάθε μονάδα συνδέεται μέσω WiFi στο Raspberry το οποίο έχει στατική διεύθυνση IP και δημοσιεύει ή δέχεται μηνύματα από τον mosquitto mqtt broker.
Πίνακας υλικών και συνολικό κόστος
Α/Α | Τύπος | Ποσότητα | Τιμή (€) | Προμηθευτής – Link εξαρτ. | Συνολική τιμή (€) |
---|---|---|---|---|---|
1 | Raspberry Pi 3 Model B+ | 1 | 46,90 | e-shop | 46,90 |
2 | Τροφοδοτικό για Raspberry | 1 | 8,90 | e-shop | 8,90 |
3 | Κάρτα μνήμης 32Gb για Raspberry | 1 | 6,85 | e-shop | 6,85 |
4 | Θήκη για Raspberry | 1 | 3,60 | Grobotronics | 3,60 |
5 | Node MCU | 1 | 8,99 | Cableworks | 8,99 |
6 | Arduino Nano | 1 | 5,00 | Cableworks | 5,00 |
7 | LED 5mm λευκά πακέτο των 10 | 1 | 0,40 | Cableworks | 0,40 |
8 | Relays 5V | 3 | 0,81 | Cableworks | 2,43 |
9 | Αισθητήρας BME280 | 1 | 8,49 | Cableworks | 8,49 |
10 | Κινητήρες Servo MG90 | 2 | 5,00 | Cableworks | 10,00 |
11 | Θερμόμετρο 1wire DS18B20 | 2 | 1,80 | Cableworks | 3,60 |
12 | Transistors NPN BC547 | 10 | 0,05 | Grobotronics | 0,50 |
13 | Πλακέτα διάτρητη συνδέσεων perfboard | 1 | 3,99 | Cableworks | 3,99 |
14 | Μαγνητικές επαφές | 2 | 1,98 | Cableworks | 3,96 |
15 | Διάφορα εξαρτήματα (Αντιστάτες-πυκνωτές-καλώδια-pinheads) | 15,00 | * | 15,00 | |
16 | Υλικά μακέτας (MDF, βίδες) | 45,00 | * | 45,00 |
Συνολικό κόστος έργου: 174 €
Περαιτέρω βελτιώσεις
Φυσικά οι επεκτάσεις και βελτιώσεις μιας τέτοιας κατασκευής είναι πάρα πολλές. Μερικές απ’ αυτές είναι:
- Λειτουργία micro web server στο Node MCU ώστε να γίνεται εύκολα παραμετροποίηση του ελεγκτή χωρίς να χρειάζεται επαναπρογραμματισμός. Εδώ θα μπορούμε να αλλάζουμε τις δικτυακές ρυθμίσεις και wifi, τα ονόματα των topics του mqtt, αλλαγή λειτουργίας ακίδων arduino κ.α.
- Η αναγνώριση ομιλίας απαιτεί ήσυχο περιβάλλον και πάντα τα μικρόφωνα ενεργοποιημένα το οποίο δεν είναι πάντα εφικτό μέσα σ’ ένα σπίτι. Εναλλακτικά θα μπορούσαμε να χειριστούμε τις συσκευές μας μέσα από το τηλεχειριστήριο της τηλεόρασης. Ενώ παρακολουθούμε τηλεόραση στον καναπέ μας δεν χρειάζεται να ψάξουμε για το smart phone, αρκεί να στρέψουμε το τηλεκοντρόλ προς την κατεύθυνση όπου βρίσκεται ο δέκτης IR του έξυπνου σπιτιού. Πατώντας τα πλήκτρα πλοηγούμαστε σ’ ένα μενού με επιβεβαίωση φωνητικών εντολών TTS. Υπάρχουν έτοιμες βιβλιοθήκες εκμάθησης IR για το Arduino ή και η Lirc για το Raspberry. Εμείς αρκεί να τοποθετήσουμε τους δέκτες IR σε διάφορα σημεία του σπιτιού.
Διεύθυνση του αποθετηρίου μας : https://github.com/stav98/UrsaRobotics_SmartHome
Διεύθυνση της σελίδας μας: https://stav98.github.io/UrsaRobotics/