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

שעון רדיו חובבני Raspberry Pi: 8 שלבים (עם תמונות)
שעון רדיו חובבני Raspberry Pi: 8 שלבים (עם תמונות)

וִידֵאוֹ: שעון רדיו חובבני Raspberry Pi: 8 שלבים (עם תמונות)

וִידֵאוֹ: שעון רדיו חובבני Raspberry Pi: 8 שלבים (עם תמונות)
וִידֵאוֹ: Introducing the Majority Fitzwilliam 3 Internet Radio Tuner & Music System 2024, נוֹבֶמבֶּר
Anonim
Raspberry Pi חובב רדיו דיגיטלי שעון
Raspberry Pi חובב רדיו דיגיטלי שעון

סקירה כללית

מפעילי רדיו חובבנים (aka HAM Radio) משתמשים ב- 24 שעות UTC (זמן מתואם אוניברסלי) לחלק ניכר מהפעולה שלהם. החלטתי לבנות שעון דיגיטלי באמצעות מסכי 4 ספרות TM1637 בעלות נמוכה ו- Raspberry Pi Zero W במקום רק שעון GUI. (חומרה זה כיף!)

התצוגה מונעת TM1637 כוללת ארבע 7 נוריות עם 7 מקטעים עם נקודתיים מרכזית ":" בין שתי קבוצות ספרות. זה דורש שני חוטים כדי להניע את המסך בתוספת 5V + וקרקע עבור סך של 4 חוטים.

לפרויקט הספציפי הזה רציתי שהרספי יקבל את זמנו משרתי NTP (Network Time Protocol) באמצעות האינטרנט. אני מתכנן גרסה נוספת של השעון הזה לפעול על Arduino Uno ומודול שעון בזמן אמת, כאשר אין WiFi זמין ולפעולה ניידת יותר.

רציתי גם שהשעון יציג את השעה המקומית בפורמטים של 12 שעות ו -24 שעות, כמו גם UTC בפורמטים של 12 שעות ו -24 שעות. התוכנה נועדה לאפשר לך להשתמש רק ב- 24 שעות UTC (נקניקים אופייניים) או בזמנים שונים על עד 4 תצוגות שונות.

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

פרויקט זה אכן דורש מחברי הלחמה או חוטים למודולים של Pi ו/או tm1637.

הוראות מלאות זמינות גם ב- GITHUB:

שלב 1: דרישות

דרישות
דרישות

• Raspberry Pi2, 3 או Zero W. (כלומר כל פאי עם כותרת 40 פינים ו- Ethernet/Wifi)

• 4-TM1637 מודולי תצוגה בת 4 ספרות

ו/או

הערה: אתה יכול להשתמש בכמויות גדולות או קטנות יותר, כל עוד הן תואמות TM1637.

• רתמת חוטים עם 16 חוטים (כל TM1637 צריך 4 חוטים)

• לוח לחם וחוטים ללא הלחמה

• לוח לחם מסוגל הלחמה ומחברי סיכות שונים.

• 8GB MicroSD ומעלה עבור Pi

• ספק כוח 5V לפי.

שלב 2: התקנת תוכנה

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

האם ידעת?

אם אתה מתקין את Raspbian בכרטיס SD באמצעות מחשב אישי, תוכל ליצור שני קבצים בכרטיס כדי להגדיר גישה ל- WiFi ו- SSH לפני שתאתחל אותו ב- Raspberry?

לשם כך, נניח שכרטיס ה- SD שלך מותקן כרגע K: במחשב האישי שלך:

1) התקן את תמונת Raspbian Lite ב- SD.

www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

2) בעזרת פנקס הרשימות, צור קובץ בשם "ssh" בלבד והשתמש בשם "כל הקבצים" ב- K: / ssh

הקובץ יכול להכיל כל דבר. זה שם הקובץ שחשוב. אסור להיות "ssh.txt" !!!

3) בעזרת פנקס הרשימות, צור קובץ שני בשם "wpa_supplicant.conf" עם הדברים הבאים:

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1 רשת = {ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

השתמש בשמירה בשם "כל הקבצים" ב- K: / wpa_supplicant.conf

שוב, אל תתנו לפנקס הרשימות לשנות אותו ל- "wpa_supplicant.conf.txt" !!

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

שלב 3: התקנת תוכנה - נקודה 2

1. אם עדיין לא עשית זאת, התקן את גרסת Raspbian Lite על כרטיס microSD של 8GB ומעלה. אינך זקוק לגרסת ה- GUI, מכיוון שפרויקט זה אינו משתמש במסך או במקלדת.

הערה: הפרויקט הזה דורש Python2.7!

www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

2. יהיה עליך לגשת ל- Raspberry מרחוק באמצעות SSH. ב- Windows, אתה יכול להשתמש בתוכנית מסוף PUTTY SSH. ב- Mac, פשוט העלה חלון מסוף פקודות.

3. הכנס את כרטיס ה- microSD לתוך ה- Pi וחבר את המתח כעת. ייקח כמה דקות לאתחול.

4. כדי להיכנס מרחוק ל- Raspberry Pi שלך, יהיה עליך למצוא את כתובת ה- IP שלה. אתה יכול לנסות: $ ssh [email protected] (או מפאט, הזן את שם המארח [email protected] אחרת תצטרך לבדוק אם הנתב שלך יציג את כתובות ה- IP של המכשירים המקומיים שלך. מזהה ברירת מחדל/passwd הוא "pi /פֶּטֶל"

לאחר הכניסה כמשתמש pi:

5. עדכן את ה- Raspbian שלך: עדכון $ sudo apt $ sudo apt שדרוג

6. הגדר את הפטל: $ sudo raspi-config a. שנה סיסמת משתמש ב. אפשרויות לוקליזציה -> שנה אזור זמן בחר אזור הזמן המקומי שלך ג. כרטיסייה לסיום

7. התקן את תוכנת RaspiDigiHamClock: $ cd/home/pi $ sudo apt update $ sudo apt install git $ git שיבוט

8. כבה את ה- Pi שלך להגדרת כיבוי החומרה $ כעת לאחר שהנורית כבה נתק את החשמל

שלב 4: חיווט חומרה

חיווט חומרה
חיווט חומרה
חיווט חומרה
חיווט חומרה
חיווט חומרה
חיווט חומרה

אתה יכול להלחים מחברים על המודולים TM1637 ועל ה- Raspberry Pi (אם אין לו עדיין מחבר). לפני שתתחיל, תחליט כיצד ברצונך להרכיב את המסכים ואם אתה מתכוון להשתמש בלוח לחם או בחוטי הלחמה ישירות על מודולי ה- Pi והתצוגה.

סיכות מודול TM1637

הערת חיווט: חלק מהמודולים tm1637 הופכים את סיכות +5v ו- GND! אז אולי לא יראו אותו דבר כמו התמונות.

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

PIN DESC CLK שעון נתוני DIO ב- GND Ground 5V +5 וולט

חלק מהמודולים tm1637 הופכים את סיכות +5v ו- GND, לכן בדוק את הסימונים של המודול שלך

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

בדיקת זמני מודול M1637 Pin Pin Pin פיזי פין# 5V 2 GND 6 CLK 40 DIO 38 עיין בתרשימי GPIO למטה כדי למצוא את פריסות הסיכה.

בתמונה השנייה מוצגות שתי תצוגות המחוברות באופן זמני ל- Raspberry Pi 3 כשהתוכנה פועלת.

1. ברגע שיש לך מודול מחובר זמנית ובדק את החיווט שלך

2. הפעל את ה- Raspberry Pi. נורית הנורית האדומה במודול אמורה להידלק, אך עדיין לא תהיה תצוגה.

3. SSH לתוך ה- Pi שלך שוב כמו קודם.

$ cd RaspiDigiHamClock

$ python test.py

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

$ python -V (הון "V")

פייתון 2.7. X

לא בדקתי מול Python 3, אז אני לא בטוח אם הספרייה תואמת.

העתק את הודעת השגיאה (בדרך כלל השורה האחרונה של השגיאה) והדבק בחיפוש Google. זה עשוי לתת מושג מה קרה.

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

כיבוי $ sudo עכשיו

שלב 5: סיכות GPIO ב- Raspi

סיכות GPIO ב- Raspi
סיכות GPIO ב- Raspi
סיכות GPIO ב- Raspi
סיכות GPIO ב- Raspi
סיכות GPIO ב- Raspi
סיכות GPIO ב- Raspi

פרויקט זה משתמש במזהי ה- BOARD הפיזיים של GPIO עבור הסיכות.

זהו פין 1 לסיכה 40. לא מספור סיכות ה- GPIO "BCM". (כן, קצת מבלבל, אבל BOARD הוא רק ספירת הסיכות משמאל למעלה לימין למטה.)

מודול תצוגה TM1637 Pin Pin Pin פיזי פין#כוח 5V 2 קרקע GND 6

מודול מס '1 CLK 33

דיאו 31

מודול #2 CLK 36

דיו 32

מודול #3 CLK 37

דיו 35

מודול #4 CLK 40

דיו 38

הערה: אין צורך להוסיף את כל 4 המודולים אם תרצה בכך. אתה יכול לקבל בין 1 ל -4 מודולים. (כן, אפשר לעבור למודולים נוספים, אך עליך לשנות את הקוד כדי לתמוך יותר.)

אך עליך לחבר את המודולים ברצף החל ממודול מספר 1

הסיבה לכך היא שספריית TM1637 מצפה ל- ACK מהמודול, כך שנראה שהיא תלויה בהמתנה אחרת.

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

שלב 6: בדיקה

וואו, זה היה קצת חיווט! הגיע הזמן לבדיקת עשן…

מכיוון שאתה כבר מכיר את המודולים האישיים ואת עבודת Pi (האם בדקת את המודולים כפי שתואר לעיל?), אז השלב הבא הוא הגדרת קובץ. INI והפעלת תוכנית השעון:

1. ערוך את raspiclock.ini

$ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. שנה את מספר המודולים לכמות שחיברת. זה חשוב מכיוון שהספרייה תישאר בהמתנה ל- ACK אם היא לא תוכל לדבר עם מודול. הקפד לחבר את מספר המודולים, בהזמנה המוצגת בהערת. INI הערה: התעלמות מ- TZ ו- HR ו- GPIO PINS אם מספר_ מודולים נמוך מ -4.

3. הוסף אזורי זמן לכל מודול.

זהו שמות TZ של Linux, כמו 'America/New_York', EST5EDT, UTC או 'Local' עבור אזור הזמן המקומי שלך כפי שהוא מוגדר באמצעות raspi-config. ברירת המחדל היא UTC

4. הגדר אם להציג מצב 12 שעות או 24 שעות עבור כל מודול

[שָׁעוֹן]; מספר מודולים TM1637 (בין 1 ל -4) num_modules = 2

; אזורי זמן לכל מודול

; השתמש ב- raspi-config כדי להגדיר אזור זמן מקומי; ברירת המחדל היא UTC; הפורמט הוא שמות Linux TZ או 'מקומי' לזמן מקומי; 'אמריקה/ניו_יורק', EST5EDT, UTC, 'מקומי' TZ1 = מקומי TZ2 = UTC TZ3 = TZ4 =

; 12/24 שעות לכל מודול

HR1 = 12 HR2 = 24 HR3 = 12 HR4 = 24

; בהירות (טווח 1..7)

LUM = 1

5. לא תצטרך לערוך את סיכות ה- GPIO אלא אם תחבר אותם למספר סיכות שונה בפי.

6. שמור את השינויים ולאחר מכן הפעל את השעון:

$ python raspiclock.py

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

מזל טוב! דלג על פתרון הבעיות ועבור להתקנה הסופית …

שלב 7: פתרון בעיות

תראה כמה הודעות באגים פשוטות שמופיעות:

אתחול … מספר המודולים = 4 לולאת השעון ההתחלתית … מודול מס '1 (TM) תצוגת מודול 2

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

א) HANG - אם נראה שהודעות הבאגים תלויות בנקודה אחת, התוכנית ממתינה ל- ACK מאותו מודול#.

בדוק תחילה את החיווט שלך! קל להעיף חוט או לחבר לפין ה- GPIO הלא נכון בפי.

שנית, החלף מודולים כדי לראות אם מודול פתאום השתבש.

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

רביעית, בדוק שוב את החיווט שלך!;-)

ב) אם אתה מקבל הודעת שגיאה ב- Python, אמת את גרסת ה- Python שלך באמצעות:

$ python -V (הון "V")

פייתון 2.7. X

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

שלב 8: התקנה סופית

התקנה סופית
התקנה סופית

1. ערוך שוב את קובץ. INI והגדר באגים = 0. $ cd/home/pi/RaspiDigiHamClock

$ nano raspiclock.ini

2. ודא גם כי אזורי הזמן של TZ והגדרות HR 12/24 שעות הם כרצונך.

3. הגדר את הבהירות כרצונך בין 1 ל -7.

4. הפעל את הסקריפט install.sh להוספה ל- pi crontab להפעלה אוטומטית בעת אתחול.

$ sh install.sh

5. אתחל מחדש

$ sudo אתחול מחדש

6. זה צריך לאתחל ואז לעלות.

גָמוּר!

מוּמלָץ: