פרסומת
מגוון האורות של פיליפס הוא בהחלט לא זול (יש כמה אלטרנטיבות חלופות של פיליפס גוון ששוות את זה באמתמערכת Philips Hue מובילה את המטען בכל הקשור לתאורה חכמה, אך יש כמה אלטרנטיבות ראויות. בחרנו שלושה שכולם מציעים את אותה מערך התכונות הבסיסי וניתן לפרסום. קרא עוד ), אבל דבר אחד שאני באמת מעריך הוא המתועד היטב ממשק API מהם APIs וכיצד APIs פתוחים משנים את האינטרנטהאם תהית אי פעם איך תוכניות במחשב שלך ואתרי האינטרנט שבהם אתה מבקר "מדברים" זה עם זה? קרא עוד להכנת אפליקציות גוון משלך. היום אני אראה לך כיצד לשלוט באורות הגוון שלך מארדואינו - ואז להוסיף חיישן תנועה פשוט.
מדוע אנו עושים זאת? מכיוון שמערכות אוטומציה ביתיות יכולות להיות די נוקשות ויקרות. על ידי למידה כיצד לשלוט בגוון מארדואינו, אתה פותח את הדלתות למגוון פרויקטים של אוטומציה ביתית בהתאמה אישית שפשוט לא ניתן לנצח על ידי רכיבים מהמדף. אם פריצת דברים ביחד פשוט אינה העניין שלך, נסה את אלה 8 אפליקציות גוון נהדרות 7 האפליקציות הטובות ביותר של פיליפס גוון לאנדרואיד ולאייפוןמחפש את האפליקציות הטובות ביותר של Philips Hue לשימוש עם אורות חכמים שלך? להלן מספר אפליקציות מעולות לאייפון ולאנדרואיד. קרא עוד במקום זאת.
מערכת הגוון
בואו נהיה קצת טכניים כך שתכירו את המערכות הבסיסיות איתם אתם עובדים. אורות גוון יוצרים א רשת רשת רשתות רשת: עתיד התקשורתרשת כמעט בלתי אפשרית לרשת. ברשת רשת, אין נקודות חנק דרכם עוברת כל התנועה. במקום זאת, מידע מועבר ממכשיר למכשיר עד שהוא מגיע ליעדו. קרא עוד , באמצעות פרוטוקול אלחוטי לטווח קצר בשם ZigBee - ספציפית, הם כן קישור אור ZigBee מוסמך, שפירושו שמוצרי ZLL אחרים צריכים לעבוד גם לצד הגוון (בתיאוריה).
למרות הטווח הקצר מבחינה טכנית, תכונת הרשתות ברשת של ZigBee פירושה שכל נורה חדשה מרחיבה את הרשת ומעבירה הודעות לנורות אחרות. משמעות הדבר היא שאם אתה מתקשה לשלוט על אור בצד השני של הבית, נסה להניח אור אחר בין השניים.
זיגבי הוא פרוטוקול נהדר, אך הוא שונה לחלוטין מ- Wi-Fi או רשת מחשבים קווית, ולכן אנו זקוקים לגשר הפיליפס כדי שיצטרף לשניים יחד. גשר הגוון מריץ קושחת לינוקס עם קוד פתוח שונה, המשדרת שרת אינטרנט בסיסי.
באמצעות אינטראקציה עם שרת אינטרנט מקומי זה תוכלו לגלות את המצב הנוכחי של האורות ולשלוט עליהם.
זו מערכת פשוטה להפליא, ובשלה לפרויקטים של עשה זאת בעצמך. קודוס לפיליפס בגלל שהופך את הדבר הזה לכל כך ניתן לפריצה.
יוצא לדרך
לפני שתוכל לגשת לתיעוד ה- API, יהיה עליך לעשות זאת הירשם כמפתח. זה בחינם, אך עליך לקבל את התנאים וההגבלות. עשה זאת עכשיו.
כל מי שמכיר שירותי אינטרנט רגילים או Javascript אמור להיות מסוגל לעבוד עם הגוון: כל הנתונים מועברים ומתקבלים כ מנות JSON מה זה JSON? סקירה של הדיוטבין אם אתם מתכננים להיות מפתח אתרים ובין אם לא, כדאי לדעת לפחות מהו JSON, מדוע זה חשוב ומדוע משתמשים בו ברחבי האינטרנט. קרא עוד .
כדי לבדוק זאת בפעולה, עליכם לדעת את כתובת ה- IP של גשר הגוון שלכם. יש כמה דרכים לעשות זאת:
- עיין בטבלת הקצאת הכתובות של DHCP בממשק הניהול של הנתב שלך
- הפעל תוכנית מיפוי רשת כמו בית סורק IP
- לנסות את כלי המתווך של פיליפס UPnP
- פינג "philips-hue.home"
כשתסיים, קדימה הקלד אותו בסרגל הכתובות של הדפדפן שלך debug / clip.html צורף לכתובת האתר. במקרה שלי, זה היה:
http://192.168.1.216/debug/clip.html
זהו כלי ניפוי המאפשר לך לשלוח ולקבל את מנות JSON באמצעות ממשק אינטרנט פשוט. השלב הראשון הוא לאפשר את פרופיל המפתח בגשר הגוון עצמו - אשר מושבת כברירת מחדל מסיבות אבטחה. הדבק את הדברים הבאים בשדה BODY, השאר את כתובת האתר כ- /api/, ולשלוח בקשת POST על ידי לחיצה על כפתור הודעה:
{"devicetype": "משתמש מבחן", "שם משתמש": "מתפתח חדש"}
בפעם הראשונה שתעשה זאת, תראה "כפתור קישור שלא נלחץ" איפשהו בתגובה. זוהי תכונת אבטחה המחייבת אישור פיזי של כל יישום חדש בו אתה משתמש. לכו למצוא את הגשר שלכם, לחצו על הכפתור ושלחו שוב את אותה בקשה תוך 30 שניות. הפעם תקבל תגובה אחרת, והמשתמש יהיה מורשה לכך. אם תרצה להשתמש בשם משתמש אחר, קרא על מסמכי ה- API יצירת משתמשים. לעת עתה, זה יספיק.
לאחר הגדרת המשתמש שלך, כתובת האתר הבסיסית שאליה אתה צריך לקיים אינטראקציה הופכת /api/newdeveloper/. אתה יכול לשלוח בקשת GET כדי לגלות את כל מה שהגשר שלך יודע כרגע על אורות מחוברים, אזעקות, סצינות ויומן קצר של אפליקציות שהשתמשו בהן. להלן דוגמה של חלק ממידע הסטטוס הכלול בנורה יחידה.
"state": {"on": true, "bri": 254, "hue": 14910, "sat": 144, "effect": "none", "xy": [0.4596, 0.4105], "ct": 369, "alert": "none", "colormode": "ct", "ניתן להגיע": false}, "type": "אור צבע מורחב", "name": "חדר שינה 1", "modelid": "LCT001",
שים לב כי "על": נכון המדינה לא ממש מראה לך אם הנורה דולקת או לא; רק שעל פי הגדרות הגשר, זה צריך להיות על. "ניתן להגיע": שקר יכול להצביע על נורה רחוקה מדי, או פשוט מכובה במתג ההפעלה.
דוגמה אחרונה אחת לפני שאנחנו משלבים זאת בארדואינו: ודא שאחד הנורות שלך נראה ונדלק, ושאתה יודע איזה מספר זה. שנה את כתובת האתר ל /api/newdevelopers/lights/1/state (שינוי המספר לאורכם), ושלחו בקשת PUT עם הנתונים הבאים:
{"גוון": 50100, "ישב": 255, "bri": 255}
אתה צריך לראות את האור שלך מגיב כך:
מה שעשית זה לדחוף מדינה חדשה לנורה. אתה יכול גם להוסיף "זמן מעבר", שהוא שיטת אנימציה פרימיטיבית המציינת כמה שניות תרצה לשנות את המצב.
ניתן להגדיר את הצבע מספר דרכים שונות, אך למרבה הצער אין דרך פשוטה לשלוח ערך RGB. בדוגמה שלמעלה שלחנו גוון, ישבשתן, ו briרוחניות. נסה לשנות את ערך הגוון ולשלוח שוב את בקשת PUT.
עובד מארדואינו
יש ספריית גוון / ארדואינו קיימת הנקראת ArduinoHue אליהם מקשרים פיליפס עצמם בתיעוד ה- API, אך הבעיה בספריה זו היא שהיא מתקשר דרך חיבור ה- USB למחשב האישי שלך, אשר גם צריך להריץ יישום Python ללא הרף. יו. באותה מידה תוכל לאפשר למחשב שלך להפעיל את כל העניין בנקודה זו, ולחתוך את הארדואינו לחלוטין.
במקום זאת, אני אראה לך כיצד לשלוט בגוון מהארדואינו באמצעות מגן אתרנט. Arduino שלך לא צריך להיות מחובר למחשב, כך שהוא יכול לפעול באופן עצמאי בכל מקום שאתה יכול לשים בו כבל Ethernet. למעשה, זה אמור לעבוד גם עם מגן Wi-Fi, אבל אין לי עם מי לשחק.
אם תרצה לדלג קדימה, קוד הדגימה המלא מוטבע למטה, או זמין פה. התאמתי אותו מדוגמה שפורסמה מאת גילסון אוגוימה. אם מעולם לא שיחקת בעבר עם מגן ה- Ethernet שלך, ייתכן שתרצה לבצע ריצה מהירה דרך ה- מדריך לקוח אינטרנט - אני מניח מידה מסוימת של היכרות עם זה ולא אכסה את הקוד המשמש להקמת IP ברשת וכו '. הראינו לכם גם כיצד ליצור שרת אינטרנט מיני עם מגן אתרנט תן לפרוייקט Arduino שלך מיני שרת אינטרנט משלו, עם מגן אתרנטלפני זמן מה הראיתי לך כיצד להתקין מערכת בקרת אינטרנט לארדואינו שלך - אך היא הייתה חייבת להישאר מחוברת למחשב דרך USB כדי לשמור על חיבור האינטרנט ... קרא עוד .
יצירת שינויי מדינה
יצירת מדינה חדשה לדחיפה אל הנורות היא מקרה פשוט של יצירת מדינה חדשה מחרוזת משתנה ובריחה מכל הציטוטים הכפולים. הוספתי א אקראי () הפונקציה שם גם ליצור אנימציה דינמית משהו. נסה להפוך את המשתנה לגוון אקראי גם לצבעים שונים.
פקודת מחרוזת = "{\" על ": true, \" גוון \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" time מעבר \ ":" + מחרוזת (אקראי (15, 25)) + "}";
שליחת הפיקוד
כדי לשלוח את הפקודה בפועל, יש לך פונקציית עוזר בשם setHue () שלוקחת את מספר האור ואת מחרוזת הפקודה כארגומנט, כך:
setHue (1, פקודה);
כל מה שהוא עושה אז זה שהוא מתחבר לגשר, מפטיר את הפקודה כבקשת PUT, יחד עם כל השטויות האחרות שביצירת בקשת HTTP כרוכה בה.
client.print ("PUT / api /"); client.print (שם משתמש hueUs); client.print ("/ אורות /"); client.print (lightNum); client.println ("/ מצב HTTP / 1.1"); client.println ("להמשיך לחיות"); client.print ("מארח:"); client.println (hueHubIP); client.print ("אורך תוכן:"); client.println (command.length ()); client.println ("סוג תוכן: טקסט / רגיל; charset = UTF-8 "); client.println (); // קו ריק לפני הגוף. client.println (פקודה); // פקודת הגוון.
הוספת חיישן תנועה
לבסוף חיווטתי פשוט חיישן תנועה HC-SR501 לפין קלט / פלט דיגיטלי 2. כאשר מתגלה תנועה, סדרת מצבים נדחפת לגשר ל -2 נורות ליצירת אנימציה איטית ודינמית. כאשר חיישן התנועה מושבת, נשלחת פקודה אחת לביטוי לשניהם. באופן אידיאלי, הם יוחזרו למצב בו הם נקלעו לפני שהתגלה תנועה, אבל ההיגיון לא כל כך חכם - אנחנו פשוט הולכים להפעיל ולכבות אותם.
מגבלות
אף כי אומנם קוד שאינו ממומט, לוקח ממשק שנייה כמעט שנייה לשלוח בקשת פקודה יחידה. בדקתי את אותה הפקודה ממק, באמצעות אותו חיבור אתרנט וזה היה מסוגל פי עשרה עד עשרים מהמהירות (הנה AppleScript למקרה שתרצה לבדוק). כתוצאה מכך, כל סוג של אנימציה מהירה (ניסיתי ליצור אפקט נרות מהבהב) פשוט לא אפשרי מארדואינו. זה לא אמור להוות בעיה עבור רוב הפרויקטים, רק לאנימציות אור במהירות גבוהה, אבל טוב להיות מודע למגבלה.
קשה גם לנתח את כל תגובת JSON שתחזור מהגשר; פשוט אין מספיק זיכרון RAM בארduino כדי לאחסן את כל הנתונים הגולמיים. מסיבה זו, אולי תרצה להגביל את עצמך בעיקר לשליחה.
האק הגוון
עכשיו כשאתה חמוש בידע כיצד לשלוט בגוון באופן עצמאי לחלוטין, הוא פותח עולם של פריצות אוטומציה ביתיות של הגוון. השאלה האמיתית היא: מה תעשה?
ג'יימס הוא בעל תואר ראשון בבינה מלאכותית, והוא מוסמך CompTIA A + ו- Network +. הוא המפתח הראשי של MakeUseOf, ומבלה את זמנו הפנוי במשחקי פיינטבול VR ומשחקי לוח. הוא בנה מחשבים אישיים מאז שהיה ילד.