98
99
Gambar 65 Tampilan Awal IFTTT.
2. Cari webhooks pada kolom textbox search, kemudian pilih tabulasi service. Panel webhooks akan muncul dengan ciri-ciri gambar seperti fidget spinner dan berwarna biru seperti pada Gambar 66.
Gambar 66 Tampilan Hasil Pencarian Webhooks.
3. Koneksikan IFTTT dengan webhooks dengan menekan tombol connect. Setelah ditekan, maka nanti dibagian atas akan muncul informasi bahwa koneksi antara keduanya telah berhasil.
100
Gambar 67 Tampilan Koneksi Webhooks.
4. Langkah selanjutnya adalah kita membuat applets seperti pada materi pelatihan sebelumnya. Kita membuat penyebab trigger dengan memilih webhooks (lihat Gambar 70) sebagai sarana komunikasi antara wemos dan modul sms serta modul email.
Gambar 68 Tampilan Create Applets.
101
Gambar 69 Tampilan Pembuatan Aksi.
Gambar 70 Tampilan Pencarian Pelayanan Webhooks.
5. Setelah masuk ke halaman pemilihan pemicu webhooks, kita pilih panel yang pertama (lihat Gambar 71), yakni akan menerima permintaan web request yang dikirimkan oleh wemos. Adapun metode pengiriman data kita menggunakan POST untuk melakukan REQUEST HTTP.
102
Gambar 71 Tampilan Pemilihan Trigger untuk Webhooks.
6. Kemudian kita akan diarahkan menuju pengisian awal parameter untuk pemberian nama event yang akan dilakukan jika terjadi permintaan dari wemos. kita isikan parameternya sesuai dengan Gambar 72. Setelah diisikan, kita klik tombol create trigger.
Gambar 72 Tampilan Pengisian Parameter Penamaan Event.
7. Setelah itu, kita akan kembali ke tampilan pembuatan aksi-reaksi yang dimana tombol tambah sebelumnya dibagian this akan menjadi gambar dari webhooks (dapat dilihat pada Gambar 73).
Langkah selajutnya, kita menekan tanda tambah untuk reaksinya, kemudian mencari service sms.
Pencarian tersebut menghasilkan dua buah panel (lihat pada Gambar 74). Panel pertama android sms yang akan menjadikan smartphone kita yang sudah terpasang aplikasi IFTTT untuk mengirimkan pesan sesuai yang kita perintahkan. Sedangkan untuk panel kedua clickSend SMS, merupakan
103
sebuah layanan penyedia jasa SMS, MMS, email, dll kemanapun, kapanpun, dan untuk siapapun.
Untuk pelatihan ini, kita akan menggunakan android SMS dan pastikan smartphone yang kita gunakan memiliki pulsa agar dapat mengirimkan sms yang datang dari perintah IFTTT ke tujuan yang kita tentukan.
Gambar 73 Tampilan Pembuatan Reaksi.
Gambar 74 Tampilan Pemilihan Service SMS.
8. Pada bagian ini, kita akan memilih aksi yang akan dilakukan ketika datang perintah dari wemos. kita pilih panel yang pertama bertuliskan send an SMS (Gambar 75). Kemudian, pada halaman selanjutnya kita akan diminta untuk mengisi parameter tentang nomor tujuan pengiriman dan pesan yang akan disampaikan. Kita dapat memasukkan beberapa parameter tambahan, seperti nama event, waktu terjadinya event, dan beberapa variabel dengan menekan tombol add ingredient (Gambar 76).
104
Gambar 75 Tampilan Pemilihan Aksi Trigger SMS.
Gambar 76 Tampilan Pengisian Parameter Pengiriman SMS.
9. Setelah menekan tombol create action, kita akan diminta untuk meninjau ulang dan memberikan nama applets-nya. Jika sudah dirasa pantas, maka kita tekan tombol finish. Setelah menekan tombol tersebut, maka applets yang kita buat telah terkoneksi untuk melakukan pengiriman perintah SMS (Gambar 78).
105
Gambar 77 Tampilan Peninjauan Kembali Hasil Pembuatan Event Push Button.
Gambar 78 Tampilan Webhooks yang Sudah Terpasang Event Push Button.
10. Untuk langkah selanjutnya, kita akan membuat applets yang menghubungkan webhooks dengan email. Silakan kembali lakukan seperti pada langkah nomor 4 dan 5. Kemudian kita cari di kotak pencarian dengan kata kunci email. Kita pilih panel pertama yang bertuliskan email (Gambar 79).
Lalu, pilih aksi pada panel pertama yang akan mengirimkan email ketika diperintahkan oleh wemos (Gambar 80).
106
Gambar 79 Tampilan Pemilhan Servis Email.
Gambar 80 Tampilan Pemilhan Aksi Pengiriman Email.
11. Yang perlu diingat pada pemilihan pelayanan email ini adalah email yang dituju untuk dikirimkan berita merupakan email pengguna dari akun yang didaftarkan pada IFTTT. Kita tidak bisa mengirimkan email selain dari email tersebut. Pada Gambar 81, kita akan diminta untuk mengisikan beberapa parameter, seperti subject yang merupakan topik pengiriman email dan body yang merupakan isi utama dari email yang kita kirimkan.
107
Gambar 81 Tampilan Pengisian Parameter Email.
12. Setelah menekan tombol create action, kita akan diminta kembali untuk meninjau ulang yang kita buat dan memberikan nama pada applets yang kita buat (Gambar 82). Jika sudah dirasa benar, kita tekan finish dan nanti akan muncul halaman koneksi antara webhooks dan email (Gambar 83).
108
Gambar 82 Tampilan Peninjauan Ulang Pembuatan Trigger Email.
Gambar 83 Tampilan Webhooks Sudah Terkoneksi Dengan Email.
13. Jika kita menekan gambar webhooks, maka kita akan diarahkan ke halaman utama dari webhooks itu sendiri. Jika sudah terpasang dengan baik applets sms dan email, maka nanti akan muncul dua panel dengan applets yang kita buat sebelumnya (Gambar 84).
109
Gambar 84 Tampilan Halaman Awal Webhooks yang Sudah Terkoneksi SMS dan Email.
14. Langkah selanjutnya adalah kita akan melihat pengaturan untuk mendapatkan token sebagai sarana komunikasi antara wemos dan webhooks. Kita tekan settings yang berada di pojok kanan atas. Jika sudah ditekan, maka kita akan diarahkan ke halaman seperti pada Gambar 85. Pada gambar tersebut kita akan mendapati alamat URL. Silakan disalin dan ditempel di browser yang kita gunakan agar kita bisa masuk ke alamat URL tersebut.
Gambar 85 Tampilan Setting Webhooks.
110
15. Pada bagian your key is, kita salin token yang kita dapatkan. Token tersebut kita ibaratkan seperti kunci untuk masuk kedalam webhooks. Jadi perlakukan token yang kita dapat seperti password karena jika kita sebarluaskan key tersebut akan menjadi celah pihak luar untuk mengeksploitasi perangkat kita (Gambar 86).
Gambar 86 Tampilan Info Akun Webhooks.
Koding
#include <ESP8266WiFi.h>
const char* ssid = "bagus";
const char* password = "bagusgilang";
const char* host = "maker.ifttt.com";
const char* apiKey = "****";
const byte buttonPin = D2;
volatile int flag = false;
const char* PINState = "not pressed";
void setup() {
Serial.begin(115200);
Serial.println("Button pressed integration with IFTTT");
delay(100);
pinMode(buttonPin, INPUT_PULLUP);
Serial.println("Connecting To");
Serial.println(ssid);
WiFi.begin(ssid, password);
111
while (WiFi.status() != WL_CONNECTED) { delay(250);
Serial.print(".");
}
Serial.println("");
Serial.print("IP Address : ");
Serial.println(WiFi.localIP());
}
void loop() {
// put your main code here, to run repeatedly:
byte inputButton = digitalRead(buttonPin);
if (!inputButton) {
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) { Serial.println("connection failed");
return;
}
String urlSMS = "/trigger/buttonPressedSMS/with/key/";
String urlEmail = "/trigger/buttonPressedEmail/with/key/";
urlSMS += apiKey;
urlEmail += apiKey;
PINState = "Button Pressed, sending email and SMS";
flag = true;
Serial.print("Requesting URLSMS: ");
Serial.println(urlSMS);
Serial.print("Requesting URLEmail: ");
Serial.println(urlEmail);
client.print(String("POST ") + urlSMS + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: 13\r\n\r\n" +
"value1=" + PINState + "\r\n");
client.print(String("POST ") + urlEmail + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: 13\r\n\r\n" +
"value1=" + PINState + "\r\n");
Serial.println("receiving from remote server");
String line = client.readStringUntil('\r');
Serial.println(line);
112
while (client.available()) { char c = client.read();
Serial.write(c);
}
Serial.println("closing connection");
client.stop();
flag = false;
}
delay(100);
}
Penjelasan Koding
#include <ESP8266WiFi.h>
const char* ssid = "bagus";
const char* password = "bagusgilang";
const char* host = "maker.ifttt.com";
const char* apiKey = "****";
const byte buttonPin = D2;
volatile int flag = false;
const char* PINState = "not pressed";
Di bagian header, kita menggunakan library ESP8266WiFi untuk komunikasi dengan jaringan yang ada. Kita memasukkan detail ssid dan password wifi yang kita tuju. Kemudian, kita memasukkan alamat website untuk melakukan HTTP request. Untuk apikey, kita tuliskan sesuai dengan token yang kita dapat sebelumnya. Karena kita menggunakan pemicu push button, kita berikan nama pin D2 sesuai dengan yang tertera di atas. Kemudian kita membuat variabel PINState untuk menyimpan status keadaan dari pin push button tersebut.
Serial.begin(115200);
Serial.println("Button pressed integration with IFTTT");
delay(100);
pinMode(buttonPin, INPUT_PULLUP);
Serial.println("Connecting To");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(250);
Serial.print(".");
}
113
Serial.println("");
Serial.print("IP Address : ");
Serial.println(WiFi.localIP());
Pada koding di atas, kita mengoneksikan wemos dengan jaringan WiFi yang telah kita tentukan dan mencetak alamat IP yang didapatkan ketika sudah terhubung dengan jaringan WiFi tersebut.
byte inputButton = digitalRead(buttonPin);
if (!inputButton) {
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) { Serial.println("connection failed");
return;
}
Pada bagian ini, kita memerintahkan wemos untuk membaca masukan pada pin push button. Jika ditekan, maka akan memerintahkan wemos untuk mengoneksikan dengan host yang sudah kita tentukan sebelumnya pada port 80.
String urlSMS = "/trigger/<event-name>/with/key/";
String urlEmail = "/trigger/<event-name>/with/key/";
urlSMS += apiKey;
urlEmail += apiKey;
PINState = "Button Pressed, sending email and SMS";
flag = true;
Serial.print("Requesting URLSMS: ");
Serial.println(urlSMS);
Serial.print("Requesting URLEmail: ");
Serial.println(urlEmail);
Setelah terhubung dengan alamat host tersebut. Kita mempersiapkan alamat URL untuk mengakses pemicu SMS dan email. Pada bagian urlSMS, kita mengisikan event name-nya sesuai dengan event yang kita buat pada IFTTT sebelumnya, yaitu buttonPressedSMS dan untuk email buttonPressedEmail. Kedua variabel URL tersebut kemudian kita tambahkan string apikey yang berisikan token yang kita masukkan sebelumnya.
client.print(String("POST ") + urlSMS + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: 13\r\n\r\n" +
"value1=" + PINState + "\r\n");
client.print(String("POST ") + urlEmail + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: 13\r\n\r\n" +
"value1=" + PINState + "\r\n");
114
Serial.println("receiving from remote server");
String line = client.readStringUntil('\r');
Serial.println(line);
while (client.available()) { char c = client.read();
Serial.write(c);
}
Serial.println("closing connection");
client.stop();
flag = false;
Syntax di atas berfungsi untuk melakukan HTTP REQUEST menggunakan metode POST, kita mengisikan beberapa parameter pendukung seperti URL yang kita buat sebelumnya dan variabel yang akan kita kirim kita masukkan dalam body dari HTTP REQUEST tersebut. Kemudain, setelah melakukan POST REQUEST, kita menunggu jawaban dari server dan mencetak jawaban tersebut. Setelah jawaban tercetak, maka kita akan memutus komunikasi dengan host-nya.
Hasil Penerapan Koding
Hasil dari penerapan koding di atas dapat kita lihat pada serial monitor (Gambar 87). Ketika kita menekan tombolnya, maka wemos akan mengirimkan permintaan kepada host bersangkutan untuk mengirimkan sms dan email sesuai dengan tujuannya. Jika berhasil, maka kita akan menerima balasan HTTP/1.1 200 OK dan beberapa info yang menyatakan bahwa kita telah berhasil memicu event bersangkutan. Hasil dari SMS dan email dapat dilihat pada Gambar 88 dan Gambar 89.
Gambar 87 Tampilan Serial Monitor Hasil Komunikasi Antara Wemos dan Webhooks.
115
Gambar 88 SMS yang Dikirim oleh Webhooks Ketika Tombol Ditekan.
Gambar 89 Email yang Dikirim Webhooks Ketika Tombol Ditekan.