פרסומת

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

אם הכנת שעון מעורר לזריחה זה קצת יותר מדי עבורך, בדוק את ה- iPhone ו אפליקציות אנדרואיד השתמש באפליקציות אלה כדי לעזור לך לישון טוב יותר [Android ו- iOS]אחרי יום קדחתני, הדבר הטוב ביותר שאתה יכול לעשות הוא להשיג כמות שינה מועילה. תמיד מופיעים מחקרים חדשים שמוכיחים עד כמה באמת שינה חשובה לאדם, ומשפרת ... קרא עוד זה מגלה מתי הכי טוב להעיר אותך בתנועות גוף האם אפליקציה באמת יכולה לעזור לך לישון טוב יותר?תמיד הייתי קצת נסיוני שינה, לאחר שבמשך חלק ניכר מחיי ניהלתי יומן חלומי קפדני ולמדתי ככל יכולתי על שינה בתהליך. ישנם... קרא עוד , מבטיחה שלא תתרחקו מהחלום המדהים ההוא, אלא במקום זאת, תתעוררו ותרגישו בהירים ורעננים - הם באמת עובדים.

מתווה הפרויקט

החלק העיקרי של הפרויקט יהיה כ- 5 מטר אור רצועת LED המונח סביב המיטה. אנו נעביר אותם באמצעות אספקת 12 וולט חיצונית, המועברים באמצעות טרנזיסטורים MOSFET N. ההגדרה לחלק זה תהיה זהה לחלק

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

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

אני אשלב גם פרויקט אור לילה בפרויקט הזה, המגלה תנועה ומפעיל רמה נמוכה דיסקרטית אור מתחת למיטה עם פסק זמן של 3 דקות, נפרד לנורות LED שכן הם יגרמו גם לאשתי וגם אני להתעורר למעלה. התאורה מתחת למיטה תהיה יחידת חשמל מסחרית, כך שאפרוץ ממסר בתוך שקע תקע כדי להפעיל ולכבות את זה. אם אינך מרגיש בנוח לעבוד עם כוח מתח 110-240 וולט בשום פנים ואופן (וזה בדרך כלל כלל טוב), ואז לחבר משדר אלחוטי 433 מגה הרץ עם שקעי מיתוג, כמפורט בתווית פרויקט אוטומציה ביתית של פטל פי ארדואינו מדריך אוטומציה ביתית עם פטל פי וארדואינושוק האוטומציה הביתית מוצף במערכות צריכה יקרות, שאינן תואמות זו את זו ויקרות להתקנה. אם יש לך פטל פי וארדואינו, אתה בעצם יכול להשיג את אותו הדבר ב ... קרא עוד .

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

  • ארדואינו
  • סט פנסי LED RGB LED
  • ספק כוח 12 וולט
  • 3 x טרנזיסטורים MOSFET N (אני משתמש בסוג STP16NF06FP)
  • שקע ממסר וכוח, או שקעים נשלטים אלחוטיים ומשדר מתאים
  • הבחירה שלך באור לילה (חשמל רגיל המופעל עם תקע זה בסדר)
  • חיישן תנועה PIR (HC-SR501), או סונאר של SC-04 (לא יעיל)
  • חיישן אור
  • קוד פרויקט - אך המשך לקרוא כדי לוודא שאתה מבין כיצד להתאים אישית את הכל.

הנה הסכמטי השלם.

מעגל הזריחה-אזעקה

חיווט ממסר

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

עבור החלפת חשמל, הממסר שלך צריך לדרג את המתח - 110 וולט או 240 וולט AC תלוי איפה אתה גר - ויותר מההספק הכולל שאתה עובר. זה בו השתמשתי מחבילת חיישנים זו (הצהרת אחריות: זו החנות שלי) הוא 250VAC / 10Aאז עלינו להיות בטוחים. ממסרים יש א com יציאה, בדרך כלל במרכז, אותה יש לחבר לחוט החי הנכנס לתקע; ואז חבר את המסוף החי לשקע אל לא (בדרך כלל פתוח). לא הייתי צריך לומר לך שלא תעשה את זה כשהוא מחובר לשקע או שאתה הולך למות. אם אתה חושש להתעסק עם הכוח החשמלי, השתמש במקום זאת בשקעים מנותקים אלחוטיים.

חיווט ממסר

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

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

קבלת העיתוי נכון

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

צריך להיות קל להבין את הקוד.

שעון חלל () {if (millis ()> = previousMillis + 86400000) {// חלף יום שלם, אפס את השעון; הקודם מיליס + = 86400000; } currentMillis = millis () - מיליס הקודם; // זה שומר על הנוכחי מילס שלנו זהה בכל יום הנוכחיMinutes = (currentMillis / 1000) / 60; }

פונקצית אור לילה

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

חיישן PIR יכול להיות מעט מוזר אם מעולם לא השתמשת באחד כזה, אם כי חיווט זה לא קשה - תמצא VCC, GND, ו בחוץ מסומן בבירור בגב. יש גם שני נגדים משתנים; זה שמכונה RX קובע טווח (עד כ- 7 מ '), וטקס אחר שכותרתו קובע עיכוב. העיכוב הוא 5 שניות בהגדרה הנמוכה ביותר (לחלוטין נגד כיוון השעון), ומשמעותו שכל תנועה רגעית תפעיל לפחות 5 שניות של מצב "דולק" מהחיישן. עם זאת, זה גם קובע את העיכוב בין מצבים פעילים - כך שאם חמש 5 שניות ולא מתרחשת תנועה זוהה, החיישן ישלח אות נמוכה למשך 5 שניות לפחות, גם אם יש תנועה במהלך זה פרק זמן. אם הגדרת העיכוב מוגדרת ממש בסביבות 30 שניות, זה יכול להיראות כאילו החיישן נשבר.

חיישן pir

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

תאורת לילה בטלה () {// עבודה רק בין שעות האיפוס -> זריחה. if (currentMinutes 

מעורר זריחה

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

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

void sunrisealarm () {// כל שנייה במהלך 30 הדקות המיניאטות צריכה להגדיל את ערך הצבע על ידי: תוספת ציפה = (לצוף) 255 / (30 * 60); // אדום 255, ירוק 255 מעניק לנו צהוב בהירות מלאה אם ​​(currentMinutes> = minutesUntilSunrise) {// זריחה מתחילה! float currentVal = (float) ((currentMillis / 1000) - (minutesUntilSunrise * 60)) * תוספת; Serial.print ("ערך נוכחי לזריחה:"); Serial.println (currentVal); // במהלך הרמפה למעלה, כתוב את הערך הנוכחי של דקות בהארכת בהירות X אם (הנוכחיVal <255) {analogWrite (RED, currentVal); analogWrite (GREEN, currentVal); } אחרת אם (הנוכחיMinutes - minutesUntilSunrise <40) {// ברגע שאנו בבהירות מלאה, המשך להדליק את האורות למשך 10 דקות אנלוגי כתוב יותר (RED, 255); analogWrite (GREEN, 255); } אחר {// לאחר מכן, אנו מפנים אותם בחזרה למצב הכיבוי analogWrite (RED, 0); analogWrite (GREEN, 0); } } }

החסרונות ושדרוגים עתידיים

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

אזעקת זריחה

תוך כדי ביצוע פרויקט זה, נתקלתי בהרבה בעיות התמודדות עם מספרים גדולים, כך שאם אתה מתכנן לשנות את הקוד אנא זכור זאת. בשפת C, הקלדת המשתנים שלך חשובה מאוד - מספר הוא לא תמיד רק מספר. לדוגמה, לא חתום ארוך יש להשתמש במשתנים כדי לאחסן מספרים גדולים במיוחד כמו שאנחנו מתמודדים איתם כשמדברים על אלפיות השנייה, אך אפילו מספר קטן כמו 60,000 לא ניתן לאחסן כמספר שלם רגיל (אמצעי לא חתום היה מקובל על עד 68,000). הנקודה היא, קרא את סוגי המשתנים שלך כשאתה משתמש במספרים גדולים, ואם אתה מוצא באגים מוזרים, זה כנראה בגלל שלאחד המשתנים שלך אין מספיק ביטים!

מצאתי גם בעיה עם דליפות מתח בהירות נמוכה מאוד - מה שמוביל לכמות האור הקטנה ביותר שנפלטת גם כאשר digitalWrite (RED, 0) האות נפלטת - אני לא חושב שמדובר בבעיית חומרה ברצועות שכן הן עובדות מצוין עם הבקרים הרשמיים. אם מישהו יכול לפתור את הבעיה הזו, בתמונה למטה, הייתי אסיר תודה. ניסיתי למשוך נגדים ולהגביל את מתח היציאה מהסיכות של ארדואינו. יתכן ואצטרך להוסיף מעגל מיתוג פשוט להפעלת מתח רק לרצועת הלד בעת הצורך בפועל; או שזה יכול להיות MOSFETs לקויים.

דליפת אור

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

האם ניסית זאת, ביצעת שיפורים או שיש לך רעיונות אחרים? תודיעו לי בתגובות!

ג'יימס הוא בעל תואר ראשון בבינה מלאכותית, והוא מוסמך CompTIA A + ו- Network +. הוא המפתח הראשי של MakeUseOf, ומבלה את זמנו הפנוי במשחקי פיינטבול VR ומשחקי לוח. הוא בנה מחשבים אישיים מאז שהיה ילד.