צג רוחב פס: 7 שלבים (עם תמונות)
צג רוחב פס: 7 שלבים (עם תמונות)
Anonim
צג רוחב פס
צג רוחב פס
צג רוחב פס
צג רוחב פס
צג רוחב פס
צג רוחב פס

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

אספקה

  • Raspberry Pi Zero WH
  • תצוגת דיו אלקטרוני של Waveshare (מודול נייר 2.9 אינץ ')
  • ממיר DC-DC (למשל DEBO DCDC 20W)
  • LED RGB (הוצא מהמכשיר הישן)
  • לחץ על הכפתור
  • החלף
  • מודול ממסר (למשל מודול ממסר דו כיווני מודול ממסר דו כיווני)
  • מחבר זכר + מחבר נקבה (שניהם מתאימים לגודל תקע אספקת החשמל של המודם)
  • מארז מודפס בתלת מימד

שלב 1: תכונות

מאפיינים
מאפיינים
מאפיינים
מאפיינים
מאפיינים
מאפיינים
  • ה- Raspberry Pi Zero מחובר באמצעות WLAN, בודק את מהירות ההורדה וההורדה ומבצע מדידת פינג כל חצי שעה. גרסת שורת הפקודה של speedtest.net משמשת כבסיס למדידות.
  • התוצאה של רוחב הפס ומדידת הפינג מוצגת בתצוגת דיו אלקטרוני. מוצג גם זמן המדידה.
  • אם מהירות ההורדה יורדת מתחת לערך סף מוגדר, ממסר כבה ומדליק את המודם לזמן קצר. המודם מתאפס אפוא ללא כל שינוי במכשיר (רק אספקת החשמל מופרעת).
  • לחצן בחזית המכשיר זמין להפעלת מדידת רוחב הפס באופן ידני.
  • הערכים הנמדדים מוצגים בלוח המחוונים של Ubidots (IOT Portal). בסקירה תוכל לראות גם את היסטוריית הזמן של הערכים הנמדדים ואת הסיבות לאיפוס האחרון.
  • בפורטל IOT ניתן למצוא גם לחצן לאיפוס מרחוק של המודם.
  • צג רוחב הפס משתמש באספקת החשמל של המודם. אין צורך באספקה נוספת. הממסרים מפסיקים את העברת אספקת החשמל למודם - הפטל נשאר מופעל.

שלב 2: חיווט

תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל

בתמונה הראשונה ניתן לראות את העיצוב הפנימי של צג רוחב הפס:

המרכיבים העיקריים הם:

    1. לחץ על הכפתור
    2. תצוגת דיו אלקטרוני
    3. פטל פי אפס
    4. מודול ממסר
    5. נגדי LED + RGB (בהתאם לנורית ה- RGB שבה אתה משתמש)
    6. החלף
    7. ממיר DC-DC
    8. מחבר נקבה

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

ניתן להתחיל את מדידת רוחב הפס באופן ידני באמצעות כפתור. מנורת RGB משמשת להדמיה של מצבי ההפעלה השונים.

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

שלב 3: הדפסה תלת מימדית ובניית המרדף

הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף
הדפסה תלת מימדית ובניית המרדף

החלקים הבאים נחוצים למארז (ראו תמונה למעלה):

    1. החלק התחתון
    2. חלק עליון
    3. חֲזִית
    4. חזור
    5. 4x הר

ניתן להדפיס את כל החלקים ללא תומכים. תוכל גם למצוא את הקבצים וכמה מהעיצובים האחרים שלי ב- Thingiverse:

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

שלב 4: הגדרת ה- PI של פטל

הגדרת ה- PI של פטל
הגדרת ה- PI של פטל
הגדרת ה- PI של פטל
הגדרת ה- PI של פטל

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

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

התקן שולחן עבודה מרוחק (כדי לגשת ל- PI מהמחשב שלך):

עדכון sudo apt-get

sudo apt-get

התקן xrdp

או שאתה יכול גם לעבוד ללא ראש באמצעות ssh (ראה למשל

שנה סיסמא:

www.raspberrypi.org/forums/viewtopic.php?t=193620

התקן את בדיקת המהירות:

סודו

apt-get להתקין python-pip

sudo pip התקן speedtest-cli

כדי לבדוק אם ההתקנה הצליחה הפעל את Speedtest במסוף:

speedtest-cli

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

התקן wiringPI

sudo apt-get להתקין git-core

שיבוט git git: //git.drogon.net/wiringPi

חיווט תקליטורים

./לִבנוֹת

(ראה גם

חלופה:

sudo apt-get להתקין wiringpi

(ראה

התקן את BCM2835

(ראה

הורד את bcm2835-1.60.tar.gz (או גירסה חדשה יותר אם יש)

זפת zxvf bcm2835-1.60.tar.gz

תקליטור bcm2835-1.60

./configure

עשה

סודו בדוק

sudo עשה התקנה

התקן את ספריית ההדמיה של פייתון

sudo apt-get install python imaging

חלופה:

sudo apt-get להתקין python-pil

הפעל את הפונקציה I2C.

הפעל את הפקודה הבאה כדי להגדיר את לוח Raspberry Pi שלך:

sudo raspi-config

בחר אפשרויות ממשק-> I2C -> כן, כדי להפעיל את מנהל ההתקן הליבה של I2C. לאחר מכן עליך גם לשנות את קובץ התצורה. הפעל את הפקודה הבאה כדי לפתוח את קובץ התצורה:

sudo nano /etc /modules

הוסף את שתי השורות הבאות לקובץ התצורה

i2c-bcm2708

i2c-dev

ראה גם

הפעל את פונקציית SPI

הפעל את הפקודה הבאה כדי להגדיר את לוח Raspberry Pi שלך:

sudo raspi-config

בחר אפשרויות ממשק-> SPI -> כן, כדי להפעיל את מנהל ההתקן של SPI.

התקן גופנים נוספים:

sudo apt-get install ttf-mscorefonts-installer

הורד והתקן גופנים (Roboto + Droid)

gksudo

pcmanfm

כדי להתחיל מנהל קבצים עם הרשאות שורש ולהעתיק גופני truetype לתיקייה/usr/share/fonts/truetype

חלופה:

העתק את הגופנים לתיקיית ההורדות באמצעות WinSCP (יש להפעיל ssh כדי להשתמש ב- WinSCP)

sudo cp -r/home/pi/הורדות/droid/usr/share/fonts/truetype

sudo cp -r/home/pi/הורדות/roboto/usr/share/fonts/truetype

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

קבצי פייתון:

השתמש במנהל הקבצים כדי ליצור תיקיה חדשה "bandwidth_monitor"

העתק את כל הקבצים לספריית bandwidth_monitor

הפוך קבצי פייתון ותסריט להפעלה

chmod +x *.py

chmod +x speedtest-cron.sh

הגדר את crontab

crontab -e

Crontab משמש לתזמון ביצוע התוכנית למשל בדיקת מהירות כל 30 דקות. הוסף את השורות הבאות לקרונטאב שלך (ראה גם איור שני):

@reboot/usr/bin/python /home/pi/bandwidth_monitor/post_restart_message.py &

@reboot sleep 30 &&/usr/bin/python /home/pi/bandwidth_monitor/poll_test_now_button.py */30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh */3 * * * */usr/ bin/python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * */usr/bin/python /home/pi/bandwidth_monitor/refresh_display.py

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

  • בעת אתחול ההודעה מחדש נכתבת ללוח המחוונים של IOT
  • בעת אתחול מחדש התחיל test_now_button
  • כל 30 דקות מבוצעת מדידת רוחב פס
  • כל 3 דקות המצב של לחצן האיפוס מרחוק (בלוח המחוונים של IOT) נבדק
  • פעם ביום מתחיל מחזור רענון תצוגה.

עיין בסעיף התוכנה לתיאור קצר של התוכניות.

שלב 5: תוכנה

תוֹכנָה
תוֹכנָה

התוכנה מחולקת למספר קבצים / תוכניות:

bandwidth_monitor_0_4.py היא התוכנית העיקרית שמפעילה Crontab כל חצי שעה. הוא מבצע בדיקת רוחב פס (באמצעות גירסת שורת הפקודה של speedtest.net). במהלך הבדיקה, נורית ה- RGB כחולה. אם רוחב הפס עולה על הסף שנבחר, הערך מוצג בתצוגת הדיו האלקטרוני (יחד עם חותמת זמן) ומיוצא ללוח המחוונים של Ubidots. אם רוחב הפס מתחת לסף הנורית הופכת לאדומה והמדידה חוזרת על עצמה לאחר עיכוב קצר. לאחר 3 ניסיונות שליליים הממסר מופעל וכך אספקת החשמל של המודם נקטעת. קוד איפוס (ערך = 2) נכתב למקטע היומן.

poll_killswitch.py קורא את הסטטוס של משתנה בוליאני בלוח המחוונים. אם killswitch_state נכון הריליס מופעל כאשר אספקת החשמל של המודם מופסקת. נורית ה- RGB הופכת לירוקה במהלך הסקר של הרוצח. לאחר האיפוס ה- killswitch_state מוגדר כ- false ונוצר ערך בחלק היומן של לוח המחוונים (value = 1).

poll_test_now_button.py ממתין ללחיצת הלחצן בלוח הקדמי של המארז. על ידי הפעלת הכפתור, מדידת רוחב הפס מופעלת באופן ידני. כאשר התוכנית מופעלת (באתחול מחדש של ה- Raspberry Pi) נורית ה- RGB מהבהבת באדום.

post_restart_message.py כותב את קוד האיפוס (value = 3) לחלק היומן של לוח המחוונים. זה מצביע על כך שצג רוחב הפס הופעל מחדש. במהלך הפעלת התוכנית נורית ה- RGB מהבהבת בכחול.

test_LED.py ו- test_relay.py הם סקריפטים פשוטים שניתן להשתמש בהם כדי לבדוק את פונקציית החומרה של ה- RGB LED והממסר.

epdconfig.py ו- epd2in9.py הם מנהל התקן עבור תצוגת הדיו האלקטרוני המסופקת על ידי Waveshare.

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

הדרכות מקיפות כיצד לבנות את לוח המחוונים וכיצד לשלב את לוח המחוונים בתוכנית Python ניתן למצוא ישירות בדף Ubidots (https://help.ubidots.com/en/) או דרך Google.

שלב 6: לוח מחוונים IOT

לוח מחוונים של IOT
לוח מחוונים של IOT

לוח המחוונים בהנחיית Ubidots (ראה https://ubidots.com) מכיל מספר אזורים המתוארים בקצרה להלן.

    1. רצף זמן של מהירות העלאה והורדה. כל חצי שעה מוכנס ערך חדש לתרשים.
    2. מהלך הזמן של זמן הפינג הנמדד. כל חצי שעה מוכנס ערך חדש בתרשים.
    3. רצף הזמן של מהירות ההורדה הממוצעת. הערך הממוצע מעל 24 שעות מחושב ונכתב לתרשים.
    4. ייצוג גיליון אלקטרוני של ערכי המדידה הנוכחיים כולל חותמת זמן.
    5. לחצן שלט רחוק לאיפוס המודם באמצעות האינטרנט. השאילתה מתרחשת כל 3 דקות, כלומר, עשויה להימשך זמן מה עד לביצוע הפעולה.
    6. רישום האיפוסים האחרונים כולל הסיבה לאיפוס (הפעלה מרחוק, כיבוי או אובדן מתח, ירידה מתחת לרוחב הפס המינימלי)

הדרכות מקיפות כיצד לבנות את לוח המחוונים וכיצד לשלב את לוח המחוונים בתוכנית Python ניתן למצוא ישירות בדף Ubidots (https://help.ubidots.com/en/) או דרך Google.