תוכן עניינים:

שעון שעון ארדואינו/שקיעה: 15 צעדים
שעון שעון ארדואינו/שקיעה: 15 צעדים

וִידֵאוֹ: שעון שעון ארדואינו/שקיעה: 15 צעדים

וִידֵאוֹ: שעון שעון ארדואינו/שקיעה: 15 צעדים
וִידֵאוֹ: יד רובוטית "מרגישה" 2024, יולי
Anonim
שעון שעון Arduino דמדומים/שחר
שעון שעון Arduino דמדומים/שחר

סיכום:

טיימר מבוסס Arduino יכול להחליף אור אחד של 220V בשעת בין ערביים, שחר או זמן מוגדר.

מבוא:

חלק מהאורות בבית שלי נדלקים אוטומטית עם רדת החשכה, עד לשעה שנקבעה מראש או עד עלות השחר (כל הלילה).

מיקום הנורות אינו מאפשר שימוש בחיישן אור. טיימני השעון הרגילים הזמינים נדלקים בזמן מסוים. כדי להפעיל את הערב, יש צורך להתאים את תכנית הטיימר באופן קבוע.

כאתגר נחמד, החלטתי לבנות במקום זאת טיימר עצמאי מבוסס Arduino בהתאמה אישית. הוא משתמש בשעון בזמן אמת ובספריית Dusk2Dawn כדי לקבוע את השעה בה יש להדליק או לכבות את האורות. המארז של טיימר זה מודפס בתלת מימד וניתן למצוא אותו ב- Thingiverse. קוד Arduino לפרויקט זה ניתן למצוא ב- GitHub.

ביצירת הטיימר הזה קיבלתי השראה מעיצובים ומעגלים רבים באינטרנט. אני מודה לכל התורמים שלא מוזכרים במפורש.

לצורך קריאה דיאגרמות חלקיות מוצגות בשלבים במידת הצורך, במקום תרשים מעגל מלא.

פתרונות חלופיים:

במקום טיימר עצמאי, ישנם פתרונות רבים שבהם מערכת אוטומציה ביתית חכמה מנווטת את האורות. המטרה שלי הייתה לקבל פתרון עצמאי, שאינו תלוי בקישוריות WIFI (או אחרת).

הגבלות:

הקוד שסופק בפרויקט זה כלל יישום שינויים בקיץ המבוסס על מערכת אירופה לשמירת הקיץ.

שלב 1: רשימת חלקים וכלים

רשימת חלקים וכלים
רשימת חלקים וכלים

חלקים:

סך עלויות החלקים (לא כולל הדפס תלת מימד) כ- € 30, -.

  • Arduino Nano V3 (תואם) ללא כותרות
  • ספק כוח 5V 0.6A (34 x 20 x 15 מ"מ)
  • ממסר מצב מוצק 5V - פעיל נמוך - 2A 230VAC
  • שעון בזמן אמת DS3231 (קטן)
  • תצוגת OLED בגודל 0.96 אינץ 'SPI 128*64 פיקסלים
  • מקודד סיבובי - EC11 - 20 מ"מ
  • ידית 6 מ"מ פיר 15 מ"מ * 17 מ"מ
  • לוח מעגלים מודפס,
  • 4* ברגים M3x25 מ"מ
  • מארז מודפס בתלת מימד
  • צינורות לכווץ חום
  • חוטים
  • בלוק מסוף בורג (לחיבור חוטים ניטרליים)

כלים נדרשים:

  • מלחם
  • חוט הלחמה
  • משאבה עם הלחמה
  • חשפניות חוטים
  • מִספָּרַיִם
  • מדפסת תלת מימד (להדפסת מארז)
  • מגוון כלים קטנים

אַזהָרָה

מעגל זה עובד על 230 וולט AC, ואם אינך רגיל לעבוד עם מתח חשמלי או שאין לך ניסיון רב בעבודה עם מתח חשמל 230 וולט, אנא התרחק מפרויקט זה

אני לא לוקח אחריות על כל אובדן או נזק הנובע ישירות מתוך או כתוצאה ממעקב אחר פרויקט זה

תמיד מומלץ לנקוט בזהירות ובזהירות נאותות בעת עבודה עם רשת AC

שלב 2: הכנת תצוגת OLED ושעון בזמן אמת

הכן תצוגת OLED ושעון בזמן אמת
הכן תצוגת OLED ושעון בזמן אמת

המארז המודפס בתלת מימד מיועד לגודל מינימלי. כתוצאה מכך, יש להסיר את כותרות תצוגת OLED ושעון בזמן אמת.

לקראת השלב הבא, נקה כל הלחמה שנותרה מהחורים בעזרת משאבת ההלחמה.

שלב 3: הכינו מקודד רוטרי

הכינו מקודד רוטרי
הכינו מקודד רוטרי

למקודד הסיבובי יש מחברים דקיקים. כדי למנוע נזק, הרכיב פיסת לוח מודפס למקודד.

בתמונה גם חיבור הקרקע (למעלה מימין ולמטה באמצע) כבר מוכן.

הערה: ודא שהמקודד הסיבובי עם מעגל מודפס מתאים למארז מבלי לגעת בארדואינו. ייתכן שיהיה צורך לטחון את הלוח המודפס בכדי לקבל התאמה הדוקה.

שלב 4: מארז

קַרפִּיף
קַרפִּיף
קַרפִּיף
קַרפִּיף

הדפס את שלושת חלקי המארז בעזרת מדפסת תלת מימד. עיין בהוראות בנושא Thingiverse.

שלב 5: השבת את LED Power Arduino (אופציונלי)

השבת את LED Power Arduino (אופציונלי)
השבת את LED Power Arduino (אופציונלי)

כדי למנוע הזרקה ירוקה בטיימר, ניתן לבטל את נורית ההפעלה של ה- Arduino.

שים לב ששינוי זה הוא אופציונלי.

השינוי ב- Arduino Nano מורכב מהסרת הנגד שליד החשמל (ראה עיגול אדום בתמונה).

שלב 6: ספק כוח + ממסר מצב מוצק

ספק כוח + ממסר מצב מוצק
ספק כוח + ממסר מצב מוצק

בשלב זה משולבים אספקת החשמל וממסר מצב מוצק בחלק התחתון של המארז.

חיבורים בין ספק הכוח לבין הממסר נעשים בתחתית רכיבים אלה. בלוק מסוף הבורג של הממסר ישמש לחיבור ל- Arduino.

הערה: בעת יצירת חיבורים, ודא שחורי ההרכבה של ממסר המצב המוצק נשמרים פנויים.

  • הלחם חוט חיבור בין ממסר מצב מוצק A1 לאחד מחיבורי AC של ספק הכוח
  • הלחם חוט לחיבור AC השני של ספק הכוח (זה יחובר לבלוק מסוף הבורג הנייטרלי בשלב 7)
  • הלחמה חוט בין ספק הכוח -Vo לממסר DC-
  • הלחמה חוט לחיבור ספק כוח +Vo לממסר DC +

הערה: יתכן שיידרש לקצר את מוליכי אספקת החשמל והממסר כדי להתאים את המתחם.

שלב 7: Arduino Nano + ספק כוח + ממסר מצב מוצק

Arduino Nano + ספק כוח + ממסר מצב מוצק
Arduino Nano + ספק כוח + ממסר מצב מוצק

בשלב זה, ה- Arduino Nano מחובר לאספקת החשמל ולממסר מצב מוצק.

  • חותכים שני חוטים באורך של כ -70 מ"מ. רצועת בידוד 30 מ"מ בצד אחד, ו -4 מ"מ בצד השני.
  • הלחם את הצד עם בידוד מופשט 30 מ"מ ל- Arduino +5V ו- GND, כשהחוט נדבק
  • חותכים שני צינורות לכווץ חום באורך 20 מ"מ והרכיבו אותם על החלק המופשט 25 מ"מ. זה מבודד את החוטים עד החיבור עם בלוק מסוף בורג הר DC+ ו- DC- של ממסר מצב מוצק.
  • שים לב שהחוטים עבור GND ו- +5V צריכים לעבור כדי להתחבר כראוי לבלוק מסוף בורג הממסר.
  • חותכים חוט באורך של כ -40 מ"מ ופסים 4 מ"מ של בידוד משני הקצוות. הלחם צד אחד לחיבור A2 בצד האחורי של הארדואינו, וחבר את הצד השני לחיבור CH1 של בלוק מסוף הבורג המורכב ממצב מוצק.

אַזהָרָה

ה- Arduino מופעל ישירות מאספקת החשמל היציבה +5V במקום להשתמש בווסת הכוח הפנימי של Arduino. לכן, לא בטוח לחבר USB כאשר הארדואינו מקבל חשמל מאספקת החשמל.

נתק תמיד את רשת החשמל 230VAC לפני השימוש בחיבור USB Arduino.

שלב 8: Arduino Nano + שעון בזמן אמת

Arduino Nano + שעון בזמן אמת
Arduino Nano + שעון בזמן אמת

בשלב זה השעון בזמן אמת מחובר לארדואינו, בין השאר באמצעות הכבלים שהוכנו בשלב הקודם.

  • הלחם את החוט שמגיע מ- Arduino GND (מחובר גם ל- DC- של הממסר) ל- '-' של השעון בזמן אמת.
  • הלחם את החוט שמגיע מ- Arduino+5V (מחובר גם ל- DC+של הממסר) ל- '+' של השעון בזמן אמת.
  • חותכים שני חוטים באורך של כ -40 מ"מ ומפשיטים 4 מ"מ של בידוד משני הקצוות.
  • הלחמה חוט בין Arduino A4 לשעון D בזמן אמת (SDA).
  • הלחמה חוט בין Arduino A5 לשעון C בזמן אמת (SCL).
  • צור את חוטי השעון בזמן אמת כדי לוודא שהם לא מפריעים למקודד הסיבוב. לשם כך, החוטים צריכים להיות בתחתית המארז.

שלב 9: חבר את תצוגת OLED

חבר את תצוגת OLED
חבר את תצוגת OLED

בשלב זה נוספה תצוגת OLED SPI ל- Arduino.

  • חותכים 2 חוטים באורך 65 מ"מ ומפשיטים 4 מ"מ של בידוד משני הקצוות.
  • הלחם חוט לחיבור ה- GND של תצוגת OLED. הלחם חוט זה לחוט המבודד צינורות החום המגיעים מה- Arduino GND (עיין לשלב 4) וחבר את שני החוטים לבלוק מסוף הבורג בעל הרכבה DC של ממסר מצב מוצק.
  • הלחם חוט לחיבור VCC של תצוגת OLED. הלחם חוט זה לחוט המבודד של צינורות החום המגיעים מה- Arduino + 5V (עיין בשלב 4) וחבר את שני החוטים לבלוק מסוף בורג DC + mount של ממסר מצב מוצק.
  • חותכים 5 חוטים באורך 65 מ"מ ומפשיטים 4 מ"מ של בידוד משני הקצוות.
  • הלחמה חוט לחיבור D0 (CLK) ל- Arduino D10
  • הלחמה חוט לחיבור D1 (MOSI / DATA) ל- Arduino D9
  • הלחמה חוט לחיבור RES (RT) ל- Arduino D8
  • הלחמה חוט לחיבור DC ל- Arduino D11
  • הלחמה חוט לחיבור CS ל- Arduino D12

הערה: סדר חוטי התצוגה אינו הגיוני. זוהי התוצאה של שימוש ראשון בדוגמת Adafruit, ולאחר מכן שינוי החיבורים מכיוון ששימוש ב- D13 גורם לנורית אדומה על הארדואינו כל הזמן.

חֲלוּפָה

אפשר להשתמש בסדר 'רגיל' לחיבורי SPI. לשם כך, יש להתאים את הגדרת הפלט הדיגיטלי של תוכנית Arduino ב- oledcontrol.cpp בהתאם:

// שימוש בתוכנת SPI

// הגדרות סיכה

#הגדר CS_PIN 12

#הגדר RST_PIN 8

#הגדר DC_PIN 11

#הגדר MOSI_PIN 9

#הגדר CLK_PIN 10

שלב 10: מקודד סיבובי

מקודד רוטרי
מקודד רוטרי

התרשים מציג את החיבורים של הארדואינו למקודד הסיבוב (מקודד מלמעלה).

  • חותכים 4 חוטים של 45 מ"מ ומפשיטים 4 מ"מ של בידוד משני הקצוות.
  • חבר את Arduino GND למחברים האמצעיים הימניים והתחתונים העליונים של המקודד
  • חבר את Arduino D2 לשמאל התחתון של המקודד
  • חבר את Arduino D3 מימין למטה של המקודד
  • חבר את Arduino D4 בצד שמאל למעלה של המקודד

שלב 11: התקנה במארז

התקנה במארז
התקנה במארז

התקן את כל האלקטרוניקה בחלק התחתון של המארז:

  • החלק את הארדואינו על החריץ האנכי
  • החלק את השעון בזמן אמת בתא התחתון
  • החלק את ספק הכוח והממסר בתא העליון, וודא שהממסר יושב על תושביו.

שלב 12: חיבור לרשת / אור שיש להחליף

חיבור לרשת / אור שיש להחליף
חיבור לרשת / אור שיש להחליף
חיבור לרשת / אור שיש להחליף
חיבור לרשת / אור שיש להחליף

אַזהָרָה

וודא כי יש לנקוט בזהירות ובזהירות בעת עבודה עם רשת AC, וודא כי רשת החשמל מנותקת

אני לא לוקח אחריות על כל אובדן או נזק הנובע ישירות מתוך או כתוצאה ממעקב אחר פרויקט זה

  • חבר את שלב AC החשמל לבלוק מסוף הבורג A1 (משמאל) של הממסר.
  • חבר את שלב האור שיש להחליף לבלוק מסוף הבורג B1 (מימין) של הממסר.
  • השתמש בלוק מסוף בורג נפרד כדי לחבר את החוט הנייטרלי של רשת החשמל AC, את החוט הנייטרלי האור ואת החוט הנייטרלי של ספק הכוח.
  • להקלת המתח, הרכיב עטיפת עניבה סביב כל אחד מכבלי החשמל.

שלב 13: סיום המארז

סיום המארז
סיום המארז

בשלב זה ההרכבה במארז הושלמה

  • החלק את תצוגת OLED דרך חור ההרכבה לתצוגה בחלק האמצעי של המארז.
  • החלק את המקודד הסיבוב דרך החור בחלק האמצעי, וודא שהקו נגד סיבוב מסתדר. הרכבו את המקודד הסיבובי באמצעות מכונת הכביסה והאום הכלולים.
  • הרכיבו את החלק העליון של המארז וסגרו את המארז על ידי הרכבת ארבעת הברגים בגודל M3x25 מ"מ מלמטה.

שלב 14: תכנות הארדואינו

אַזהָרָה

ה- Arduino מופעל ישירות מאספקת החשמל היציבה +5V במקום להשתמש בווסת הכוח הפנימי של Arduino. לכן, לא בטוח לחבר USB כאשר הארדואינו מקבל חשמל מאספקת החשמל.

נתק תמיד את רשת החשמל 230VAC לפני השימוש בחיבור USB Arduino.

אחזר את תוכנית הטיימר של Arduino מ- GitHub.

תוכנית זו משתמשת ב- Arduino IDE, שניתן להשיג כאן.

התוכנית משתמשת בספריות הנוספות הבאות:

SSD1303Ascii

ספריית חוטי ארדואינו

שים לב שספריית dusk2dawn משמשת גם היא, אך כלולה כקוד עקב שינוי בממשק שלה.

כדי להבטיח חישוב נכון בין ערביים / עלות השחר, יש להגדיר קו אורך ורוחב ואזור זמן.

כפי שמתואר בדוגמה dusk2dawn, דרך קלה למצוא את קו האורך והרוחב לכל מיקום היא למצוא את המקום במפות Google, ללחוץ לחיצה ימנית על המקום על המפה ולבחור "מה יש כאן?". בחלק התחתון תראה כרטיס עם הקואורדינטות.

קו האורך והרוחב מקודדים בתוכנית, בשורה 19 ו -20 של Dusk2Dawn.cpp:

/* יש להגדיר כאן את קו הרוחב ואורך המיקום שלך.

* * רמז: דרך קלה למצוא את קו האורך והרוחב לכל מיקום היא * למצוא את המקום במפות Google, לחץ באמצעות לחצן העכבר הימני על המקום במפה ו * בחר "מה יש כאן?". בחלק התחתון תראה כרטיס עם הקואורדינטות *. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // אוטרכט

אזור הזמן מקודד גם בשורה Dusk2Dawn.cpp 24. כברירת מחדל הוא מוגדר להולנד (GMT + 1):

/* הזן את אזור הזמן שלך (קיזוז ל- GMT) כאן.

*/ #define TIMEZONE 1

כאשר מתכנתים את הארדואינו בפעם הראשונה, יש לאתחל את זיכרון EEPROM. לשם כך, שנה קו 11. timer כדי לבצע אתחול EEPROM:

// שנה לאמת לתכנות בפעם הראשונה

#הגדר INITIALIZE_EEPROM_MEMORY שקר

העלה את התוכנית ל- Arduino והפעל את ה- Arduino.

השבת אתחול EEPROM והעלה את התוכנית ל- Arduino שוב. הטיימר יזכור כעת את הגדרות זמן המעבר בעת אתחול מחדש.

שלב 15: הגדרת הזמן והחלפת הזמנים

מושגי אינטראקציה של משתמשים:

  • לחיצה קצרה משמשת לאישור בחירות. יתר על כן, במסך הטיימר הראשי לחיצה קצרה מפעילה או מכבה את האור.
  • לחיצה ארוכה משמשת לכניסה לתפריט ממסך הטיימר הראשי. בכל מקום בתפריט, לחיצה ארוכה תחזור למסך הטיימר הראשי.
  • '>' סמן בחירה. סמן זה מציין את האפשרות שנבחרה בתפריט.

מסך טיימר ראשי

מסך הטיימר הראשי מציג:

יום השבוע סו

השעה הנוכחית 16:00

מצב הטיימר הנוכחי וזמן המעבר הבא טיימר כבוי עד השעה 17:12

שחר ושקיעה שחר 08:05 דמדומים 17:10

קביעת השעה הנכונה

לחץ לחיצה ארוכה כדי להיכנס לתפריט. האפשרויות הבאות מוצגות:

גב הגדר זמן תוכנית יום שבוע תוכנית שבוע שבוע אפשרויות

בחר זמן מוגדר כדי להגדיר את התאריך והשעה של השעון בזמן אמת. הזן את הערכים הנכונים עבור:

YearMonthDayTime

הטיימר קובע אוטומטית את יום השבוע. החלפת שעון הקיץ מתבצעת גם היא באופן אוטומטי. שעון הקיץ מיושם עבור אזור הזמן האירופי בלבד.

הגדרת תוכנית הטיימר

הטיימר כולל 2 תוכניות, אחת לימי שבוע, אחת לסוף שבוע. שימו לב שיום שישי נחשב לחלק מסוף השבוע, האורות יכולים להישאר דולקים עוד קצת.

בכל טיימר יש רגע הפעלה וכיבוי. הרגע יכול להיות:

  • זמן: הזמן שצוין בדיוק
  • שחר: החלפה בהתבסס על זמן השחר המחושב
  • דמדומים: מתג המבוסס על זמן הדמדומים המחושב

לדמדומים ושחר אפשר להזין ערך תיקון של 59 דקות לפני או אחרי.

דוגמאות:

כדי להדליק אור כל הלילה, בחר הפעלה בשעה (דמדומים + 10 דקות), כבה בשעה (עלות השחר - 10 דקות)

כדי להדליק אור בערב, בחר הפעלה בשעת בין ערביים, כבה בזמן: 22:30.

אפשרויות

במסך האפשרויות ניתן להגדיר פסק זמן להחלפת המסך.

כאשר המסך כבוי, לחיצה על כפתור המקודד הסיבוב תחזור למסך הטיימר הראשי.

מוּמלָץ: