פרסומת
מתגי אפילה עד עלות השחר ומתגי טיימר הם שניהם דרכים שימושיות להפעלת האורות שלך. האם זה לא יהיה נהדר אם היית יכול לשלב את השניים, או אפילו לחבר אותם לאינטרנט למערכת תאורה חכמה באמת?
Pi פטל, ממסר, חיישן תאורה ונקיף קוד הם כל מה שצריך כדי להשיג נירוונה תאורה אוטומטית זו על חוט האש.
מה אתה צריך
רכיבים למתג החכם החושי האור שלך קלים למקור. אתה תצטרך:
- כל דוגמנית פטל Pi המריצה Raspbian.
- א לוח ממסר, ניתן למצוא בקלות באמזון.
- א חיישן אור הזוהר Adafruit TSL2561.
- חוטי מגשר.
- כמה אורות לאוטומציה!
איך עובד מתג חכם חושי אור
באמצעות ממסר באותו אופן כמו שלנו פרויקט פתיחת דלת מוסך אוטומטי כיצד להפוך את דלת המוסך לאוטומטית באמצעות IFTTT ו- Raspberry Piבמדריך זה נראה לך כיצד להפוך את דלת המוסך לאוטומטית שלך באמצעות לא יותר מאשר Raspberry Pi ו- IFTTT. קרא עוד אתה יכול לתכנת Raspberry Pi כדי להפעיל ולכבות מעגל תאורה בשעות קבועות. הוספת חיישן זוהר לתערובת פירושה שה- Pi יכול לזהות את רמת האור בסביבה, ולבחור להדליק את האורות רק כאשר הם באמת נדרשים.
מכיוון ש- Pi הוא מחשב זעיר שניתן לחבר לרשת, אתה יכול להגדיר אותו כך שהוא ישולט גם דרך האינטרנט. לאורות החכמים שלך יהיו שלוש כניסות כדי לקבוע מתי הם נדלקים:
- לוח זמנים מתוכנת.
- מפלס האור הסביבה.
- אות עקיפה שנשלח דרך הרשת.
שלב 1: חבר את ה- Raspberry Pi לממסר
אם אתה לא משתמש ב- GPIO התחל לקרוא כל מה שצריך לדעת על סיכות פטל Pi GPIO.
ראשית, בדוק אם יש ללוח הממסר מגשר המחבר בין סיכות ה- VCC וה- JD-VCC יחד. אם יש, הסר אותו.
כאשר כל הכיבוי מופעל, חבר את לוח הממסר ל- Pi שלך באופן הבא:
- Pi Pin 2 (5v) ל- JD-VCC בלוח הממסר.
- Pi Pin 6 (GND) ל- GND בלוח הממסר.
- Pi Pin 15 (GPIO 22) ל- IN1 בלוח הממסר
- Pi Pin 17 (3.3v) ל- VCC בלוח הממסר.
שלב 2: חבר את חיישן הזוהר
TSL2561 הוא חיישן אור שיכול לזהות אור אינפרא אדום, ספקטרום מלא ואנו נראה לעין. זה יכול לשלוח קריאה דיגיטלית מדויקת מאוד ל- Raspberry Pi. החיישן מדווח על רמת האור בסולם של 0.1 (ללא אור) ל 40,000 (שמש בהירה).
לוח TSL2561 משוחח עם פטל Pi באמצעות פרוטוקול i2c. I2C זקוק רק לשני חיבורים, אחד לשעון כדי לשמור על שני המכשירים בסנכרון ואחד לנתונים המועברים. כמובן שחיישן לוקס גם זקוק לעוצמה מסוימת, כך שיש ארבעה חיבורים שניתן לבצע לחלוטין:
- חבר Pi Pin 1 (3.3v) ל- Vin (או VCC) בחיישן lux
- חבר Pi Pin 3 (SDA) ל- SDA בחיישן lux
- חבר Pi Pin 5 (SCL) ל- SCL בחיישן lux
- חבר Pi Pin 9 (GND) ל- GND בחיישן lux
שלב 3: הגדר והתקן תלות
לפני שתמשיך הלאה, עליך לבדוק שה- I2C מופעל ב- Raspberry Pi שלך (הוא מושבת כברירת מחדל). הקלד את הדברים הבאים בטרמינל:
sudo raspi-config
בחר אפשרויות ממשק> P5 I2C, אז תבחר כן.
מכה להיכנס ואז בחר סיים כדי לצאת ממסך התצורה. אתחל את ה- Pi שלך כדי שהשינוי ייכנס לתוקף:
אתחל מחדש
תלות מסוימות נחוצות כדי שה- Pi יוכל לתקשר עם לוח החיישנים. הקלד את הפקודות הבאות:
עדכון sudo מתאים לקבל. sudo apt - קבל להתקין את הפיתון smbus. sudo apt - לקבל התקנת כלים i2c
אתה יכול לבדוק שהכל עובד על ידי הקלדה:
sudo i2cdetect -y 1
אם התלות שלך מותקנת וחיישן lux שלך מחובר כהלכה, תראה תגובה כזו:
כאן כלי הדיווח מדווח שהוא מצא מכשיר I2C (חיישן lux) בכתובת I2C 39.
עדיין לא סיימת עם התלות. גם אתה תצטרך כמה ספריות. ראשית, צור תיקיה כדי לשמור את כל מה שקשור לפרויקט זה ב:
mkdir ~ / תאורה. תקליטור ~ / תאורה
הבא, הורד בקבוק, מסגרת קלה אשר תיצור שרת אינטרנט פשוט ב- Pi שלך. תוכלו להשתמש בו לשליטה על האורות שלכם מהאינטרנט.
ווגט https://bottlepy.org/bottle.py
הספריות האחרות שתצטרך נמצאות ב- Github, כך שאם ה- Raspberry Pi שלך עדיין לא מותקן ב- Git, הוסף אותו עכשיו:
sudo apt - קבל להתקין גיט
שכבו כעת שתי ספריות, ככה:
שיבוט גיט https://github.com/adafruit/Adafruit_Python_GPIO.git. שיבוט גיט https://github.com/adafruit/Adafruit_Python_PureIO.git
ולבסוף, צור סקריפט לבדיקה על ידי יצירת קובץ חדש:
מבחן ננו
הדבק קוד זה (באדיבות אדאפרויט):
#! / usr / bin / env python. # - * - קידוד: utf-8 - * - מ- __future__ ייבוא absolute_import, חלוקה, print_function, unicode_literals. מ- tsl2561 יבוא TSL2561. אם __name__ == "__main__": tsl = TSL2561 (debug = True) הדפס (tsl.lux ())
ללחוץ Ctrl + X כדי לשמור, על פי ההוראות שעל המסך ליציאה.
כשתסיים, הרץ את סקריפט הבדיקה:
מבחן פיתון
אם הכל מותקן ופועל, תחזיר מספר. המספר הזה הוא קריאת lux מהחיישן. נסה לחסום את החיישן, או להזיז אותו כך שיאיר פחות או יותר אור. ואז הפעל שוב את סקריפט הבדיקה וראה כיצד המספר משתנה.
שלב 4: צור את סקריפט האוטומציה
ה- Raspberry Pi ידליק את האורות כאשר יחשיך, אך גם יכבה אותם בשעות מסוימות. לדוגמה, יתכן שתרצה שהאורות שלך ידלקו כשחושך בערב, ואז ייסע בסביבות חצות כדי לחסוך בחשמל. הם יכלו להידלק שוב בשעות הבוקר המוקדמות, ואז לכבות את עצמן כשיתבהר.
כדי לנהל לוח זמנים עם אזורי תזמון מרובים כמו זה, ישנם שני סקריפטים שונים. אחד (onzone.py) יפעל כל דקה בזמנים שאתה רוצה שהאורות שלך יהיו דולקים אם זה חשוך. האחר (offzone.py) יפעלו כל דקה בשעות בהן תרצו שהאורות יהיו כבולים ללא קשר לגובה האור.
התסריטים יתוכננו לפעול באמצעות עבודות cron כיצד לתזמן משימות בלינוקס עם Cron ו- Crontabהיכולת להפוך משימות לאוטומטיות היא אחת מאותן טכנולוגיות עתידניות שכבר קיימות כאן. כל משתמש לינוקס יכול להפיק תועלת מתזמון מערכות ומשימות משתמש, בזכות cron, שירות רקע קל לשימוש. קרא עוד . על ידי בחירת שעות היום והלילה שכל סקריפט יופעל, יהיה קל להגדיר את השעות בהן האורות שלך יוכלו להידלק באופן אוטומטי. אתה יכול להגדיר כמה תקופות לסירוגין שאתה רוצה.
כמו גם סקריפטים לשליטה אוטומטית באורות, יש סקריפט שלישי לניהול מצבי עקיפה. זה יאפשר לך להדליק את האורות מרחוק ללא קשר לרמת האור הסביבה.
תסריט 1: אזור ON
תסריט הפייתון הזה יופעל בכל דקה ביום שאתה רוצה שהאורות נדלקים אם יהיה חשוך. הורד את הסקריפט על ידי העתקה והדבקה של פקודה זו בטרמינל:
ווגט https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
בכל פעם ש- onzone.py מופעל, הוא יקבל ערך lux מהחיישן כדי לראות אם הוא חשוך. אם כן, הוא יבדוק אם האורות דולקים או כבויים. אם הם במצב כבוי, זה יפעיל אותם. אם לא חשוך, התסריט יראה אם האורות דולקים. אם הם כן, זה יכבה אותם אלא אם כן הם חולפים.
התסריט משתמש במשתנה הנקרא שפל להחליט באיזו נקודה חשוך מספיק כדי להדליק את האורות. אתה יכול לשנות את זה למשהו שמתאים להתקנה משלך על ידי שינוי הערך בשורה זו בסמוך לראש onzone.py:
lowlux = 50
סקריפט 2: אזור הכיבוי
סקריפט זה יופעל בכל דקה ביום שאתה רוצה שהאורות ייכבו, אלא אם כן הם נעקרו. הורד את התסריט:
ווגט https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
לתסריט הזה לא אכפת כמה הוא אור או כהה. תפקידו פשוט לכבות את האורות אם הם דולקים (אלא אם כן הם הוסרו).
סקריפט 3: העקיפה של השרת
סקריפט זה יוצר שירות אינטרנט פשוט שיכול לקבל פקודות לביצוע הפעולות הבאות:
- הדלק את האורות למשך מספר דקות ללא קשר לגובה האור בסביבה.
- כבה את האורות.
- גלה האם הנורות דולקות או כבויים כעת.
- גלה כמה זמן האורות אמורים להישאר דולקים לאחר שהחליפו אותם.
הורד את התסריט:
ווגט https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
לפני שתעבור לשלב הבא, הפעל את הסקריפט offzone.py כך:
פיתון offzone.py
פעולה זו תיצור את קבצי הבקרה שבהם הסקריפטים משתמשים כדי לעקוב אחר הכל.
שלב 5: קבעו את התסריטים
פטל Pi שלך יכול להריץ את סקריפט האוטומציה באמצעות cron. הגדר את לוח הזמנים כך:
sudo crontab -e
הדבק את שתי השורות הללו בעורך הטקסט:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL
הערה: אם שם המשתמש שאליו התחברת ל- Raspberry Pi שלך לא היה ברירת המחדל פאי, שנה את הנתיב בהתאם.
רשמו את כל השעות בהן ברצונכם שהאורות ידלקו כשחשוך בשורה הראשונה. כל השעות בהן אתה רוצה שהאורות כבויים עוברים בשורה השנייה.
כעת הגדר את סקריפט העקיפה לפעול באופן אוטומטי כאשר ה- Pi מופעל:
sudo nano /etc/rc.local
הדבק שורה זו בתחתית הקובץ, ואז שמור ויצא:
nohup python /home/pi/lighting/lightserver.py &
לבסוף, הפעל מחדש את ה- Raspberry Pi כדי שתוכל לבדוק שסקריפט השרת טוען כנדרש
אתחל מחדש
שלב 6: בדוק את הממסר
לפני חיבור הנורות שלך, בדוק שהכול עובד על ידי שימוש בפונקציית ההעלאה. הקלד את הדברים הבאים בדפדפן אינטרנט באותה רשת שבה ה- Pi שלך החלף את כתובת ה- IP בכתובת של Raspberry Pi משלך:
11.22.33.44:1234/overrideon/3
אם הכל בסדר, תשמעו את לחיצת הממסר והדפדפן יגיב שהנורות דולקו במשך שלוש דקות.
בזמן שהממסר סגור, באפשרותך לבדוק את שאר הפונקציות לביטול. זה יגיד לך כמה דקות נוספות האורות יישארו דולקים עקב הדריסה:
11.22.33.44:1234/getoverrideremaining
זה אמור לומר לך שהאורות דולקים:
11.22.33.44:1234/lightstatus
לבסוף, תוכלו לכבות אותם שוב באמצעות:
11.22.33.44:1234/overrideoff
הממסר ילחץ כשנפתח.
שלב 7: חבר את האורות שלך
כבה ונתק את ה- Raspberry Pi שלך לפני שאתה מחבר את האורות לממסר. השתמש במחברים הפתוחים (NO) בדרך כלל בלוח הממסר במקום מתג רגיל, כך:
לבסוף, תוכלו להתקין את חיישן הלוקס שלכם במקום בו יתפוס את רמת האור הסביבה. שים לב ש- TSL2561 ידווח כרווי אם הוא נתקל באור שמש ישיר בוהק, ולכן עדיף לשמור עליו בצל אם הדבר אפשרי.
פרוייקטים נוספים של פטל פי שצריך לנסות
ביטול מרחוק של הגדרת התאורה החכמה החדשה שלך על ידי הקלדת פקודות בדפדפן אינטרנט זה די מסורבל. דרך טובה יותר היא לחבר משהו כמו הד של אמזון כדי להקל על הדברים. שילוב של שירות Alexa ו- Webhooks פועל IFTTT היא דרך פשוטה להוסיף שליטה קולית.
ראה את שלנו מדריך לשימוש ב- IFTTT כדי לעזור לך להתחיל.
אפשרות נוספת היא להשתמש בקיצורי הדרך של סירי. קיצור דרך יחיד עם תפריטים יכול לשאול את מצב האורות ולהשתמש בפונקציות העקיפה כדי להפעיל ולכבות אותם.
אם נהניתם מהפרויקט הזה, הקפידו לבדוק את אלה פרויקטים פטל Pi מוזרים 10 פרויקטי Pi פטל מוזרים ביותרישנו מדען מטורף בתוך כל אחד מאיתנו, וה- Raspberry Pi מאפשר לרתך הפנימית שלך לצאת ולשחק. לפעמים הדברים מוזרים. מאוד מוזר. קרא עוד לעוד רעיונות.
חמיש הוא סופר עצמאי, חובב טכנולוגיה לכל החיים, וחנך מאושר. הוא עבד במחלקות ה- IT של מספר רב-לאומיות לפני שלבסוף פטר את הבוס שלו והלך לבד.