Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Ο χειμώνας μπορεί να είναι θλιβερός. Ξυπνάς, είναι σκοτεινό και πρέπει να σηκωθείς από το κρεβάτι. Το τελευταίο πράγμα που θέλετε να ακούσετε είναι ο ενοχλητικός ήχος του ξυπνητηριού σας. Εάν εσείς, όπως και εγώ, έχετε πρόβλημα να ξυπνήσετε το πρωί, αυτό το ξυπνητήρι είναι ακριβώς αυτό που χρειάζεστε.
Σε αυτό το σεμινάριο, πρόκειται να δημιουργήσουμε ένα ξυπνητήρι Sunrise. Είναι ξυπνητήρι όπως κάθε άλλο, καθώς μπορείτε να ορίσετε την ώρα και το λεπτό που θέλετε να ξυπνήσετε, αλλά με το όφελος να χρησιμοποιήσετε το φως για να φωτίσετε το υπνοδωμάτιό σας για κάποιο χρονικό διάστημα, όπως μια ανατολή για να σας ξυπνήσει αντί για ενοχλητικό βομβητής!
Θα χρησιμοποιήσουμε επίσης μια μονάδα bluetooth για να δημιουργήσουμε μια εφαρμογή που σας επιτρέπει να ρυθμίσετε το ξυπνητήρι μέσω του τηλεφώνου σας στο ρολόι. Η οθόνη LCD θα δείχνει την ώρα, την ημερομηνία και την ημέρα της εβδομάδας. Οι λαμπτήρες ηλιοφάνειας υπάρχουν στην αγορά, αλλά μπορεί να είναι ακριβοί (μια γρήγορη αναζήτηση στο Google επιστρέφει προϊόντα της τάξης των 100 €), εύθραυστα και αρκετά κλινικά. Γι 'αυτό αποφάσισα να φτιάξω το δικό μου για το Arduino School Project μου. Όλα τα μέρη θα αναφέρονται στο επόμενο βήμα. Μπορείτε να κατεβάσετε τον κωδικό από το Github repo sunrise-alarm-ξυπνητήρι μου. Ας ξεκινήσουμε:)
Όλος ο κωδικός μπορεί να βρεθεί στη διεύθυνση:
Βήμα 1: Συγκέντρωση των εξαρτημάτων
Θα χρησιμοποιήσουμε ένα ρολόι ως είσοδό μας και ένα εξαιρετικά φωτεινό LED ως έξοδο για να προσομοιώσουμε την ανατολή μας.
Για την κατασκευή του κυκλώματος θα χρειαστούμε:
- Arduino Uno- clockmodule RTC DS3231 - ένα MOSFET για τον έλεγχο της φωτεινότητας του φωτός - ένα υπερ -φωτεινό LED (αγόρασα 2, ένα ζεστό, ένα κρύο) - μπαταρία 9V για να τροφοδοτήσει το LED - ένα breadboard- μια οθόνη LCD (16: 2)- Προσαρμογέας Bluetooth hc-05, ώστε να μπορούμε να χρησιμοποιήσουμε μια εφαρμογή για να ρυθμίσουμε το ξυπνητήρι.
Όλα όσα χρειάζεστε μπορούν να αγοραστούν στο www.martoparts.nl
Βήμα 2: Συναρμολόγηση του κυκλώματος
Μπορείτε να ανατρέξετε στο σκίτσο για το κύκλωμά μου, δυστυχώς δεν βρήκα το RTC DS3231 στο πρόγραμμα, οπότε έπρεπε να κάνω με αυτό. Οι συνδέσεις είναι λίγο διαφορετικές στην πραγματικότητα, εδώ είναι οι συνδέσεις. (η μονάδα bluetooth δεν υπάρχει στο σκίτσο, αλλά θα εξηγήσω πώς λειτουργεί παρακάτω, προκαλώντας μάλλον περίπλοκο)
Το RTC DS3231GND πηγαίνει στο GND στο arduino
Το VCC πηγαίνει στα 5v
Το SDA πηγαίνει στο arduino
Το SCL πηγαίνει στο arduino Δεν θα χρησιμοποιήσουμε SQW & 32KMOSFET
Ο πείρος πύλης πηγαίνει στην καρφίτσα ~ 9 στο Arduino Uno επειδή είναι PWM Ο πείρος αποστράγγισης πηγαίνει στην αρνητική πλευρά του LED Ο πείρος πηγής πηγαίνει στο GND στο ArduinoLCD-DisplayGND πηγαίνει στο GND στο arduino
Το VCC πηγαίνει στο A4 στο arduino Το SKL πηγαίνει στο A5 στο arduino
Η μονάδα Bluetooth hc-055V πηγαίνει στα 5V από το arduino
Το GND πηγαίνει στο GND στο arduino
Τώρα υπάρχουν άλλες 2 είσοδοι, αλλά εδώ έρχεται το δύσκολο κομμάτι, πρέπει να συνδέσουμε τις αντίθετες εισόδους αυτών των 2 στο arduinoTX από το hc-05 πηγαίνει στο RX στο arduinoRX από το hc-05 πηγαίνει στο TX στο arduino
Σημαντικό: Βεβαιωθείτε ότι ΑΠΟΣΥΝΔΕΣΕΤΕ το TX & RX από το HC-05 όταν ανεβάζετε κώδικα στο arduino σας ή θα λάβετε ένα σφάλμα που λέει "κάτι πήγε στραβά με τη μεταφόρτωση του κώδικα" στον μεταγλωττιστή.
Βήμα 3: Ρύθμιση της οθόνης και του ρολογιού LCD
Η βιβλιοθήκη που χρησιμοποιείται για την οθόνη LCD είναι υγρό κρύσταλλο και μπορείτε να τη βρείτε στη διεύθυνση: https://github.com/fdebrabander/Arduino-LiquidCrys… Κατεβάστε το αρχείο zip, αποθηκεύστε το και τοποθετήστε το στο φάκελο Arduino/βιβλιοθήκες
Η βιβλιοθήκη που χρησιμοποιώ για την εκτέλεση του ρολογιού μπορεί να βρεθεί στη διεύθυνση Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 και βεβαιωθείτε ότι βρίσκεστε στη σελίδα DS3231. Κατεβάστε το αρχείο zip, αποθηκεύστε το και τοποθετήστε το στο φάκελο βιβλιοθηκών του Arduino.
χρόνος
Συμπεριλάβετε τη βιβλιοθήκη DS3231 ή DS1307 στον κωδικό arduino σας
Αποσυνδέστε αυτές τις 3 γραμμές κώδικα για να ορίσετε την ώρα:
// rtc.setDOW (ΔΕΥΤΕΡΑ); // Ορισμός ημέρας-εβδομάδας σε ΚΥΡΙΑΚΗ // rtc.setTime (23, 57, 0); // Ορίστε την ώρα στις 12:00:00 (μορφή 24 ωρών) // rtc.setDate (14, 1, 2019). // Ορίστε την ημερομηνία την 1η Ιανουαρίου 2014
Οθόνη LCD
Συμπεριλάβετε τη βιβλιοθήκη liqduicrystal_i2c στον κώδικα arduino σας
Για εκτύπωση στην οθόνη LCD χρησιμοποιήστε
lcd.setCursor (col, row) // θέση κειμένου τυπωμένοlcd.print (~) // εκτυπωμένο κείμενο
Βήμα 4: Κωδικοποίηση
Κατεβάστε τον κώδικα στο: github:
Μην σχολιάσετε αυτές τις 3 γραμμές για να ρυθμίσετε το ρολόι στην οθόνη LCD:
// rtc.setDOW (ΔΕΥΤΕΡΑ); // Ορισμός ημέρας-εβδομάδας σε ΚΥΡΙΑΚΗ // rtc.setTime (23, 57, 0); // Ορίστε την ώρα στις 12:00:00 (μορφή 24 ωρών) // rtc.setDate (14, 1, 2019). // Ορίστε την ημερομηνία την 1η Ιανουαρίου 2014
Χρησιμοποιήστε το lcd.setCuros (col, row); για να ρυθμίσετε τη θέση του κειμένου στην οθόνη
lcd.setCursor (0, 2);
και εκτύπωση () για να εκτυπώσετε κάτι στην οθόνη
lcd.print (rtc.getDateStr ());
Αλλάξτε αυτές τις μεταβλητές αν θέλετε
int fadeTime = 1; // Πόσο καιρό θα σβήσει το φως στο maxint setHour = 02; // Ορισμός ωρών αφύπνισης (στρατιωτικός χρόνος) int setMin = 49; // Ρύθμιση λεπτού για αφύπνιση int uled = 9; // Ρύθμιση pinout με PWM
Κωδικός μονάδας Bluetooth
String firstHalf = getValue (είσοδος, ':', 0); // ελέγξτε την πρώτη εισαγωγή μέχρι ":"
String secondHalf = getValue (είσοδος, ':', 1); // ελέγξτε τη δεύτερη είσοδο μετά το ":"
// χρησιμοποιήστε αυτόν τον κωδικό εάν δεν χρησιμοποιείτε τη μονάδα bluetooth
// // if (t.hour == setHour && t.min == setMin) // Ελέγξτε αν ήρθε η ώρα να ξυπνήσετε! // {// έναρξη (); //}
// ελέγξτε τα πρώτα 2 ψηφία εισόδους και, στη συνέχεια, ελέγξτε τα δεύτερα 2 ψηφία εισόδου
εάν (t.hour == firstHalf.toInt () && t.min == secondHalf.toInt ()) {start (); }}
// λογική για διαχωρισμό συμβολοσειρών
String getValue (Δεδομένα συμβολοσειράς, διαχωριστής χαρακτήρων, ευρετήριο int) {int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;
για (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == διαχωριστής || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex); i+1: i; }} επιστροφή βρέθηκε> ευρετήριο; data.substring (strIndex [0], strIndex [1]): ""; }
Βήμα 5: Timeρα για δοκιμές
Συγκεντρώστε τον κωδικό και τη δοκιμή σας εάν τα εξαρτήματα λειτουργούν!
Βήμα 6: Ρύθμιση εφαρμογής Bluetooth
Επειδή μου φάνηκε ενοχλητικό να ψάχνω τον κώδικα κάθε φορά που ήθελα να θέσω ξυπνητήρι, ήθελα να φτιάξω μια εφαρμογή που θα θέσει το ξυπνητήρι, κάτι που είναι πολύ πιο εύκολο.
Μεταβείτε στη διεύθυνση https://ai2.appinventor.mit.edεδώ όπου μπορούμε να φτιάξουμε μια απλή εφαρμογή που μας επιτρέπει να θέσουμε το ξυπνητήρι, έχω συμπεριλάβει την απλή ρύθμιση σχεδίασης (μπορείτε πάντα να το αλλάξετε αργότερα) και τον κώδικα που χρησιμοποιείται για σύνδεση bluetooth. Στη συνέχεια, μπορείτε να δημοσιεύσετε την εφαρμογή σας και να συνδεθείτε με αυτήν στο τηλέφωνό σας χρησιμοποιώντας έναν κωδικό QR ή κατεβάζοντας απευθείας την εφαρμογή στον υπολογιστή σας και, στη συνέχεια, μεταφέροντάς την με καλώδιο στο τηλέφωνό σας. (στιγμιότυπο οθόνης)
Βήμα 7: Χτίζοντας την υπόθεση
Μπορείτε πάντα να δημιουργήσετε μια διαφορετική θήκη γύρω από το ρολόι arduino σας. Χρησιμοποίησα ξύλο και ματ πλεξιγκλάς για να φτιάξω τη δική μου θήκη ξυπνητηριού. Επέλεξα ματ πλεξιγκλάς για να βλέπετε το φως να λάμπει καθαρά μέσα στη θήκη αλλά δεν μπορείτε να δείτε το εσωτερικό του ρολογιού.
Βήμα 8: Τέλειωσε
Τώρα που έχετε ανεβάσει τον κωδικό στο arduino σας, φτιάχνετε τη θήκη και ελέγχετε αν έχετε συναρμολογήσει σωστά το ρολόι σας, μπορείτε να ρυθμίσετε ένα ξυπνητήρι στην εφαρμογή bluetooth και να αρχίσετε να ξυπνάτε πιο φυσικά!:)