תוכן עניינים:

קבלת הודעת דוא"ל כאשר ערוץ ב- ThingSpeak לא עודכן לזמן מה: 16 שלבים
קבלת הודעת דוא"ל כאשר ערוץ ב- ThingSpeak לא עודכן לזמן מה: 16 שלבים

וִידֵאוֹ: קבלת הודעת דוא"ל כאשר ערוץ ב- ThingSpeak לא עודכן לזמן מה: 16 שלבים

וִידֵאוֹ: קבלת הודעת דוא
וִידֵאוֹ: אייל גולן, אני קורא לך! 2024, נוֹבֶמבֶּר
Anonim
קבלת הודעת דוא
קבלת הודעת דוא

סיפור רקע

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

החיבור המרוחק ללוחות ה- Arduino בששת החממות מתאפשר בעזרת דונגלים מסוג USB GPRS, אחד בכל מקום (קניתי את שלי מכאן https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-With-Antenna-3G-USB-Modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). כפי שקורה בחיבור הנתונים הסלולרי (לפחות בדבלין), הוא יורד באופן אקראי, לפעמים לכמה דקות, לפעמים יכול להיות למשך כמה שעות. אם החיבור ייפול, ה- Arduino מתוכנת לאפס את הפלאג USB כל 10 דקות, כדי שינסה להתחיל חיבור חדש. אולם לפעמים, מסיבות לא ידועות (גם אם חיבור נתוני GPRS מופעל מחדש, ה- Arduino (ומגן ה- Ethernet המצורף) לא מצליח לשים לב לאירוע. זה הרגע שאני צריך ללכת לאותו מקום ספציפי ולאפס ידנית את כל המערכת.

כאשר חיבור הנתונים יורד במיקום כלשהו, רציתי לקבל הודעה בדוא"ל בהקדם האפשרי, כדי שאעקוב אחר המיקום הספציפי הזה. מכיוון שהתקשורת בין אפליקציית הטלפון ל- Arduino מתבצעת באמצעות שירות מקוון המסופק על ידי https://thingspeak.com, עד לאחרונה (ועד 31 במרץ 2019), הדבר היה אפשרי באמצעות שירות אחר המסופק על ידי https:// ifttt.com/discover והגדרת ThingHTTP ו- React בכל ערוץ, תוך מעקב אחר העובדה אם הערוץ המסוים הזה לא עודכן במשך זמן מה. עם זאת, על פי הודעת דואר אלקטרוני שקיבלתי מ- Google, החל מה -31 במרץ 2019, בשל אי ציות לדרישות הפרטיות המעודכנות שלהם בנושא נתונים (https://cloud.google.com/blog/products/g-suite/elevating-user -אמון במערכות האקולוגיות שלנו), גישה לכמה נתונים בחשבון Google שלי לא תהיה זמינה יותר ל- IFTTT, וכמו במקרה שלי הדוא"ל היה המשאב היחיד שיש ל- IFTTT גישה אליו, ההבנה שלי הייתה שההודעה השירות שתואר לעיל יפסיק לפעול.

לכן, הנה, אנו מיישמים פתרון חלופי על מנת שהודעות הדוא ל ימשיכו להגיע כאשר חיבור הנתונים במיקומים שלי יורד. זה עדיין משתמש בתכונות ThingHTTP ו- React בערוצים שלי, רק הקישור ל- IFTTT הופנה מחדש ל- Google Drive. אז מלבד החומרה (בארדואינו במקרה שלי) ייתכן שתתקשר עם חשבון ThingSpeak שלך, יהיה עליך ליצור חשבון Google, שאם אין לך כבר אחד כזה … ובוא נתחיל!

שלב 1:

תמונה
תמונה

ב- Google Drive

ראשית, ב- Google Drive (https://drive.google.com) עלינו ליצור גיליון אלקטרוני וטופס פשוט. פתח את Google Drive ולחץ על חדש - גליונות Google - גיליון אלקטרוני ריק.

שלב 2:

תמונה
תמונה

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

שלב 3:

תמונה
תמונה

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

שלב 4:

תמונה
תמונה

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

שלב 5:

תמונה
תמונה

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

שלב 6:

תמונה
תמונה

לאחר מכן לחץ על "שנה …" לצד התווית "פרטי - רק אתה יכול לגשת"

שלב 7:

תמונה
תמונה

ושנה ל- "On - כל מי שיש לו את הקישור", וגם ל- "יכול לערוך"

שלב 8:

תמונה
תמונה

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

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

שלב 9:

תמונה
תמונה

בדף החדש שנפתח חפש "פעולת טופס" ולאחר מכן אתר את הקישור שנראה דומה ל- https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. בחר את הקישור, והעתק והדבק אותו במסמך טקסט כלשהו. אתה תשתמש בו כדי ליצור את הקישור הסופי שיש להזין ב- ThingHTTP עבור ThingSpeak.

שלב 10:

תמונה
תמונה

חזור לתצוגת המקור של הטופס שלך, ועכשיו חפש "ערך". אתר ובחר את הטקסט כולו, בערך כמו "entry. XXXXX". העתק והדבק אותו באותו מסמך טקסט שלמעלה. כעת תוכל לסגור את תצוגת המקור של טופס Google שלך.

שלב 11:

תמונה
תמונה

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

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = שלח

במקרה שלי, "LOCATION+NAME" יוחלף בשם האמיתי של כל מיקום מסוים שעלי לעקוב אחריו. הודעת האימייל שאקבל כאשר החיבור יורד יכיל טקסט זה, כך שאדע בדיוק לאיזה מיקום יש בעיות. טקסט זה למעשה יוגש כתוכן הטקסט הקצר עבור השדה "סטטוס" בטופס Google. "& Submit = Submit" יגיש את הטופס בשקט, ללא צורך בפעולות נוספות, לאחר הפעלת ThingHTTP ו- React.

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

פונקציה newEntryNotification (ה)

{

לְנַסוֹת

{

var חותמת זמן = e.values [0];

var location = e.values [1];

var message = מיקום + 'המיקום הוא למטה / n' + חותמת זמן;

MailApp.sendEmail ("כתובת הדוא"ל שלך", "תשומת לב, מיקום למטה!", הודעה);

}

לתפוס (ה)

{

MailApp.sendEmail ("כתובת הדואר האלקטרוני שלך", "שגיאה - תשומת לב, מיקום למטה!", E.message);

}

}

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

שלב 12:

תמונה
תמונה

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

שלב 13:

תמונה
תמונה

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

שלב 14:

תמונה
תמונה

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

סיימנו בצד Google Drive, ועכשיו אנו עוברים ל- ThingSpeak.

שלב 15:

תמונה
תמונה

ב- ThingSpeak היכנס לחשבון שלך (https://thingspeak.com/login), עבור אל "אפליקציות - ThingHTTP" ולאחר מכן לחץ על "New ThingHTTP". תן לו שם (בחרתי את השם האמיתי של כל מיקום; "MyLocationName" לצורך הדרכה זו), ובשדה "כתובת אתר" הדבק את הקישור מקובץ הטקסט שלך, זה שנראה כמו

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = שלח

השאר את כל השדות האחרים כפי שהם ולחץ על שמור דבר

שלב 16:

תמונה
תמונה

לאחר מכן עבור אל "אפליקציות - תגובה" ולחץ על "תגובה חדשה". תן לזה שם (שוב, בחרתי את שם המיקום ואחריו המילה "תגובה", אך תוכל לבחור כל שם שתרצה); "אין בדיקת נתונים" עבור "סוג מצב"; "כל 10 דקות" עבור "תדר הבדיקה"; שם הערוץ שברצונך לעקוב אחר עדכונים עבור "אם ערוץ"; הזמן בו הערוץ לא עודכן (בחרתי 15 דקות), עבור "לא עודכן עבור"; "ThingHTTP" עבור "פעולה"; "MyLocationName" עבור "לאחר מכן בצע ThingHTTP"; "הפעל פעולה רק בפעם הראשונה שהתנאי מתקיים", מכיוון שאני רוצה לקבל הודעה פעם אחת בלבד. פעולה זו תאפס את עצמה כאשר הערוץ יתעדכן שוב עם נתונים נכנסים חדשים. לחץ על "שמור תגובה" וסיימת.

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

מוּמלָץ: