Isi kandungan:

Menerima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu: 16 Langkah
Menerima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu: 16 Langkah

Video: Menerima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu: 16 Langkah

Video: Menerima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu: 16 Langkah
Video: 🦅雪鹰领主EP1-78!雪鹰成为超凡拯救父母!打破魔族守护人族和平!【雪鹰领主 Legendary Overlord】 2024, November
Anonim
Terima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu
Terima E-mel Pemberitahuan Apabila Saluran di ThingSpeak Tidak Dikemas kini untuk sementara waktu

Latar belakang cerita

Saya mempunyai enam rumah hijau automatik yang tersebar di Dublin, Ireland. Dengan menggunakan aplikasi telefon bimbit yang dibuat khas, saya dapat memantau dan berinteraksi dari jauh dengan ciri automatik di setiap rumah hijau. Saya boleh membuka / menutup tingkap secara manual apabila suhu terlalu tinggi / rendah; Saya boleh memulakan / menghentikan pengairan apabila kelembapan tanah terlalu rendah / tinggi; dan saya boleh memulakan / menghentikan kipas pengudaraan apabila kelembapan udara terlalu tinggi / rendah. Atau saya hanya boleh menukar sistem ke mod Auto, dan sayur-sayuran akan dijaga oleh otak Arduino. Maklumat lanjut mengenai projek ini boleh didapati di sini -

Sambungan jarak jauh ke papan Arduino di enam rumah hijau dimungkinkan dengan bantuan dongle USB GPRS, satu di setiap lokasi (saya membeli tambang dari sini https://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-Dengan-Antena-3G-USB-Modem-21-6-Mbps-HSPA-Mobile / 32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Seperti halnya dengan sambungan data mudah alih (sekurang-kurangnya di Dublin), ia secara rawak turun, kadang-kadang selama beberapa minit, kadang-kadang mungkin selama beberapa jam. Sekiranya sambungan terputus, The Arduino diprogram untuk menyetel semula dongle USB setiap 10 minit, untuk mencuba memulakan sambungan baru. Kadang-kadang bagaimanapun, kerana (belum) alasan yang tidak diketahui, walaupun sambungan data GPRS dihidupkan semula, Arduino (dan pelindung Ethernet yang dilampirkan) gagal memperhatikan kejadian tersebut. Inilah masanya saya perlu pergi ke lokasi tertentu dan menetapkan semula keseluruhan sistem secara manual.

Apabila sambungan data terputus di beberapa lokasi, saya ingin diberitahu melalui e-mel secepat mungkin, supaya saya mengawasi lokasi tertentu. Oleh kerana komunikasi antara aplikasi telefon dan Arduino berlaku melalui perkhidmatan dalam talian yang disediakan oleh https://thingspeak.com, sehingga baru-baru ini (dan hingga 31 Mac 2019), ini dapat dilakukan dengan menggunakan perkhidmatan lain yang disediakan oleh https:// ifttt.com/discover, dan menetapkan ThingHTTP dan React pada setiap saluran, memantau fakta sama ada saluran tersebut belum dikemas kini untuk beberapa waktu. Namun, menurut e-mel yang saya terima dari Google, bermula pada 31 Mac 2019, kerana tidak mematuhi syarat privasi data mereka yang dikemas kini (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ecosystems), akses ke beberapa data di akaun Google saya tidak akan tersedia lagi untuk IFTTT, dan seperti dalam kes saya, e-mel adalah satu-satunya sumber yang dapat diakses oleh IFTTT, pemahaman saya adalah bahawa pemberitahuan perkhidmatan yang dinyatakan di atas akan berhenti berfungsi.

Oleh itu, inilah kami, melaksanakan penyelesaian alternatif agar pemberitahuan e-mel terus tiba apabila sambungan data di lokasi saya menurun. Ini masih menggunakan ciri ThingHTTP dan React di saluran saya, hanya pautan ke IFTTT yang dihalakan semula ke Google Drive. Jadi selain daripada perkakasan (Arduino dalam kes saya) anda mungkin berkomunikasi dengan akaun ThingSpeak anda, anda perlu membuat akaun Google, sekiranya anda belum memilikinya… dan mari kita mulakan!

Langkah 1:

Imej
Imej

Di Google Drive

Pertama, di Google Drive (https://drive.google.com) kita perlu membuat hamparan dan bentuk ringkas. Buka Google Drive anda, dan klik Baru - Helaian Google - Hamparan kosong.

Langkah 2:

Imej
Imej

Saya menamakan semula nama saya sebagai "Lokasi ke bawah hamparan". Kemudian pergi ke Alat - Buat borang.

Langkah 3:

Imej
Imej

Saya menamakan semula borang itu sebagai "Lokasi turun borang", dan mengubah "Pertanyaan tanpa judul" menjadi "Status", dan jenisnya dari "Pilihan berganda" menjadi "Jawapan ringkas".

Langkah 4:

Imej
Imej

Saya kemudian membuang pilihan untuk mengumpulkan alamat e-mel - klik pada "Ubah tetapan", dan hapus centang semua pilihan di tetingkap yang muncul. Klik pada "Simpan".

Langkah 5:

Imej
Imej

Tutup tab penyemak imbas semasa yang memegang borang anda, dan anda harus kembali ke tab Google Drive utama anda, di mana anda harus mempunyai borang dan hamparan yang baru anda buat. Buka hamparan, dan pergi ke "Fail - Kongsi …". Di tetingkap baru, klik "Advanced"

Langkah 6:

Imej
Imej

Kemudian klik pada "Tukar …" di sebelah label "Peribadi - Hanya anda yang dapat mengakses"

Langkah 7:

Imej
Imej

dan ubah ke "Hidup - Sesiapa sahaja yang mempunyai pautan", dan juga ke "Boleh mengedit"

Langkah 8:

Imej
Imej

Klik "Simpan" dan "Selesai" untuk kembali ke hamparan anda. Semasa berada di sana, klik "File - Publish ke web …", dan kemudian klik "Publish", dan "OK" untuk tetingkap dialog. Tutup tetingkap "Terbitkan ke web".

Semasa masih dalam hamparan, klik pada "Form - Go to live form". Klik kanan dengan tetikus anda (saya menggunakan penyemak imbas Google Chrome) dan pilih "Lihat sumber halaman".

Langkah 9:

Imej
Imej

Di halaman baru yang membuka carian untuk "tindakan tindakan" dan kemudian cari pautan yang kelihatan serupa dengan https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Pilih pautan itu, dan salin dan tampal ke beberapa dokumen teks. Anda akan menggunakannya untuk membentuk pautan akhir yang perlu dimasukkan dalam ThingHTTP untuk ThingSpeak.

Langkah 10:

Imej
Imej

Kembali ke paparan sumber borang anda, dan sekarang cari "entri". Cari dan pilih keseluruhan teks, seperti "entry. XXXXX". Salin dan tampal di dokumen teks yang sama seperti di atas. Anda kini boleh menutup paparan sumber borang Google anda.

Langkah 11:

Imej
Imej

Dalam dokumen teks baru (di mana anda sekarang mempunyai pautan dan entri yang kami tampalkan sebelumnya), buat pautan terakhir, yang kelihatan seperti

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOKASI + NAMA & hantar = Kirim

Dalam kes saya, "LOKASI + NAMA" akan digantikan dengan nama sebenar setiap lokasi tertentu yang perlu saya pantau. E-mel pemberitahuan e-mel yang akan saya terima apabila sambungan terputus akan mengandungi teks ini, sehingga saya tahu dengan tepat lokasi yang mempunyai masalah. Teks ini sebenarnya akan dikirimkan sebagai isi teks pendek untuk bidang "status" dalam borang Google. The "& submit = Submit" akan menghantar borang secara senyap, tanpa memerlukan tindakan selanjutnya, apabila diminta oleh ThingHTTP dan React.

Akhirnya, kita perlu menambahkan skrip yang akan secara automatik mengirim pemberitahuan e-mel setiap kali entri baru ditambahkan dalam spreadsheet. Buka spreadsheet, dan kemudian klik pada "Tools - Script editor". Di tetingkap baru yang terbuka tambahkan kod berikut (dengan perubahan yang diperlukan untuk mencerminkan keperluan anda):

fungsi baruEntryNotification (e)

{

cuba

{

cap masa var = e.values [0];

var location = e.values [1];

var message = location + 'location is DOWN / n' + cap waktu;

MailApp.sendEmail ("ALAMAT E-mel ANDA", "Perhatian, lokasi BAWAH!", Mesej);

}

tangkapan (e)

{

MailApp.sendEmail ("ALAMAT E-mel ANDA", "Ralat - Perhatian, lokasi TURUN!", E.message);

}

}

Ganti teks "ALAMAT E-mel ANDA" dengan alamat e-mel tempat pemberitahuan harus dikirim, dan pesan pemberitahuan yang sebenarnya, jika anda inginkan.

Langkah 12:

Imej
Imej

Skrip ini perlu dipicu ketika entri baru ditambahkan dalam spreadsheet. Semasa berada di tetingkap yang sama (dengan kod skrip di atas), klik pada ikon "jam randik" di bar alat - "Pencetus projek semasa". Anda akan diminta untuk menamakan projek anda (saya menamakan saya "locationDown"), dan tab penyemak imbas lain akan dibuka, melaporkan bahawa tidak ada hasil (tidak ada pencetus) yang dijumpai. Klik "buat pencetus baru".

Langkah 13:

Imej
Imej

Di tetingkap baru, pilih "Dari spreadsheet" untuk "Pilih sumber acara"; "Pada borang hantar" untuk "Pilih jenis acara"; "Beritahu saya segera" untuk "Tetapan pemberitahuan kegagalan". Klik pada "Simpan". Anda akan diminta untuk masuk ke akaun Google anda, dan "Izinkan" agar pencetus ini mengakses akaun anda apabila diperlukan.

Langkah 14:

Imej
Imej

Anda sekarang harus mempunyai pencetus dalam senarai pemicu, yang akan dihubungkan dengan skrip yang kita buat sebelumnya. Oleh itu, setelah memasukkan data baru ke dalam spreadsheet (menggunakan pautan borang automatik dan kaedah senyap yang dijelaskan di atas), pencetus akan segera memanggil skrip, yang akan mengirimkan pemberitahuan ke alamat e-mel yang disediakan, yang mengandungi pesan pilihan anda.

Kami sudah selesai di sisi Google Drive, dan sekarang kami beralih ke ThingSpeak.

Langkah 15:

Imej
Imej

Dalam ThingSpeak Log masuk ke akaun anda (https://thingspeak.com/login), pergi ke "Aplikasi - ThingHTTP", dan kemudian klik "New ThingHTTP". Beri namanya (saya telah memilih nama sebenar setiap lokasi; "MyLocationName" untuk tujuan tutorial ini), dan di medan "URL", tampal pautan dari fail teks anda, yang kelihatan seperti

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOKASI + NAMA & hantar = Kirim

Tinggalkan semua bidang lain sebagaimana adanya, dan klik pada "Save ThingHTTP".

Langkah 16:

Imej
Imej

Kemudian pergi ke "Aplikasi - React", dan klik pada "React Baru". Beri nama (sekali lagi, saya telah memilih nama lokasi diikuti dengan kata "bereaksi", tetapi anda boleh memilih nama yang anda mahukan); "Tiada Pemeriksaan Data" untuk "Jenis Keadaan"; "Setiap 10 minit" untuk "Frekuensi Uji"; nama saluran yang ingin anda pantau untuk kemas kini, untuk "Jika Saluran"; masa saluran belum dikemas kini (saya telah memilih 15 minit), untuk "belum dikemas kini untuk"; "ThingHTTP" untuk "Tindakan"; "MyLocationName" untuk "kemudian lakukan ThingHTTP"; "Jalankan tindakan hanya pada kali pertama syarat dipenuhi", kerana saya hanya ingin mendapatkan pemberitahuan sekali. Ini akan diset semula apabila saluran dikemas kini lagi dengan data masuk baru. Klik pada "Save React" dan anda sudah selesai.

Mulai sekarang apabila saluran anda belum dikemas kini selama 15 minit (atau waktu lain, bergantung pada apa yang anda pilih), React akan memperoleh pengecualian yang akan mencetuskan ThingHTTP, yang seterusnya akan membuat entri baru dalam senyap anda hamparan. Pencetus dan skrip di Google Spreadsheet akan mengambilnya dari sana, seperti yang telah dijelaskan di atas.

Disyorkan: