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

שעון אימון שינה לילדים: 6 שלבים (עם תמונות)
שעון אימון שינה לילדים: 6 שלבים (עם תמונות)

וִידֵאוֹ: שעון אימון שינה לילדים: 6 שלבים (עם תמונות)

וִידֵאוֹ: שעון אימון שינה לילדים: 6 שלבים (עם תמונות)
וִידֵאוֹ: 5 סימנים פסיכולוגים שהיא רוצה אותך | איך לדעת שהיא רוצה אותך 2024, יולי
Anonim
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים
שעון אימון שינה לילדים

הייתי צריך שעון שיעזור לתאומים שלי בני 4 ללמוד לישון עוד קצת (הספיק לי להתעורר בשעה 5:30 בבוקר בשבתות), אבל הם עדיין לא יודעים לקרוא זמן. לאחר שגלשתי בכמה פריטים באתר קניות מאוד פופולרי, חשבתי: "כמה קשה יהיה פשוט להכין כזה ?!"

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

אספקה

Raspberry Pi Zero W

שני נוריות RGB

שישה נגד של 220 אוהם

קבצים (.stl, python, html) נמצאים כאן

ברגים קטנים, חוטים וחלקים קטנים לפי הצורך.

שלב 1: הדפסה תלת מימדית

הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית

הבת שלי ממש אוהבת חדי קרן, אז בשביל הפרויקט הזה ריכזתי מחדש את אור הלילה של קרן חד קרן של Riven02, שהוא רמיקס של גביע חד הקרן של Apachcreation, שניתן למצוא ב- Thingiverse.com ולשימוש תחת רישיון Creative Commons לא מסחרי. שיניתי את בסיס חד הקרן כך שיתאים לכבל חשמל עבור פטל פי אפס. במקרה היה לי איזה AMZ3D PLA אדום מונח, כך שהבסיס והראש של חד הקרן יהיו אדומים. השתמשתי ב- PLA שקוף/שקוף לצופר. קבצי.stl וההגדרות בהם השתמשתי הם:

Unicorn.stl

  • גובה השכבה: 0.02
  • עובי הקיר:.8
  • ספירת קווי קיר: 2
  • מילוי: 15%
  • תבנית מילוי: רשת

UnicornBase.stl

  • גובה השכבה: 0.02
  • עובי הקיר:.8
  • ספירת קווי קיר: 2
  • מילוי: 15%
  • תבנית מילוי: רשת

Horn.stl

  • גובה השכבה: 0.02
  • עובי הקיר: 0.8
  • ספירת קווי קיר: 3
  • מילוי: 0

שלב 2: המעגל

המעגל
המעגל
המעגל
המעגל
המעגל
המעגל

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

  • הצמד 11 ל- RGB 1 אדום
  • הצמד 13 ל- RGB 1 ירוק
  • הצמד 15 ל- RGB 1 כחול
  • הצמד 16 ל- RGB 2 אדום
  • הצמד 18 ל- RGB 2 ירוק
  • פין 36 ל- RGB 2 כחול
  • סיכה 39 לקרקע

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

שלב 3: הכנת פטל פטל

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

עדכון sudo apt-get

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

sudo apt -get להתקין apache2 -y

זה אמור להתקין את שרת האינטרנט Apache. אתה יכול לבדוק זאת באמצעות דפדפן ב- Raspberry pi וניווט אל:

localhost/

או על ידי ניווט מדפדפן של מחשב אחר לכתובת ה- ip של ה- Raspberry Pi שלך. כדי למצוא את סוג כתובת ה- ip שלך:

שם מארח -אני

פעולה זו תוביל לדף ברירת מחדל של שרת האינטרנט של Apache. ניתן לשנות זאת על ידי החלפת index.html הנמצא בספרייה/var/www/html/. ניתן להחליף אותו בקובץ index.html משלי.

בשלב הבא נקים את שרת האינטרנט של Apache בכדי שנוכל להריץ קבצי PHP. התחל בהקלדה:

sudo apt-get install php libapache2-mod-php -y

כעת אתה אמור להיות מסוגל למקם את הקובץ sleepset.php בקובץ/var/www/html עם הקובץ index.html.

כדי לנווט לדף זה ברשת שלך, יהיה עליך להגדיר את ה- Raspberry Pi שלך עם כתובת IP סטטית (או שאתה יכול פשוט להבין את כתובת ה- IP החדשה כאשר הרשת שלך מחדשת אותה מדי פעם). תצטרך לערוך כמה קבצים כדי שזה יעבוד. יהיה עליך לערוך את הקובץ /etc/dhcpcd.conf עם הדברים הבאים:

ממשק wlan0

סטטי ip_address = 192.168.1. נתבים סטטיים = 192.168.1.1 שרת דומיין_סטטי סטטי = 192.168.1.1

החלף במידע הרשת שלך. הדבר היחיד שתצטרך לעשות כעת הוא אתחול מחדש.

sudo אתחול מחדש

מיקום הקבצים מקישור כונן Google צריך להיות כדלקמן:

  • index.html ו- sleepset.php יש למקם בספריית/var/www/html
  • יש למקם את sleepset.txt ו- sleeptrainer1_1.py בספריית/home/pi/pythoncode (רמז: יהיה עליך ליצור ספרייה זו)

לאחר הצבת קבצים אלה בספרייה הנכונה, יש לשנות את הקובץ rc.local כדי להריץ את התוכנית sleeptrainer1_1.py בעת ההפעלה. תזדקק לגישה ברמת השורש כדי לשנות את הקובץ rc.local, לכן הקלד:

sudo nano /etc/rc.local

בעורך, גלול למטה, ורגע לפני שורת היציאה 0, הוסף:

python /home/pi/pythoncode/sleeptrainer1_1.py &

יש לזכור כאן שני דברים:

  1. השתמש ב- filepath המוחלט כך ש- LINUX לא יחשוב שהקובץ sleeptraner1_1.py ממוקם באותה ספרייה של rc.local.
  2. אל תשכח את האמפרסנד (&) בסוף. זה יאפשר ל- LINUX להריץ את הקובץ ברקע ולהמשיך לאתחל.

כעת, שמור את הקובץ על ידי הקלדת ctrl-x ולאחר מכן y כאשר תתבקש לשמור ולאחר מכן הקש ENTER.

לאחר מכן הקלד sudo reboot.

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

שלב 4: הקוד

להלן הקוד מהקובץ sleeptrainer1_1.py. השתמשתי באובייקט datetime כדי להשוות את הזמן לאלה הנקראים בקובץ sleepset.txt. קובץ הטקסט הוא פשוט שתי שורות, הראשונה לשעה, השנייה לדקה. sleeptrainer1_1.py ישן דקה אחת בין איטרציות הלולאה כדי לא לקשור את המעבד. האור הירוק במקור יצא בהיר מדי, אז השתמשתי באפנון רוחב הדופק כדי לעמעם אותו כאשר הוא משמש עם אדום כדי להפוך צהוב.

קוד פייתון:

ייבא RPi. GPIO כ- GPIO

מ- datetime לייבא datetime כזמן יבוא dt GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup (red1, GPIO. OUT) GPIO.setup (red2, GPIO. OUT) GPIO.setup (green1, GPIO. OUT) GPIO.setup (green2, GPIO. OUT) GPIO.setup (blue1, GPIO. OUT) GPIO.setup (blue2, GPIO. OUT) p1 = GPIO. PWM (green1, 100) p2 = GPIO. PWM (green2, 100) def readset (): setfile = open ("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline () b = setfile.readline () a = int (a) b = int (b) החזר a, b def ledlight (צבע): אם (color == "אדום"): GPIO.output (red1, GPIO. HIGH) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "blue"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (כחול2, GPIO. HIGH) elif (color == "ירוק"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "yellow"): p1.start (60) p2.start (60) GPIO.output (red1, GPIO. HIGH) GPIO.output (red2, GPIO. HIGH) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "off"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) p1.stop () p2.stop () בעוד True: settime = קריאה מחדש () שעה, דקה = זמן if minute == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, hour-2) <dt.now () <dt (dt.now ().שנה, dt.now (). חודש, dt.now (). יום, שעה -1, דקה+30): ledlight ("אדום") elif dt (dt.now (). שנה, dt.now ().month, dt.now (). day, hour-1, minute+30) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now ().יום, שעה, דקה): פנס ("צהוב") elif dt (dt.now (). שנה, dt.now (). חודש, dt.now (). יום, שעה, דקה) <dt.now () <dt (dt.now (). year, dt.now (). חודש, dt.now (). יום, שעה+1, דקה): ledlight ("ירוק") אחר: ledlight ("כבוי") elif dt (dt.now (). שנה, dt.now (). חודש, dt.now (). יום, הו ur-2) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now (). day, hour, minute-30): ledlight ("אדום") elif dt (dt.now (). year, dt.now (). חודש, dt.now (). יום, שעה, דקה -30) <dt.now () <dt (dt.now (). שנה, dt.now (). חודש, dt.now (). יום, שעה, דקה): ledlight ("צהוב") elif dt (dt.now (). שנה, dt.now (). חודש, dt.now ().יום, שעה, דקה) <dt.now () <dt (dt.now (). שנה, dt.now (). חודש, dt.now (). יום, שעה+1, דקה): ledlight ("ירוק") אחר: ledlight ("כבוי") time.sleep (60)

קובץ index.html הוא טופס בסיסי המעוצב ב- HTML. הוא לוקח את התוכן של שתי תיבות טקסט ומעביר אותן לקובץ sleepset.php לטיפול בטפסים. קובץ PHP פשוט מחליף את קובץ sleepset.txt עם נתונים מעודכנים.

שלב 5: לשים את הכל ביחד

לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד

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

  1. מקדחים שני חורים קטנים בגודל נוריות ה- RGB בתחתית הצופר ומניחים את נוריות הלדים בחורים אלה.
  2. הכנס את הקרן לתוך החור בראש חד הקרן ומשך אותו עד שהוא צמוד. השתמש בדבק מבפנים לאבטחת הקרן.
  3. חבר את ה- Raspberry Pi Zero W לחלק הפנימי של ראש חד הקרן. (אולי בעזרת אקדח דבק חם)
  4. חבר את ראש חד הקרן לבסיס חד הקרן.
  5. חבר את כבל החשמל והצמד את כל המכלול לקיר.
  6. חבר את השעון.

בנקודה זו יש לי שעון מאמן שינה מתפקד לילדים.

שלב 6: שנה לאחר מכן …

שנה מאוחר יותר …
שנה מאוחר יותר …

שנה מאוחר יותר:

הבנות שלי ישנות עוד קצת. התרגלנו להתעורר לילדים קטנים בחדר שלנו ואומרים, "אבא, האור ירוק." וזה נהדר. בקיצור, אנחנו מתעוררים רק בשעה 5:30 בבוקר כשאנחנו מתכננים את זה יותר.

דברים שאני מתכנן לשפר בעתיד:

  • אולי להוסיף כמה חיישנים או פריטים אחרים כמו מיקרופון ורמקולים.
  • אולי תערוך את הקוד לעבודה עם רמקול שישמש כשעון מעורר כיוון שהילדים שלי יתחילו ללמוד בקרוב.

מוּמלָץ: