1Aug

בניית מחוון LED עם פטל פטל( לדוא"ל, מזג אוויר, או כל דבר)

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

למה אני רוצה לעשות את זה?

כי זה כיף.שלא כמו רבים של Tutorials שלנו שבו אנו כוללים קצת blurb ב outlining העליון בדיוק מה תועלת תוכל להפיק מן הפרויקט, את blurb הוא די קצר במקרה זה כי היתרון הוא פשוט נהנה.

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

מה אני צריך?

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

אם אתם מחפשים לעשות את הפרויקט הזה על התקציב, אנו יכולים לומר בביטחון כי המודל החדש ביותר פטל פאי הוא מוגזם משמעותי עבור העבודה ואנו ממליצים לך לפוצץ את האבק של פטל ישנים יש לךדחף בארון או להרים זול השתמשו באחד eBay או משהו כזה.תקציב חכם את long-in-the- שן א פטל פייס 1 דגם A או דגם B snagged off eBay עבור $ 10-15 הוא מושלם בכושר עבור פרוייקט זה על רכישת מותג חדש $ 35 הנוכחי הדור.

בנוסף ליחידה פונקציונלית Pi עם Raspbian מותקן על זה תצטרך את הדברים הבאים:

  • 1 LedBorg מודול( ~ 5.00 $ עם משלוח 4 $ מבריטניה לארה"ב, עובד עם כל דגמי פייס דגמים).
  • 1 ברור Pipberry פי מקרה תואם עם דגם פי מסוים שלך כמו במקרה זה Raspberry Pi 1 במקרה B.

הערה: במקרה ברור / שקוף פיי הוא אופציונלי לחלוטין, אבל אם אתה משתמש כעת במקרה אטום אז מחוון LED שלך יהיה מוסתר בפנים.אתה גם צריך לחתוך חור במקרה שלך כדי לאפשר את האור או להשתמש בכבל הרחבה GPIO עם ערכת breakout כמו זה אחד מ Adafruit תעשיות, כדי לקשור את LedBorg כדי שלך פספלרי Pi.תוך שימוש בכבל breakout מוסיף כ 8 $ על חשבון הפרויקט הוא מציע יותר פוטנציאל עבור התאמה אישית של המוצר הסופי, כי אתה יכול בקלות רבה יותר מקום LED בתוך דברים או תחת משהו שאתה רוצה להאיר.

התקנת LedBorg

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

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

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

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

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

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

התקנת תוכנת LedBorg

מציעה חברת PiBorg חבילת תוכנה נהדרת עבור LedBorg הכוללת בקר GUI וכן מנהלי התקנים כדי לגשת אל LedBorg משורת הפקודה.

לפני שנתחיל אתה צריך לוודא שאתה תופס את החבילה הנכונה עבור הגרסה שלך של Rasbian ואת הגרסה # של לוח פי שלך Raspberry.

אם יש לך חורי הרכבה על פי לוח ה- Raspberry Pi שלך, אזי זוהי גרסה 1. אם יש לך חורי הרכבה( ממוקם על ידי יציאות ה- USB ובין הכוח לבין יציאת HDMI), אז זה גרסה 2. אתה גם צריך לדעת את הקרנלגרסה של התקנת Rasbian שלך.פתח את המסוף והזן את הפקודה הבאה כדי לבדוק:

uname -r

ברגע שיש לך את מספר הגרסה ואת מספר הקרנל, אתה יכול לבקר את החבילה סעיף כאן כדי לתפוס את הקישור עבור החבילה שלך.במקרה שלנו אנו משתמשים בלוח רוויזיון 1 עם הקרנל 3.6.11 כך שנוכל לתפוס את קובץ ה- rspbian 2013-02-09-rev1.zip.

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

הערה: עליך להחליף את כתובת האתר בפקודה השלישית עם כתובת האתר של החבילה עבור שילוב הלוח / הקרנל.

mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ raspbian 71-02-09-rev1.zip
לפרוס את setup.zip
chmod + x install.sh
. /install.sh

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

קדימה ולחץ על סמל LedBorg להשיק את מעטפת GUI.אתה תטופל על ממשק בורר הצבע כך:

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

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

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

זה כאן בסעיף הדגמה מצב כי אתה יכול גם להפוך LedBorg שלך לתוך הראשון של אינדיקטורים רבים.על ידי בחירת מעבד בקטע צבעים LED יתחילו לשנות מ ירוק לצהוב לאדום כדי לציין עומס על מעבד ARM של פספס.אנו ממליצים לשנות את המהירות לאיטיות בזמן שאתה נמצא בה במהירות עדכוני LED מהר מדי ועושה את מחוון ה- CPU מסיח במקום שימושי.

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

הד "000" & gt;/dev/ ledborg

הדרך שבה LedBorg מטפל בערכי RGB היא ש 0 פירושו שהערוץ כבוי, 1 פירושו שהערוץ הוא חצי הספק, ו- 2 פירושו שהערוץ מלא.כך למשל 001 היה להגדיר את הערוץ האדום ב 0%, ערוץ ירוק ב 0% ואת הערוץ הכחול ב 50% כוח.

לשנות את הערך ל 002 ואת הפלט LED נשאר כחול אבל הופך בהיר יותר כי הערוץ הכחול עכשיו ב 100% פלט.שנה את הערך ל 202 ואת האדום וכחול במלוא הכוח לשלב כדי להפוך צבע מגנטה.

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

הגדרת LedBorg שלך כמחוון גשם

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

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

ברגע שיש לך את מפתח ה- API שלך, בקר ב- Weather Underground וחיפש את העיר שברצונך לפקח עליה.במקרה שלנו אנחנו הולכים לפקח סן פרנסיסקו, קליפורניה.כתובת ה- URL של דף התחזית של San Fransisco היא:

http: //www.wunderground.com/US/CA/ San_Francisco.html

החלק החשוב ביותר עבור המטרות שלנו הוא החלק האחרון של כתובת האתר: /CA/ San_Francisco.html.אנו נשתמש בזה כדי לערוך את כתובת האתר החזויה עבור כלי ה- API.כתובת האתר הבסיסית היא: //api.wunderground.com/api/ http: //api.wunderground.com/api/ מפתח ה- API שלך /forecast/q/STATE/ CITY.json

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

ברגע שיש לך את כתובת ה- API עם מפתח ה- API שלך ואת המדינה / העיר מוכנס, אתה יכול לערוך את סקריפט Python הבאה על ידי יצירת מסמך טקסט חדש על פי שלך באמצעות Leafpad והדבקה את הקוד הבא לתוכו:

מ urllib2 ייבוא ​​urlopen
("rex)
pop = int( parsed_json ['Forecast'] ['txt_forecast'] ['Forecastday'][0] ['pop'])

# להלן ערך באגים.
# לערוך את חשיש ולשנות
# מספר שלם ל 0-100 כדי לבדוק את
# את התגובה LED.

# pp = 0

הדפס את 'סיכויי הגשם הנוכחיים'{ }.( Format) pdf

# הגדרת ברירת המחדל היא להפעיל את הנורית
# עבור כל סיכוי לגשם מעל 20%.ניתן לשנות את
# הערך ב- "if pop & gt; 20:" כרצונך.

אם pop & gt;20:
LedBorg = פתח( '/dev/ ledborg', 'w')
LedBorg.write( '002')
דל LedBorg
הדפס( 'גשם')
אחר:
LedBorg = פתוח( '/dev/ ledborg', '
LedBorg.write( '000')
del LedBorg
הדפס( 'אין גשם!')

שמור את הקובץ בשם wunderground.py בספריה /home/pi/.פתח את המסוף והקלד את הפקודה הבאה:

python wunderground.py

אם הזנת את מפתח ה- API ואת קודי המדינה / העיר שלך כהלכה, עליו להשיב תגובה שנראית כמו:

אם המשקעים צפויים לאזור שלךהפלט LedBorg שלך צריך להיראות כך:

עכשיו מחכה ליום גשום כדי לבדוק כראוי את התסריט יהיה מייגע.אם אין סיכוי לגשם באזור שלך היום ואתה רוצה לראות את הנורית LED למעלה, לערוך את התסריט wunderground.py ולהחליף את "פופ = פופ" ערך מעבר בשורה 13 עם ערך גדול מ -20 כגון 60כי התחזית שלנו חזר.רק תזכור לשנות את הקו בחזרה "pop = pop" בסיום.

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

הגדרת LedBorg שלך בתור מחוון Gmail

מי לא אוהב לתקן דופמין שמגיע עם לראות דוא"ל חדש בתיבת הדואר הנכנס שלהם?בחלק זה של המדריך אנחנו הולכים להראות לך כיצד להשתמש LedBorg כמחוון Gmail חדש.בדיוק כמו בפעם האחרונה, אנחנו הולכים לשלב קלט חיצוני( במקרה זה הזנת Atom במקום API) ו סקריפט פשוט לנהוג LED שלנו.

אנחנו צריכים להרחיב את הפונקציונליות של ההתקנה פייתון שלנו קצת על ידי התקנת FeedParser, RSS Python / Atom הזנה כלי קריאה.פתח את המסוף והזן את הפקודה הבאה:

sudo easy_install feedparser

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

ייבוא ​​feedparser

# הזן את שם המשתמש שלך ב- Gmail
# ואת הסיסמה.אל תכלול את
# חלק @ gmail.com של
# שם המשתמש שלך.

שם משתמש = "שם משתמש"
סיסמה = "סיסמה"

mail = int( feedparser.parse( "https: //" + username + ":" + password + "@ mail.google.com /gmail/feed/ atom") [""] [" fullcount "])

# הבא הוא ערך באגים.
# לערוך את חשיש ולשנות
# מספר שלם ל 0 או 1 כדי לבדוק את התגובה
# LED.

# mail = 0

אם mail & gt;0
LedBorg = פתח( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
הדפסה( 'Mail!')
אחר:
LedBorg = פתוח( '/dev/ ledborg', '
LedBorg.write( '000')
del LedBorg
הדפס( 'אין דואר')

שמור את הסקריפט כ- gmailcheck.py.פתח את המסוף והקלד את הפקודה הבאה:

python gmailcheck.py

אם יש לך דוא"ל יושב בתיבת הדואר הנכנס שלך ב- Gmail, נורית ה- LED תהפוך לירוקה ותקבל תגובה כזו:

אם יש לך דואר לתיבת הדואר הנכנס שלך ב- Gmail שלך LedBorgייראה כך:

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

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

הגדרת עבודה Cron להפעלת סקריפט שלך

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

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

הד "000" & gt;כאשר אתה עדיין בשורת הפקודה, אתה יכול לפתוח את העורך cron.אם מעולם לא הגדרת עבודה cron לפני, היינו ממליצים מאוד לבדוק את המדריך שלנו כדי להשתמש בו כאן.עם זאת, נלווה אותך על ידי הגדרת לוח זמנים בסיסי כאן.

בסוג הטרמינל:

sudo crontab -e

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

אם ברצונך להגדיר את סקריפט הגשם, הזן את השורה הבאה בטבלת cron:

* / 5 * * * * python /home/pi/ wunderground.py

הקש על CTRL + X כדי לצאת;בחר כן כדי לשמור ולשנות את שולחן cron הקיים.הערך שהכנסנו בטבלת הקרון "* / 5 * * * *" קובע את התסריט להפעלה כל 5 דקות, לתמיד.

כל 5 דקות הוא פרק זמן מצוין עבור סקריפט המחפש גשם צפוי - אפשר אפילו לטעון שזה קצת אגרסיבי מדי - אבל אם אתה מנסה לשמור על גבי הדוא"ל שלך זה קצת יותר מדי ארוך עבורהוֹדָעָה.אם אתה מגדיר את לוח הזמנים של התסריט להודעות ב- Gmail, הזן את השורה הבאה בטבלת cron:

* / 1 * * * * python /home/pi/ wunderground.py

ערך זה מפעיל את הסקריפט gmailcheck.py בכל רגע עבור מהירות הרבה יותר מהירההודעת עדכון.

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

לבסוף, אני רוצה להודות לכל המשאבים הגדולים הייתי עובד על הפרויקט הזה.זה היה קצת יותר מעשור מאז הייתי פעיל כותב תוכניות וזה לקח כמה דופק כדי לקבל את האבק והחלודה החוצה.התורמים ב /r/ LearnPython עזר לי להתעסק ב פלט ה- API עבור Weather Underground, ללמוד איך מייקל מעל ב Mitch טק עסקה עם עדכון Atom של Gmail עשה ניתוח זה עבור LedBorg קל, וללמוד את מודולי למידה Python ב קוד האקדמיה היה נהדרדרך לאסוף את התחביר הבסיסי ואת המבנה של שפה מעולם לא השתמשתי לפני.