Beberapa saat yang lalu saya membuat sebuah Subscriber Counter untuk hiasan kamar. Namun Display tersebut masih manual dengan menggunakan tombol untuk menambah dan mengurangi jumlah Subscriber. Kemudian saya berpikir kalau misalkan module ini bisa menambahkan data susbscriber secara otomatis, sangat keren dan membuat saya termotivasi ketika masuk dengan kamar, jumlah subscriber kita bertambah. Kemudian saya mencari informasi apakah Google menyediahkan API (Application Programming Interface) untuk mengambil data Subsciber kita? ternyata bisa. Kemudia saya mencari library dari ESP8266 yang bisa menghubungkan kita ke data API youtube.
Oke pada artikel ini saya cuma kan membahas bagaimana cara kita menghubungkan Arduino / ESP8266 dengan API Youtube untuk mendapatkan data Subsciber dengan Channel kita.
Library File
Buat Google Application
Pertama-tama kalian wajib memiliki sebuah akun google, pastinya kalian punya karena untuk mendaftar youtube tentu saja perlu membuat akun google, jadi saya tidak akan membahas bagaimana caranya. Akun yang kalian gunakan tentu saja sama dengan akun Youtube kalian. Kemudian masuk ke Google Application. Setelah kalian masuk akan tampil berikut dan ikuti semua gambar berikut.
Setelah kalian mendapat API Key, kita lanjut ke pemrograman ESP8266nya.
Pemrograman ESP8266
Disini saya sudah asumsikan bahwa kalian sudah menginstall library ESP8266. Jika belum ikuti cara pada artikel berikut:
TUTORIAL INSTALL LIBRARY ESP8266 ARDUINO IDE (WIMOS, NODEMCU, DLL)
Jika Sudah Download file library Youtube API di atas, Install pada direktori Library Arduino. Kemudian edit program di bawah, sesuaikan SSID dan Password Wifi, masukan juga API yang kalian dapat tadi, serta link User akun Youtube kalian. Sebagai Contoh link dari Channel Fans Electronics: https://www.youtube.com/channel/UCxhSNH1fJ2Rh6ape-qxtv_A. Copy bagian: UCxhSNH1fJ2Rh6ape-qxtv_A itu adalah username dari channel kalian.
Berikut program basicnya:
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <YoutubeApi.h> #include <ArduinoJson.h> //------- Replace the following! ------ char ssid[] = "SSID WIFI"; char password[] = "PASS WIFI"; #define API_KEY "API" #define CHANNEL_ID "ID CHANNEL" //------- ---------------------- ------ WiFiClientSecure client; YoutubeApi api(API_KEY, client); unsigned long timeBetweenRequests = 10000; // 10 detik, kondisikan sendiri unsigned long nextRunTime; long subs = 0; void setup() { Serial.begin(9600); // connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); // Attempt to connect to Wifi network: Serial.print("Connecting Wifi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); IPAddress ip = WiFi.localIP(); Serial.println(ip); // Required if you are using ESP8266 V2.5 or above client.setInsecure(); // If you want to enable some extra debugging api._debug = true; } void loop() { if (millis() > nextRunTime) { if(api.getChannelStatistics(CHANNEL_ID)) { Serial.println("---------Stats---------"); Serial.print("Subscriber Count: "); Serial.println(api.channelStats.subscriberCount); Serial.print("View Count: "); Serial.println(api.channelStats.viewCount); Serial.print("Comment Count: "); Serial.println(api.channelStats.commentCount); Serial.print("Video Count: "); Serial.println(api.channelStats.videoCount); Serial.println("------------------------"); } nextRunTime = millis() + timeBetweenRequests; } }
Setelah terupload kalian buka Serial Monitoring dan hasil yang dikeluarkan seperti berikut.
Disini saya mensetting jeda pembacaan setiap 10 detik, kalian atur sendiri nilainya sendiri dalam satuan mili detik (ms).
Oke semuanya gimana menurut kalian tutorial kali ini, semoga bermanfaat, kalian bisa memanfaatkan data-data tersebut untuk ditampilkan ke LCD atau lainnya.Kalian bisa mengirimnya dengan komunikasi Serial ke Arduino lainnya. Sebagai contoh kalian bisa baca artikel lainnya seputar Subsciber Counter yang akan saya buat. Ok tunggu saja, salam Elektronik.