Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρύθμιση του Raspberry Pi
- Βήμα 2: Σύνδεση των Ηλεκτρονικών
- Βήμα 3: Σχεδιασμός βάσης δεδομένων
- Βήμα 4: Ρύθμιση Arduino
- Βήμα 5: Raspberry Pi Backend
- Βήμα 6: Θήκη
Βίντεο: Wake Me Up - ένα έξυπνο ξυπνητήρι: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Το Wake me up up είναι ένα έξυπνο ξυπνητήρι που μπορεί επίσης να χρησιμοποιηθεί ως έξυπνο φως.
Το ενσωματωμένο ledstrip προσομοιώνει το φυσικό φως που εισέρχεται στο δωμάτιό σας. Αυτό επιτρέπει έναν ήρεμο, φυσικό τρόπο για να ξεκινήσετε τη μέρα σας.
Το ξυπνητήρι είναι επίσης εξοπλισμένο με οθόνη 4*7 για ανάγνωση της ώρας, ηχεία για να ξυπνάτε με την αγαπημένη σας μουσική, κουμπί αφής, ldr για προσαρμογή της φωτεινότητας της λωρίδας led και αισθητήρα θερμοκρασίας που μπορείτε να χρησιμοποιήσετε για να δείτε θερμοκρασία του δωματίου σας.
Προμήθειες
Μια λίστα με τις ακριβείς τιμές που πλήρωσα μπορείτε να βρείτε εδώ:
Μικροελεγκτές και υπολογιστές:
Το Raspberry Pi 4I χρησιμοποίησε το raspberry pi 4 4GB, ωστόσο, οποιοδήποτε raspberry pi μοντέλο 3+ θα πρέπει να είναι εντάξει
Arduino Uno
Το arduino χρησιμοποιείται για τον έλεγχο της οθόνης ρολογιού 4*7 τμημάτων.
Αισθητήρες:
- TMP36: αισθητήρας θερμοκρασίας
- LDR: Αντίσταση εξαρτώμενη από το φως
Ενεργοποιητές:
- WS2801: Ατομικά διευθετήσιμο ledstrip
- Οθόνη LCD: Οθόνη LCD 16*2.
- Οθόνη ρολογιού 4*7 τμημάτων
IC's:
- 74HC595: Shiftregister για την οθόνη LCD
- MCP3008: Μετατροπέας αναλογικού σε ψηφιακό 8-bit
- Μετατροπέας λογικού επιπέδου: Χρησιμοποιείται για επικοινωνία μεταξύ raspi και arduino
Αλλα πράγματα:
- Ενισχυτής adafruit MAX9744 για την τροφοδοσία των ηχείων
- Οποιοδήποτε ηχείο, χρησιμοποίησα ένα ηχείο Visaton 4Ohm 8Watt πλήρους εμβέλειας (αρ. Αρ. 2240)
- Τροφοδοτικό 9Volt για την τροφοδοσία του ενισχυτή
- Ένα τροφοδοτικό 5Volt για την τροφοδοσία της λωρίδας led και άλλων εξαρτημάτων. Λάβετε υπόψη ότι κάθε led στο ledstrip μπορεί να μειώσει τα 60mA, οπότε βεβαιωθείτε ότι το τροφοδοτικό σας είναι επαρκές.
- Μερικές αντιστάσεις 220Ohm
- Ένα μικρό ψωμί για να το βάλετε στη θήκη σας.
Εργαλεία:
- Ένα συγκολλητικό σίδερο.
- Κάτι για να φτιάξω την περίπτωση (χρησιμοποίησα έναν τρισδιάστατο εκτυπωτή με PLA και PETG και μερικά αυτοκόλλητα βινυλίου για να αποκτήσω το ξύλινο αποτέλεσμα.)
Βήμα 1: Ρύθμιση του Raspberry Pi
Το raspberry pi είναι ο κύριος μικροελεγκτής μας.
Το raspberry pi τρέχει τον τοπικό μας διακομιστή ιστού, τη βάση δεδομένων, ελέγχει το ledstrip, ηχεία,…
Μέρος 1: Εγκατάσταση του Raspbian
Χρησιμοποιήστε αυτό το σεμινάριο για να εγκαταστήσετε το raspbian:
Βεβαιωθείτε ότι το SSH είναι ενεργοποιημένο
Μέρος 2: Σύνδεση
Για να συνδεθείτε στο διαδίκτυο, πρέπει να αποκτήσετε πρόσβαση στο τερματικό του raspberry pi. Συνιστώ τη χρήση στόκου. Στον τύπο τερματικού:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" είναι το όνομα του δικτύου wifi σας και "YourSSID" είναι ο κωδικός πρόσβασης του δικτύου.
Μόλις προσθέσετε το δίκτυο προσπαθήστε να κάνετε επανεκκίνηση του Raspberry Pi.
Πληκτρολογήστε την εντολή «ping 8.8.8.8», για να στείλετε ένα πακέτο στους διακομιστές της Google εάν λάβετε απάντηση, το δίκτυό σας έχει ρυθμιστεί και λειτουργεί!
Μέρος 3: Εγκαταστήστε τα απαραίτητα προγράμματα
Θα χρειαστεί να εγκαταστήσουμε κάποια επιπλέον προγράμματα για να ξεκινήσει αυτό το έργο.
Πριν ξεκινήσουμε, εκτελέστε αυτές τις 2 εντολές για να βεβαιωθείτε ότι όλα έχουν αναβαθμιστεί.
sudo apt ενημέρωση
sudo apt αναβάθμιση
Αυτό μπορεί να διαρκέσει λίγο.
Απάχης
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt εγκατάσταση php -mysql -y
PHPMyAdmin
sudo apt εγκατάσταση phpmyadmin -y
Python pip
Πρέπει να εγκαταστήσουμε pip για να ενεργοποιήσουμε ορισμένες βιβλιοθήκες python
pip3 εγκαταστήστε mysql-connector-python
pip3 install flask-socketio
pip3 εγκαταστήστε φιάλη-κορμούς
pip3 εγκατάσταση gevent
pip3 εγκαταστήστε το gevent-websocket
Βήμα 2: Σύνδεση των Ηλεκτρονικών
Έχω προσθέσει 2 σχήματα, το 1 είναι ένα σχήμα ψωμιού για δοκιμές. Σας συνιστώ να δημιουργήσετε το πρώτο σχήμα και να προσπαθήσετε να λειτουργήσει ο κώδικας.
Έχω προσθέσει τα συναρπαστικά αρχεία παρακάτω.
Βήμα 3: Σχεδιασμός βάσης δεδομένων
Αυτό είναι το σχήμα της βάσης δεδομένων που έφτιαξα. Οι λέξεις είναι στα ολλανδικά, αλλά θα εξηγήσω λεπτομερώς κάθε πίνακα.
Πίνακας 1: tblMuziek
Αυτό είναι ένα αρκετά βασικό τραπέζι. Αποθηκεύει το όνομα του καλλιτέχνη, το όνομα του τραγουδιού και το όνομα αρχείου ενός τραγουδιού.
Πίνακας 2: tblLedstrip
Αυτός ο πίνακας παρακολουθεί την τρέχουσα κατάσταση της λωρίδας led που εξοικονομεί την κατάσταση της λωρίδας led. Το χρειαζόμαστε για τη λειτουργία έξυπνου φωτισμού.
Πίνακας 3: tblSensoren
Αυτός ο πίνακας παρακολουθεί τους αισθητήρες στον συναγερμό μας. Αποθηκεύουμε το όνομα του αισθητήρα και το κανάλι του MCP3008
Πίνακας 4: tblMeting
Αυτός ο πίνακας αποθηκεύει τις τιμές των αισθητήρων μας μαζί με το χρόνο τους.
Πίνακας 5: tblWekker
Αυτός ο πίνακας αποθηκεύει τον κωδικό πρόσβασης και το όνομα του ξυπνητηριού σας (π.χ. Υπνοδωμάτιο) Αυτός ο πίνακας δεν είναι υποχρεωτικός, αλλά τον πρόσθεσα επειδή υποθέτω ότι θα έχετε περισσότερα από 1 ξυπνητήρια στο σπίτι σας.
Πίνακας 6: tblAlarm
Αυτό είναι ίσως το πιο σημαντικό τραπέζι. Παρακολουθεί τα ξυπνητήρια που έχετε ρυθμίσει και τι πρέπει να κάνει το ρολόι (ποιο τραγούδι να παίξει, ποια σειρά οδήγησε, Σε ποιες ημέρες πρέπει να σβήσει,…). Είναι πολύ σημαντικό να παρακολουθείτε 2 ημερομηνίες. 1 ημερομηνία χρησιμοποιείται για την αποθήκευση σε ποια ώρα πρέπει να χτυπήσει το ξυπνητήρι. Ο άλλος παρακολουθεί την τελευταία φορά που χτύπησε το ξυπνητήρι. Για να ξέρω τι ημέρα της εβδομάδας πρέπει να σβήσει, χρησιμοποίησα ένα varchar που περιέχει έναν αριθμό 7 ψηφίων. Το πρώτο ψηφίο είναι Δευτέρα, η δεύτερη Τρίτη,… Αν είναι 1 τότε πρέπει να σβήσει, αν είναι 0 δεν πρέπει. Παράδειγμα: 1111100 αυτό σημαίνει ότι αυτός ο συναγερμός θα πρέπει να χτυπά τη Δευτέρα, την Τρίτη, την Τετάρτη, την Πέμπτη και την Παρασκευή.
Βήμα 4: Ρύθμιση Arduino
Αυτό το βήμα είναι πολύ εύκολο. Θα υπάρχει σύνδεσμος προς το github μου στο επόμενο βήμα όπου μπορείτε να κατεβάσετε το αρχείο arduino.
Τι κάνει το πρόγραμμα;
Το πρόγραμμα περιμένει τα σειριακά δεδομένα να έρθουν από το pi.
Μόλις ληφθούν τα δεδομένα, αναλύονται μέσω της συμβολοσειράς και στέλνουν πίσω μια επιβεβαίωση στο pi.
Η συμβολοσειρά θα είναι κάπως έτσι: '1201' αυτό σημαίνει ότι είναι 12:01. Χρησιμοποίησα μια κοινή οθόνη ανόδου 7, αυτό σημαίνει ότι τα ψηφία πρέπει να είναι υψηλά και τα A, B, C, D, E, F, G και DP πρέπει να είναι χαμηλά για να τα ενεργοποιήσετε. Εάν χρησιμοποιείτε μια κοινή κάθοδο θα πρέπει απλώς να αλλάξετε το HIGH σε LOW και LOW σε HIGH.
Ακολουθεί ένας σύνδεσμος με περισσότερες πληροφορίες σχετικά με τον τρόπο λειτουργίας των οθονών 7 τμημάτων. (με τη χρήση βιβλιοθήκης):
www.instructables.com/id/Using-a-4-digit-7…
Ακολουθεί ένας σύνδεσμος για οθόνες 7 τμημάτων χωρίς τη χρήση βιβλιοθήκης:
create.arduino.cc/projecthub/SAnwandter1/p…
Βήμα 5: Raspberry Pi Backend
Μπορείτε να κατεβάσετε τον κωδικό μου χρησιμοποιώντας το Github. (https://github.com/VanHevelNico/WakeMeUp)
Πώς να εγκαταστήσετε το πρόγραμμα:
Το πίσω μέρος γράφεται σε python χρησιμοποιώντας φιάλη. Μπορείτε να δημιουργήσετε μια υπηρεσία που ξεκινά αυτόματα αυτό το πρόγραμμα (app.py).
Θα πρέπει να βάλετε τον κωδικό πρόσβασης στο αρχείο html του διακομιστή apache που κατεβάσαμε νωρίτερα. (/var/html)
Πώς λειτουργεί το πρόγραμμα;
Όταν το ξυπνητήρι είναι ενεργοποιημένο, μεταβείτε στη διεύθυνση IP του ρολογιού σας (θα εμφανιστεί στην οθόνη LCD)
Μόλις μεταβείτε σε αυτήν τη διεύθυνση IP στο πρόγραμμα περιήγησής σας, ο υπολογιστής σας θα στείλει ένα αίτημα socket.io στο backend λέγοντας ότι έχει συνδεθεί ένας πελάτης. Όταν το backend το λάβει αυτό θα ξεκινήσουν μερικά threads τα οποία θα εξηγήσω παρακάτω.
Ρύθμιση
Αυτό ενεργοποιεί όλα τα αντικείμενα που χρειάζονται.
GetTemp
Αυτό διαβάζει το κανάλι mcp3008 0 και μετατρέπει τα δυαδικά δεδομένα στην πραγματική θερμοκρασία και τα τοποθετεί στη βάση δεδομένων με την τρέχουσα ημερομηνία και ώρα.
GetTempGrafiek
Αυτό παίρνει τις προηγούμενες 20 τιμές του αισθητήρα θερμοκρασίας και τον εκπέμπει στο προσκήνιο.
tijd_sturen
Αυτή η μέθοδος λαμβάνει την τρέχουσα ώρα και ελέγχει εάν έχει αλλάξει το λεπτό. Εάν έχει αλλάξει, το πρόγραμμα στέλνει τη νέα ώρα στο arduino χρησιμοποιώντας σειριακή επικοινωνία
checkAlarmen
Αυτή είναι η πιο σημαντική μέθοδος. Παίρνει όλους τους συναγερμούς που είναι ενεργοποιημένους και ελέγχει εάν κάποιος από αυτούς τους συναγερμούς πρέπει να ξεκινήσει από τώρα και πριν από 5 λεπτά (αυτό είναι ένα buffer για να βεβαιωθείτε ότι κάθε ξυπνητήρι λειτουργεί όταν χρειάζεται). Εάν ο συναγερμός πρέπει να σβήσει, θα ξεκινήσουμε τη μουσική, το ledstrip,… Διαβάζουμε τη αντίσταση ευαίσθητης στη δύναμη συνεχώς και όταν η τιμή πέσει κάτω από το 1000 (διαβάζεται το fsr πιέζεται) Γυρίζουμε το ξυπνητήρι και ενημερώνουμε τον συναγερμό στο βάση δεδομένων. Ορίσαμε την ημερομηνία που χτύπησε το ξυπνητήρι για τελευταία φορά στην τρέχουσα ημερομηνία.
statusLight
Αυτή η μέθοδος εκπέμπει την τιμή του ledstrip και ενεργοποιεί το ledstrip εάν χρειάζεται.
lichtAanpassen
Αυτή είναι μια επιπλέον μέθοδος για να βεβαιωθείτε ότι η λωρίδα led και η λυχνία συναγερμού δεν συγκρούονται.
Βήμα 6: Θήκη
Ο σύνδεσμος προς τα αρχεία μου μπορεί να βρεθεί εδώ:
Χρησιμοποίησα έναν τρισδιάστατο εκτυπωτή για να εκτυπώσω το περίβλημα. Εκτυπώνεται σε 4 διαφορετικά μέρη:
- Η μπροστινή πλάκα με τρύπες για το ηχείο και μερικούς τοίχους για την οθόνη 7 τμημάτων
- Ο εξωτερικός δακτύλιος για τη λωρίδα led σε διαφανές PETG.
- Το μεσαίο μέρος
- Η πλάτη με μια τρύπα για το LCD και μια τρύπα για τα καλώδια.
Στο αρχικό μοντέλο δεν υπήρχε τρύπα για την οθόνη των 7 τμημάτων, ωστόσο αυτό είναι απαραίτητο, διότι διαφορετικά το φως της οθόνης των 7 τμημάτων δεν θα λάμψει.
Όπως μπορείτε να δείτε μετά την τοποθέτηση όλων των εξαρτημάτων, χρησιμοποίησα αυτοκόλλητα βινυλίου με ξύλινη εμφάνιση για να κάνω το τελικό αποτέλεσμα να φαίνεται καλύτερο. Η οθόνη του ρολογιού λάμπει μέσω του αυτοκόλλητου που δημιουργεί ένα πολύ ωραίο αποτέλεσμα.
Συνιστάται:
Έξυπνο ξυπνητήρι με χρήση Magicbit (Arduino): 10 βήματα
Έξυπνο ξυπνητήρι χρησιμοποιώντας Magicbit (Arduino): Αυτό το σεμινάριο δείχνει πώς να φτιάξετε ένα έξυπνο ξυπνητήρι χρησιμοποιώντας οθόνη OLED στον πίνακα προγραμματισμού Magicbit χωρίς να χρησιμοποιήσετε καμία μονάδα RTC
Έξυπνο ξυπνητήρι - Intel Edison - Iot RoadShow - Σάο Πάολο: 4 βήματα
Έξυπνο ξυπνητήρι - Intel Edison - Iot RoadShow - Σάο Πάολο: Μία από τις μεγάλες αρετές οποιουδήποτε ζει ή εργάζεται σε μια μεγάλη πόλη είναι η διαχείριση του χρόνου. Σήμερα, τα ταξίδια είναι σταθερά και, καθώς η κίνηση είναι ένας από τους κύριους παράγοντες. Σκέφτομαι αυτό, έφτιαξα μια μικρή εφαρμογή που χρησιμοποιεί την ενσωμάτωση με το Google M
WakeupNow - Έξυπνο ξυπνητήρι: 8 βήματα
WakeupNow - Έξυπνο ξυπνητήρι: Όπως όλοι γνωρίζουν, η ζωή των μαθητών είναι πολύ δύσκολη, έχουν μια κουραστική μέρα με διαλέξεις, πολλές εργασίες για το σπίτι και γενικά, έχουν μια τρελή ζωή. Έχουν χρόνο για το τίποτα, και αν τους προτείνετε να προσθέσουν μερικές ώρες στην ημέρα θα χαρούν. Unfo
Έξυπνο ξυπνητήρι: 13 βήματα
Έξυπνο ξυπνητήρι: Γεια σας, με λένε Alexandra Christiaens και σπουδάζω Τεχνολογία Μέσων και Επικοινωνιών στο Howest στο Kortrijk του Βελγίου. Ως σχολική εργασία, μας ζητήθηκε να φτιάξουμε μια συσκευή IoT. Ενθαρρυνθήκαμε να κάνουμε κάτι που θα έκανε τη διαφορά
LED Ξυπνητήρι Sunrise με Προσαρμόσιμο Ξυπνητήρι Τραγουδιού: 7 Βήματα (με Εικόνες)
LED Ξυπνητήρι Sunrise με Προσαρμόσιμο Ξυπνητήρι Τραγουδιού: Το Κίνητρό μου Αυτό το χειμώνα η κοπέλα μου είχε πολύ πρόβλημα να ξυπνήσει το πρωί και φαινόταν να πάσχει από SAD (Seasonal Affective Disorder). Παρατηρώ μάλιστα πόσο πιο δύσκολο είναι να ξυπνάς το χειμώνα αφού ο ήλιος δεν έχει έρθει