Përmbajtje:

Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë: 16 hapa
Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë: 16 hapa

Video: Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë: 16 hapa

Video: Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë: 16 hapa
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2024, Nëntor
Anonim
Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë
Merrni një email njoftimi kur një kanal në ThingSpeak nuk u përditësua për një kohë

Historia e sfondit

Unë kam gjashtë serra të automatizuara që janë të përhapura në Dublin, Irlandë. Duke përdorur një aplikacion të telefonit celular të bërë me porosi, unë mund të monitoroj nga distanca dhe të ndërveproj me veçoritë e automatizuara në secilën serë. Mund t'i hap / mbyll dritaret me dorë kur temperatura është shumë e lartë / e ulët; Unë mund të filloj / ndaloj ujitjen kur lagështia e tokës është shumë e ulët / e lartë; dhe mund të ndez / ndal ventilatorin kur lagështia e ajrit është shumë e lartë / e ulët. Ose thjesht mund ta kaloj sistemin në modalitetin Auto, dhe perimet do të kujdesen nga truri Arduino. Më shumë detaje rreth këtij projekti mund të gjenden këtu -

Lidhja në distancë me tabelat Arduino në gjashtë serrat është bërë e mundur me ndihmën e dongleve USB GPRS, një në secilën vendndodhje (e kam blerë timen nga këtu -E353s-2-Me-Antenë-3G-USB-Modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Siç është rasti me lidhjen e të dhënave celulare (të paktën në Dublin), ajo bie rastësisht, ndonjëherë për disa minuta, ndonjëherë mund të jetë për disa orë. Nëse lidhja bie, Arduino është programuar të rivendosë donglin USB çdo 10 minuta, që ai të provojë të fillojë një lidhje të re. Ndonjëherë megjithatë, për arsye (akoma) të panjohura, edhe nëse lidhja e të dhënave GPRS është e ndezur, Arduino (dhe mburoja e bashkangjitur Ethernet) nuk arrin të marrë njoftim për ngjarjen. Ky është momenti kur më duhet të shkoj në atë vend të caktuar dhe të rivendos manualisht të gjithë sistemin.

Kur lidhja e të dhënave bie në ndonjë vendndodhje, doja të njoftohesha me email sa më shpejt të ishte e mundur, në mënyrë që të mbaja një sy në atë vend të veçantë. Ndërsa komunikimi midis aplikacionit të telefonit dhe Arduino zhvillohet përmes një shërbimi online të ofruar nga https://thingspeak.com, deri vonë (dhe deri më 31 Mars 2019), kjo ishte e mundur duke përdorur një shërbim tjetër të ofruar nga https:// ifttt.com/discover, dhe vendosja e një ThingHTTP dhe një React në secilin kanal, duke monitoruar faktin nëse ai kanal i veçantë nuk është përditësuar për ca kohë. Sidoqoftë, sipas një emaili që mora nga Google, duke filluar me 31 Mars 2019, për shkak të mospërputhjes me kërkesat e përditësuara të tyre të privatësisë (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ekosistemet), qasja në disa të dhëna në llogarinë time në Google nuk do të jetë më e disponueshme për IFTTT, dhe pasi në rastin tim email-i ishte burimi i vetëm që IFTTT kishte qasje, kuptimi im ishte se njoftimi shërbimi i përshkruar më sipër do të ndalojë së punuari.

Prandaj, këtu jemi, duke zbatuar një zgjidhje alternative në mënyrë që njoftimet me email të mbërrijnë kur lidhja e të dhënave në vendet e mia të bjerë. Kjo ende përdor veçoritë ThingHTTP dhe një React në kanalet e mia, vetëm lidhja me IFTTT u ri-drejtua në Google Drive. Pra, përveç harduerit (Arduino në rastin tim) që mund të keni duke komunikuar me llogarinë tuaj ThingSpeak, do t'ju duhet të krijoni një llogari Google, që në rast se nuk e keni tashmë … dhe le të fillojmë!

Hapi 1:

Imazhi
Imazhi

Në Google Drive

Së pari, në Google Drive (https://drive.google.com) ne duhet të krijojmë një spreadsheet dhe një formë të thjeshtë. Hapni Google Drive -in tuaj dhe klikoni në New - Google Sheets - spreadsheet bosh.

Hapi 2:

Imazhi
Imazhi

I riemërtova timen "Vendndodhja poshtë spreadsheet". Pastaj shkoni te Mjetet - Krijoni një formë.

Hapi 3:

Imazhi
Imazhi

Unë e riemërtova formën si "Vendndodhja poshtë formularit", dhe ndryshova "Pyetje pa titull" në "Status", dhe llojin nga "Zgjedhje e shumëfishtë" në "Përgjigje e shkurtër".

Hapi 4:

Imazhi
Imazhi

Më pas hoqa opsionin për mbledhjen e adresave të postës elektronike - klikoni në "Ndrysho cilësimet" dhe i zgjodha të gjitha opsionet në dritaren që u shfaq. Klikoni në "Ruaj".

Hapi 5:

Imazhi
Imazhi

Mbyllni skedën aktuale të shfletuesit që mban formën tuaj dhe duhet të ktheheni në skedën tuaj kryesore të Google Drive, ku duhet të keni si formën ashtu edhe fletëllogaritjen që sapo keni krijuar. Hapni spreadsheet -in dhe shkoni te "File - Share …". Në dritaren e re, klikoni në "Advanced"

Hapi 6:

Imazhi
Imazhi

Pastaj klikoni në "Ndrysho …" pranë etiketës "Private - Vetëm ju mund të hyni"

Hapi 7:

Imazhi
Imazhi

dhe ndryshoni në "On - Çdokush me lidhjen", dhe gjithashtu në "Mund të redaktojë"

Hapi 8:

Imazhi
Imazhi

Klikoni në "Ruaj" dhe "Done" për t'u kthyer në spreadsheet -in tuaj. Ndërsa jeni atje, klikoni në "File - Publish to the web…", dhe pastaj klikoni në "Publish" dhe "OK" për dritaren e dialogut. Mbyllni dritaren "Publiko në ueb".

Ndërsa jeni ende në spreadsheet, klikoni në "Formulari - Shko te forma e drejtpërdrejtë". Klikoni me të djathtën me miun (unë jam duke përdorur shfletuesin Google Chrome) dhe zgjidhni "Shiko burimin e faqes".

Hapi 9:

Imazhi
Imazhi

Në faqen e re që hap kërko për "formën e veprimit" dhe më pas gjej lidhjen që duket e ngjashme me https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Zgjidhni atë lidhje dhe kopjoni dhe ngjiteni në ndonjë dokument teksti. Ju do ta përdorni atë për të formuar lidhjen përfundimtare që duhet të futet në ThingHTTP për ThingSpeak.

Hapi 10:

Imazhi
Imazhi

Kthehuni te pamja burimore e formularit tuaj dhe tani kërkoni për "hyrje". Gjeni dhe zgjidhni të gjithë tekstin, diçka si "hyrja. XXXXX". Kopjoni dhe ngjisni atë në të njëjtin dokument tekst si më sipër. Tani mund të mbyllni pamjen burimore të formularit tuaj Google.

Hapi 11:

Imazhi
Imazhi

Në dokumentin e ri të tekstit (ku tani keni lidhjen dhe hyrjen që ngjitëm më parë), krijoni lidhjen përfundimtare, që duhet të duket si

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOKACIONI+EMRI & dorëzo = Dorëzo

Në rastin tim, "LOKACIONI+EMRI" do të zëvendësohej me emrin aktual të secilës vendndodhje të veçantë që duhet të monitoroj. Emaili i njoftimit me email që do të marr kur lidhja të bjerë do të përmbajë këtë tekst, në mënyrë që të di saktësisht se në cilin vend ka probleme. Ky tekst në fakt do të paraqitet si përmbajtje e tekstit të shkurtër për fushën "statusi" në formën Google. "& Submit = Submit" do të dorëzojë në heshtje formularin, pa pasur nevojë për ndonjë veprim të mëtejshëm, kur thirret nga ThingHTTP dhe React.

Së fundi, ne duhet të shtojmë një skript që automatikisht do të dërgojë një njoftim me email çdo herë që shtohet një hyrje e re në spreadsheet. Hapni spreadsheet, dhe pastaj klikoni në "Tools - Script editor". Në dritaren e re që hapet shtoni kodin e mëposhtëm (me ndryshimet e kërkuara për të pasqyruar nevojat tuaja):

funksion newEntryNotification (e)

{

provo

{

vargu kohor = e.vlerat [0];

var vendndodhja = e.vlerat [1];

var mesazh = vendndodhja + 'vendndodhja është DOWN / n' + vula kohore;

MailApp.sendEmail ("ADRESA E EMAILIT TUAJ", "Kujdes, vendndodhja POSHT!", Mesazh);

}

kap (e)

{

MailApp.sendEmail ("ADRESA E EMAILIT TUAJ", "Gabim - Kujdes, vendndodhja POSHT!", E.message);

}

}

Zëvendësoni tekstin "ADRESA E EMAILIT TUAJ" me adresën e emailit ku duhet të dërgohet njoftimi dhe mesazhin aktual të njoftimit, nëse dëshironi.

Hapi 12:

Imazhi
Imazhi

Ky skenar duhet të aktivizohet kur të shtohet një hyrje e re në spreadsheet. Ndërsa jeni në të njëjtën dritare (me kodin e shkrimit më lart), klikoni në ikonën "kronometër" në shiritin e veglave - "Nxitësit e projektit aktual". Do t'ju kërkohet të emërtoni projektin tuaj (unë e quaj timen "locationDown"), dhe një skedë tjetër e shfletuesit do të hapet, duke raportuar se asnjë rezultat (asnjë nxitës) nuk u gjet. Klikoni në "krijoni një shkas të ri".

Hapi 13:

Imazhi
Imazhi

Në dritaren e re, zgjidhni "Nga spreadsheet" për "Zgjidh burimin e ngjarjes"; "Në formular dorëzo" për "Zgjidh llojin e ngjarjes"; "Më njofto menjëherë" për "Cilësimet e njoftimit të dështimit". Klikoni në "Ruaj". Do t'ju kërkohet të identifikoheni në llogarinë tuaj të Google dhe "Lejo" që ky çelës të ketë qasje në llogarinë tuaj kur kërkohet.

Hapi 14:

Imazhi
Imazhi

Tani duhet të keni një shkas në listën e shkaktuesve, e cila do të lidhet me skriptin që kemi krijuar më parë. Prandaj, me futjen e të dhënave të reja në spreadsheet (duke përdorur lidhjen e formularit të automatizuar dhe metodën e heshtur të përshkruar më sipër), shkaktari do të thërrasë menjëherë skriptin, i cili do të dërgojë një njoftim në adresën e emailit të dhënë, që përmban mesazhin tuaj të zgjedhur.

Ne kemi mbaruar në anën e Google Drive dhe tani po kalojmë në ThingSpeak.

Hapi 15:

Imazhi
Imazhi

Në ThingSpeak Hyni në llogarinë tuaj (https://thingspeak.com/login), shkoni te "Aplikimet - ThingHTTP" dhe pastaj klikoni në "New ThingHTTP". Jepini një emër (unë kam zgjedhur emrin aktual të secilës vendndodhje; "MyLocationName" për qëllimet e këtij tutoriali), dhe në fushën "URL", ngjitni lidhjen nga skedari juaj i tekstit, ai që duket si

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOKACIONI+EMRI & dorëzo = Dorëzo

Lërini të gjitha fushat e tjera siç janë dhe klikoni në "Ruaj ThingHTTP".

Hapi 16:

Imazhi
Imazhi

Pastaj shkoni te "Aplikacionet - Reagoni" dhe klikoni në "React". Jepini një emër (përsëri, unë kam zgjedhur emrin e lokacionit të ndjekur nga fjala "reagoj", por ju mund të zgjidhni çdo emër që dëshironi); "Nuk ka kontroll të të dhënave" për "Lloji i gjendjes"; "Çdo 10 minuta" për "Frekuenca e Testit"; emrin e kanalit që dëshironi të monitoroni për përditësime, për "If Channel"; koha kur kanali nuk është përditësuar (kam zgjedhur 15 minuta), për "nuk është përditësuar për"; "ThingHTTP" për "Veprim"; "MyLocationName" për "atëherë kryeni ThingHTTP"; "Drejtoni veprimin vetëm herën e parë që plotësohet kushti", pasi unë dua të marr një njoftim vetëm një herë. Kjo do të rivendoset kur kanali të përditësohet përsëri me të dhëna të reja hyrëse. Klikoni në "Ruaj Reagimin" dhe mbaroni.

Tani e tutje kur kanali juaj nuk është azhurnuar për 15 minuta (ose kohë tjetër, në varësi të asaj që keni zgjedhur), React do të kapë atë përjashtim që do të shkaktojë ThingHTTP, i cili nga ana tjetër do të krijojë në heshtje një hyrje të re në tuaj fletëllogaritëse Shkaktari dhe skripti në Google Spreadsheet do ta marrin nga atje, siç është shpjeguar tashmë më lart.

Recommended: