IDC2018IOT תגיד לי מתי לכבות את המזגן: 7 שלבים
IDC2018IOT תגיד לי מתי לכבות את המזגן: 7 שלבים
Anonim
Image
Image

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

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

כמו כן, נכין מנגנון נוסף להודיע לנו כאשר שכחנו את המזגן מופעל ויצאנו מהחדר.

שלב 1: קצת יותר פרטים

אנו אוספים נתונים מ -4 חיישנים שונים:

  • שני חיישני DHT אוספים את הטמפרטורה בתוך הבית ומחוץ לבית.
  • חיישן PIR אחד מזהה תנועה בחדר.
  • מיקרופון אלקטרט אחד משמש לזיהוי הרוח היוצאת מאוורור AC, דרך פשוטה ואמינה לקבוע אם ה- AC פועל.

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

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

חלקים נדרשים:

  1. מודול WiFi - ESP8266
  2. חיישן PIR.
  3. חיישני טמפרטורה DHT11/DHT22 x2.
  4. נגדים 10k/4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. מיקרופון אלקטרט.
  6. מגשרים.
  7. כבלים ארוכים (חוט טלפון יעשה עבודה מצוינת).

הקוד המלא של הפרויקט מצורף בסוף עם הערות לאורך הקוד.

באופן הגיוני, יש לו כמה שכבות פונקציונליות שונות:

  • נתוני החיישנים נקראים במרווחים של 3 שניות מכיוון שהם מראים שהם מדויקים יותר ואין צורך ביותר מזה.
  • חלק אחד מהקוד הוא מעקב אחר מצב ה- AC על ידי הערכים המגיעים ממיקרופון האלקטרטי המוצב מעל פתח ה- AC.
  • חלק נוסף הוא מעקב אחר הקריאה המגיעה מחיישני הטמפרטורה, וההבדל שהשימוש מוגדר כמקובל להפעלת המזגן ולפתוח חלון במקום זאת. אנו מחפשים את הרגע בו הטמפרטורות מתקרבות מספיק.
  • חלק שלישי הוא מעקב אחר התנועה בחדר. אם הוא לא מזהה תנועה משמעותית (הדרך לבדיקת מגמה תסביר בקרוב) למסגרת זמן שהוגדרה על ידי המשתמש, ומצב AC מופעל, הודעה תישלח למשתמש.
  • ההודעות מטופלות באמצעות הפעלת IFTTT Webhooks ששולחות הודעות מוגדרות מראש למשתמש באמצעות Facebook Messenger
  • החלק האחרון שכדאי לציין הוא החלק המטפל בממשק Blynk, הן על ידי קבלת השינויים שהמשתמש מבצע במשתנים והן מצד שני - דחיפת נתונים לממשק Blynk כדי שהמשתמש יוכל לראות אותו.

שלב 2: הרבה יותר פרטים - חיישנים

עוד הרבה פרטים - חיישנים
עוד הרבה פרטים - חיישנים
עוד הרבה פרטים - חיישנים
עוד הרבה פרטים - חיישנים

בואו נתחיל.

ראשית, עלינו לוודא ששני חיישני ה- DHT שלנו קוראים את אותה הטמפרטורה כאשר הם ממוקמים באותו מקום. לשם כך עשינו סקיצה פשוטה המצורפת בסוף פרק זה (CompareSensors.ino). חבר את שני החיישנים וודא שאתה משנה את סוג חיישני ה- DHT בסקיצה לפי אלה שיש לך (ברירת המחדל היא DHT11 ואחד DHT22, כך שתוכל לראות כיצד מטפלים בשניהם בקוד). פתח את הצג הסדרתי ותן להם לעבוד לזמן מה, במיוחד אם אתה משתמש בחיישני DHT11, מכיוון שהם נוטים לקחת יותר זמן להתאים את עצמם לשינויי הטמפרטורה.

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

מיקום חיישנים:

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

יש לחבר את מיקרופון האלקטרט גם לכבלים ארוכים מספיק ולהניחו במיקום שבו הרוח היוצאת מהחשמל מכה אותו.

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

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

חיבור החיישנים:

מספרי הסיכה בהם השתמשנו הם כדלקמן (וניתן לשנות אותם בקוד הראשי):

חיישן DHT חיצוני - D2.

חיישן DHT בפנים - D3.

Electret - A0 (סיכה אנלוגית).

PIR - D5.

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

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

כפי שאתה בוודאי יודע, לעתים רחוקות אם אי פעם הדברים פועלים בפעם הראשונה שאנו מחברים אותם. לכן עשינו פונקציה שמדפיסה את הקריאות מהחיישנים בצורה קלה לקריאה, כך שתוכל לאתר באגים כדי שהם יעבדו. אם אינך רוצה שהקוד ינסה להתחבר ל- Blynk בזמן איתור באגים, פשוט הגיב על "Blynk.begin (auth, ssid, pass);" מחלק ההתקנה של הקוד, הפעל אותו ופתח צג סדרתי כדי לראות את ההדפסים. צירפנו גם תמונה של ההדפסים.

שלב 3: הרבה יותר פרטים - רצף IFTTT

בהרבה פרטים נוספים - רצף IFTTT
בהרבה פרטים נוספים - רצף IFTTT

אז אנחנו רוצים לקבל הודעה בשני תרחישים:

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

2. עזבנו את החדר לתקופה ממושכת והמזגן עדיין פועל.

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

התהליך:

באתר IFTTT לחץ על שם המשתמש שלך (בפינה הימנית העליונה) ולאחר מכן על "יישום חדש" בחר "Webhooks" כגורם ההדק ("זה"), ובחר "קבל בקשת אינטרנט". הגדר שם אירוע (למשל ריק_אולם).

עבור השירות המופעל, הפעולה (ה"זה "), בחר פייסבוק מסנג'ר> שלח הודעה והקלד את ההודעה שברצונך לקבל כאשר אירוע זה קורה (למשל" היי, נראה ששכחת את מערכת ההפעלה:).

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

כדי למצוא את המפתח הסודי שלך עבור אל https://ifttt.com/services/maker_webhooks/settings שם תמצא כתובת URL עם המפתח שלך בפורמט הבא:

שלב 4: הרבה יותר פרטים - בלינק

Image
Image
עוד הרבה פרטים - בלינק
עוד הרבה פרטים - בלינק
עוד הרבה פרטים - בלינק
עוד הרבה פרטים - בלינק

אנו רוצים גם ממשק שיכלול את התכונות הבאות:

1. יכולת לקבוע כמה זמן החדר צריך להיות ריק כשהמזגן פועל לפני שנקבל הודעה

2. יכולת לבחור עד כמה הטמפרטורה החיצונית צריכה להיות קרובה לפנים.

3. תצוגה לקריאות מחיישני הטמפרטורה

4. מנורה שאומרת לנו את מצב ה- AC (הפעלה/כיבוי).

5. והכי חשוב, תצוגה שתראה כמה $$$ ואנרגיה חסכנו.

כיצד ליצור את ממשק Blynk:

אם עדיין אין לך את אפליקציית Blynk, הורד אותה לטלפון שלך. כאשר אתה פותח את האפליקציה ויוצר פרויקט חדש, הקפד לבחור את המכשיר המתאים (למשל ESP8266).

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

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

לאחר שתסיים עם האפליקציה, וכאשר בסופו של דבר תרצה להשתמש בה, פשוט לחץ על סמל "הפעל" בפינה השמאלית העליונה כדי להפעיל את אפליקציית Blynk. תוכל לראות גם מתי ה- ESP8266 שלך מתחבר.

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

שלב 5: הקוד

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

חלקים בקוד שעליך לשנות לפני השימוש בו (כמפתח ה- authentication של Blynk, ה- SSID והסיסמה של ה- wifi שלך וכו '…) ואחריהם ההערה //* change* כך שתוכל לחפש אותם בקלות.

יהיה עליך להשתמש בספריות בקוד, תוכל להתקין אותן באמצעות מזהה Arduino על ידי לחיצה על סקיצה> כלול ספריות> נהל ספריות. שם תוכל לחפש את שם הספרייה ולהתקין אותו. כמו כן, הקפד לשים את הקובץ generic8266_ifttt.h באותו מיקום כמו ה- ACsaver.ino.

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

אנו קוראים מהחיישנים כל 3 שניות, אך מכיוון שחיישנים אינם מדויקים במאת האחוזים, איננו רוצים שקריאה אחת תשנה את המצב שאנו מאמינים שהוא נמצא בחדר כעת. כדי לפתור זאת, מה שהקוד עושה, האם יש לנו מונה שאנו ++ כאשר נקבל קריאה לטובת "AC on", ו - אחרת. לאחר מכן, כאשר אנו מגיעים לערך המוגדר ב- SWITCHAFTER (ברירת מחדל ל- 4), אנו משנים את המצב ל- "AC is on", כאשר אנו מגיעים ל- -SWITCHAFTER (שלילי אותו ערך), אנו משנים את המצב ל- "AC כבוי ".

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

שלב 6: לשים את הכל ביחד

אוקיי, אז כל החיישנים במקומם ועובדים כראוי. ממשק Blynk מוגדר (עם הסיכות הווירטואליות הנכונות!). ואירועי IFTTT ממתינים לטריגר שלנו.

הכנסת את המפתח הסודי IFTTT בקוד, את מפתח ה- authent של Blynk, את ה- SSID של ה- WiFi שלך ואת הסיסמה, ואפילו בדקת שחיישני DHT מכוילים ואם לא, שינית את הקיזוז בהתאם (למשל, שלנו בחוץ DHT לקרוא טמפרטורות גבוהות יותר על ידי מעלה אחת צלזיוס כי מה שהוא צריך להיות, אז השתמשנו קיזוז = -1).

וודא שה- WiFi שלך פועל, הפעל את אפליקציית Blynk וטען את הקוד ל- ESP8266 שלך.

זהו זה. אם הכל בוצע כראוי, תוכל לשחק עכשיו ולראות אותו בפעולה.

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

שלב 7: מחשבות

היה לנו כאן שני אתגרים מרכזיים.

קודם כל, איך נדע שה- AC פועל? ניסינו להשתמש במקלט IR אשר "יקשיב" לתקשורת בין המזגן לשלט. זה נראה מסובך מדי, מכיוון שהנתונים היו מבולגנים מאוד ולא היו עקביים מספיק כדי להבין "בסדר, זה אות ON". אז חיפשנו דרכים אחרות. רעיון אחד היה להשתמש במדחף קטן שייצור זרם קטן כאשר זז מהרוח של ה- AC, רעיון אחר שניסינו היה להציב מד תאוצה למדוד את זווית הכנפיים המסתובבות בפתחי האוורור ולזהות את תנועתן ממצב OFF.

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

החזרת חיישני ה- DHT לעבודה הייתה משב רוח;), אך רק מאוחר יותר הבנו שאחד מהם קצת מנותק מהטמפרטורה האמיתית. חיישן PIR דרש גם כמה התאמות, כפי שתואר לעיל.

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

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

אתגר נוסף, שלא הצלחנו לפתור עד כתיבת ההוראה הזו, היה הוספת blaster IR שיאפשר לנו לכבות את ה- AC מממשק Blynk. מה הטעם לדעת ששכחת את המזגן ללא אפשרות לכבות אותו? (טוב … אתה יכול לשאול מישהו אם הוא בבית).

לרוע המזל, היו לנו כמה קשיים בשידור חוזר של האותות שהקלטנו מהשלט, בחזרה למזגן עם ה- ESP8266. הצלחנו לשלוט על ה- AC על ידי Arduino Uno, בהתאם להנחיות הבאות:

www.instructables.com/id/How-to-control-th…

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

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

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

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

באמת, כל מה שאנחנו צריכים הוא חיישן טמפרטורה לטמפרטורה הפנימית, חיישן PIR לאיתור תנועה, ו- LED LED כבלסטר, ומקלט IR "להקשיב" לתקשורת בין ה- AC לשלט בו אנו משתמשים.

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

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

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

מוּמלָץ: