Daftar Isi:

Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat: 16 Langkah
Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat: 16 Langkah

Video: Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat: 16 Langkah

Video: Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat: 16 Langkah
Video: Cara membuat Channel IoT di Platform Thingspeak 2024, November
Anonim
Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat
Terima Email Pemberitahuan Saat Saluran di ThingSpeak Tidak Diperbarui untuk Beberapa Saat

Latar belakang cerita

Saya memiliki enam rumah kaca otomatis yang tersebar di Dublin, Irlandia. Dengan menggunakan aplikasi ponsel yang dibuat khusus, saya dapat memantau dan berinteraksi dari jarak jauh dengan fitur otomatis di setiap rumah kaca. Saya dapat membuka / menutup jendela secara manual saat suhu terlalu tinggi / rendah; Saya dapat memulai / menghentikan irigasi ketika kelembaban tanah terlalu rendah / tinggi; dan saya dapat menyalakan/mematikan kipas ventilasi ketika kelembaban udara terlalu tinggi/rendah. Atau saya cukup mengganti sistem ke mode Otomatis, dan sayuran akan dirawat oleh otak Arduino. Rincian lebih lanjut tentang proyek ini dapat ditemukan di sini -

Koneksi jarak jauh ke papan Arduino di enam rumah kaca dimungkinkan dengan bantuan dongle USB GPRS, satu di setiap lokasi (saya membeli milik saya dari sinihttps://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-With-Antenna-3G-USB-Modem-21-6-Mbps-HSPA-Mobile/32979630201.html?spm=a2g0s.9042311.0.44cb4c4dzVUThU). Seperti halnya dengan koneksi data seluler (setidaknya di Dublin), koneksi turun secara acak, terkadang selama beberapa menit, terkadang mungkin selama beberapa jam. Jika koneksi terputus, Arduino diprogram untuk mereset dongle USB setiap 10 menit, untuk mencoba memulai koneksi baru. Namun terkadang, karena (belum) alasan yang tidak diketahui, bahkan jika koneksi data GPRS dihidupkan kembali, Arduino (dan pelindung Ethernet yang terpasang) gagal memperhatikan kejadian tersebut. Inilah saatnya saya harus pergi ke lokasi tertentu dan mengatur ulang seluruh sistem secara manual.

Ketika koneksi data terputus di beberapa lokasi, saya ingin diberi tahu melalui email sesegera mungkin, sehingga saya dapat mengawasi lokasi spesifik tersebut. Karena komunikasi antara aplikasi telepon dan Arduino berlangsung melalui layanan online yang disediakan oleh https://thingspeak.com, hingga saat ini (dan hingga 31 Maret 2019), ini dimungkinkan dengan menggunakan layanan lain yang disediakan oleh https:// ifttt.com/discover, dan mengatur ThingHTTP dan React pada setiap saluran, memantau fakta apakah saluran tersebut belum diperbarui untuk beberapa waktu. Namun, menurut email yang saya terima dari Google, mulai 31 Maret 2019, karena ketidakpatuhan terhadap persyaratan privasi data terbaru mereka (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ekosistem), akses ke beberapa data di akun Google saya tidak akan tersedia lagi untuk IFTTT, dan seperti dalam kasus saya, email adalah satu-satunya sumber daya yang dapat diakses IFTTT, pemahaman saya adalah bahwa pemberitahuan layanan yang dijelaskan di atas akan berhenti bekerja.

Oleh karena itu, inilah kami, menerapkan solusi alternatif agar notifikasi email tetap masuk saat koneksi data di lokasi saya terputus. Ini masih menggunakan fitur ThingHTTP dan React di saluran saya, hanya tautan ke IFTTT yang diarahkan kembali ke Google Drive. Jadi selain perangkat keras (Arduino dalam kasus saya) Anda mungkin berkomunikasi dengan akun ThingSpeak Anda, Anda perlu membuat akun Google, jika Anda belum memilikinya… dan mari kita mulai!

Langkah 1:

Gambar
Gambar

Di Google Drive

Pertama, di Google Drive (https://drive.google.com) kita perlu membuat spreadsheet dan formulir sederhana. Buka Google Drive Anda, dan klik New – Google Sheets – Blank spreadsheet.

Langkah 2:

Gambar
Gambar

Saya mengganti nama saya "Lokasi di bawah spreadsheet". Lalu pergi ke Alat – Buat formulir.

Langkah 3:

Gambar
Gambar

Saya mengganti nama formulir menjadi "Lokasi di bawah formulir", dan mengubah "Pertanyaan tanpa judul" menjadi "Status", dan jenisnya dari "Pilihan ganda" menjadi "Jawaban singkat".

Langkah 4:

Gambar
Gambar

Saya kemudian menghapus opsi untuk mengumpulkan alamat email – klik "Ubah pengaturan", dan hapus centang semua opsi di jendela yang muncul. Klik "Simpan".

Langkah 5:

Gambar
Gambar

Tutup tab browser saat ini yang menyimpan formulir Anda, dan Anda akan kembali ke tab Google Drive utama Anda, di mana Anda seharusnya memiliki formulir dan spreadsheet yang baru saja Anda buat. Buka spreadsheet, dan buka "File – Bagikan…". Di jendela baru klik "Lanjutan"

Langkah 6:

Gambar
Gambar

Kemudian klik "Ubah…" di sebelah label "Pribadi – Hanya Anda yang dapat mengakses"

Langkah 7:

Gambar
Gambar

dan ubah ke "Aktif – Siapa saja yang memiliki tautan", dan juga menjadi "Dapat mengedit"

Langkah 8:

Gambar
Gambar

Klik "Simpan" dan "Selesai" untuk kembali ke spreadsheet Anda. Saat berada di sana, klik "File – Publish to the web…", lalu klik "Publish", dan "OK" untuk jendela dialog. Tutup jendela "Publikasikan ke web".

Saat masih di spreadsheet, klik "Formulir – Buka formulir langsung". Klik kanan dengan mouse Anda (saya menggunakan browser Google Chrome) dan pilih "Lihat sumber halaman".

Langkah 9:

Gambar
Gambar

Di halaman baru yang terbuka, cari "form action" dan kemudian cari tautan yang terlihat mirip dengan https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Pilih tautan itu, dan salin dan tempel ke beberapa dokumen teks. Anda akan menggunakannya untuk membentuk tautan terakhir yang perlu dimasukkan di ThingHTTP untuk ThingSpeak.

Langkah 10:

Gambar
Gambar

Kembali ke tampilan sumber formulir Anda, dan sekarang cari "entri.". Cari dan pilih seluruh teks, seperti "entry. XXXXX". Salin dan tempel di dokumen teks yang sama seperti di atas. Anda sekarang dapat menutup tampilan sumber formulir Google Anda.

Langkah 11:

Gambar
Gambar

Di dokumen teks baru (di mana Anda sekarang memiliki tautan dan entri yang kami tempel sebelumnya), buat tautan terakhir, yang akan terlihat seperti

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

Dalam kasus saya, "LOCATION+NAME" akan diganti dengan nama sebenarnya dari setiap lokasi tertentu yang perlu saya pantau. Email pemberitahuan email yang akan saya terima saat koneksi terputus akan berisi teks ini, sehingga saya tahu persis lokasi mana yang bermasalah. Teks ini sebenarnya akan dikirimkan sebagai konten teks pendek untuk bidang "status" di formulir Google. "&submit=Submit " akan mengirimkan formulir secara diam-diam, tanpa perlu tindakan lebih lanjut, saat dipanggil oleh ThingHTTP dan React.

Terakhir, kita perlu menambahkan skrip yang secara otomatis akan mengirim pemberitahuan email setiap kali entri baru ditambahkan di spreadsheet. Buka spreadsheet, lalu klik "Alat – Editor skrip". Di jendela baru yang terbuka tambahkan kode berikut (dengan perubahan yang diperlukan untuk mencerminkan kebutuhan Anda):

fungsi newEntryNotification (e)

{

mencoba

{

var cap waktu = e.values[0];

var lokasi = e.values[1];

var pesan = lokasi + ' lokasi TURUN\n' + stempel waktu;

MailApp.sendEmail("ALAMAT EMAIL ANDA", "Perhatian, lokasi BAWAH!", pesan);

}

tangkap (e)

{

MailApp.sendEmail("ALAMAT EMAIL ANDA", "Error - Perhatian, lokasi BAWAH!", e.message);

}

}

Ganti teks "ALAMAT EMAIL ANDA" dengan alamat email tujuan pengiriman notifikasi, dan pesan notifikasi yang sebenarnya, jika diinginkan.

Langkah 12:

Gambar
Gambar

Skrip ini perlu dipicu saat entri baru ditambahkan di spreadsheet. Saat berada di jendela yang sama (dengan kode skrip di atas), klik ikon "stopwatch" di bilah alat - "Pemicu proyek saat ini". Anda akan diminta untuk memberi nama proyek Anda (saya menamai proyek saya "locationDown"), dan tab browser lain akan terbuka, melaporkan bahwa tidak ada hasil (tidak ada pemicu) yang ditemukan. Klik "buat pemicu baru".

Langkah 13:

Gambar
Gambar

Di jendela baru, pilih "Dari spreadsheet" untuk "Pilih sumber acara"; "Pada pengiriman formulir" untuk "Pilih jenis acara"; "Beri tahu saya segera" untuk "Pengaturan pemberitahuan kegagalan". Klik "Simpan". Anda akan diminta untuk masuk ke akun Google Anda, dan "Izinkan" pemicu ini untuk mengakses akun Anda bila diperlukan.

Langkah 14:

Gambar
Gambar

Anda sekarang harus memiliki pemicu di daftar pemicu, yang akan ditautkan ke skrip yang kami buat sebelumnya. Oleh karena itu, setelah memasukkan data baru ke dalam spreadsheet (menggunakan tautan formulir otomatis dan metode diam yang dijelaskan di atas), pemicu akan segera memanggil skrip, yang akan mengirimkan pemberitahuan ke alamat email yang disediakan, yang berisi pesan yang Anda pilih.

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

Langkah 15:

Gambar
Gambar

Di ThingSpeak Masuk ke akun Anda (https://thingspeak.com/login), buka "Aplikasi - ThingHTTP", lalu klik "New ThingHTTP". Beri nama (saya telah memilih nama sebenarnya dari setiap lokasi; "MyLocationName" untuk tujuan tutorial ini), dan di bidang "URL", tempel tautan dari file teks Anda, yang terlihat seperti

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

Biarkan semua bidang lain apa adanya, dan klik "Simpan ThingHTTP".

Langkah 16:

Gambar
Gambar

Lalu pergi ke "Apps - React", dan klik "New React". Beri nama (sekali lagi, saya telah memilih nama lokasi diikuti dengan kata "bereaksi", tetapi Anda dapat memilih nama apa pun yang Anda inginkan); "Tidak Ada Pemeriksaan Data" untuk "Jenis Kondisi"; "Setiap 10 menit" untuk "Frekuensi Tes"; nama saluran yang ingin Anda pantau untuk pembaruan, untuk "Jika Saluran"; waktu saluran belum diperbarui (saya telah memilih 15 menit), untuk "belum diperbarui untuk"; "ThingHTTP" untuk "Tindakan"; " MyLocationName " untuk "lalu lakukan ThingHTTP"; "Jalankan tindakan hanya saat pertama kali kondisi terpenuhi", karena saya hanya ingin mendapatkan notifikasi satu kali. Ini akan mengatur ulang sendiri ketika saluran diperbarui lagi dengan data baru yang masuk. Klik "Simpan Bereaksi" dan Anda selesai.

Mulai sekarang ketika saluran Anda belum diperbarui selama 15 menit (atau waktu lain, tergantung pada apa yang Anda pilih), React akan menangkap pengecualian itu yang akan memicu ThingHTTP, yang pada gilirannya akan diam-diam membuat entri baru di Anda lembar kerja. Pemicu dan skrip di Google Spreadsheet akan mengambilnya dari sana, seperti yang sudah dijelaskan di atas.

Direkomendasikan: