Tartalomjegyzék:

Értesítő e -mail fogadása, ha a ThingSpeak csatornáját egy ideig nem frissítették: 16 lépés
Értesítő e -mail fogadása, ha a ThingSpeak csatornáját egy ideig nem frissítették: 16 lépés

Videó: Értesítő e -mail fogadása, ha a ThingSpeak csatornáját egy ideig nem frissítették: 16 lépés

Videó: Értesítő e -mail fogadása, ha a ThingSpeak csatornáját egy ideig nem frissítették: 16 lépés
Videó: 14. ESP8266 webkliens alkalmazások - 2. rész 2024, November
Anonim
Értesítő e -mailt kap, ha a ThingSpeak csatornáját egy ideig nem frissítették
Értesítő e -mailt kap, ha a ThingSpeak csatornáját egy ideig nem frissítették

Háttér történet

Hat automatizált üvegházam van Dublinban, Írországban. Egyedi mobilalkalmazás használatával távolról figyelemmel kísérhetem az egyes üvegházakban található automatizált funkciókat, és kölcsönhatásba léphetek velük. Kézzel kinyithatom / bezárom az ablakokat, ha a hőmérséklet túl magas / alacsony; Elindíthatom / leállíthatom az öntözést, ha a talaj nedvessége túl alacsony / magas; és elindíthatom / leállíthatom a ventilátort, ha a levegő páratartalma túl magas / alacsony. Vagy egyszerűen átkapcsolhatom a rendszert automatikus üzemmódba, és a zöldségekre az Arduino agy vigyáz. A projektről további részletek itt olvashatók -

A hat üvegházban lévő Arduino táblákhoz való távoli csatlakozás USB GPRS-kulcsok segítségével lehetséges, minden helyszínen egy-egy (az enyémet innen vásároltam) -E353s-2-Antennával-3G-USB-modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). A mobil adatkapcsolathoz hasonlóan (legalábbis Dublinban) ez véletlenszerűen leesik, néha néhány percre, néha pár órára. Ha a kapcsolat megszakad, az Arduino programozottan 10 percenként alaphelyzetbe állítja az USB -kulcsot, hogy megpróbáljon új kapcsolatot létesíteni. Néha azonban (még) ismeretlen okok miatt, még akkor is, ha a GPRS adatkapcsolat újra be van kapcsolva, az Arduino (és a hozzá tartozó Ethernet -pajzs) nem veszi észre az eseményt. Ez az a pillanat, amikor el kell mennem az adott helyre, és manuálisan vissza kell állítanom az egész rendszert.

Ha valamely helyen megszakad az adatkapcsolat, a lehető leghamarabb értesíteni akartam e -mailben, hogy figyelemmel kísérhessem az adott helyet. Mivel a telefonos alkalmazás és az Arduino közötti kommunikáció a https://thingspeak.com által biztosított online szolgáltatáson keresztül zajlik, a közelmúltig (és 2019. március 31 -ig) ez lehetséges volt a https:// által biztosított másik szolgáltatás használatával ifttt.com/discover, és állítson be ThingHTTP -t és React -ot minden csatornán, figyelve azt a tényt, hogy az adott csatorna nem frissült -e egy ideje. A Google-tól kapott, 2019. március 31-től kezdődő e-mail szerint azonban nem tartják be a frissített adatvédelmi követelményeiket (https://cloud.google.com/blog/products/g-suite/elevating-user -bizalom az api-ökoszisztémáinkban), a Google-fiókom egyes adataihoz való hozzáférés már nem lesz elérhető az IFTTT számára, és mivel esetemben az e-mail volt az egyetlen erőforrás, amelyhez az IFTTT hozzáférhetett, megértettem, hogy az értesítés a fent leírt szolgáltatás leáll.

Ezért tehát itt tartunk, és alternatív megoldást vezetünk be annak érdekében, hogy az e -mail értesítések továbbra is megérkezzenek, amikor az adatkapcsolat megszakad a helyemen. Ez továbbra is a ThingHTTP és a React funkciókat használja a csatornáimon, csak az IFTTT-re mutató linket irányították újra a Google Drive-ra. Tehát a hardveren kívül (esetemben az Arduino) lehet, hogy kommunikál a ThingSpeak -fiókjával, létre kell hoznia egy Google -fiókot, hogy ha még nincs … és kezdjük!

1. lépés:

Kép
Kép

A Google Drive -ban

Először a Google Drive -ban (https://drive.google.com) létre kell hoznunk egy táblázatot és egy egyszerű űrlapot. Nyissa meg Google Drive -ját, és kattintson az Új - Google Táblázatok - Üres táblázat elemre.

2. lépés:

Kép
Kép

Az enyémet átneveztem "Hely lent táblázat" -ra. Ezután lépjen az Eszközök - Űrlap létrehozása elemre.

3. lépés:

Kép
Kép

Átneveztem az űrlapot „Hely lefelé űrlap” -ra, és a „Cím nélküli kérdés” -et „Állapot” -ra változtattam, a típust pedig „Többválasztásos” -ról „Rövid válasz” -ra.

4. lépés:

Kép
Kép

Ezután eltávolítottam az e -mail címek gyűjtésének lehetőségét - kattintson a "Beállítások módosítása" gombra, és törölje az összes lehetőséget a megjelenő ablakban. Kattintson a "Mentés" gombra.

5. lépés:

Kép
Kép

Zárja be az űrlapot tároló jelenlegi böngészőlapot, és térjen vissza a Google Drive fő lapjára, ahol az űrlapot és a táblázatot is meg kell kapnia. Nyissa meg a táblázatot, és lépjen a "Fájl - Megosztás…" menüpontra. Az új ablakban kattintson a "Speciális" gombra

6. lépés:

Kép
Kép

Ezután kattintson a "Módosítás …" gombra a "Privát - csak Ön férhet hozzá" címke mellett

7. lépés:

Kép
Kép

és váltson a „Be - bárki, akinek van linkje” lehetőségre, és váltson a „Szerkeszthető” beállításra

8. lépés:

Kép
Kép

Kattintson a "Mentés" és a "Kész" gombra, hogy visszatérjen a táblázathoz. Ott tartózkodása alatt kattintson a "Fájl - Közzététel az interneten …" lehetőségre, majd kattintson a "Közzététel" és az "OK" gombra a párbeszédablakhoz. Zárja be a "Közzététel az interneten" ablakot.

Még a táblázatban kattintson az "Űrlap - Ugrás az élő űrlapra" gombra. Kattintson jobb gombbal az egérrel (Google Chrome böngészőt használok), és válassza az "Oldalforrás megtekintése" lehetőséget.

9. lépés:

Kép
Kép

A megnyíló új oldalon keressen rá az „űrlapművelet” kifejezésre, majd keresse meg a következő linket: https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXX/formResponse. Válassza ki ezt a linket, majd másolja és illessze be valamilyen szöveges dokumentumba. Ezt fogja használni a végső link létrehozásához, amelyet be kell írni a ThingHTTP for ThingSpeak szolgáltatásba.

10. lépés:

Kép
Kép

Térjen vissza az űrlap forrásnézetébe, és keressen rá a "bejegyzés" kifejezésre. Keresse meg és válassza ki a teljes szöveget, például "entry. XXXXX". Másolja és illessze be a fenti szövegdokumentumba. Most bezárhatja Google űrlapjának forrásnézetét.

11. lépés:

Kép
Kép

Az új szöveges dokumentumban (ahol most van a link és az előzőleg beillesztett bejegyzés), hozza létre a végső linket, amely így néz ki

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

Esetemben a "HELY+NÉV" helyére minden egyes, ténylegesen felügyelni kívánt hely neve kerülne. Az e -mail értesítő e -mail, amelyet a kapcsolat megszakításakor kapok, ezt a szöveget fogja tartalmazni, hogy pontosan tudjam, melyik helyen vannak problémák. Ezt a szöveget valójában a Google űrlap "állapot" mezőjének rövid szöveges tartalmaként kell benyújtani. Az "& submitted = Submit" csendben elküldi az űrlapot, további műveletek nélkül, amikor a ThingHTTP és a React meghívja.

Végül hozzá kell adnunk egy olyan szkriptet, amely automatikusan küld e -mail értesítést minden alkalommal, amikor új bejegyzést adtak hozzá a táblázathoz. Nyissa meg a táblázatot, majd kattintson az "Eszközök - Szkriptszerkesztő" elemre. A megnyíló új ablakban adja hozzá a következő kódot (az igényeinek megfelelő módosításokkal):

függvény newEntryNotification (e)

{

próbáld ki

{

var időbélyeg = e.értékek [0];

var location = e.values [1];

var message = location + 'location is DOWN / n' + időbélyeg;

MailApp.sendEmail ("AZ EMAIL CÍME", "Figyelem, hely le!", Üzenet);

}

fogás (e)

{

MailApp.sendEmail ("AZ EMAIL CÍME", "Hiba - Figyelem, hely le!", E.üzenet);

}

}

Ha úgy kívánja, cserélje ki a „YOUR EMAIL CÍME” szöveget az e -mail címre, ahová az értesítést el kell küldeni, és a tényleges értesítési üzenettel.

12. lépés:

Kép
Kép

Ezt a szkriptet aktiválni kell, amikor új bejegyzést adtak hozzá a táblázathoz. Ugyanebben az ablakban (a fenti szkriptkóddal) kattintson az eszköztár "stopper" ikonjára - "Az aktuális projekt kiváltói". A rendszer felkéri Önt, hogy adja meg a projekt nevét (én az enyémet "locationDown" -nak neveztem el), és megnyílik egy másik böngészőlap, amely arról számol be, hogy nem talált találatot (nincs aktiváló). Kattintson az "új trigger létrehozása" gombra.

13. lépés:

Kép
Kép

Az új ablakban válassza az "Eseményforrás kiválasztása" lehetőséget a "Táblázatból"; "Az űrlapon küldés" a "Válassza ki az eseménytípust"; "Értesítsen azonnal" a "Hiba értesítési beállítások". Kattintson a "Mentés" gombra. A rendszer felkéri, hogy jelentkezzen be Google -fiókjába, és szükség esetén engedélyezze, hogy ez az aktiváló hozzáférjen fiókjához.

14. lépés:

Kép
Kép

A trigger -listában most egy triggerrel kell rendelkeznie, amely a korábban létrehozott szkripthez lesz kapcsolva. Ezért, amikor új adatokat illeszt be a táblázatba (az automatikus űrlap linkjét és a fent leírt csendes módszert használva), a trigger azonnal meghívja a szkriptet, amely értesítést küld a megadott e -mail címre, amely tartalmazza a választott üzenetet.

Végeztünk a Google Drive oldalán, és most a ThingSpeak -re térünk át.

15. lépés:

Kép
Kép

A ThingSpeak bejelentkezési fiókjába (https://thingspeak.com/login) menjen az "Alkalmazások - ThingHTTP" elemre, majd kattintson az "Új ThingHTTP" elemre. Adjon neki egy nevet (az egyes helyek tényleges nevét választottam; az oktatóanyag céljára "MyLocationName"), majd az "URL" mezőbe illessze be a szöveges fájlból a hivatkozást, amely így néz ki

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

Hagyja az összes többi mezőt úgy, ahogy van, és kattintson a "ThingHTTP mentése" gombra.

16. lépés:

Kép
Kép

Ezután lépjen az "Alkalmazások - React" elemre, és kattintson az "Új reagálás" gombra. Adj neki egy nevet (ismét a hely nevét választottam, majd a "reagál" szót, de tetszés szerint választhatsz); "Nincs adatellenőrzés" a "Feltétel típusa" esetén; "10 percenként" a "Tesztfrekvencia"; a csatorna nevét, amelyet frissíteni kíván, "If Channel" esetén; a csatorna frissítésének időpontja (15 percet választottam), mivel a "nem frissült a következőhöz:"; "ThingHTTP" az "Action" -hez; "MyLocationName" for "then perform ThingHTTP"; "Futtassa a műveletet csak a feltétel első teljesítésekor", mivel csak egyszer szeretnék értesítést kapni. Ez alaphelyzetbe áll, ha a csatorna ismét frissül új bejövő adatokkal. Kattintson a "React mentése" gombra, és kész.

Mostantól kezdve, amikor csatornáját nem frissítették 15 percre (vagy máskor, attól függően, hogy mit választott), a React elkapja azt a kivételt, amely elindítja a ThingHTTP -t, ami csendben új bejegyzést hoz létre a táblázat. A Trigger és a Google Táblázatban található szkript onnan veszi át, amint azt fentebb már kifejtettük.

Ajánlott: