תוכן עניינים:
- שלב 1: סיעור מוחות של הרעיון
- שלב 2: שרטוט וחומרים
- שלב 3: יצירת מעטפת החיצונית
- שלב 4: חיתוך בלייזר של המעטפת החיצונית
- שלב 5: להרכיב אותו
- שלב 6: קוד
- שלב 7: אלקטרוניקה
- שלב 8: סופי
וִידֵאוֹ: חבר בוקר: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
יש אנשים שיש להם לוחות זמנים עמוסים מאוד, מה שמקל על שכחת דבר או שניים. עם שעון מעורר זה אתה יכול להגדיר כמה אזעקות כדי לשמור אותך על לוח הזמנים. השעון פועל 24 שעות וכל מה שאתה צריך לעשות הוא לתכנת אותו לצאת בזמנים השונים של היום המתאימים ללוח הזמנים שלך. כאשר אתה עושה זאת הזמנים שהגדרת יופיעו על מסך LCD, כך שתוכל לבדוק אם הם נכונים ולשמש כתזכורת נוספת.
שלב 1: סיעור מוחות של הרעיון
כשניסינו לפתור את הבעיה השתמשנו בשיטת עצם הדג כדי להמציא רעיון והביאו עם השעון המעורר שלנו.
שלב 2: שרטוט וחומרים
במהלך שלב זה ניסינו לערוך רשימה של כל הדברים שחשבנו שנצטרך עבור האלקטרוניקה והמעטפת החיצונית. לאחר מכן העלנו סקיצה של איך נרצה שהשעון המעורר ייראה וכיצד נרכיב את המעטפת החיצונית שלו.
שלב 3: יצירת מעטפת החיצונית
לאב טיפוס הראשון רק רציתי לראות כיצד מפרקי האצבע יתאימו זה לזה, אז השתמשתי בקופסת נעליים ולא השתמשתי במידות מדויקות.
שלב 4: חיתוך בלייזר של המעטפת החיצונית
עבור אב הטיפוס השני רציתי לקבל מדידות מדויקות ונאלצתי ליצור קובץ pdf לשלוח לחותך הלייזר. לשם כך השתמשתי באתר יישומים של יוצר תיבות, https://boxdesigner.connectionlab.org. באותו אתר נכנסתי לאחר מכן למידות התלת-ממדיות של הקופסה, עובי החומר שלנו, יחידות המדידה ואיזה סוג קובץ אני רוצה שהוא יוצר. מידות הקופסאות היו 7.5 אינץ 'x 3 אינץ' x 5 אינץ 'והשתמשתי בחומר אקרילי עבה 1/8. מדידות החריצים של מפרק האצבע הוגדרו אז באופן אוטומטי להיות 0.46875 אינץ '. בחרתי בגרסת ה- pdf מכיוון שזה סוג הקובץ שחותך לייזר קורא ורציתי לבצע כמה שינויים ב- Adobe בקובץ. שיניתי את צבעי הקו לאדום, כך שחותך הלייזר יידע לחתוך אותם במקום לחרוט את הצורה, והוספתי קופסת מלבן עם מידות של 3.92 אינץ על 1.56 אינץ 'על מה שעומד להיות החלק הקדמי של קופסא. הוספתי גם מלבן חתוך בגודל 1 אינץ על 0.5 אינץ 'על החלק הימני בצד התחתון כדי לשמש כפתח לחוט המחובר לשעון המעורר. בפעם האחרונה הוספתי שלושה פתחים עגולים בחלק העליון של שני הבאזמים והכפתור. לפתחי הזמזם היה קוטר של 0.5 אינץ 'ופתח הכפתורים היה 0.375 אינץ'.
שלב 5: להרכיב אותו
כאשר כל החלקים נחתכו השתמשתי במזרק ודבק אקרילי כדי לאטום אותו יחד. החזקתי את החלקים יחד וטפטפתי את הדבק בין החריצים כדי שהצדדים יחדיו, אך החלק העליון לא הודבק כלפי מטה.
שלב 6: קוד
מבוא:
פרויקט זה צופן באמצעות השפה c ++ בתוכנת Arduino IDE. בקר הבקרה ששימש היה NodeMCU עם ה- ESP8266. לפרויקט זה נזדקק לדרך לשמור במדויק על זמן, על זמזם להישמע, מערכת אזעקה לגרום לאזעקה לזמזם ומסך להצגת כל הזמן וזמני האזעקה. לקוד המלא עיין בקישור הזה
ייבוא ספריות
ראשית, עלינו לייבא את הספריות הדרושות.
#כלול "RTClib.h"
#כלול "Wire.h" #כולל #כלול #כלול #כלול
יוזם משתנים
לאחר מכן עלינו ליזום משתנים להמשך, להקצות את פריסת הסיכה לכפתורי הבאזר, להגדיר את ה- 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; int activetime; int prevoustime = 0; char ahours1 [3]; char amins1 [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 hour3 = 0; int min3 = 0; אזעקה int = 0; int ByteReceived; צ'אר קיבלהצ'ר; const byte numChars = 32; char receivedChars [numChars];
להכין
לאחר מכן, עלינו לקבל פונקציה המתחילה את כל התהליכים הדרושים. בפונקציה זו, עלינו להפעיל את ה- LCD ולהדפיס את זמני ההתחלה, ליצור פונקציה קטנה יותר שנותנת ל- RTC בזמן אמת אם אין לו את זה כבר ולהפעיל את הצג הטורי.
הגדרת בטל () {
#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 ("זמן"); 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 (כפתור, INPUT); // הגדר סיכה ללחצן ההשתקה pinMode (זמזם 1, OUTPUT); // הגדר סיכה עבור pinMode פלט זמזם (buzzer2, OUTPUT); // הגדר סיכה לפלט זמזם Serial.begin (9600); Serial.println ("זמן קלט של אזעקות בפורמט HHMM ללא מקום בין אזעקות"); זמן התחלה = מיליס ()/1000; }
מקבל מידע
כעת, עלינו להיות מסוגלים לקבל את זמני האזעקה. לשם כך יצרנו פונקציה לקבל את הנתונים מהצג הטורי ולאחסן אותם במערך.
void recvWithEndMarker () {
סטטי int ndx = 0; String timein = Serial.readString (); עבור (ndx = 0; timein [ndx]; ndx ++) {receivedChars [ndx] = timein [ndx]; } receivedChars [ndx] = '\ 0'; Serial.print (receivedChars); }
הגדרת אזעקות
השלב הבא הוא הגדרת אזעקות. להלן הקוד לאזעקה 1. לאזעקה 2 ו -3 אותו תהליך חזר על עצמו עם מספר שינויים במספר.
/* אזעקה 1*/
recvWithEndMarker (); int h, m; עבור (h = 0; h <2; h ++) {ahours1 [h] = receivedChars [h]; } עבור (m = 2; m <4; m ++) {amins1 [m-2] = receivedChars [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (שעה 1); Serial.print (amins1); שעה 1 = atoi (ahours1); min1 = atoi (amins1); Serial.print (שעה 1); Serial.print (min1);
זמזם/כפתור
עם זאת, עלינו לגרום לזמזם להידלק כשזמן אמת וזמן אזעקה שווים. כמו כן בשלב זה אנו עושים לחצן דמוי נודניק שעוצר את הזמזם בזמן שאתה מחזיק אותו.
/ * לחצן שתיקה */
int שקט; int b; b = digitalRead (2); אם (b == LOW) {שתיקה = 1; } אחר {שתיקה = 0; } / * התחל אזעקה * / אם (שעות == שעה 1 && דקות == דקות 1) {alarm = 1; } אחרת אם (שעות == שעה 2 && דקות == דקות 2) {alarm = 1; } אחרת אם (שעות == שעה 3 && דקות == דקות 3) {alarm = 1; } אחר {alarm = 0; שתיקה = 0; } אם (אזעקה == 1 && שתיקה == 0) {צליל (זמזם 1, 4000, 1000); טון (זמזם 2, 4000, 1000); עיכוב (1000); noTone (זמזם 1); noTone (זמזם 2); עיכוב (1000); }
זמני הדפסה
לבסוף, עלינו להדפיס את זמני האזעקה וזמן אמת למסך ה- LCD.
DateTime עכשיו = rtc.now ();
int שעות = (now.hour ()); int דקות = (now.minute ()); / * זמן אזעקה בפורמט 00:00 */ lcd.setCursor (10, 0); lcd.print (שעה 1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amins2); 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 שלך לקצה הרחוק של לוח הלחם שלך. לאחר מכן יהיה עליך לחבר את כל האלקטרוניקה האחרת שלך ל- NodeMCU ולוח הלחם. התחל על ידי חיבור מסך ה- LCD שלך לסיכות D1 עבור SCL ו- D2 עבור SDA. ה- LCD יאפשר למשתמש לראות את השעה הנוכחית ואת זמני האזעקה שנקבעו. עכשיו יש חוט לחבר את הבאזר שלך לסיכות D3 ו- D6. הבאזז יאפשר לאזעקה להתריע בפני המשתמש כאשר הזמן שהוגדר הגיע. כעת עליך לצרף כפתור כדי לאפשר לעצור את האזעקה. צרף לחצן זה להצמיד D4. כעת תחבר את השעון בזמן אמת ללוח הלחם. חברו את השעון בזמן אמת כך שהוא משתמש באותם סיכות SDA ו- SCL המשמשות לתצוגת ה- LCD.
שלב 8: סופי
אם עקבת אחר המידע שניתן הפרויקט שלך עשוי להיראות כמו התמונה למעלה. אנו מאחלים לך בהצלחה בניסיונות לשחזר את הפרויקט הזה וכאשר סיימת את הפרויקט אנו ממליצים לך לשתף אותנו בתמונות ובהערות בתגובות. תודה ובהצלחה יוצרים.
מוּמלָץ:
חבר את ה- Magicbit שלך ללוח הדברים: 3 שלבים
חבר את ה- Magicbit שלך ללוח הדברים: בפרויקט זה אנו נשלח נתונים מחיישנים המחוברים ל- magicbit אותם נוכל להציג באופן ויזואלי על לוח הדברים
תחתוני בוקר טוב: 11 שלבים (עם תמונות)
תחתוני בוקר טוב: התחתונים של בוקר טוב הם זוג תחתונים הרוטטים כדי להעיר אותך בבוקר. פרויקט זה הוא המשך המאמצים השוטפים שלי לקידום תחום התחתונים האלקטרוניים. שלא כמו כל הפרויקטים הקודמים שלי שמשתמשים במעגלים מורכבים
שגרת בוקר בבוקר (לילדים): 7 שלבים
שגרת בוקר בבוקר (לילדים): בסוף השבוע, בן דודו הקטן נשאר בביתנו מכיוון שהוריו לא היו בבית, כשחיים איתו במשך יומיים שמתי לב שקשה לו לזכור כל שלב בעת הכביסה. את פניו לאחר שהוא מתעורר. אז החלטתי לבנות אותו
אור בוקר ולילה: 4 שלבים
מנורת בוקר ולילה: זהו מנורת נייר תוצרת עצמית המשמשת הן בבוקר והן בלילה
רובוט הזכוכית בארבע לפנות בוקר: 8 שלבים (עם תמונות)
רובוט הזכוכית בארבע לפנות בוקר: כמה אנשים שאלו אותי מאיפה אני משיג את הרעיונות שלי. אני לא בטוח, אבל אני יודע מתי אני מקבל אותם. אני לא יודע למה, אבל נראה שאני מקבל הרבה מהרעיונות שלי בזמנים לא נוחים - באמצע השיעור, הליכה הביתה בחושך, או, לעתים קרובות, אני מתעורר ב