Πίνακας περιεχομένων:

Πρωί φίλε: 8 βήματα
Πρωί φίλε: 8 βήματα

Βίντεο: Πρωί φίλε: 8 βήματα

Βίντεο: Πρωί φίλε: 8 βήματα
Βίντεο: "Το κουρασμένο βήμα σου" - Αθηναϊκή Κομπανία 2024, Ιούλιος
Anonim
Image
Image

Μερικοί άνθρωποι έχουν πολύ φορτωμένο πρόγραμμα, γεγονός που καθιστά εύκολο να ξεχάσουμε ένα ή δύο πράγματα. Με αυτό το ξυπνητήρι μπορείτε να ορίσετε πολλαπλούς συναγερμούς για να σας κρατά στο χρονοδιάγραμμα. Το ρολόι λειτουργεί 24 ώρες και το μόνο που έχετε να κάνετε είναι να το προγραμματίσετε να σβήνει τις διαφορετικές ώρες της ημέρας που ταιριάζουν στο πρόγραμμά σας. Όταν το κάνετε αυτό, οι χρόνοι που έχετε ορίσει θα εμφανιστούν στην οθόνη LCD, ώστε να μπορείτε να ελέγξετε για να βεβαιωθείτε ότι έχουν δίκιο και να χρησιμεύσουν ως επιπλέον υπενθύμιση.

Βήμα 1: Καταιγισμός ιδεών

Σκίτσο και υλικά
Σκίτσο και υλικά

Όταν προσπαθούσαμε να λύσουμε το ζήτημα, χρησιμοποιήσαμε τη μέθοδο fishbone για να δημιουργήσουμε μια ιδέα και καταλήξαμε στο ξυπνητήρι μας.

Βήμα 2: Σκίτσο και υλικά

Σκίτσο και υλικά
Σκίτσο και υλικά

Κατά τη διάρκεια αυτού του βήματος προσπαθήσαμε να κάνουμε μια λίστα με όλα τα πράγματα που πιστεύαμε ότι θα χρειαστούμε για τα ηλεκτρονικά και το εξωτερικό περίβλημα. Στη συνέχεια καταλήξαμε σε ένα σκίτσο για το πώς θέλαμε να μοιάζει το ξυπνητήρι και πώς θα συναρμολογήσουμε το εξωτερικό του περίβλημα.

Βήμα 3: Δημιουργία εξωτερικού περιβλήματος

Δημιουργία εξωτερικού περιβλήματος
Δημιουργία εξωτερικού περιβλήματος
Δημιουργία εξωτερικού περιβλήματος
Δημιουργία εξωτερικού περιβλήματος

Για το πρώτο πρωτότυπο ήθελα απλώς να δω πώς οι αρθρώσεις των δακτύλων θα ταιριάζουν μεταξύ τους, έτσι χρησιμοποίησα ένα κουτί παπουτσιών και δεν χρησιμοποίησα ακριβείς μετρήσεις.

Βήμα 4: Κοπή λέιζερ του εξωτερικού περιβλήματος

Λέιζερ που κόβει το εξωτερικό περίβλημα
Λέιζερ που κόβει το εξωτερικό περίβλημα

Για το δεύτερο πρωτότυπο ήθελα να πάρω ακριβείς μετρήσεις και έπρεπε να δημιουργήσω ένα pdf για αποστολή στον κόφτη λέιζερ. Για να το κάνω αυτό χρησιμοποίησα έναν ιστότοπο εφαρμογής box maker, https://boxdesigner.connectionlab.org. Σε αυτόν τον ιστότοπο, στη συνέχεια, εισήγαγα τις τρισδιάστατες διαστάσεις του κουτιού, το πάχος του υλικού μας, τις μονάδες μέτρησης και τον τύπο αρχείου που ήθελα να δημιουργήσει. Οι διαστάσεις των κουτιών ήταν 7,5 x 3 x 5 x 5 ιντσών και χρησιμοποίησα 1/8 σε παχύ ακρυλικό υλικό. Οι μετρήσεις των εγκοπών των αρθρώσεων των δακτύλων διαμορφώθηκαν αυτόματα ώστε να είναι 0,46875 ίντσες. Επέλεξα την έκδοση pdf επειδή αυτός είναι ο τύπος αρχείου που διαβάζει ένας κόφτης λέιζερ και ήθελα να κάνω κάποιες αλλαγές στο adobe στο αρχείο. Άλλαξα τα χρώματα της γραμμής σε κόκκινο, έτσι ώστε ο κόφτης λέιζερ να ξέρει να τα κόβει αντί να χαράζει το σχήμα, και πρόσθεσα ένα ορθογώνιο κουτί με διαστάσεις 3,92 in με 1,56 in σε αυτό που επρόκειτο να είναι το μπροστινό κομμάτι του κουτί. Πρόσθεσα επίσης ένα ορθογώνιο κομμένο με διαστάσεις 1 ίντσες σε 0,5 ιντσών στο δεξί κομμάτι στο κάτω μέρος για να χρησιμεύσει ως άνοιγμα για το καλώδιο συνδεδεμένο στο ξυπνητήρι. Τελευταία πρόσθεσα τρία κυκλικά ανοίγματα στο πάνω μέρος για τους δύο βομβητές και το κουμπί. Τα ανοίγματα του βομβητή είχαν διάμετρο 0,5 in και το άνοιγμα του κουμπιού ήταν 0,375 in.

Βήμα 5: Το βάζουμε μαζί

Το βάζουμε μαζί
Το βάζουμε μαζί

Όταν κόπηκαν όλα τα κομμάτια, χρησιμοποίησα σύριγγα και ακρυλική κόλλα για να το σφραγίσω. Κράτησα τα κομμάτια μαζί και έσταξα την κόλλα ανάμεσα στις εγκοπές για να γίνουν οι πλευρές μαζί, αλλά η κορυφή δεν ήταν κολλημένη.

Βήμα 6: Κωδικός

Εισαγωγή:

Αυτό το έργο κωδικοποιήθηκε χρησιμοποιώντας τη γλώσσα c ++ στο λογισμικό Arduino IDE. Ο μικροελεγκτής που χρησιμοποιήθηκε ήταν το NodeMCU με το ESP8266. Για αυτό το έργο θα χρειαζόμασταν έναν τρόπο για να κρατήσουμε με ακρίβεια τον χρόνο, να ακούγεται ένας βομβητής, ένα σύστημα συναγερμού να προκαλεί τον ήχο του συναγερμού και μια οθόνη που θα εμφανίζει όλη την ώρα και τους χρόνους συναγερμού. Για τον πλήρη κώδικα, ανατρέξτε σε αυτόν τον σύνδεσμο

Εισαγωγή Βιβλιοθηκών

Πρώτα απ 'όλα, πρέπει να εισαγάγουμε τις απαραίτητες βιβλιοθήκες.

#include "RTClib.h"

#include "Wire.h" #include #include #include #include

Εκκίνηση Μεταβλητών

Στη συνέχεια, πρέπει να ξεκινήσουμε μεταβλητές για αργότερα, να εκχωρήσουμε τη διάταξη pin για τα κουμπιά βομβητή, να ρυθμίσουμε το RTC και να ορίσουμε τη διεύθυνση I2C της οθόνης LCD.

LiquidCrystal_I2C LCD (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; const int κουμπί = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"} int starttime; int activetime; int prevoustime = 0; char ahours1 [3]; char αμίνες1 [3]; int ώρα 1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int ώρα2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int ώρα3 = 0; int min3 = 0; int συναγερμός = 0; int ByteReceived; char ReceivedChar? const byte numChars = 32; χαρακτήρα έλαβεChars [numChars];

Ρύθμιση

Στη συνέχεια, πρέπει να έχουμε μια συνάρτηση που ξεκινά όλες τις απαραίτητες διαδικασίες. Σε αυτή τη λειτουργία, πρέπει να ξεκινήσουμε την οθόνη LCD και να εκτυπώσουμε τους αρχικούς χρόνους, να κάνουμε μια μικρότερη λειτουργία που δίνει στον RTC πραγματικό χρόνο, εάν δεν έχει ήδη, και να ξεκινήσουμε τη σειριακή οθόνη.

void setup () {

#ifndef ESP8266 ενώ (! Σειρά); #endif if (! rtc.begin ()) {Serial.println ("Δεν βρέθηκε RTC"); ενώ (1)? } if (rtc.lostPower ()) {Serial.println ("Το RTC έχασε το ρεύμα, αφήνει να οριστεί η ώρα!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd. backlight (); // κάνει το Baklight ON. lcd.clear (); // Διαγράφει την οθόνη LCD lcd.print ("00:00"). // εμφάνιση στην οθόνη LCD μετά τη μεταφόρτωση κώδικα lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Time"); lcd.setCursor (10, 1); lcd.print ("Ξυπνητήρι 1"); lcd.setCursor (0, 3); lcd.print ("Ξυπνητήρι 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Ξυπνητήρι 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (κουμπί, ΕΙΣΟΔΟΣ); // Ορίστε μια καρφίτσα για το κουμπί σιωπής pinMode (buzzer1, OUTPUT). // ορίστε μια καρφίτσα για το pinMode εξόδου του βομβητή (buzzer2, OUTPUT); // ορίστε μια καρφίτσα για την έξοδο βομβητή Serial.begin (9600); Serial.println ("Χρόνος εισαγωγής συναγερμών σε μορφή HHMM χωρίς κενό μεταξύ συναγερμών"); ώρα έναρξης = millis ()/1000; }

Λήψη Δεδομένων

Τώρα, πρέπει να είμαστε σε θέση να λαμβάνουμε τους χρόνους συναγερμού. Για να γίνει αυτό, δημιουργήσαμε μια συνάρτηση για να λαμβάνουμε τα δεδομένα από τη σειριακή οθόνη και να τα αποθηκεύουμε σε έναν πίνακα.

void recvWithEndMarker () {

στατικό int ndx = 0; String timein = Serial.readString (); για (ndx = 0; timein [ndx]; ndx ++) {ReceChars [ndx] = timein [ndx]; } ReceChars [ndx] = '\ 0'; Serial.print (λάβει Chars); }

Ρύθμιση συναγερμών

Το επόμενο βήμα είναι η δυνατότητα ρύθμισης συναγερμών. Εδώ είναι ο κωδικός για το ξυπνητήρι 1. Για το ξυπνητήρι 2 και 3 η ίδια διαδικασία επαναλήφθηκε με λίγες αλλαγές αριθμών.

/* Συναγερμός 1*/

recvWithEndMarker (); int h, m; για (h = 0; h <2; h ++) {ahours1 [h] = έλαβεChars [h]; } για (m = 2; m <4; m ++) {αμίνες1 [m-2] = έλαβεChars [m]; } ahours1 [h] = '\ 0'; αμίνες1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); ώρα1 = άτοι (ώρες 1); min1 = atoi (amins1); Serial.print (ώρα 1); Serial.print (min1);

Buzzer/Button

Με αυτό, πρέπει να κάνουμε τον βομβητή να σβήσει όταν ο πραγματικός χρόνος και ο χρόνος συναγερμού είναι ίσοι. Επίσης σε αυτό το βήμα κάνουμε ένα κουμπί snooze like που σταματά το βομβητή ενώ το κρατάτε.

/ * Κουμπί σιωπής */

int σιωπή? int β? b = digitalRead (2); εάν (b == LOW) {σιωπή = 1; } else {σιωπή = 0; } / * Έναρξη συναγερμού * / εάν (ώρες == ώρα1 && λεπτά == min1) {συναγερμός = 1; } else if (ώρες == ώρα2 && λεπτά == min2) {συναγερμός = 1; } else if (ώρες == ώρα3 && λεπτά == min3) {συναγερμός = 1; } else {alarm = 0; σιωπή = 0; } if (ξυπνητήρι == 1 && σίγαση == 0) {τόνος (buzzer1, 4000, 1000); τόνος (buzzer2, 4000, 1000). καθυστέρηση (1000)? noTone (buzzer1); noTone (buzzer2); καθυστέρηση (1000)? }

Χρόνοι εκτύπωσης

Τέλος, πρέπει να εκτυπώσουμε τους χρόνους συναγερμού και τον πραγματικό χρόνο στην οθόνη LCD.

DateTime now = rtc.now ();

int ώρες = (τώρα. ώρα ()); int mins = (now.minute ()); / * Timeρα συναγερμού σε μορφή 00:00 */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (αμίνες2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * Χρόνος εμφάνισης από RTC */ lcd.setCursor (0, 0); lcd.print (ώρες) lcd.print (":"); lcd.print (λεπτά);

Βήμα 7: Ηλεκτρονικά

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ

Υπάρχουν πολλά κομμάτια στα ηλεκτρονικά αυτού του έργου, όπως φαίνεται στο τιμολόγιο των υλικών. Η Πρώτη εικόνα είναι ένα σχηματικό σχήμα των τελικών ηλεκτρονικών έργων. Η δεύτερη εικόνα είναι το τελευταίο μας ηλεκτρονικό σχέδιο. Η Τρίτη εικόνα είναι του έργου μας εν μέσω του δεύτερου πρωτοτύπου.

Για να ξεκινήσετε, συνδέστε το NodeMCU στο μακρινό άκρο του breadboard σας. Στη συνέχεια, θα χρειαστεί να συνδέσετε όλα τα άλλα ηλεκτρονικά σας στο NodeMCU και το breadboard. Ξεκινήστε συνδέοντας την οθόνη LCD με τις ακίδες D1 για SCL και D2 για SDA. Η οθόνη LCD θα επιτρέψει στον χρήστη να δει την τρέχουσα ώρα και τους καθορισμένους χρόνους συναγερμού. Τώρα βάλτε ένα καλώδιο να συνδέσει τους βομβητές σας στις ακίδες D3 και D6. Οι βομβητές θα επιτρέψουν στον συναγερμό να ειδοποιήσει τον χρήστη όταν συμπληρωθεί η καθορισμένη ώρα. Τώρα πρέπει να επισυνάψετε ένα κουμπί για να επιτρέψετε τη διακοπή του συναγερμού. Συνδέστε αυτό το κουμπί στην καρφίτσα D4. Τώρα θα συνδέσετε το ρολόι σας σε πραγματικό χρόνο στο breadboard. Συνδέστε το ρολόι σε πραγματικό χρόνο, ώστε να χρησιμοποιεί τις ίδιες ακίδες SDA και SCL που χρησιμοποιούνται για την οθόνη LCD.

Βήμα 8: Τελικό

Τελικός
Τελικός

Εάν έχετε ακολουθήσει τις πληροφορίες που δίνονται το έργο σας μπορεί να μοιάζει με την παραπάνω εικόνα. Σας ευχόμαστε καλή τύχη στις προσπάθειές σας να αναδημιουργήσετε αυτό το έργο και όταν ολοκληρώσετε το έργο σας, σας ενθαρρύνουμε να μοιραστείτε φωτογραφίες και παρατηρήσεις μαζί μας στα σχόλια. Ευχαριστώ και καλή επιτυχία συνάδελφοι Δημιουργοί.

Συνιστάται: