- Λίγα λόγια για εμάς
- Σχεδιασμός συστήματος
- Σχεδιασμός μακέτας
- Σχεδιασμός ηλεκτρονικού κυκλώματος
- Υλικά - Κόστος
- Κατασκευή μακέτας
- Ηλεκτρονική κατασκευή
- Προγραμματισμός ελεγκτή
- Ηλεκτρολογικές συνδέσεις
- Εγκατάσταση προγραμμάτων στο Raspberry Pi
- T.T.S. και Μουσική
- Αναγνώριση ομιλίας
- Το περιβάλλον Node-Red
- Χρήση φορητών συσκευών
- Βελτιώσεις - Επίλογος
Σχεδιασμός Συστήματος
Όπως φαίνεται και στο block διάγραμμα που ακολουθεί, ο εγκέφαλος όλου του συστήματος είναι το Raspberry Pi. Το πρωτόκολλο το οποίο θα χρησιμοποιήσουμε είναι το MQTT. 'Ετσι στο Raspberry λειτουργεί ένας mqtt broker μέσω του οποίου ανταλλάσσονται τα μηνύματα subscribe – publish από τους πελάτες. Επιπλέον λειτουργεί και το Node-Red που μας παρέχει την λογική και το όμορφο γραφικό περιβάλλον, μέσου του οποίου μπορούμε να αλληλεπιδράσουμε με το σύστημα.
Για να μπορέσει το Raspberry να δώσει εντολές σε διακόπτες ή να διαβάσει κάποιους αισθητήρες, απαιτείται και κάτι ακόμη. Αυτό είναι ο μικροελεγκτής ο οποίος θα δέχεται οδηγίες από το Raspberry Pi και θα βγάζει ή θα δέχεται τα κατάλληλα σήματα ώστε να επικοινωνεί με τις διάφορες συσκευές του σπιτιού.
Για να υπάρχει επικοινωνία χωρίς καλωδιακή υποδομή, θα χρησιμοποιήσουμε ασύρματη επικοινωνία WiFi. Για τον λόγο αυτό, χρησιμοποιούμε το module Node-MCU το οποίο έχει τον ισχυρό μικροελεγκτή των 32bit ESP-8266. Εναλλακτικά θα μπορούσαμε να χρησιμοποιήσουμε τον διπύρηνο και ακόμη πιο ισχυρό ESP-32. Μέσα στην Node-MCU υπάρχει ένα πρόγραμμα που λειτουργεί ως πελάτης mqtt και επιπλέον αποκωδικοποιεί τις εντολές και βγάζει τα κατάλληλα σήματα στους ακροδέκτες ή δέχεται δεδομένα σε ψηφιακή ή αναλογική μορφή και τα μεταφέρει στον broker. Όλα τα προηγούμενα προγραμματίζονται σε Micro Python.
Το Node-MCU εξ' ορισμού έχει εγκατεστιμένη μια έκδοση της LUA. Εμείς σβήνουμε τον διεμηνευτή της LUA και βάζουμε την Micro Python.
Επειδή το Node-MCU έχει περιορισμένο αριθμό ακίδων, χρησιμοποιούμε και ένα Arduino Nano το οποίο συνδέεται με το Node-MCU μέσω του διαύλου I2C και λειτουργεί ως μονάδα επέκτασης θυρών (port expander). Το arduino μας δίνει επιπλέον 20 ακροδέκτες.
Οι ακροδέκτες αυτοί μπορούν να αλλάξουν χρήση και μπορεί να είναι:
- Ψηφιακές είσοδοι (18)
- Ψηφιακές έξοδοι (18)
- Αναλογικές είσοδοι (8)
- Αναλογικές έξοδοι PWM (6)
- Servo Motor (18)
Ακολουθούν οι τύποι των ακροδεκτών χρωματισμένοι σύμφωνα με τον τύπο εξαρτημάτων της μακέτας.
Οι τύποι και οι ακροδέκτες από την πλευρά του Arduino. Οι αριθμοί αφορούν τον αριθμό εξαρτήματος πάνω στη μακέτα. Υπάρχει μια αλλαγή μεταξύ του A6 και A7 που είναι αντίστροφα, δηλαδή το A6 πάει στο LDR και το A7 στο φωτοβολταϊκό πάνελ.
Η μακέτα έχει τον ελάχιστο αριθμό ακροδεκτών με λίγες συσκευές από κάθε είδος ώστε να είναι δυνατή η χρήση της ως εποπτικού μέσου και η πραγματοποίηση εργαστηριακών ασκήσεων. Σε ένα πραγματικό σπίτι οι απαιτήσεις σε ακροδέκτες εισόδου εξόδου είναι πολύ περισσότερες. Έτσι μπορούμε να επεκτείνουμε το σύστημα με τους εξής τρόπους:
- Χρήση των ακίδων GPIO του Raspberry. Μέχρι στιγμής καμία ακίδα του συνδετήρα επέκτασης GPIO του Raspberry, δεν έχει χρησιμοποιηθεί.
- Προσθήκη επιπλέον arduino Nano στον δίαυλο I2C. Για κάθε Arduino έχουμε επιπλέον 20 ακίδες.
- Χρήση κατανεμημένων μονάδων Node MCU (ίσως χωρίς Arduino expander) αρκεί να υπάρχει δίκτυο WiFI. Αυτή η λύση είναι η καλύτερη για παλιά σπίτια στα οποία δεν υπάρχει πρόβλεψη για τερματισμό όλων των καλωδίων σ’ ένα σημείο του κεντρικού πίνακα. Η κάθε μονάδα συνδέεται μέσω WiFi στο Raspberry το οποίο έχει στατική διεύθυνση IP και δημοσιεύει ή δέχεται μηνύματα από τον mosquitto mqtt broker.