Съдържание:

Получаване на имейл с известие, когато канал на ThingSpeak не се актуализира за известно време: 16 стъпки
Получаване на имейл с известие, когато канал на ThingSpeak не се актуализира за известно време: 16 стъпки

Видео: Получаване на имейл с известие, когато канал на ThingSpeak не се актуализира за известно време: 16 стъпки

Видео: Получаване на имейл с известие, когато канал на ThingSpeak не се актуализира за известно време: 16 стъпки
Видео: Как создать электронную почту с телефона, Android 2024, Юли
Anonim
Получавайте имейл с известия, когато канал на ThingSpeak не е бил актуализиран за известно време
Получавайте имейл с известия, когато канал на ThingSpeak не е бил актуализиран за известно време

История на фона

Имам шест автоматизирани оранжерии, които са разпространени в Дъблин, Ирландия. С помощта на персонализирано приложение за мобилен телефон мога да наблюдавам дистанционно и да взаимодействам с автоматизираните функции във всяка оранжерия. Мога ръчно да отварям / затварям прозорците, когато температурата е твърде висока / ниска; Мога да стартирам / спирам напояването, когато влажността на почвата е твърде ниска / висока; и мога да стартирам / спирам вентилатора, когато влажността на въздуха е твърде висока / ниска. Или просто мога да превключа системата в автоматичен режим и зеленчуците ще се грижат за мозъка на Arduino. Повече подробности за този проект можете да намерите тук -

Отдалечената връзка с дъските 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 -trust-in-our-api-ecosystems), достъпът до някои данни в профила ми в Google вече няма да е достъпен за IFTTT и тъй като в моя случай имейлът беше единственият ресурс, до който IFTTT имаше достъп, разбирам, че известието гореописаната услуга ще спре да работи.

Ето защо, ето ни, прилагаме алтернативно решение, за да могат известията по имейл да продължават да пристигат, когато връзката за данни на моите места прекъсне. Това все още използва функциите ThingHTTP и React в каналите ми, само връзката към IFTTT беше пренасочена към Google Диск. Така че освен хардуера (Arduino в моя случай) може да сте общували с вашия акаунт в ThingSpeak, ще трябва да създадете акаунт в Google, който в случай, че все още нямате такъв … и нека започнем!

Етап 1:

Образ
Образ

В Google Диск

Първо, в Google Диск (https://drive.google.com) трябва да създадем електронна таблица и прост формуляр. Отворете своя Google Диск и щракнете върху Ново - Google Таблици - Празна електронна таблица.

Стъпка 2:

Образ
Образ

Преименувах моя на „Таблица за местоположение надолу“. След това отидете на Инструменти - Създайте формуляр.

Стъпка 3:

Образ
Образ

Преименувах формуляра на „Форма за местоположение надолу“и промених „Въпрос без заглавие“на „Състояние“, а типа от „Множество възможности за избор“на „Кратък отговор“.

Стъпка 4:

Образ
Образ

След това премахнах опцията за събиране на имейл адреси - щракнете върху „Промяна на настройките“и премахнах отметката от всички опции в прозореца, който се появи. Кликнете върху „Запазване“.

Стъпка 5:

Образ
Образ

Затворете текущия раздел на браузъра, който съдържа формуляра ви, и трябва да се върнете към основния раздел на Google Диск, където трябва да имате както формуляра, така и електронната таблица, която току -що създадохте. Отворете електронната таблица и отидете на „Файл - Споделяне …“. В новия прозорец кликнете върху „Разширени“

Стъпка 6:

Образ
Образ

След това кликнете върху „Промяна …“до етикета „Частно - само вие имате достъп“

Стъпка 7:

Образ
Образ

и променете на „Вкл. - Всеки с връзката“, а също и на „Може да редактира“

Стъпка 8:

Образ
Образ

Кликнете върху „Запазване“и „Готово“, за да се върнете към електронната си таблица. Докато сте там, щракнете върху „Файл - Публикуване в мрежата …“, след което кликнете върху „Публикуване“и „OK“за диалоговия прозорец. Затворете прозореца „Публикуване в мрежата“.

Докато сте още в електронната таблица, кликнете върху „Формуляр - Отидете на жива форма“. Щракнете с десния бутон на мишката (използвам браузъра Google Chrome) и изберете „Преглед на източника на страница“.

Стъпка 9:

Образ
Образ

В новата страница, която се отваря, потърсете „действие с формуляр“и след това намерете връзката, която прилича на https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Изберете тази връзка, копирайте и я поставете в някакъв текстов документ. Ще го използвате за формиране на крайната връзка, която трябва да бъде въведена в ThingHTTP за ThingSpeak.

Стъпка 10:

Образ
Образ

Върнете се към изходния изглед на формуляра си и сега потърсете „запис“. Намерете и изберете целия текст, нещо като "entry. XXXXX". Копирайте и поставете в същия текстов документ, както по -горе. Вече можете да затворите изходния изглед на формуляра си в Google.

Стъпка 11:

Образ
Образ

В новия текстов документ (където вече имате връзката и записа, който сме поставили преди), създайте крайната връзка, която трябва да изглежда така

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = Submit

В моя случай „LOCATION+NAME“ще бъде заменено с действителното име на всяко конкретно местоположение, което трябва да наблюдавам. Имейлът за известие по имейл, който ще получа, когато връзката прекъсне, ще съдържа този текст, така че да знам точно на кое място има проблеми. Този текст всъщност ще бъде изпратен като краткотрайно съдържание за полето „състояние“във формуляра на Google. „& Submit = Submit“ще изпрати безшумно формуляра, без да са необходими допълнителни действия, когато бъде извикан от ThingHTTP и React.

И накрая, трябва да добавим скрипт, който автоматично ще изпраща известие по имейл всеки път, когато се добави нов запис в електронната таблица. Отворете електронната таблица и след това кликнете върху „Инструменти - редактор на скриптове“. В новия прозорец, който се отваря, добавете следния код (с необходимите промени, за да отразят вашите нужди):

функция newEntryNotification (д)

{

опитвам

{

вар времева марка = e.values [0];

var location = e.values [1];

var message = location + 'location is DOWN / 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" за целите на този урок) и в полето "URL" поставете връзката от текстовия си файл, този, който изглежда като

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = Submit

Оставете всички останали полета такива, каквито са, и кликнете върху „Save ThingHTTP“.

Стъпка 16:

Образ
Образ

След това отидете на „Приложения - React“и кликнете върху „New React“. Дайте му име (отново съм избрал името на местоположението, последвано от думата „реагирам“, но можете да изберете всяко име, което искате); „Без проверка на данни“за „Тип състояние“; „На всеки 10 минути“за „Честота на тестване“; името на канала, който искате да следите за актуализации, за „If Channel“; времето, през което каналът не е актуализиран (избрал съм 15 минути), за „не е актуализиран за“; "ThingHTTP" за "Действие"; "MyLocationName" за "след това изпълнете ThingHTTP"; „Изпълнявайте действие само при първото изпълнение на условието“, тъй като искам да получа известие само веднъж. Това ще се нулира, когато каналът се актуализира отново с нови входящи данни. Кликнете върху „Запазване на реакция“и сте готови.

Отсега нататък, когато вашият канал не е актуализиран в продължение на 15 минути (или друг път, в зависимост от това, което сте избрали), React ще улови това изключение, което ще задейства ThingHTTP, което от своя страна безшумно ще създаде нов запис във вашия електронна таблица. Задействането и скриптът в електронната таблица на Google ще го вземат оттам, както вече беше обяснено по -горе.

Препоръчано: