תוכן עניינים:
- שלב 1: חלקים
- שלב 2: הגדרת ה- Raspberry Pi
- שלב 3: התקנת רצועת LED
- שלב 4: שליטה ברצועת LED
- שלב 5: ביצוע פני השעון
- שלב 6: הפעלת ה- Pi
- שלב 7: השלם את המעגל והאריזה
- שלב 8: העלה את הקוד + סיום
וִידֵאוֹ: שעון מעורר מופעל אור חכם: 8 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
בפרויקט זה אני אופנוע שעון מעורר נשבר לגמרי. לוח השעון מוחלף ב -12 נוריות LED, המוארות בפס לד סביב שפת השעון. 12 נוריות הלדים מספרות את הזמן ורצועת הלד מתוכנתת לפעול כאזעקה, ומגיעה עד לבהירות מלאה בזמן שנקבע. הכל נשלט על ידי Raspberry Pi Zero המאפשר אינספור אפשרויות אינטגרציה והרחבה כגון סנכרון אוטומטי של אזעקת האור עם אזעקת הטלפון שלך או מהבהב נוריות כאשר אתה מקבל דוא ל.
הפרויקט משתמש ברכיבים זולים יחסית או בשימוש חוזר - הדבר היחיד שבסוף קניתי היה ווסת המתח. כל השאר במקרה שכבתי כמו חיתוך של רצועת LED. מדריך זה ינחה אותך כיצד נתתי חיים חדשים לשעון השבור שלי ובתקווה שאוכל לעורר אותך להעלות אופניים למשהו משלך.
שלב 1: חלקים
כדי לשלוט בכל דבר נשתמש ב- Raspberry Pi Zero מכיוון שהוא קטן, עולה מעט מאוד וניתן לחבר אותו ל- WiFi מה שאומר שאנחנו לא צריכים שעון בזמן אמת ולכן נוכל לעדכן את הקוד בקלות מרחוק ממחשב נייד. אלא אם כן יש לך Pi Zero W, נתחבר לרשת WiFi באמצעות דונגל WiFi USB.
להלן רשימת החלקים בהם השתמשתי, אך ניתן להחליף את רוב הדברים לאלטרנטיבות מתאימות. לדוגמה במקום פי פטל אתה יכול להשתמש בארדואינו עם שעון בזמן אמת כדי לשלוט על הפרויקט.
חלקים בשימוש
- שעון מעורר ישן
- 30 ס"מ של רצועת LED לבנה חמה
- 1x כרטיס Raspberry Pi Zero + מיקרו SD
- 1x USB פונגל WiFi + מיקרו USB ל- USB ממיר
- 12x נוריות
- נגדי 12x 330ohm (השתמש גבוה יותר אם אתה רוצה נוריות עמומות)
- 1x TIP31a (או טרנזיסטור כוח npn אחר או MOSFET)
- נגד 1x 1k
- 1x LM2596 DC-DC ממיר באק מתכוונן (יורד 12V ל -5V עבור ה- Raspberry Pi)
- אספקת חשמל של 12 וולט (+ דרך להיכנס לפרויקט שלך)
- 10 ס"מ על 10 ס"מ מעץ על פני השעון (צריך להיות דק כראוי להרכבת הלדים שלכם)
- חתיכות שונות של חוט בצבעים שונים
דברים שימושיים שיש
- מגהץ + הלחמה
- דבק חם
- מולטימטר
- לוח לחם
- סיכות כותרת נקבה
- קורא או ממיר כרטיסי מיקרו SD
- מחשב
- מתאם HDMI מיני + מסך HDMI אם אתה רוצה להשתמש בסביבת שולחן העבודה של הפי
שלב 2: הגדרת ה- Raspberry Pi
מערכת הפעלה
מכיוון ש- Raspberry Pi לא יהיה מחובר למסך, בחרתי להשתמש ב- Raspbian Buster Lite שאינו מגיע עם סביבת שולחן עבודה. אם אתה חדש יותר ב- Raspberry Pi, ייתכן שתרצה לדבוק ב- Raspbian Buster הסטנדרטי המגיע עם שולחן עבודה. אם אינך בטוח כיצד להתקין את מערכת ההפעלה שלך, זהו משאב מצוין. ניתן להוריד את שתי מערכות ההפעלה מאתר Raspberry Pi.
כרגע, הפעל את ה- Pi באמצעות כניסת החשמל המיקרו USB שלו. חבר גם את הפונגל USB WiFi.
מדבר עם פטל הפטל
ברגע שהכל ארוז זה די קשה לגשת ל- Pi אם אתה רוצה לשנות את הקוד וכו '. שימוש ב- SSH מאפשר להשתמש להתחבר ל- Pi ולשלוט בו ממחשב אחר. זה אינו מופעל כברירת מחדל, אך אנו יכולים לעשות זאת פשוט על ידי יצירת תיקייה בשם ssh במחיצת האתחול של כרטיס ה- SD שלך. אם כבר התחברת ל- Pi שלך תוכל גם לעשות זאת על ידי הקלדת sudo raspi-config במסוף וניווט אל אפשרויות ממשק> SSH ובחירה כן כדי להפעיל אותו.
עכשיו אתה יכול להתחבר ל- Pi שלך במחשב אחר. ב- Mac או Linux תוכל להשתמש ביישום הטרמינל שלך אך ברוב גרסאות Windows תצטרך להתקין לקוח SSH כגון PuTTY. התחבר ל- Pi על ידי הקלדת ssh pi@ כאשר שם המארח מוחלף בשם המארח של כתובת ה- IP של ה- Pi שלך. שם המארח המוגדר כברירת מחדל הוא raspberrypi.local. הוא יבקש ממך סיסמה שאם עדיין לא שינית אותה היא פטל.
יש צורך בהתקנת דברים
ראשית ודא שהכל מעודכן על ידי הפעלת עדכון sudo apt ולאחר מכן שדרוג מלא של sudo apt.
כדי לוודא מה אנחנו צריכים כדי לשלוט בסיכות GPIO בסוג Pi sudo apt-get install python-rpi.gpio ו- sudo apt-get install python3-rpi.gpio. אלה צריכים להיות מותקנים כבר בגרסה המלאה של Raspbian.
הקוד
הנה הקוד להורדה כדי שהכל יעבוד. אם אתה משתמש בסביבת שולחן עבודה הדבק אותם בתיקיית מסמכים.
אם אתה משתמש בשורת הפקודה של SSH, נווט אל תיקיית הבית שלך על ידי הקלדת cd ~/Documents ולחיצה על enter. צור קובץ חדש בשם test1.py עם nano test1.py. פעולה זו תפתח את עורך הטקסט nano שבו תוכל להדביק את הקוד של קובץ test1.py שהורדת. הקש CTRL-O ולחץ על Enter כדי לשמור את הקובץ ו- CTRL-X כדי לצאת מהעורך. חזור על התהליך עבור שאר הקבצים.
שלב 3: התקנת רצועת LED
תחילה הכנס את רצועת הלד בשעון כדי לראות כמה תצטרך, סמן את האורך הזה וחתוך את הרצועה בנקודת החיתוך הבאה כפי שמוצג. הרבה יותר קל להלחם חוטים לרצועה לפני שהרצועה נתקעת במקומה. זהו מדריך די טוב כיצד לעשות זאת, אך אם אינך בטוח שהייתי פשוט מתאמן על חיבור הלחמה על היצירה שממנה בדיוק חתכת את הרצועה שלך. הלחמה חוט אחד לנקודת ההלחמה החיובית וחוט אחד לשלילי. הקפד לבדוק את רצועת ה- LED שלך לפני שתדביק אותה בשעון שלך.
מכיוון שרצועת הלד בה השתמשתי שימשה לפני שהיא איבדה את גבה הדבק העצמי ולכן נאלצתי להשתמש בדבק חם כדי לתקן את הרצועה מסביב לקצה שפת השעון. אם יש לך אורך עודף, כסה את הנקודה שבה החוטים מחוברים. ייתכן שתרצה להתקין את הרצועה מאוחר יותר, אך היה לי קל יותר להחביא אותה בשעון.
שלב 4: שליטה ברצועת LED
חיבור פס הלדים
רצועת ה- LED פועלת על 12V ולכן לא ניתן להפעיל אותה מה- Pi ישירות. על מנת לשלוט בהם נשתמש בטרנזיסטור כוח (למשל TIP31a) המחובר ל- Pi כפי שמוצג למעלה. אני ממליץ קודם כל לבדוק האם כל זה עובד על לוח לחם.
- חבר את GPIO 19 לבסיס באמצעות נגד 1k
- הפולט צריך להיות מחובר ל- GND
- חבר את הקולט למסוף השלילי של רצועת ה- LED
- חבר את מסוף רצועת ה- LED החיובי ל- +12V
בדיקה
בשורת הפקודה נגיב לתיקיית המסמכים שלך (cd ~/מסמכים) והקלד python test1.py והזן. אתה אמור לראות את רצועת ה- LED עולה ויורדת בהירות. כדי לצאת מהתוכנית הקש CTRL-C. אתה יכול לערוך את הקובץ (nano test1.py) כדי לשנות את המהירות והבהירות בתוכנית.
ייבא RPi. GPIO כ- GPIO יבוא זמן GPIO.setmode (GPIO. BCM) # השתמש ב- BCM pinout GPIO.setwarnings (False) # התעלם מאזהרות לגבי סיכות המשמשות דברים אחרים ledStripPin = 19 # פס LED מונע מהסיכה GPIO.setup (ledStripPin, GPIO. OUT) # הגדר ledStripPin כפלט pwm = GPIO. PWM (ledStripPin, 100) # PWM ב- ledStripPin בתדר 100Hz dutyCycle = 0 # בהירות ראשונית כאחוז pwm.start (dutyCycle) נסה: בעוד נכון: עבור dutyCycle בטווח (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0.05) עבור dc בטווח (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time. ישן (0.05) למעט מקלדת הפרעה: # הקש CTRL-C כדי לסיים ולאחר מכן: pwm.stop () # עצור את pwm GPIO.cleanup () # נקה את סיכות GPIO
שלב 5: ביצוע פני השעון
חותכים את פיסת העץ לשעון שלך כלפי מטה כך שהוא יתאים לשעון שלך. עשיתי את שלי לנוח בערך 3 ס"מ מהחזית. קדחו 12 חורים בקוטר הלדים שלכם (בדרך כלל 3 מ"מ או 5 מ"מ) במרחק 30 מעלות אחד מהשני. מלטשים את החלק הקדמי כלפי מטה ומורחים גימור על פי בחירתך. מהצד האחורי מניחים את נוריות הלדים כך שהם מצביעים לחלק הקדמי. השתמשתי בדבק חם כדי לשמור על הלדים במקום כשהמסוף החיובי (חוט ארוך יותר) פונה פנימה. גודל פני השעון שלי פירושו שאני יכול להלחם את כל הטרמינלים השליליים יחד (ראה לעיל) כך שנדרש רק חוט אחד כדי לחבר את כל 12 הנוריות ל- GND. לאחר מכן, הלחמה חוט לכל LED.
אם אתה רוצה לבדוק את זה על לוח לחם זכור תחילה להשתמש בנגד (330ohm הוא די סטנדרטי) בסדרה עם כל נורית לפני שאתה מחבר אותו לאחד מהסיכות של פי GPIO. שחק עם ערך הנגד שבו אתה משתמש כדי להשיג רמת בהירות שאתה מרוצה ממנה. סנדלר ממש שימושי לפריצת סיכות הפי אל לוח לחם למרות שתצטרך להלחם את סיכות הכותרת לשם כך. השתמש ב- test2.py (הפעל באמצעות python test2.py) אך הקפד לערוך את התוכנית תחילה ולהזין את סיכות ה- GPIO של הפי שהשתמשת בהן עבור כל נורית LED.
ייבא RPi. GPIO כ- GPIO
זמן ייבוא GPIO.setmode (GPIO. BCM) # השתמש ב- BCM pinout GPIO.setwarnings (False) # התעלם מאזהרות על סיכות המשמשות דברים אחרים # החלף אחד, שניים, … במספר הסיכה המתאים hourPin = [one, two, three, ארבע, חמש, שש, שבע, שמונה, תשע, עשרה, אחת עשרה, שתים עשרה] # הסיכות שאליהן מחוברות הנורות בין 1-12 עבור i בטווח (0, 12): GPIO.setup (hourPin , GPIO. OUT) # הגדר את כל ה- hourPins כפלט GPIO.output (hourPin , 0) # ודא שכל הלדים כבויים נסה: בעוד True: for i בטווח (0, 12) GPIO.output (hourPin , 1): time.sleep (0.05) עבור i בטווח (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) למעט מקלדת הפרעה: # הקש CTRL-C כדי לסיים, ו לאחר מכן: GPIO.cleanup () # נקה את סיכות GPIO
שלב 6: הפעלת ה- Pi
אנו זקוקים לדרך קלה להשיג 5V ל- Pi Zero כדי שנוכל להיפטר מכבל המיקרו USB בו השתמשנו כדי להפעיל אותו עד כה. ישנם מספר פתרונות אשר יורדים מ 12V ל 5V כגון ווסת מתח לינארי LM7805 אך אלה אינם יעילים במיוחד ולכן בחרתי להשתמש בממיר הכוונון היעיל יותר באמצעות שבב LM2596. שים לב עם זה תצטרך לסובב את הפוטנציומטר עד להפחתת מתח היציאה ל -5V כנדרש, כך שתצטרך איזו שהיא מדידת מתח.
השימוש ב- LM2596 פשוט: חבר את +12V ל- IN +, הקרקע ל- IN-. ניתן לחבר את ה- Pi ישירות ל- 5V על ידי חיבור OUT+ לאחד מפיני ה- 5V של ה- Pi אך ודא ששינית את מתח היציאה ל- 5V לפני שתעשה זאת או שתטגן את ה- Pi שלך!
שלב 7: השלם את המעגל והאריזה
כעת כיסינו את כל שלושת האלמנטים של המעגל המוצגים יחד במעגל הכולל למעלה. כדי לחסוך מקום ולגרום למעגל המסודר לשים את המעגל שלך על לוח חשמל או לוח אב טיפוס. תחילה הלחם את הרכיבים הקטנים ביותר, הנגדים, לאחר מכן את טרנזיסטור הכוח, כל מחברים ולבסוף את החוטים. תכנן את המעגל לפני הלחמה כדי לוודא שיש לך מקום לכל דבר.
חיברתי הכל על לוח PCB עם אב טיפוס והשתמשתי בסיכות כותרת נקבות כדי שה- Pi יוכל לעלות ישירות על ה- PCB. נוריות הלוח על לוח השעון מחוברות דרך נגדים בצד אחד של הלוח ושמרתי מקום בצד השני של הלוח לטרנזיסטור החשמל ופנוי לכל מעגל אחר שתרצה להוסיף בהמשך.
חבר את השעון לשעון וודא שהכל האלקטרוניקה מתאימה. הכל היה די מתאים לי, כך שאולי תצטרך לעשות סידור מחדש. חבר את ספק הכוח והפעל את test1.py ו- test2.py מ- SSH כדי לבדוק שהכל עובד לפני חיבור הגב.
שלב 8: העלה את הקוד + סיום
הקוד
לבסוף אם עדיין לא העליתם את הקוד והתאימו אותו כרצונכם (באמצעות nano filename.py). היתרון בחיבור ל- Pi על פני SSH הוא שתוכל לעדכן את הקוד מבלי לפתוח את השעון.
תוכניות פיתון אלה משלב 2 עושות את הפעולות הבאות:
- light_clock_simple.py פשוט מציג את השעה על הלדים ונמוג מעלה ומטה ברצועת הלד בזמנים מסוימים
- light_clock_pwm.py זהה לעיל אך גם מאפשר להפחית את בהירות הנורות ומציג את הדקות בהירות שונה מהשעות. יהיה עליך לשחק עם רמות הבהירות של שניהם כך שהניגודיות בין השניים תהיה ניכרת
אלה אמורים לספק בסיס מוצק להוספה לקוד, לדוגמה, ייתכן שתרצה להוסיף כפתור כדי להשהות את האזעקה הקלה.
כדי להפעיל את התוכנית כאשר ה- Pi יתחיל עלינו להוסיף '@reboot nohup python light_clock_pwm.py &' לסוף קובץ crontab אותו ניתן לפתוח מהמסוף באמצעות crontab -e. הפעל מחדש את ה- Raspberry Pi שלך כדי לבדוק שהוא עובד עם כיבוי sudo -r עכשיו.
תוספות אפשריות
להלן כמה רעיונות לפונקציונליות נוספת שניתן להוסיף
- הוספת כפתור נודניק
- הוספת מצב מנורה
- התחברות ל- IFTTT (למשל, אור יכול להידלק כאשר הטלפון מעורר/כבהב כאשר הודעת דוא"ל מתקבלת)
- הוספת יכולת מגע קיבולת כלומר להפוך את השעון למנורת מגע
אתה עשוי להבחין בעת שימוש ב- PWM שלפעמים, במיוחד עם בהירות נמוכה יותר, הנורית מהבהבת מעט. הסיבה לכך היא שהפי משתמשת בתוכנת PWM כך שתהליכי מעבד יכולים להשפיע על מחזור העבודה. לאחר שפחות תהליכים פועלים עזרה עם זה אז השתמשתי במערכת ההפעלה Raspbian Lite. חומרת PWM זמינה גם בכמה סיכות, כך שאם הבהוב מוכיח בעיה, זה עשוי להיות משהו לבדוק.
אני מקווה שמצאת מידע אינפורמטיבי זה או שאתה מרגיש השראה לאופנוע שעון מעורר ישן או להשתמש ברכיבי הקוד לפרויקט שלך.
פרס שני באתגר ה- Speed Strip Speed
מוּמלָץ:
שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)
צפייה והתראה של תפילות אסלאמיות RaspberryPi: למוסלמים ברחבי העולם יש חמש תפילות מדי יום, וכל תפילה צריכה להיות בזמן מסוים ביום. בגלל הדרך האליפטית כוכב הלכת שלנו מסתובב סביב השמש, מה שגורם לשעות הזריחה לעלות ולרדת להשתנות לאורך כל השנה, כי
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פי: 10 שלבים (עם תמונות)
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פאי: האם אי פעם רצית שעון חכם? אם כן, זה הפתרון בשבילך! הכנתי שעון מעורר חכם, זהו שעון שתוכל לשנות את זמן ההתראה בהתאם לאתר. כאשר האזעקה תיגמר, ישמע צליל (זמזם) ושתי נורות יעיפו
קנה מידה חכם DIY עם שעון מעורר (עם Wi-Fi, ESP8266, Arduino IDE ו- Adafruit.io): 10 שלבים (עם תמונות)
קנה מידה חכם DIY עם שעון מעורר (עם Wi-Fi, ESP8266, Arduino IDE ו- Adafruit.io): בפרויקט הקודם שלי פיתחתי סולם אמבטיה חכם עם Wi-Fi. הוא יכול למדוד את משקל המשתמש, להציג אותו באופן מקומי ולשלוח אותו לענן. תוכל לקבל פרטים נוספים על כך בקישור למטה: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
GOOB - שעון מעורר חכם: 15 שלבים (עם תמונות)
GOOB - שעון מעורר חכם: GOOB הוא ראשי תיבות של " לצאת מהמיטה ", שם מתאים היטב לפרויקט שלי. רציתי ליצור מכשיר שיכול לעזור להעיר אותי בבוקר מכיוון שזו לא המשימה הקלה ביותר. הרעיון המרכזי הוא שהשעון המעורר לא עוצר את הצעקה
הרכבת "שעון חכם 2" (שעון מעורר מבוסס ארדואינו עם הרבה תכונות נוספות): 6 שלבים
הרכבת "שעון חכם 2" (שעון מעורר מבוסס ארדואינו עם הרבה תכונות נוספות): הדרכה זו מציגה כיצד להרכיב את הערכה לפרויקט ווייז שעון 2, פרויקט קוד פתוח (חומרה ותוכנה). ניתן לרכוש ערכת Wise Clock 2 מלאה כאן. לסיכום, זה מה שעון ווייז 2 יכול לעשות (עם תוכנת הקוד הפתוח הנוכחי