فهرست مطالب:

هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید: 16 مرحله
هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید: 16 مرحله

تصویری: هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید: 16 مرحله

تصویری: هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید: 16 مرحله
تصویری: چگونه زن رو برای رابطه جنسی آماده کنیم؟ راههای تحریک کردن زن قبل از رابطه #رابطه_جنسی 2024, نوامبر
Anonim
هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید
هنگامی که یک کانال در ThingSpeak مدتی به روز نشد ، یک ایمیل اعلان دریافت کنید

داستان پیش زمینه

من شش گلخانه خودکار دارم که در سراسر دوبلین ایرلند پراکنده شده اند. با استفاده از یک برنامه تلفن همراه سفارشی ، می توانم از راه دور ویژگی های خودکار هر گلخانه را رصد کرده و با آنها تعامل داشته باشم. وقتی درجه حرارت خیلی بالا / پایین است می توانم پنجره ها را به صورت دستی باز یا بسته کنم. وقتی رطوبت خاک بسیار کم / زیاد باشد می توانم آبیاری را شروع کنم / متوقف کنم. و هنگامی که رطوبت هوا بسیار بالا / پایین است می توانم فن تهویه را راه اندازی / متوقف کنم. یا می توانم به سادگی سیستم را به حالت خودکار تغییر دهم و مغز آردوینو از سبزیجات مراقبت می کند. جزئیات بیشتر در مورد این پروژه را می توانید در اینجا پیدا کنید -

اتصال از راه دور به بردهای آردوینو در شش گلخانه با استفاده از دانگل های 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 (و سپر اترنت متصل شده) نمی تواند از این رویداد مطلع شود. این لحظه ای است که من باید به آن مکان خاص بروم و به طور دستی کل سیستم را بازنشانی کنم.

هنگامی که اتصال داده در برخی نقاط قطع می شود ، می خواستم در اسرع وقت از طریق ایمیل به من اطلاع داده شود تا بتوانم آن مکان خاص را تحت نظر داشته باشم. از آنجا که ارتباط بین برنامه تلفن و آردوینو از طریق یک سرویس آنلاین ارائه شده توسط https://thingspeak.com انجام می شود ، تا همین اواخر (و تا 31 مارس 2019) ، این امر با استفاده از سرویس دیگری که توسط https ارائه شده بود امکان پذیر بود: // ifttt.com/discover و تنظیم ThingHTTP و React در هر کانال ، نظارت بر این واقعیت که آیا آن کانال خاص مدتی است به روز نشده است. با این حال ، طبق ایمیلی که از 31 مارس 2019 از Google دریافت کردم ، به دلیل عدم رعایت الزامات حفظ حریم خصوصی داده های آنها (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ecosystems) ، دسترسی به برخی از داده های حساب Google من دیگر برای IFTTT در دسترس نخواهد بود و همانطور که در مورد من ایمیل تنها منبعی بود که IFTTT به آن دسترسی داشت ، درک من این بود که اعلان خدماتی که در بالا توضیح داده شد از کار می افتد.

بنابراین ، در اینجا ما در حال پیاده سازی یک راه حل جایگزین هستیم تا اعلان های ایمیل همچنان در هنگام قطع اتصال داده در مکان های من به دست ما برسند. این هنوز از ویژگیهای ThingHTTP و React در کانالهای من استفاده می کند ، فقط پیوند به IFTTT دوباره به Google Drive نشان داده شد. بنابراین جدا از سخت افزار (در مورد من آردوینو) که ممکن است با حساب ThingSpeak خود ارتباط برقرار کنید ، باید یک حساب Google ایجاد کنید ، که در صورت نداشتن یک حساب دیگر … و بیایید شروع کنیم!

مرحله 1:

تصویر
تصویر

در Google Drive

ابتدا ، در Google Drive (https://drive.google.com) باید یک صفحه گسترده و یک فرم ساده ایجاد کنیم. Google Drive خود را باز کرده و بر روی New - Google Sheets - Blank spreadsheet کلیک کنید.

گام 2:

تصویر
تصویر

نام خود را به "صفحه گسترده در صفحه گسترده" تغییر نام داد. سپس به Tools بروید - یک فرم ایجاد کنید.

مرحله 3:

تصویر
تصویر

من فرم را به "محل پایین فرم" تغییر نام دادم ، و "سوال بدون عنوان" را به "وضعیت" ، و نوع آن را از "چند گزینه ای" به "پاسخ کوتاه" تغییر دادم.

مرحله 4:

تصویر
تصویر

سپس گزینه جمع آوری آدرس های ایمیل را حذف کردم - روی "تغییر تنظیمات" کلیک کنید و همه گزینه های موجود در پنجره ظاهر شده را بردارید. روی "ذخیره" کلیک کنید.

مرحله 5:

تصویر
تصویر

برگه مرورگر فعلی را که فرم شما را بسته است ببندید و باید به برگه اصلی Google Drive خود بازگردید ، جایی که باید فرم و صفحه گسترده ای را که تازه ایجاد کرده اید داشته باشید. صفحه گسترده را باز کرده و به "پرونده - اشتراک گذاری …" بروید. در پنجره جدید روی "Advanced" کلیک کنید

مرحله 6:

تصویر
تصویر

سپس بر روی برچسب "خصوصی - فقط شما می توانید دسترسی داشته باشید" روی "تغییر …" کلیک کنید

مرحله 7:

تصویر
تصویر

و به "روشن - هر کسی پیوند دارد" ، و همچنین به "امکان ویرایش" را تغییر دهید

مرحله 8:

تصویر
تصویر

روی "ذخیره" و "انجام شد" کلیک کنید تا به صفحه گسترده خود بازگردید. در آنجا ، روی "پرونده - انتشار در وب …" و سپس روی "انتشار" و "OK" برای پنجره محاوره کلیک کنید. پنجره "انتشار در وب" را ببندید.

وقتی هنوز در صفحه گسترده هستید ، روی "فرم - رفتن به فرم زنده" کلیک کنید. با ماوس خود راست کلیک کنید (من از مرورگر Google Chrome استفاده می کنم) و "مشاهده منبع صفحه" را انتخاب کنید.

مرحله 9:

تصویر
تصویر

در صفحه جدیدی که باز می شود عبارت "action action" را جستجو کنید و سپس پیوندی را پیدا کنید که شبیه https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXformformance است. آن پیوند را انتخاب کرده و آن را کپی کرده و در سند متنی بچسبانید. شما از آن برای تشکیل پیوند نهایی که باید در ThingHTTP for ThingSpeak وارد شود استفاده خواهید کرد.

مرحله 10:

تصویر
تصویر

به نمای اصلی فرم خود بازگردید و اکنون عبارت "ورود" را جستجو کنید. کل متن را پیدا کرده و انتخاب کنید ، چیزی مانند "entry. XXXXX". آن را در همان سند متنی بالا کپی و جایگذاری کنید. اکنون می توانید نمای منبع فرم Google خود را ببندید.

مرحله 11:

تصویر
تصویر

در سند متنی جدید (جایی که اکنون پیوند و مدخلی را که قبلاً چسباندیم) در اختیار دارید ، پیوند نهایی را ایجاد کنید ،

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse؟entry. XXXXX = LOCATION+NAME و ارسال = ارسال

در مورد من ، "LOCATION+NAME" با نام واقعی هر مکان خاصی که من نیاز به نظارت دارم جایگزین می شود. ایمیل اعلان رایانامه ای که هنگام قطع اتصال دریافت می کنم حاوی این متن است ، به طوری که من دقیقاً می دانم چه مکانی مشکل دارد. این متن در واقع به عنوان محتوای متن کوتاه برای قسمت "وضعیت" در فرم Google ارسال می شود. هنگامی که ThingHTTP و React آن را فراخوانی می کنند ، "& submit = Submit" بدون نیاز به هیچ گونه اقدام دیگری ، بی سر و صدا فرم را ارسال می کند.

در نهایت ، ما باید اسکریپتی را اضافه کنیم که هر بار که یک ورودی جدید در صفحه گسترده اضافه می شود ، به طور خودکار یک اعلان ایمیل ارسال می کند. صفحه گسترده را باز کنید و سپس روی "Tools - Script editor" کلیک کنید. در پنجره جدیدی که باز می شود کد زیر را اضافه کنید (با تغییرات مورد نیاز برای نشان دادن نیازهای شما):

تابع newEntryNotification (e)

{

تلاش كردن

{

var timestamp = e.values [0]؛

محل var = e.values [1]؛

var message = location + 'location DOWN / n' + timestamp؛

MailApp.sendEmail ("آدرس ایمیل شما" ، "توجه ، مکان پایین!" ، پیام) ؛

}

گرفتن (ه)

{

MailApp.sendEmail ("آدرس ایمیل شما" ، "خطا - توجه ، مکان DOWN!" ، e.message) ؛

}

}

در صورت تمایل ، متن "آدرس ایمیل شما" را با آدرس ایمیلی که باید به آن اعلان ارسال شود و پیام اعلان واقعی را جایگزین کنید.

مرحله 12:

تصویر
تصویر

وقتی یک ورودی جدید در صفحه گسترده اضافه شد ، این اسکریپت باید فعال شود. در همان پنجره (با کد اسکریپت بالا) ، روی نماد "کرونومتر" در نوار ابزار - "عوامل فعلی پروژه" کلیک کنید. از شما خواسته می شود نام پروژه خود را (من نام خود را "locationDown") گذاشته ام ، و یک برگه مرورگر دیگر باز می شود و گزارش می دهد که هیچ نتیجه ای (هیچ محرکی) یافت نشد. روی "ایجاد یک ماشه جدید" کلیک کنید.

مرحله 13:

تصویر
تصویر

در پنجره جدید ، "از صفحه گسترده" را برای "انتخاب منبع رویداد" انتخاب کنید. "در فرم ارسال" برای "انتخاب نوع رویداد" ؛ برای اطلاع از "شکست تنظیمات اعلان" ، "فوراً به من اطلاع بده". روی "ذخیره" کلیک کنید. از شما خواسته می شود که به حساب Google خود وارد شوید و "اجازه دهید" تا این محرک در صورت لزوم به حساب شما دسترسی پیدا کند.

مرحله 14:

تصویر
تصویر

اکنون باید یک ماشه در لیست ماشه ها داشته باشید ، که به اسکریپتی که قبلاً ایجاد کرده ایم پیوند داده می شود. بنابراین ، با درج داده های جدید در صفحه گسترده (با استفاده از پیوند فرم خودکار و روش خاموش که در بالا توضیح داده شد) ، ماشه بلافاصله اسکریپت را فراخوانی می کند ، که یک اعلان به آدرس ایمیل ارائه شده حاوی پیام انتخابی شما ارسال می کند.

ما در سمت Google Drive کار خود را تمام کرده ایم و اکنون به ThingSpeak حرکت می کنیم.

مرحله 15:

تصویر
تصویر

در ThingSpeak وارد حساب خود شوید (https://thingspeak.com/login) ، به "Apps - ThingHTTP" بروید و سپس روی "New ThingHTTP" کلیک کنید. یک نام به آن بدهید (من نام واقعی هر مکان را انتخاب کرده ام ؛ "MyLocationName" به منظور این آموزش) و در قسمت "URL" پیوندی را از فایل متنی خود بچسبانید ،

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXX/formResponse؟entry. XXXXX = LOCATION+NAME و ارسال = ارسال

سایر فیلدها را همانطور که هستند بگذارید و روی "ذخیره ThingHTTP" کلیک کنید.

مرحله 16:

تصویر
تصویر

سپس به "Apps - React" بروید و روی "New React" کلیک کنید. نامی بگذارید (دوباره ، من نام مکان را انتخاب کرده ام و کلمه "واکنش" را انتخاب کرده ام ، اما می توانید هر نامی را که می خواهید انتخاب کنید). "بدون بررسی داده" برای "نوع شرایط" ؛ "هر 10 دقیقه" برای "فرکانس آزمایش" ؛ نام کانالی که می خواهید برای به روزرسانی ها برای "اگر کانال" نظارت کنید ؛ زمانی که کانال به روز نشده است (من 15 دقیقه را انتخاب کرده ام) ، برای "برای به روز نشده است" ؛ "ThingHTTP" برای "Action" ؛ "MyLocationName" برای "سپس ThingHTTP را انجام دهید" ؛ "فقط برای اولین بار که شرط برآورده شد عمل را اجرا کنید" ، زیرا من فقط می خواهم یک بار اعلان دریافت کنم. وقتی کانال مجدداً با داده های ورودی جدید به روز شود ، این خود تنظیم می شود. روی "ذخیره React" کلیک کنید و کار شما تمام شده است.

از این پس هنگامی که کانال شما به مدت 15 دقیقه به روز نشده است (یا زمان دیگری بسته به آنچه انتخاب کرده اید) ، React آن استثنا را پیدا می کند که ThingHTTP را فعال می کند ، که به نوبه خود بی سر و صدا ورودی جدیدی را در شما ایجاد می کند. صفحه گسترده همانطور که در بالا توضیح داده شد ، Trigger و اسکریپت موجود در Google Spreadsheet آن را از آنجا می گیرند.

توصیه شده: