Kazalo:

Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen: 16 korakov
Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen: 16 korakov

Video: Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen: 16 korakov

Video: Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen: 16 korakov
Video: КАК ПРИГОТОВИТЬ БОГРАЧ. ТАК Я ЕЩЁ НЕ ГОТОВИЛ. ЛУЧШИЙ РЕЦЕПТ 2024, November
Anonim
Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen
Prejmite obvestilo po e -pošti, ko kanal na ThingSpeak nekaj časa ni bil posodobljen

Zgodba v ozadju

Imam šest avtomatiziranih rastlinjakov, ki so razpršeni po Dublinu na Irskem. Z uporabo aplikacije za mobilne telefone po meri lahko na daljavo spremljam in komuniciram z avtomatiziranimi funkcijami v vsakem rastlinjaku. Okna lahko ročno odprem / zaprem, če je temperatura previsoka / nizka; Zalivanje lahko začnem / ustavim, ko je vlaga v tleh prenizka / visoka; in lahko zaženem / ustavim ventilator, če je vlažnost zraka previsoka / nizka. Ali pa preprosto preklopim sistem v samodejni način, za zelenjavo pa bodo skrbeli možgani Arduino. Več podrobnosti o tem projektu najdete tukaj -

Oddaljena povezava s ploščami Arduino v šestih rastlinjakih je omogočena s pomočjo ključev USB GPRS, enega na vsaki lokaciji (svojega sem kupil tukaj https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-z-anteno-3G-USB-modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Tako kot pri mobilni podatkovni povezavi (vsaj v Dublinu) ta naključno pade, včasih za nekaj minut, včasih za nekaj ur. Če se povezava prekine, je Arduino programiran tako, da vsakih 10 minut ponastavi ključ USB, da poskusi vzpostaviti novo povezavo. Včasih pa zaradi (še) neznanih razlogov, tudi če je podatkovna povezava GPRS znova vklopljena, Arduino (in priloženi ethernetni ščit) ne zazna dogodka. To je trenutek, ko moram iti na to določeno lokacijo in ročno ponastaviti celoten sistem.

Ko se podatkovna povezava na nekem mestu prekine, sem želel biti čim prej obveščen po e -pošti, da bi bil pozoren na to določeno lokacijo. Ker komunikacija med aplikacijo za telefon in Arduinom poteka prek spletne storitve, ki jo ponuja https://thingspeak.com, je bila do nedavnega (in do 31. marca 2019) to mogoče z uporabo druge storitve, ki jo ponuja https:// ifttt.com/discover in na vsakem kanalu nastavite ThingHTTP in React ter spremljate dejstvo, ali ta kanal že nekaj časa ni bil posodobljen. Glede na e-poštno sporočilo, ki sem ga od 31. marca 2019 prejel od Googla, zaradi neupoštevanja posodobljenih zahtev glede zasebnosti podatkov (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ecosystems), dostop do nekaterih podatkov v mojem Google računu ne bo več na voljo IFTTT, in ker je bilo v mojem primeru e-pošta edini vir, do katerega je IFTTT imel dostop, sem razumel, da je obvestilo zgoraj opisana storitev ne bi več delovala.

Torej, tukaj smo, uvajamo alternativno rešitev, da bi obvestila po e -pošti še naprej prihajala, ko se podatkovna povezava na mojih lokacijah prekine. Ta še vedno uporablja funkcije ThingHTTP in React na mojih kanalih, le povezava do IFTTT je bila znova usmerjena v Google Drive. Poleg strojne opreme (v mojem primeru Arduino) ste morda komunicirali s svojim računom ThingSpeak, boste morali ustvariti tudi Google račun, če ga še nimate … in začnimo!

Korak 1:

Slika
Slika

V storitvi Google Drive

Najprej moramo v storitvi Google Drive (https://drive.google.com) ustvariti preglednico in preprost obrazec. Odprite Google Drive in kliknite Novo - Google Preglednice - prazna preglednica.

2. korak:

Slika
Slika

Mojega sem preimenoval v "Lokacijo navzdol preglednico". Nato pojdite na Orodja - Ustvari obrazec.

3. korak:

Slika
Slika

Obrazec sem preimenoval v "Lokacijo navzdol obrazec" in spremenil "Vprašanje brez naslova" v "Stanje", vrsto pa iz "Več možnosti" v "Kratek odgovor".

4. korak:

Slika
Slika

Nato sem odstranil možnost zbiranja e -poštnih naslovov - kliknite »Spremeni nastavitve« in počistite vse možnosti v prikazanem oknu. Kliknite na "Shrani".

5. korak:

Slika
Slika

Zaprite trenutni zavihek brskalnika, na katerem je obrazec, in vrnite se na svoj glavni zavihek Google Drive, kjer morate imeti tako obrazec kot preglednico, ki ste jo pravkar ustvarili. Odprite preglednico in pojdite na "Datoteka - Skupna raba …". V novem oknu kliknite »Napredno«

6. korak:

Slika
Slika

Nato kliknite na "Spremeni …" poleg oznake "Zasebno - dostopate samo vi"

7. korak:

Slika
Slika

in spremenite v »Vklopljeno - kdor koli s povezavo«, pa tudi v »Lahko urejam«

8. korak:

Slika
Slika

Za vrnitev v preglednico kliknite »Shrani« in »Končano«. Medtem kliknite "Datoteka - Objavi v spletu …", nato kliknite "Objavi" in "V redu" za pogovorno okno. Zaprite okno »Objavi v spletu«.

Ko ste še v preglednici, kliknite »Obrazec - Pojdi na obrazec v živo«. Z desno miškino tipko kliknite z miško (uporabljam brskalnik Google Chrome) in izberite "Ogled vira strani".

9. korak:

Slika
Slika

Na novi strani, ki se odpre, poiščite "dejanje obrazca" in nato poiščite povezavo, ki je podobna https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Izberite to povezavo in jo kopirajte in prilepite v kakšen besedilni dokument. Uporabili ga boste za oblikovanje končne povezave, ki jo je treba vnesti v ThingHTTP za ThingSpeak.

10. korak:

Slika
Slika

Vrnite se na izvorni pogled obrazca in poiščite »vnos«. Poiščite in izberite celotno besedilo, na primer "entry. XXXXX". Kopirajte in prilepite v isti besedilni dokument kot zgoraj. Zdaj lahko zaprete izvorni pogled svojega Google obrazca.

11. korak:

Slika
Slika

V novem besedilnem dokumentu (kjer imate zdaj povezavo in vnos, ki smo ga prej prilepili) ustvarite končno povezavo, ki bi morala izgledati tako

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

V mojem primeru bi bilo "LOCATION+NAME" nadomeščeno z dejanskim imenom vsake posamezne lokacije, ki jo moram spremljati. E -poštno obvestilo po e -pošti, ki ga bom prejel, ko bo povezava prekinjena, bo vsebovalo to besedilo, tako da natančno vem, na kateri lokaciji so težave. To besedilo bo dejansko poslano kot vsebina s kratkim besedilom za polje »stanje« v Googlovem obrazcu. "& Submit = Submit" bo tiho predložil obrazec, ne da bi bili potrebni dodatni ukrepi, ko ga pokličeta ThingHTTP in React.

Nazadnje moramo dodati skript, ki bo samodejno poslal e -poštno obvestilo vsakič, ko je bil v preglednico dodan nov vnos. Odprite preglednico in kliknite »Orodja - Urejevalnik skriptov«. V novo okno, ki se odpre, dodajte naslednjo kodo (z zahtevanimi spremembami, ki odražajo vaše potrebe):

funkcija newEntryNotification (e)

{

poskusite

{

časovni žig var = e.vrednosti [0];

var lokacija = e.vrednosti [1];

var sporočilo = lokacija + 'lokacija je DOL' / n ' + časovni žig;

MailApp.sendEmail ("VAŠ E -POŠTNI NASLOV", "Pozor, lokacija DOL!", Sporočilo);

}

ulov (e)

{

MailApp.sendEmail ("VAŠ E -POŠTNI NASLOV", "Napaka - Pozor, lokacija DOLJ!", E. sporočilo);

}

}

Besedilo "VAŠ E -POŠTNI NASLOV" zamenjajte z e -poštnim naslovom, na katerega naj bo poslano obvestilo, in dejanskim obvestilom, če želite.

12. korak:

Slika
Slika

Ta skript je treba sprožiti, ko je bil v preglednico dodan nov vnos. V istem oknu (z zgornjo kodo skripta) kliknite na ikono "štoparica" v orodni vrstici - "Sprožilci trenutnega projekta". Od vas se bo zahtevalo, da poimenujete svoj projekt (jaz sem svoj poimenoval "locationDown"), odprl pa se bo še en zavihek brskalnika, ki poroča, da ni bilo najdenih nobenih rezultatov (nobenih sprožilcev). Kliknite na "ustvari nov sprožilec".

13. korak:

Slika
Slika

V novem oknu izberite "Iz preglednice" za "Izberi vir dogodka"; "Ob predložitvi obrazca" za "Izberite vrsto dogodka"; "Takoj me obvesti" za "Nastavitve obvestil o napaki". Kliknite na "Shrani". Od vas se bo zahtevalo, da se prijavite v svoj Google Račun in po potrebi dovolite, da ta sprožilec dostopa do vašega računa.

14. korak:

Slika
Slika

Zdaj bi morali imeti sprožilec na seznamu sprožilcev, ki bo povezan s skriptom, ki smo ga ustvarili prej. Zato bo po vstavljanju novih podatkov v preglednico (z uporabo avtomatizirane povezave do obrazca in zgoraj opisane tihe metode) sprožilec takoj poklical skript, ki bo poslal obvestilo na navedeni e -poštni naslov, ki vsebuje izbrano sporočilo.

Na strani Google Drive smo končali in prehajamo na ThingSpeak.

15. korak:

Slika
Slika

V ThingSpeak Prijavite se v svoj račun (https://thingspeak.com/login), pojdite na "Aplikacije - ThingHTTP" in nato kliknite "New ThingHTTP". Dajte mu ime (za namen te vadnice sem izbral dejansko ime za vsako lokacijo; "MyLocationName") in v polje "URL" prilepite povezavo iz besedilne datoteke, tisto, ki izgleda tako

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

Vsa ostala polja pustite takšna, kot so, in kliknite »Shrani ThingHTTP«.

16. korak:

Slika
Slika

Nato pojdite na "Aplikacije - React" in kliknite na "New React". Dajte mu ime (spet sem izbral ime lokacije, ki mu sledi beseda "reagiraj", lahko pa izberete poljubno ime); "No Data Check" za "Condition Type"; "Vsakih 10 minut" za "Pogostost preskusa"; ime kanala, ki ga želite spremljati glede posodobitev, za "If Channel"; čas, ko kanal ni bil posodobljen (izbral sem 15 minut), za "ni bil posodobljen za"; "ThingHTTP" za "Dejanje"; "MyLocationName" za "nato izvedite ThingHTTP"; "Zaženi dejanje samo prvič, ko je pogoj izpolnjen", saj želim samo enkrat prejeti obvestilo. To se ponastavi, ko se kanal znova posodobi z novimi dohodnimi podatki. Kliknite "Shrani reakcijo" in končali ste.

Od zdaj naprej, ko vaš kanal ni bil posodobljen 15 minut (ali kdaj drugič, odvisno od tega, kaj ste izbrali), bo React ujel to izjemo, ki bo sprožila ThingHTTP, kar bo tiho ustvarilo nov vnos v vašem preglednico. Sprožilec in skript v Google Preglednici ga bosta prevzela od tam, kot je že razloženo zgoraj.

Priporočena: