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

שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)
שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)

וִידֵאוֹ: שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)

וִידֵאוֹ: שעון התראה איסלאמי RaspberryPi & שעון מעורר: 15 שלבים (עם תמונות)
וִידֵאוֹ: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, יוני
Anonim
שעון אזעקה ותפילה אסלאמית של RaspberryPi
שעון אזעקה ותפילה אסלאמית של RaspberryPi
שעון אזעקה ותפילה אסלאמית של RaspberryPi
שעון אזעקה ותפילה אסלאמית של RaspberryPi

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

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

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

הלאה לפרויקט שלנו! פרויקט זה יחולק ל- X שלבים מרכזיים, אשר עד סוף שלב X יהיה הפרויקט שלנו נחמד ומוכן! השלבים יהיו כדלקמן:

1-הגדרת והכנת ה- RaspberryPi

2-התקנת מודול RTC

3-ביצוע תוכנית אזאן אזעקה

4-יישום פני השעון

5-יצירת ממשק המשתמש ו

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

ערכת מחשב 1-RaspberryPi אמזון ארה ב || אמזון KSA

אתה יכול להשתמש בכל גרסת Rpi, רק וודא שיש לה Wifi. השתמשתי ב- Rpi3B+

מודול שעון 2-RTC בזמן אמת אמזון ארה ב || אמזון KSA

אתה יכול להשתמש בכל דגם מודול RTC, רק וודא שיש לו I2C

צג 3-LCD

כל LCD יספיק

4 עכברים ומקלדת

וזה הכל!! זה כל מה שאתה צריך כדי ליצור לעצמך שעון ואזעקה משלך

שלב 1: פרק 1: הגדרה ותצורה של ה- RaspberryPI

פרק 1: הגדרה ותצורה של ה- RaspberryPI
פרק 1: הגדרה ותצורה של ה- RaspberryPI

קודם כל! עלינו להכין את פאי הפטל כדי לעבוד איתו.

פטל פאי אינו אלא מחשב, יש לו זיכרון RAM ו- ROM, יש לו מעבד, GPU, קלט/פלט …. מחשב! בדיוק כמו זה שאנו משחקים בו וגלוש בו באינטרנט, רק הדבר העיקרי שהוא קטן מאוד! מה שהופך את הפטל לבחירה טובה מאוד לביצוע ויישום פרויקטים. מכיוון שפאי הפטל קטן, יש לו מפרט מוגבל מאוד שהוא אינו יכול להפעיל מערכת הפעלה תובענית גדולה כמו חלונות או macOS, במקום זאת, אנו הולכים להשתמש ב- Linux כמערכת הפעלה על מנת להשתמש במכשיר. ישנם אלפי אם לא עשרות אלפי הפצות לינוקס שנוכל להשתמש בהן, אך הפצה אחת מושלמת מותאמת באופן מושלם במיוחד עבור הפטל שאנו הולכים להשתמש בו, הנקרא Raspbian.

שלב 2: 1-1: הורד את הקבצים הנדרשים

1-1: הורד את הקבצים הנדרשים
1-1: הורד את הקבצים הנדרשים
1-1: הורד את הקבצים הנדרשים
1-1: הורד את הקבצים הנדרשים
1-1: הורד את הקבצים הנדרשים
1-1: הורד את הקבצים הנדרשים

-עבור לדף ההורדה הרשמי של רסביה בכתובת https://www.raspberrypi.org/software/operating-sy… והורד את מערכת ההפעלה Raspberry Pi עם קובץ שולחן עבודה

בזמן שהוא מוריד, עבור אל https://win32diskimager.org/ והורד והתקן את win32DiskImager, תוכל להשתמש בכל תוכנת צריבת תמונות שאתה אוהב.

לאחר ההורדה, יהיה לך קובץ.img המכיל את מערכת ההפעלה RaspberryPi. לאחר מכן, חבר את כרטיס הזיכרון SD למחשב (בדרך כלל עם קורא כרטיסי USB) והפעל את תוכנת win32diskimager. השלבים לשריפת התמונה לזיכרון ה- SD הם פשוטים מאוד, אתה רק צריך 1- לבחור את אות הזיכרון שלך 2 -בחר את קבצי מערכת ההפעלה שהורדת ולחץ על 3 קליקים! וודא שבחרת את אות המכשיר הנכונה מהרשימה והזיכרון שלך ריק, מכיוון שלחיצה על כתיבה תקודם עם אזהרה שאומרת לך שכל דבר במכשיר יימחק! לחץ על כן כדי לאשר את הכתיבה והמתן עד לסיומו. זה עשוי לקחת עד 20 דקות.

לאחר סיום, תהיה לך מערכת ההפעלה המלאה של Rapbian בזיכרון, תוכל להמשיך ולשים אותה ב- Rapberry Pi, לחבר את ה- Raspberry Pi למסך באמצעות HDMI, לחבר את העכבר והמקלדת באמצעות USB ולבסוף, חבר את ה- כּוֹחַ.

שלב 3: 1-2: הגדרת מערכת ה- Raspbian

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

1-לחץ על הבא בחלון "ברוכים הבאים" הראשון

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

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

שם משתמש: pi

סיסמא: פטל

חלון 4-הבא יחבר את raspberryPi לרשת ה- WiFi שלך. בחר את שם ה- wifi והזן את סיסמת ה- wifi שלך

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

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

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

שלב 4: 1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi

1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi
1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi
1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi
1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi
1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi
1-3: שימוש בשורת הפקודה להגדרת הגדרות Rpi

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

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

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

sudo raspi-config

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

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

1-עבור לאפשרויות הממשק >> I2C >> YES >> הקש enter. זה מאפשר את פרוטוקול התקשורת I2c כדי שנוכל להשתמש ב- RTC

2-עבור לאפשרויות מתקדמות >> הרחב את מערכת הקבצים.

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

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

שלב 5: פרק 2: הרכבה, הגדרה ושימוש במודול RTC

פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC
פרק 2: הרכבה, הגדרה ושימוש במודול ה- RTC

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

ישנם מספר דגמים ומחפשים את ה- RTC, ישנם DS1307 ו- DS3231. אתה יכול להשתמש בכל מודול RTC שתמצא כל עוד יש לו תקשורת פרוטוקול I2C (אתה יכול לציין שזה אתה יכול למצוא סיכות SDA ו- SCL בסיכות המודול.

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

לאחר שתכין את מודול ה- RTC שלך (הלחם את סיכות הכותרת והפעל את הסוללה), תוכל לחבר אותו לסיכות RapberryPi באופן הבא:

PIN PIN ---------------- Rpi Pin

GND ============ PIN 6 (GND)

Vcc ============> PIN 1 (3.3V)

SDA ===========> PIN 3 (SDA)

SCL ===========> PIN 5 (SCL)

או בהתאם לאיזה מודול RTC שקיבלת, תוכל להרכיב אותו ישירות על ה- RaspberryPi (ודא שהסיכות נכונות !!! מכיוון שאתה עלול לפגוע ב- Rpi/RTC אם לא)

לאחר שחיברת את ה- RTC, בואו להגדיר את תצורת הפטל.

שלב 6: 2-1: הגדרת מודול

2-1: הגדרת מודול
2-1: הגדרת מודול
2-1: הגדרת מודול
2-1: הגדרת מודול

לפני שתתחיל, עבור לשורת הפקודה והקלד:

תַאֲרִיך

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

עכשיו, נתחיל בהגדרה, הקלד את הדברים הבאים כדי לעדכן את ספריות ה- Rpi, שורה אחת בכל פעם:

עדכון sudo apt-get

sudo apt -get -y שדרוג

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

כעת, עלינו לשנות את קובץ המודולים, אנו יכולים לעשות זאת על ידי הקלדה:

sudo nano /etc /modules

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

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

הקש CTRL+S כדי לשמור, ו- CTRL+X ליציאה

שלב 7: 2-2: ממשק I2C

2-2: ממשק I2C
2-2: ממשק I2C

עכשיו חיברנו את ה- RTC והפעלנו את i2c, בואו נחבר הכל ביחד.

הקלד את שורת הפקודה הבאה:

i2cdetect -y 1

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

כעת, עלינו לשנות את קובץ rc.local כדי שנוכל לאפשר את מודול ה- RTC בעת האתחול ולתת לו לשמור את התאריך והשעה במערכת. ראשית, פתח את הקובץ rc.local:

sudo nano /etc/rc.local

לפני קו יציאה 0, הוסף את הדברים הבאים:

echo ds1307 0x68>/sys/class/i2c-adapter/i2c-1/new_device

שעונים -s

כאשר 0x68 היא כתובת ה- i2c של המכשיר שלך. לאחר שתסיים לחץ על CTRL+S CTRL+X ולאחר מכן הפעל מחדש את המערכת על ידי:

sudo אתחול מחדש

שלב 8: 2-3: בדיקת ה- RTC

2-3: בדיקת ה- RTC
2-3: בדיקת ה- RTC

לאחר הפעלה מחדש של המערכת, נוכל לבדוק את מזג האוויר שה- RTC פועל או לא. ראשית, הפעל:

sudo hwclock -r

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

כעת, כדי לשנות את השעה והתאריך ב- RTC, עלינו לשנות את התאריך והשעה במערכת תחילה, ולאחר מכן כתוב את השינויים ב- RTC. לשם כך, הפעל:

סודו תאריך -s "29 באוגוסט 1997 13:00:00"

וכמובן, שנה את התאריך והשעה בהתאם לשעה ולתאריך המקומי שלך, לפני שתלחץ על enter. לאחר שתקבל את הזמן בצד ימין Rpi, הפעל את הפעולות הבאות כדי לשמור את התאריך והשעה ב- RTC:

sudo hwclock -w

aaaaand זהו! אתה יכול לבדוק אם זה עובד לפי hwclock -r ולראות אם התאריך ב- RTC נכון או לא, נתק את ה- rpi מהאינטרנט ולאחר מכן כבה אותו לזמן מה ולאחר מכן הפעל אותו שוב ובדוק אם יש לו את התקן הנכון שעה ותאריך. אתה סיימת!

מדריך מלא להתקנת מודול RTC ניתן למצוא כאן

www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/

שלב 9: פרק 3: ביצוע תוכנית אזעקת אזאן

פרק 3: ביצוע תוכנית אזעקת אזאן
פרק 3: ביצוע תוכנית אזעקת אזאן

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

עבור התכנות שלנו, אנו הולכים להשתמש בפייתון כשפת התכנות המועדפת עלינו מכיוון שפיתון משתלב בצורה מושלמת עם RaspberryPi. כדי ליצור קובץ קוד בפייתון, אנו עושים את אותו הדבר כמו פתיחת קובץ טקסט, אך כעת אנו שומרים אותו כ- py. כדי להפעיל את התוכנית, אנו זקוקים לסביבת פייתון מותקנת של ה- raspbery, למרבה המזל, Raspbian מגיע עם פייתון ו- python3 מותקן מראש! אז כל שעלינו לעשות הוא לתכנת. במדריך זה לא נדבר על השפה ונלמד כיצד היא פועלת והפונקציות, אך אני אתן לך את הקודים הדרושים כדי שתוכל לבצע את הפרויקט.

כדי להתחיל, אנו זקוקים לקובץ צליל של צליל האזאן המועדף עלינו (ב-. WAV) אנו זקוקים לשני קבצים, אחד עבור al-fajr azan ושני עבור azan רגיל. ברגע שאתה מקבל את זה לשים אותו על כונן Stick ולהעתיק אותו על שולחן העבודה של raspberrypi.

עכשיו יש לנו את הקבצים, חיפשתי דרך להשמיע אודיו שמע ב- raspberryPi ולהפתעתי, לא היו הרבה דרכים שבהן נוכל לעשות זאת, אבל מצאתי את התשובה הזו ב- stackoverflow שנתנה לי את מה שאני צריך

stackoverflow.com/questions/20021457/playi…

בדקתי את השיטה הזאת וזה עבד! אז בואו נראה כיצד נוכל ליישם שיטה זו בפרויקט שלנו …

שלב 10: 3-1: בואו נשמיע צליל

3-1: בואו להשמיע צליל!
3-1: בואו להשמיע צליל!

ראשית, נווט לשולחן העבודה על ידי:

cd שולחן עבודה

לאחר מכן צור קובץ קוד פייתון חדש על ידי:

sudo nano AzanPlay.py

זה ייצור קובץ חדש בשם AzanPlay עם הסיומת על קובץ python.py, יהיה לנו מסך שחור ריק שיאפשר לנו לכתוב את הקוד שלנו. פשוט רשום את השורות האלה (היזהר שלא לשנות שום הזחה או רווחים, מכיוון שזה חשוב במיוחד בפייתון):

ממערבל ייבוא pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () בעוד mixer.music.get_busy () == נכון: המשך

היכן / שולחן העבודה / היכן אתה מכניס את קבצי הקול שלך, ו- 'Adhan-Makkah.wav' הוא קובץ האודיו שלי, שהוא הקלטת הקול של Azan במכה.

עכשיו כדי לבדוק את הקוד שלנו, אנו מפעילים אותו עם פייתון על ידי הקלדה:

python AzanPlay.py

והקול שלך יתנגן מה- LCD LCD או מיציאת ה- AUX שלך ב- Raspberrypi. אם אינך שומע אותו מרמקולי ה- LCD, חבר אוזניות ל- AUX ובדוק.

שלב 11: 3-2: קבל זמני תפילה

3-2: קבל זמני תפילה
3-2: קבל זמני תפילה

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

praytimes.org/

אז אנחנו הולכים להשתמש בקבצים המדהימים האלה כדי לקבל את זמני התפילה וליישם אותם במערכת. ראשית, הורד את הקודים מהאתר ושם אותם בתוך / adhan / תיקייה, (אנו זקוקים לקודי JS ו- Python).

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

cd adhan

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

sudo nano testAd.py

בפנים, רשום את הקוד הזה:

יבוא זמני תפילה

מתאריך הייבוא תאריך tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) הדפסה (tmm)

לפני שמירת הקובץ, עליך לשנות את LATITUDE עם מיקום Latitude שלך, אותו הדבר עם LONGTITUDE ולשנות את GMT לאזור הזמן שלך. במקרה שלי זה יהיה:

tmm = bidtimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)

הדפסה (tmm)

לבסוף, CTRL-S ו- CTRL-X ולאחר מכן הפעל את הקוד:

test pythonAd.py

לבסוף, תקבל בחזרה את זמני התפילה שלך להיום, עבור המיקום שלך.

{'isha': '18: 58 ',' asr ': '15: 22', 'sunset': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' חצות ': '00: 17', 'זריחה': '06: 52 ',' fajr ': '05: 33'}

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

שלב 12: 3-3: יצירת קוד אזעקה סופי של אזאן

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

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

זמן יבוא

ממערבל יבוא pygame מיבוא מחרוזת ייבוא תפילות מתאריך הייבוא של datetime בעוד (1): tmm = praytimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3) FAJR = tmm ['fajr'] DHUHR = tmm ['dhuhr'] ASR = tmm ['asr'] MAGHRIB = tmm ['maghrib'] ISHA = tmm ['isha'] tempT = time.strftime (str ('%H')) currTime = tempT tempT = time.strftime (str ('%M')) currTime = currTime + ':' + tempT if currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () while mixer.music.get_busy () == נכון: המשך אם currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == נכון: המשך אם currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == נכון: המשך אם currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == נכון: המשך אם currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () בעוד mixer.music.get_busy () == נכון: המשך

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

שלב 13: פרק 4: יישום פני השעון

פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון
פרק 4: יישום פני השעון

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

לרוע המזל, נכון לזמן כתיבת ההוראה הזו, הידע והניסיון שלי ב- HTML מוגבלים מאוד ולכן לא אדון בפרטים רבים כיוון שאני יודע שאני אעשה דברים בצורה לא נכונה, ואני לא רוצה לבלבל אנשים. אבל אם יש לך אפילו ניסיון קל ב- JS ו- HTML כדאי שתדע כיצד להמשיך מנקודה זו. עד כה עשיתי פרצוף יחיד (הכחול). התוכנית היא ליצור 14 פרצופי שעון! 7 פנים ליום יום בשבוע, ועוד 7 כנושא אחר. כפי שהנושא הראשון אמור להיות עם Azkar מתגלגל, והנושא השני אמור להיות בעל GIFS איסלאמי במקום האזקר. בלי קשר, אכלול את כל העיצובים במדריך זה כך שתוכל להוריד אותו.

שלב 14: פרק 5: יישום ממשק משתמש

פרק 5: יישום ממשק משתמש
פרק 5: יישום ממשק משתמש

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

לשם כך נשתמש בספריית GUI של פייתון בשם "TKinter".

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

ייבא tkinter כ tk

מיבוא tkinter * מיבוא tkinter יבוא רכיבי רכיבי ttk יבוא os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("זמן אזאן") עצמי. כפתור 1 = לחצן (עצמי, טקסט = "ג'דה", גובה = 5, רוחב = 80, פקודה = self.open_jeddah1) self.button2 = לחצן (עצמי, טקסט = "מככה", גובה = 5, רוחב = 80, פקודה = self.open_makkah1) self.button3 = לחצן (עצמי, טקסט = "ריאד", גובה = 5, רוחב = 80, פקודה = self.open_riyadh1) self.button4 = לחצן (עצמי, טקסט = "מדינה", גובה = 5, width = 80, command = self.open_madina1) self.button5 = לחצן (עצמי, טקסט = "קאסים", גובה = 5, רוחב = 80, פקודה = self.open_qasaim1) self.button1.grid (שורה = 0, עמודה = 1, מוט טורים = 2, דביק = W+E+N+S) self.button2.grid (שורה = 1, עמודה = 1, עמודת = 2, דביק = W+E+N+S) self.button3.grid (שורה = 2, עמודה = 1, טווח עמודים = 2, דביק = W+E+N+S) self.button4.grid (שורה = 3, עמודה = 1, עמודת = 2, דביק = W+E+N+S) self.button5.grid (שורה = 4, עמודה = 1, טווח טווח = 2, דביק = W+E+N+S) def open_jeddah1 (עצמי): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html-התחל במסך מלא-ללא חול".system (סדר) def open_makkah1 (עצמי): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html-start-fullscreen --no-sandbox -test-type" מערכת ההפעלה OS.system (סדר) def open_riyadh1 (עצמי): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html-start-fullscreen --no-sandbox -test-type" OS.system (סדר) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html-start-fullscreen --no-sandbox -test-type" OS.system (סדר) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html-התחל-מלא מסך-אין-ארגז חול -מבחן" os.system (סדר) def main (): karl (). mainloop () אם _name_ == '_main_': main ()

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

שלב 15: (אופציונלי): הוספת מתג רמקולים

(אופציונלי): הוספת מתג רמקולים
(אופציונלי): הוספת מתג רמקולים
(אופציונלי): הוספת מתג רמקולים
(אופציונלי): הוספת מתג רמקולים

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

קל לעשות זאת. נשתמש במיקרופון המסגד הקיים המחובר לרמקול החזק, רק נצטרך את raspberryPi כדי לשלוט על הכוח המפעיל את מערכת הצליל כולה וכיבוי. לשם כך נצטרך להשתמש ב- SSR: SOLID STATE RELAY. סוגים אלה של ממסרים יכולים לשמש כמתג, בדומה לממסר הכחול הממוצע, ההבדל הוא ש- SSR יכול לעמוד בכמות גדולה של מתח AC דרכו, אשר אינו ישים בכחולים (בדרך כלל 10A לכל היותר), וצרכי ה- SSR רק שני חוטים במקום 3: DC+ ו- DC- וזהו! בצד השני של ה- SSR נוכל לחבר את כבל החשמל של מערכת הרמקולים, כך שכאשר אנו נותנים מתח ל- SSR, הוא יסגור את מעגל ה- AC של מערכת הרמקולים, או שנכבה את המתח כדי ליצור מעגל פתוח, כיבוי הרמקולים.

יש תפס אחד, סיכות RaspberryPi פלט 3.3v, לא 5v שאנחנו צריכים לשלוט ב- SSR. אז אנחנו צריכים טרנזיסטור כדי לקחת את האות מהפין RPi, ו- 5V מהפין של RPi 5v. לשם כך אנו צריכים:

ממסר מצב מוצק (כל דבר מעל 25A הוא טוב)

טרנזיסטור 2-2n2222 npn

נגד 3-220ohm

עקוב אחר מעגל הטיגון לחיבור.

עכשיו בקוד, נוסיף כמה דברים שגורמים לזה לעבוד. ראשית, לפני לולאת ה- while, נוסיף כמה שורות לאתחול סיכות GPIO:

בקטע הייבוא, הוסף:

ייבא RPi. GPIO כ- GPIO

לפני לולאת ה- while, הוסיפו:

ממסר GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) = 40 GPIO.setup (ledPin, GPIO. OUT)

כעת, בלולאת ה- while, עבור כל הפקודה של Azan, עלינו להפעיל את הממסר, לחכות 10 שניות, לסיים את המשחק Azan ולאחר מכן לכבות את הממסר. אנחנו צריכים להוסיף רק שתי שורות, הראשונה היא:

פלט GPIO.out (ledPin, GPIO. HIGH)

time.sleep (10)

יש להוסיף את זה אחרי כל הצהרת if (זיהוי חשוב!), השורה השנייה היא:

פלט GPIO.out (ledPin, GPIO. LOW)

יש להוסיף את זה לאחר השורה "המשך". זה צריך להיראות כך בכל פעם של אזאן:

אם currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () while mixer.music.get_busy () == נכון: המשך GPIO.output (ledPin, GPIO. LOW)

מוּמלָץ: