Sisällysluettelo:

Vastaanota ilmoitus sähköpostitse, kun ThingSpeak -kanavaa ei ole päivitetty jonkin aikaa: 16 vaihetta
Vastaanota ilmoitus sähköpostitse, kun ThingSpeak -kanavaa ei ole päivitetty jonkin aikaa: 16 vaihetta

Video: Vastaanota ilmoitus sähköpostitse, kun ThingSpeak -kanavaa ei ole päivitetty jonkin aikaa: 16 vaihetta

Video: Vastaanota ilmoitus sähköpostitse, kun ThingSpeak -kanavaa ei ole päivitetty jonkin aikaa: 16 vaihetta
Video: Makuvaikuttajaksi Foodwestin kuluttajapaneeliin 2024, Marraskuu
Anonim
Vastaanota ilmoitus sähköpostitse, kun ThingSpeakin kanavaa ei ole päivitetty hetkeen
Vastaanota ilmoitus sähköpostitse, kun ThingSpeakin kanavaa ei ole päivitetty hetkeen

Taustatarina

Minulla on kuusi automaattista kasvihuonetta, jotka sijaitsevat Dublinissa, Irlannissa. Käyttämällä räätälöityä matkapuhelinsovellusta voin valvoa ja käyttää vuorovaikutuksessa kunkin kasvihuoneen automaattisia ominaisuuksia. Voin avata / sulkea ikkunat manuaalisesti, kun lämpötila on liian korkea / matala; Voin aloittaa / lopettaa kastelun, kun maaperän kosteus on liian alhainen / korkea; ja voin käynnistää / pysäyttää tuulettimen, kun ilmankosteus on liian korkea / matala. Tai voin yksinkertaisesti vaihtaa järjestelmän automaattitilaan, ja Arduino -aivot huolehtivat vihanneksista. Lisätietoja tästä projektista löytyy täältä -

Etäyhteys Arduino-levyihin kuudessa kasvihuoneessa on mahdollista USB GPRS-sovittimien avulla, yksi kussakin paikassa (ostin omani täältä https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-antennilla-3G-USB-modeemi-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Kuten mobiilidatayhteyden tapauksessa (ainakin Dublinissa), se putoaa satunnaisesti, joskus muutamaksi minuutiksi, joskus voi olla pariksi tunniksi. Jos yhteys katkeaa, Arduino on ohjelmoitu nollaamaan USB -sovitin 10 minuutin välein, jotta se yrittää muodostaa uuden yhteyden. Joskus kuitenkin (vielä) tuntemattomista syistä johtuen, vaikka GPRS -datayhteys on taas käytössä, Arduino (ja siihen liitetty Ethernet -suoja) ei huomioi tapahtumaa. Tällä hetkellä minun täytyy mennä kyseiseen paikkaan ja nollata koko järjestelmä manuaalisesti.

Kun datayhteys katkeaa jossain paikassa, halusin saada ilmoituksen sähköpostitse mahdollisimman pian, jotta voisin seurata kyseistä sijaintia. Koska puhelinsovelluksen ja Arduinon välinen viestintä tapahtuu https://thingspeak.com -verkkopalvelun kautta, viime aikoihin asti (ja 31.3.2019 asti), tämä oli mahdollista käyttämällä toista palvelua, jonka tarjoaa https:// ifttt.com/discover ja aseta ThingHTTP ja React kullekin kanavalle ja seuraa sitä, onko kyseistä kanavaa päivitetty jonkin aikaa. Googlelta 31. maaliskuuta 2019 alkaen saamani sähköpostiviestin mukaan kuitenkin päivitettyjen tietosuojavaatimusten noudattamatta jättäminen (https://cloud.google.com/blog/products/g-suite/elevating-user -luottamus api-ekosysteemeihimme), pääsy joihinkin Google-tilini tietoihin ei ole enää IFTTT: n käytettävissä, ja koska tapauksessani sähköposti oli ainoa resurssi, johon IFTTT: llä oli pääsy, ymmärsin, että ilmoitus yllä kuvattu palvelu lakkaa toimimasta.

Siksi olemme täällä toteuttamassa vaihtoehtoista ratkaisua, jotta sähköposti -ilmoitukset saapuvat jatkuvasti, kun datayhteys sijaintini katkeaa. Tämä käyttää edelleen ThingHTTP- ja React-ominaisuuksia kanavillani, vain linkki IFTTT: hen uudelleenohjattiin Google Driveen. Joten laitteiston (minun tapauksessani Arduino) lisäksi saatat olla yhteydessä ThingSpeak -tiliisi, sinun on luotava Google -tili, jos sinulla ei vielä ole sitä… ja aloitetaan!

Vaihe 1:

Kuva
Kuva

Google Drivessa

Ensinnäkin meidän on luotava laskentataulukko ja yksinkertainen lomake Google Drivessa (https://drive.google.com). Avaa Google Drive ja napsauta Uusi - Google Sheets - Tyhjä laskentataulukko.

Vaihe 2:

Kuva
Kuva

Nimesin omani uudelleen "Sijainti alas laskentataulukko". Siirry sitten kohtaan Työkalut - Luo lomake.

Vaihe 3:

Kuva
Kuva

Nimein lomakkeen uudelleen "Sijainti alaspäin" ja muutin "Nimetön kysymys" tilaksi ja tyypiksi "Monivalinta" ja "Lyhyt vastaus".

Vaihe 4:

Kuva
Kuva

Poistin sitten sähköpostiosoitteiden keräämisvaihtoehdon - napsauta "Muuta asetuksia" ja poista kaikki valinnat näkyviin tulevassa ikkunassa. Napsauta "Tallenna".

Vaihe 5:

Kuva
Kuva

Sulje nykyinen selaimen välilehti, joka sisältää lomakkeen, ja sinun pitäisi palata Google Drive -päävälilehteen, jossa sinulla pitäisi olla sekä lomake että juuri luomasi laskentataulukko. Avaa laskentataulukko ja siirry kohtaan "Tiedosto - Jaa …". Napsauta uudessa ikkunassa "Lisäasetukset"

Vaihe 6:

Kuva
Kuva

Napsauta sitten "Muuta…" "Yksityinen - Vain sinä pääset" -tunnisteen vieressä

Vaihe 7:

Kuva
Kuva

ja vaihda tilaan "Päällä - kaikki linkin saaneet" ja myös "Voi muokata"

Vaihe 8:

Kuva
Kuva

Palaa laskentataulukkoon napsauttamalla Tallenna ja Valmis. Napsauta siellä "Tiedosto - Julkaise verkkoon…" ja napsauta sitten "Julkaise" ja "OK" valintaikkunassa. Sulje Julkaise verkkoon -ikkuna.

Kun olet vielä laskentataulukossa, napsauta "Lomake - Siirry live -lomakkeeseen". Napsauta hiiren kakkospainikkeella (käytän Google Chrome -selainta) ja valitse Näytä sivun lähde.

Vaihe 9:

Kuva
Kuva

Etsi avautuvalla uudella sivulla hakusanalla "lomaketoiminto" ja etsi sitten linkki, joka näyttää samanlaiselta kuin https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXX/formResponse. Valitse linkki ja kopioi ja liitä se johonkin tekstiasiakirjaan. Käytät sitä muodostaaksesi viimeisen linkin, joka on syötettävä ThingHTpe for ThingSpeakiin.

Vaihe 10:

Kuva
Kuva

Palaa lomakkeen lähdenäkymään ja etsi nyt "merkintä". Etsi ja valitse koko teksti, esimerkiksi "entry. XXXXX". Kopioi ja liitä se samaan tekstiasiakirjaan kuin yllä. Voit nyt sulkea Google -lomakkeen lähdenäkymän.

Vaihe 11:

Kuva
Kuva

Luo uuteen tekstiasiakirjaan (jossa sinulla on nyt linkki ja aiemmin liittämämme merkintä), luo viimeinen linkki, jonka pitäisi näyttää

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

Minun tapauksessani "SIJAINTI+NIMI" korvataan jokaisen tarkkailtavan sijainnin todellisella nimellä. Sähköposti -ilmoitussähköposti, jonka saan, kun yhteys katkeaa, sisältää tämän tekstin, jotta tiedän tarkasti, missä paikassa on ongelmia. Tämä teksti lähetetään itse asiassa Googlen lomakkeen "tila" -kentän lyhyttekstisisällönä. "& Lähetä = Lähetä" lähettää hiljaisesti lomakkeen ilman lisätoimia, kun ThingHTTP ja React käyttävät sitä.

Lopuksi meidän on lisättävä komentosarja, joka lähettää automaattisesti sähköposti -ilmoituksen aina, kun uusi merkintä lisättiin laskentataulukkoon. Avaa laskentataulukko ja napsauta sitten "Työkalut - Skriptieditori". Lisää seuraavaan avautuvaan ikkunaan seuraava koodi (tarvittavat muutokset tarpeidesi mukaan):

toiminto newEntryNotification (e)

{

yrittää

{

var aikaleima = e.arvot [0];

var sijainti = e.arvot [1];

var message = location + 'location is DOWN / n' + timestamp;

MailApp.sendEmail ("OMA SÄHKÖPOSTIOSOITE", "Huomio, sijainti ALAS!", Viesti);

}

saalis (e)

{

MailApp.sendEmail ("OMA SÄHKÖPOSTIOSOITE", "Virhe - Huomio, sijainti DOWN!", Sähköpostiviesti);

}

}

Korvaa teksti "OMA SÄHKÖPOSTIOSOITE" sähköpostiosoitteella, johon ilmoitus lähetetään, ja varsinaisella ilmoitusviestillä, jos haluat.

Vaihe 12:

Kuva
Kuva

Tämä komentosarja on käynnistettävä, kun uusi merkintä lisättiin laskentataulukkoon. Napsauta samassa ikkunassa (komentosarjan yllä) työkalurivin "sekuntikello" -kuvaketta - "Nykyisen projektin laukaisimet". Sinua pyydetään nimeämään projektisi (nimesin omani "locationDown"), ja toinen selainvälilehti avautuu ja ilmoittaa, että tuloksia (ei laukaisimia) ei löytynyt. Napsauta "Luo uusi liipaisin".

Vaihe 13:

Kuva
Kuva

Valitse uudessa ikkunassa "Valitse laskentataulukosta" "Valitse tapahtuman lähde"; "Lähetä lomake" "Valitse tapahtumatyyppi"; "Ilmoita minulle heti", jos haluat "Virheilmoitusasetukset". Napsauta "Tallenna". Sinua pyydetään kirjautumaan Google -tiliisi ja Salli tämän laukaisimen käyttää tiliäsi tarvittaessa.

Vaihe 14:

Kuva
Kuva

Sinulla pitäisi nyt olla liipaisin triggereiden luettelossa, joka linkitetään aiemmin luomaamme komentosarjaan. Siksi, kun uusia tietoja lisätään laskentataulukkoon (käyttämällä automaattista lomakelinkkiä ja yllä kuvattua hiljaista menetelmää), liipaisin soittaa heti skriptille, joka lähettää ilmoituksen antamaasi sähköpostiosoitteeseen, joka sisältää valitsemasi viestin.

Olemme valmiit Google Driven puolella ja siirrymme nyt ThingSpeakiin.

Vaihe 15:

Kuva
Kuva

Siirry ThingSpeakin Kirjaudu sisään tilillesi -kohtaan (https://thingspeak.com/login), mene kohtaan "Apps - ThingHTTP" ja napsauta sitten "New ThingHTTP". Anna sille nimi (olen valinnut jokaisen sijainnin todellisen nimen; "MyLocationName" tässä opetusohjelmassa) ja liitä URL -kenttään linkki tekstitiedostostasi, joka näyttää

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

Jätä kaikki muut kentät sellaisina kuin ne ovat ja napsauta "Tallenna ThingHTTP".

Vaihe 16:

Kuva
Kuva

Siirry sitten kohtaan "Apps - React" ja napsauta "New React". Anna sille nimi (jälleen olen valinnut sijainnin nimen ja sen jälkeen sanan "reagoida", mutta voit valita minkä tahansa nimen); "Ei datatarkistusta" "Ehdotyyppi"; "Testin taajuus" "10 minuutin välein"; kanavan nimi, jota haluat seurata päivityksiä varten, jos kanava on If; aika, jona kanavaa ei ole päivitetty (olen valinnut 15 minuuttia), koska "ei ole päivitetty"; "ThingHTTP" "toiminnolle"; "MyLocationName" for "sitten suorita ThingHTTP"; "Suorita toiminto vain ensimmäisen kerran, kun ehto täyttyy", koska haluan saada ilmoituksen vain kerran. Tämä nollautuu itsestään, kun kanava päivitetään uudelleen uusilla saapuvilla tiedoilla. Napsauta "Tallenna reaktio" ja olet valmis.

Tästä lähtien, kun kanavaasi ei ole päivitetty 15 minuuttiin (tai muuhun aikaan, valitsemastasi riippuen), React ottaa kiinni siitä poikkeuksesta, joka laukaisee ThingHTTP: n, joka puolestaan luo hiljaa uuden merkinnän kanavaasi laskentataulukko. Liipaisin ja Googlen laskentataulukon komentosarja ottavat sen sieltä, kuten edellä on jo selitetty.

Suositeltava: