חיפוש
  • יניב אור

הצגת מידע שימושי מה-RPi על LCD 1602

עודכן ב: 18 אוג 2019



ה-headless רספברי פיי (Raspbian Stretch Lite) מחובר לראוטר הביתי שלנו ולעיתים יש לי צורך לקבל מידע על המערכת, כמו למשל מה הכתובת איי פי. אחת הדרכים היא להריץ ממכונת לינוקס ברשת:

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

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

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


הפקודה לקבלת האיי-פי:

* לשים לב לצורה בה משתמשים ב-subprocess כשיש צורך ב-pipe:





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

מתוך ה-RPi, הורדתי template לסקריפט של init.d:


הוספתי לו הרשאת ריצה:

שיניתי את השם שלו ל-monitor, שזה השם של הסקריפט פייתון שהוזכר קודם לכן:

ערכתי את הקובץ:


ה-runlevels בהם הוא הוגדר לרוץ, לעת עתה, הם: 2, 3, 4, 5 ולא לרוץ ב: 0, 1 ו-6. בהמשך ארצה שירוץ בכל ה-runlevels. השאלה אם זה אפשרי. באיזה שלב ה-GPIO מאופשר ואולי יש גורמים נוספים וכולי. אם זה יתאפשר, אוכל להדפיס על המסך הקטן את שלבי הרציה השונים. בתור התחלה runlevel n.


לבסוף, הרצתי:


* הסרטון המקורי קרוב ל-60 שניות. זה זמן ה-boot, בעצם. אולי הגיע הזמן לבדוק אם הכל נחוץ. אולי אפשר לקצר זמנים. זאת אחת הבעיות עם sys v init - איך שאני מבין - הוא מריץ את ה-process-ים בצורה טורית ולא מקבילית.


בהמשך, מצאתי דרך יותר קצרה לקבל את הכתובת איי-פי:

ובהתאם, הסקריפט פייתון התעדכן, התקצר ואין צורך ב-pipe. הוספתי גם את הטקסט (: hello.




המשך יבוא...


© 2023 by DO IT YOURSELF. Proudly created with Wix.com