INHOUDSOPGAWE:

Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie: 16 stappe
Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie: 16 stappe

Video: Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie: 16 stappe

Video: Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie: 16 stappe
Video: BONUS: Q&A: WILLEN WIJ EMIGREREN NAAR SPANJE?! 2024, November
Anonim
Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie
Ontvang 'n kennisgewing -e -pos wanneer 'n kanaal op ThingSpeak 'n rukkie nie opgedateer is nie

Agtergrond storie

Ek het ses outomatiese kweekhuise wat versprei is oor Dublin, Ierland. Deur 'n pasgemaakte selfoon -app te gebruik, kan ek die outomatiese funksies in elke kweekhuis op afstand monitor en interaksie hê. Ek kan die vensters met die hand oop- / toemaak as die temperatuur te hoog / laag is; Ek kan die besproeiing begin / stop as grondvog te laag / hoog is; en ek kan die ventilatorwaaier begin / stop as die lugvogtigheid te hoog / laag is. Of ek kan die stelsel eenvoudig in die outomatiese modus skakel, en die groente word deur die Arduino -brein versorg. Meer besonderhede oor hierdie projek kan hier gevind word -

Die verbinding op afstand met die Arduino-borde by die ses kweekhuise word moontlik gemaak met behulp van USB GPRS-dongles, een op elke plek (ek het myne hier gekoop https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-Met-antenne-3G-USB-modem-21-6-Mbps-HSPA-mobiele/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Soos met die mobiele dataverbinding (ten minste in Dublin), val dit lukraak, soms vir 'n paar minute, soms 'n paar uur. As die verbinding onderbreek, is die Arduino geprogrammeer om die USB -dongle elke 10 minute terug te stel sodat dit weer 'n nuwe verbinding kan begin. Soms, weens (nog) onbekende redes, neem die Arduino (en die aangehegte Ethernet -skerm) egter nie kennis van die gebeurtenis nie, selfs al is die GPRS -dataverbinding weer aan. Dit is die oomblik wat ek na die spesifieke plek moet gaan en die hele stelsel handmatig moet herstel.

As die dataverbinding op 'n sekere plek val, wou ek so gou as moontlik per e -pos in kennis gestel word, sodat ek die spesifieke ligging in die oog kan hou. Aangesien die kommunikasie tussen die telefoon -app en die Arduino plaasvind deur middel van 'n aanlyn diens wat https://thingspeak.com lewer, tot onlangs (en tot en met 31 Maart 2019), was dit moontlik deur 'n ander diens van https:// ifttt.com/discover en die opstel van 'n ThingHTTP en 'n React op elke kanaal, en monitor of die spesifieke kanaal al 'n geruime tyd nie bygewerk is nie. Volgens 'n e-pos wat ek vanaf 31 Maart 2019 van Google ontvang het, weens die nie-nakoming van hul opgedateerde data-privaatheidsvereistes (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-ons-api-ekosisteme), toegang tot sommige data in my Google-rekening is nie meer beskikbaar vir IFTTT nie, en soos in my geval was die e-pos die enigste bron waartoe IFTTT toegang gehad het, my verstand was dat die kennisgewing diens hierbo beskryf, sal ophou werk.

Daarom implementeer ons hier 'n alternatiewe oplossing sodat die e -poskennisgewings aanhou kom wanneer die dataverbinding op my plekke daal. Dit gebruik steeds die ThingHTTP- en React-funksies op my kanale; slegs die skakel na IFTTT is na Google Drive verwys. Afgesien van die hardeware (Arduino in my geval), het u moontlik met u ThingSpeak -rekening gekommunikeer, moet u 'n Google -rekening skep, as u nog nie een het nie … en laat ons begin!

Stap 1:

Beeld
Beeld

In Google Drive

Eerstens moet ons in Google Drive (https://drive.google.com) 'n sigblad en 'n eenvoudige vorm skep. Maak u Google Drive oop en klik op New - Google Sheets - Leë sigblad.

Stap 2:

Beeld
Beeld

Ek het myne hernoem na "Location down spreadsheet". Gaan dan na Tools - Skep 'n vorm.

Stap 3:

Beeld
Beeld

Ek het die vorm hernoem as 'Ligging af', en 'Untitled question' verander na 'Status' en die tipe van 'Multiple choice' in 'Short answer'.

Stap 4:

Beeld
Beeld

Ek verwyder toe die opsie vir die versameling van e -posadresse - klik op 'Verander instellings' en maak 'n vinkje uit al die opsies in die venster wat verskyn. Klik op "Stoor".

Stap 5:

Beeld
Beeld

Sluit die huidige blaaieroortjie wat u vorm bevat, en u moet terugkeer na die hoofblad van Google Drive, waar u die vorm en die sigblad wat u pas geskep het, moet hê. Maak die sigblad oop en gaan na "Lêer - deel …". Klik in die nuwe venster op "Advanced"

Stap 6:

Beeld
Beeld

Klik dan op "Verander …" langs die etiket "Privaat - Net u toegang"

Stap 7:

Beeld
Beeld

en verander na "Aan - enigiemand met die skakel", en ook na "Kan wysig"

Stap 8:

Beeld
Beeld

Klik op "Stoor" en "Klaar" om terug te keer na u sigblad. Terwyl u daar is, klik op "Lêer - publiseer op die internet …", en klik dan op "Publiseer" en "OK" vir die dialoogvenster. Maak die venster "Publiseer op die internet" toe.

Terwyl u nog in die sigblad is, klik op "Vorm - Gaan na lewendige vorm". Klik met die rechtermuisknop met u muis (ek gebruik die Google Chrome-blaaier) en kies 'Kyk na bronbladsy'.

Stap 9:

Beeld
Beeld

Soek op die nuwe bladsy wat oopmaak na "vormaksie" en vind die skakel wat soortgelyk is aan https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Kies die skakel en kopieer en plak dit in 'n teksdokument. U sal dit gebruik om die finale skakel te vorm wat in die ThingHTTP vir ThingSpeak ingevoer moet word.

Stap 10:

Beeld
Beeld

Gaan terug na die bronaansig van u vorm en soek nou 'inskrywing'. Soek en kies die hele teks, soos "entry. XXXXX". Kopieer en plak dit in dieselfde teksdokument as hierbo. U kan nou die bronaansig van u Google -vorm toemaak.

Stap 11:

Beeld
Beeld

Skep in die nuwe teksdokument (waar u nou die skakel en die inskrywing wat ons voorheen geplak het) die laaste skakel, wat moet lyk

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

In my geval word die 'LIGGING+NAAM' vervang deur die werklike naam van elke spesifieke plek wat ek moet monitor. Die e -pos -kennisgewing -e -pos wat ek sal ontvang wanneer die verbinding verbreek, bevat hierdie teks, sodat ek presies weet watter ligging probleme het. Hierdie teks sal in werklikheid as die kort teksinhoud vir die "status" -veld in die Google-vorm ingedien word. Die "& submit = Submit" sal die vorm in stilte indien, sonder dat verdere aksies nodig is, wanneer dit deur ThingHTTP en React opgeroep word.

Uiteindelik moet ons 'n script byvoeg wat outomaties 'n e -poskennisgewing sal stuur elke keer as 'n nuwe inskrywing in die sigblad bygevoeg word. Maak die sigblad oop en klik dan op "Tools - Script editor". Voeg die volgende kode in die nuwe venster wat oopmaak (met die nodige veranderinge om aan u behoeftes te voldoen):

funksie newEntryNotification (e)

{

probeer

{

var tydstempel = e.values [0];

var location = e.values [1];

var boodskap = ligging + 'ligging is af 'n / n' + tydstempel;

MailApp.sendEmail ("U E -POSADRES", "Aandag, ligging DOWN!", Boodskap);

}

vang (e)

{

MailApp.sendEmail ("U E -POSADRES", "Fout - Aandag, ligging DOWN!", E.message);

}

}

Vervang die teks "U E -POSADRES" met die e -posadres waarheen die kennisgewing gestuur moet word, en die werklike kennisgewingboodskap, indien u dit wil.

Stap 12:

Beeld
Beeld

Hierdie skrif moet geaktiveer word wanneer 'n nuwe inskrywing by die sigblad gevoeg is. Klik in dieselfde venster (met die scriptkode hierbo) op die ikoon "stophorlosie" in die werkbalk - "Huidige projek se snellers". U sal gevra word om u projek 'n naam te gee (ek het my 'locationDown' genoem), en 'n ander blaaieroortjie sal oopmaak en meld dat daar geen resultate (geen snellers) gevind is nie. Klik op "skep 'n nuwe sneller".

Stap 13:

Beeld
Beeld

Kies "Van sigblad" in die nuwe venster vir "Kies gebeurtenisbron"; "Op vorm indien" vir "Kies gebeurtenis tipe"; "Stel my onmiddellik in kennis" vir "Instellings vir mislukkingskennisgewing". Klik op "Stoor". U sal gevra word om aan te meld by u Google -rekening en "Laat toe" vir hierdie sneller om toegang tot u rekening te kry indien nodig.

Stap 14:

Beeld
Beeld

U behoort nou 'n sneller in die snellerslys te hê, wat gekoppel sal word aan die script wat ons voorheen geskep het. By die invoeging van nuwe data in die sigblad (met behulp van die outomatiese vormskakel en die stille metode hierbo beskryf), sal die sneller dus onmiddellik die skrip oproep, wat 'n kennisgewing stuur na die e -posadres wat die gekose boodskap bevat.

Ons is klaar in die Google Drive -kant, en ons gaan nou na die ThingSpeak.

Stap 15:

Beeld
Beeld

In ThingSpeak Meld u aan by u rekening (https://thingspeak.com/login), gaan na "Apps - ThingHTTP" en klik dan op "New ThingHTTP". Gee dit 'n naam (ek het die werklike naam van elke plek gekies; "MyLocationName" vir die doel van hierdie tutoriaal) en plak in die "URL" -veld die skakel uit u tekslêer, die een wat lyk

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

Laat alle ander velde soos hulle is, en klik op "Save ThingHTTP".

Stap 16:

Beeld
Beeld

Gaan dan na "Apps - Reageer" en klik op "New React". Gee dit 'n naam (ek het weer die pleknaam gekies, gevolg deur die woord "reageer", maar u kan enige naam kies); "Geen data -kontrole" vir "toestand tipe"; "Elke 10 minute" vir "Toetsfrekwensie"; die kanaalnaam wat u wil monitor vir opdaterings, vir "If Channel"; die tyd dat die kanaal nie opgedateer is nie (ek het 15 minute gekies), vir "is nie opgedateer vir" nie; "ThingHTTP" vir "Aksie"; "MyLocationName" vir "voer dan ThingHTTP uit"; "Doen aksie slegs die eerste keer dat aan die voorwaarde voldoen word", aangesien ek slegs een keer 'n kennisgewing wil ontvang. Dit sal homself herstel as die kanaal weer opgedateer word met nuwe inkomende data. Klik op "Save React" en u is klaar.

Van nou af, as u kanaal vir 15 minute nie opgedateer is nie (of 'n ander tyd, afhangende van wat u gekies het), sal die React die uitsondering vind, wat die ThingHTTP sal veroorsaak, wat op sy beurt 'n nuwe inskrywing in u sigblad. Die sneller en die script op Google Spreadsheet neem dit van daar af, soos reeds hierbo verduidelik.

Aanbeveel: