Mundarija:

ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling: 16 qadam
ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling: 16 qadam

Video: ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling: 16 qadam

Video: ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling: 16 qadam
Video: Thingspeak Platformunda IOT projesi için kanal oluşturma 2024, Noyabr
Anonim
ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling
ThingSpeak -dagi kanal bir muncha vaqt yangilanmaganida, elektron pochta xabarini oling

Fon hikoyasi

Menda Dublin, Irlandiya bo'ylab tarqalgan oltita avtomatlashtirilgan issiqxona bor. Maxsus tayyorlangan mobil telefon ilovasidan foydalanib, men har bir issiqxonadagi avtomatlashtirilgan funktsiyalarni masofadan turib kuzatib boraman. Harorat juda yuqori / past bo'lganda oynalarni qo'lda ochish / yopish mumkin; Tuproq namligi juda past / baland bo'lganda sug'orishni boshlashim / to'xtatishim mumkin; va havo namligi juda yuqori / past bo'lganda shamollatish foniyni ishga tushirish / to'xtatish mumkin. Yoki men tizimni avtomatik rejimga o'tkazsam bo'ladi, va sabzavotlarga Arduino miyasi qaraydi. Loyiha haqida batafsil ma'lumotni bu erda topishingiz mumkin -

Oltita issiqxonadagi Arduino taxtasiga masofadan ulanish USB GPRS donglesi yordamida amalga oshiriladi, har bir joyda (menikini bu erdan sotib oldim https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-antenna bilan-3G-USB-modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Mobil ma'lumot ulanishida bo'lgani kabi (hech bo'lmaganda Dublinda), u tasodifiy tushadi, ba'zida bir necha daqiqaga, ba'zan esa bir necha soatga cho'zilishi mumkin. Agar ulanish uzilib qolsa, Arduino har 10 daqiqada USB -dongle -ni qayta o'rnatib, yangi ulanishni boshlash uchun dasturlashtirilgan. Ba'zan, (hali) noma'lum sabablarga ko'ra, GPRS ma'lumot ulanishi qayta yoqilgan bo'lsa ham, Arduino (va unga ulangan Ethernet qalqoni) voqeani sezmay qoladi. Aynan shu joyga borib, butun tizimni qo'lda tiklashim kerak bo'lgan payt.

Ma'lumot ulanishi biron bir joyga tushib qolganda, men bu manzilni kuzatib turishim uchun elektron pochta orqali imkon qadar tezroq xabardor bo'lishni xohlardim. Telefon ilovasi va Arduino o'rtasidagi aloqa https://thingspeak.com tomonidan taqdim etilgan onlayn xizmat orqali amalga oshirilganligi sababli, yaqin vaqtgacha (va 2019 yil 31 martgacha), bu https:// tomonidan taqdim etilgan boshqa xizmat yordamida mumkin bo'ldi. ifttt.com/discover va har bir kanalda ThingHTTP va React -ni o'rnatish, bu kanalning bir muncha vaqt yangilanmaganligini tekshirish. Biroq, men Google-dan olgan xatga ko'ra, 2019 yil 31-martdan boshlab, ularning maxfiyligi to'g'risidagi ma'lumotlarning yangilangan talablariga rioya qilmaganligi sababli (https://cloud.google.com/blog/products/g-suite/elevating-user) -bizning api-ekosistemalarga ishonish), Google hisobimdagi ba'zi ma'lumotlarga kirish endi IFTTT uchun mavjud bo'lmaydi va mening holatimga ko'ra, IFTTT kirish imkoniga ega bo'lgan yagona manba elektron pochta edi, menimcha, bu xabarnoma. yuqorida ko'rsatilgan xizmat o'z faoliyatini to'xtatadi.

Shunday qilib, mana bu erda men joylashuvlarimdagi ma'lumotlar uzilishi to'xtab qolganda, elektron pochta xabarnomalari doimiy ravishda kelishi uchun muqobil echimni qo'llayapmiz. Bu hali ham kanallarimda ThingHTTP va React xususiyatlaridan foydalanadi, faqat IFTTT havolasi Google Diskda ko'rsatildi. Uskunadan tashqari (mening holatimda Arduino), siz ThingSpeak hisob qaydnomangiz bilan muloqotda bo'lishingiz mumkin, sizda Google hisobini yaratish kerak bo'ladi, agar sizda u yo'q bo'lsa … va boshlaylik!

1 -qadam:

Rasm
Rasm

Google Diskda

Birinchidan, Google Diskda (https://drive.google.com) biz elektron jadval va oddiy shakl yaratishimiz kerak. Google Diskni oching va Yangi - Google Sheets - Bo'sh elektron jadvalni bosing.

2 -qadam:

Rasm
Rasm

Men o'z manzilimni "Jadvaldagi joylashuv" deb o'zgartirdim. Keyin "Asboblar" bo'limiga o'ting - ariza yarating.

3 -qadam:

Rasm
Rasm

Men shaklni "Joylashuv formasi" deb o'zgartirdim va "Sarlavhasiz savol" ni "Vaziyat" ga o'zgartirdim va "Ko'p tanlov" dan "Qisqa javob" ga o'zgartirdim.

4 -qadam:

Rasm
Rasm

Keyin men elektron pochta manzillarini yig'ish variantini olib tashladim - "Sozlamalarni o'zgartirish" ni bosing va paydo bo'lgan oynada barcha variantlarni olib tashlang. "Saqlash" ni bosing.

5 -qadam:

Rasm
Rasm

Shaklingiz saqlanadigan brauzer yorlig'ini yoping, shunda siz Google Drive -ning asosiy yorlig'iga qaytishingiz kerak, u erda siz yangi shakl va elektron jadvalga ega bo'lishingiz kerak. Jadvalni oching va "Fayl - ulashish …" ga o'ting. Yangi oynada "Kengaytirilgan" ni bosing.

6 -qadam:

Rasm
Rasm

Keyin "Maxsus - faqat siz kira olasiz" yorlig'i yonidagi "O'zgartirish …" ni bosing

7 -qadam:

Rasm
Rasm

va "Yoqilgan - havolasi bo'lgan har bir kishi" ga, shuningdek "Tahrir qila oladigan" ga o'zgartiring.

8 -qadam:

Rasm
Rasm

Jadvalga qaytish uchun "Saqlash" va "Bajarildi" ni bosing. U erda bo'lganingizda, "Fayl - Internetda nashr etish …" tugmachasini bosing, so'ng dialog oynasi uchun "Nashr etish" va "OK" ni bosing. "Internetda nashr etish" oynasini yoping.

Hali ham elektron jadvalda bo'lganingizda "Forma - jonli shaklga o'tish" ni bosing. Sichqoncha bilan o'ng tugmasini bosing (men Google Chrome brauzeridan foydalanmoqdaman) va "Sahifa manbasini ko'rish" -ni tanlang.

9 -qadam:

Rasm
Rasm

Ochilgan yangi sahifada "ariza shakli" ni qidiring va https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX /formResponse ga o'xshash havolani toping. Havolani tanlang va nusxasini oling va uni matnli hujjatga joylashtiring. Siz ThingSpeak uchun ThingHTTP -ga kiritilishi kerak bo'lgan oxirgi havolani yaratish uchun foydalanasiz.

10 -qadam:

Rasm
Rasm

Formangizning manba ko'rinishiga qayting va "kirish" ni qidiring. "Entry. XXXXX" kabi butun matnni toping va tanlang. Nusxa oling va yuqoridagi matnli hujjatga joylashtiring. Endi siz Google shaklingizning manba ko'rinishini yopishingiz mumkin.

11 -qadam:

Rasm
Rasm

Yangi matnli hujjatda (bu erda siz ilgari joylashtirgan havola va yozuv mavjud), shunday bo'lishi kerak bo'lgan oxirgi havolani yarating.

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

Mening holatimda, "JOYLIK+NOMI" o'rniga men kuzatishi kerak bo'lgan har bir joyning haqiqiy nomi qo'yiladi. Aloqa uzilganda men oladigan elektron pochta xabarnomasi bu matnni o'z ichiga oladi, shuning uchun men qaysi manzilda muammolar borligini aniq bilaman. Bu matn aslida Google shaklidagi "status" maydonining qisqa matnli tarkibi sifatida yuboriladi. "& Submit = Submit" ThingHTTP va React tomonidan chaqirilganda, boshqa harakatlarga hojat qoldirmasdan, shaklni jimgina yuboradi.

Nihoyat, elektron jadvalga har safar yangi yozuv qo'shilganda elektron pochta xabarini avtomatik ravishda yuboradigan skriptni kiritishimiz kerak. Elektron jadvalni oching va "Asboblar - skript muharriri" ni bosing. Ochilgan yangi oynada quyidagi kodni kiriting (sizning ehtiyojlaringizni aks ettiradigan o'zgartirishlar bilan):

newEntryNotification funktsiyasi (e)

{

harakat qilib ko'ring

{

var vaqt tamg'asi = e.values [0];

var location = e.values [1];

var message = location + 'manzil DOWN / n' + vaqt tamg'asi;

MailApp.sendEmail ("SIZNING E -POSTA MANZILINGIZ", "Diqqat, joylashuv DOWN!", Xabar);

}

ushlash (e)

{

MailApp.sendEmail ("SIZNING E -MAIL MANZILINGIZ", "Xato - Diqqat, joylashuv KO'RILDI!", E -xabar);

}

}

"E -pochta manzili" matnini xabarnoma yuborilishi kerak bo'lgan elektron pochta manziliga va agar xohlasangiz, haqiqiy xabarnoma xabariga almashtiring.

12 -qadam:

Rasm
Rasm

Bu skriptni elektron jadvalga yangi yozuv qo'shilganda ishga tushirish kerak. Xuddi shu oynada (yuqoridagi skript kodi bilan) asboblar panelidagi "sekundomer" belgisini bosing - "Joriy loyihaning tetiklari". Sizdan loyihangizga nom berishingiz so'raladi (men o'z joyimni "locationDown" deb nomladim) va boshqa brauzer yorlig'i ochiladi, natijada hech qanday natija (tetik) topilmadi. "Yangi tetik yaratish" ni bosing.

13 -qadam:

Rasm
Rasm

Yangi oynada "Voqealar manbasini tanlash" uchun "Elektron jadvaldan" -ni tanlang; "Hodisa turini tanlang" uchun "Formani topshirish"; "Xato xabari sozlamalari" uchun "Menga darhol xabar bering". "Saqlash" ni bosing. Sizdan Google hisobingizga kirishingiz so'raladi va kerak bo'lganda bu tetik sizning hisobingizga kirishiga "Ruxsat bering".

14 -qadam:

Rasm
Rasm

Triggerlar ro'yxatida siz ilgari yaratgan skript bilan bog'lanadigan tetik bo'lishi kerak. Shuning uchun, elektron jadvalga yangi ma'lumotlar kiritilgandan so'ng (avtomatlashtirilgan shakl havolasi va yuqorida tavsiflangan jim usul yordamida), ishga tushiruvchi darhol tanlangan xabarni o'z ichiga olgan elektron pochta manziliga xabar yuboradigan skriptni chaqiradi.

Biz Google Drive -da ish qildik va endi ThingSpeak -ga o'tmoqdamiz.

15 -qadam:

Rasm
Rasm

ThingSpeak -da hisobingizga kiring (https://thingspeak.com/login), "Ilovalar - ThingHTTP" -ga o'ting va "Yangi ThingHTTP" -ni bosing. Unga nom bering (men har bir joyning haqiqiy nomini tanladim; "MyLocationName" bu qo'llanma uchun) va "URL" maydoniga matnli faylingiz havolasini joylashtiring.

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

Boshqa barcha maydonlarni avvalgidek qoldiring va "ThingHTTP -ni saqlash" -ni bosing.

16 -qadam:

Rasm
Rasm

Keyin "Ilovalar - Reaksiya" ga o'ting va "Yangi reaktsiya" ni bosing. Unga nom bering (yana, men manzil nomini tanladim, keyin "reaktsiya" so'zi, lekin siz xohlagan nomni tanlashingiz mumkin); "Vaziyat turi" uchun "Ma'lumot tekshiruvi yo'q"; "Test chastotasi" uchun "har 10 daqiqada"; yangilanishlarni kuzatmoqchi bo'lgan kanal nomi, "Agar kanal" uchun; kanal yangilanmagan vaqt (men 15 daqiqa tanladim), "yangilanmagan" uchun; "Harakat" uchun "ThingHTTP"; "Keyin ThingHTTPni bajarish" uchun "MyLocationName"; "Amalni faqat shart bajarilganda bajaring", chunki men faqat bir marta bildirishnoma olishni xohlayman. Agar kanal yangi kiruvchi ma'lumotlar bilan yangilansa, bu o'z -o'zidan tiklanadi. "Reaktsiyani saqlash" ni bosing va siz tugatdingiz.

Bundan buyon sizning kanalingiz 15 daqiqaga yangilanmagan bo'lsa (yoki siz tanlagan narsaga qarab boshqa vaqt), React ThingHTTP -ni ishga soladigan istisnoni aniqlaydi, bu esa o'z navbatida jimgina yangi yozuvni yaratadi. elektron jadval Trigger va Google elektron jadvalidagi skript, yuqorida aytib o'tilganidek, uni o'sha erdan oladi.

Tavsiya: