Herkese merhaba, bu yazıda NodeMCU ile YouTube abone sayacı yapacağız. İnternetten abone, izlenme ve video sayısı gibi verileri çekip sonra bu verileri LCD ekrana yazdıracağız. Bu proje sayesinde YouTube kanalınız hakkında tüm bilgilerinizi anlık olarak görebileceksiniz.
[embedyt] https://www.youtube.com/watch?v=Ed6t6Ue894U[/embedyt]
Malzemeler:
NodeMCU Nedir?
NodeMCU, IOT yani “nesnelerin interneti” olarak bilinen cihazlar yapmayı sağlayan açık kaynak kodlu, ucuz maliyetli bir karttır. Üzerinde bulunan Wi-Fi sayesinde projelerimizi uzaktan kontrol edebilmemize ve internet üzerinden veri alıp verebilmemize olanak sağlar.
LCD Ekran Nedir?
LCD ekranlar, genellikle robot projelerinde ya da otomasyon projelerinde kullanılır. Arduino, Raspberry Pi gibi birçok kart ile kontrol edilebilirler. Bu projede 16×2 yani 2 satır, 16 sütun olan modelini kullanacağız. LCD Ekranların bağlantılarını yapmak için çok fazla pin ve kabloya ihtiyaç olacaktır. Bu sebeple I2C Modülünü kullanacağız. Bu modül sayesinde LCD ekranı sadece 4 pin ile çalıştırabileceğiz.
Youtube Abone Sayacı Bağlantı Şeması
- GND: NodeMCU GND pini
- VCC: NodeMCU VIN pini
- SDA: NodeMCU D2 pini
- SCL: NodeMCU D1 pini
NodeMCU Kartı Kurulumu
Arduino IDE programında kart seçenekleri arasında NodeMCU kartı yer almıyor. Bu sebeple bizim eklememiz gerekiyor. Arduino IDE programını açtıktan sonra Dosya/Tercihler kısmına gelip “Ek Devre Kartları Yöneticisi URL’leri” kısmına aşağıda verdiğim linki kopyalamanız gerekiyor. Eğer bu bölümde başka bir link varsa virgül kullanarak yanına bu projemizde gerekli olan linki ekleyebilirsiniz.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Sonrasında “Tamam” seçeneğine basın ve bu pencereden çıkın. Bunu yaptıktan sonra Araçlar/Kart/Kart Yöneticisi seçeneğini seçip arama kısmına “esp8266 “ yazın ve aşağıda fotoğrafını paylaştığım eklentinin en son versiyonunu indirin.
Arduino IDE programında Araçlar/Kart bölümünden “NodeMCU 1.0 (ESP-12E Module) “ kartını seçin. Son olarak NodeMCU kartını bilgisayarınıza Micro USB kablo yardımıyla bağlayın ve IDE programından Araçlar/Port bölümünden kartın COM portunu seçin. Eğer NodeMCU kartınızı bağlamanıza rağmen IDEde port kısmına tıklanmıyor ve bilgisayarınız NodeMCU kartını görmüyorsa gerekli sürücüyü indirmelisiniz.
Gereken Arduino IDE Kütüphanelerini Eklemek
Youtube verilerini çekebilmek için gereken YoutubeApi.h ve ArduinoJson.h kütüphanelerini indirmeniz gerekmekte.
I2C Modülü ve LCD Ekranı kullanabilmek için LiquidCrystal_I2C.h kütüphanesini indirmeniz gerekmekte.
Bu kütüphaneleri indirdikten sonra Arduino IDE programına eklemeniz gerekiyor. Bunun için IDE programının Taslak/library ekle bölümünden “ZIP Kitaplığı Ekle” seçeneğine basıp indirdiğiniz kütüphaneleri seçin.
Youtube Abone Sayacı Arduino IDE Kodu
Kodun bu bölümüne kendi internetinizin adını ve şifresini girmeniz gerekmekte.
Veri çekmemizi sağlayan API key kodunu alabilmeniz için bir mail hesabına ihtiyacınız var. “Cloud google” sitesine girin ve kendi mail hesabınız ile giriş yapın. Sonrasında sağ üstte profil fotoğrafınız yanındaki “Console” bölümüne girin.
“Select a Project” bölümüne basıp açılan pencerenin sağ üst kısmından “NEW PROJECT” bölümüne tıklayın ve isim verip yeni proje oluşturun.
Üstteki arama çubuğuna “YouTube Data API v3” yazın ve çıkan eklentiyi projenize ekleyin.
Üstteki arama çubuğuna “YouTube Data API v3” yazın ve çıkan eklentiyi projenize ekleyin.
Sonra açılan sayfadan üst kısımdaki “CREATE CREDENTIALS” kısmına basıp API key oluşturun.
Oluşturduğunuz API key kodunu kopyalayın ve Arduino IDE kodunun görseldeki kısmına yapıştırın.
Verilerini çekmek istediğiniz Youtube kanalına giriş yapın. Ve üstteki linkin kanala ait olan kısmını kopyalayın.
Kopyaladığınız kodu, Arduino IDE kodunun görseldeki kısmına yapıştırın.
Son olarak NodeMCU kartınıza kodu yükleyin ve abone sayacınızı çalıştırın.
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#elif defined(ESP32)
#include <WiFi.h>
#endif
#include <WiFiClientSecure.h>
// https://github.com/witnessmenow/arduino-youtube-api
#include <YoutubeApi.h>
// https://github.com/bblanchon/ArduinoJson
#include <ArduinoJson.h>
//https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Wire.h>
const char ssid[] = "XXXX"; // internet ssid
const char password[] = "YYYY"; // internet şifresi
#define API_KEY "ZZZZ" // Google API key
#define CHANNEL_ID "UCFlDPkGt1yds_QMbbxANElg"
WiFiClientSecure client;
YoutubeApi api(API_KEY, client);
unsigned long timeBetweenRequests = 60 * 1000;
void setup() {
Wire.begin(D2, D1);
lcd.begin();
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
// Connect to the WiFi network
Serial.print("\nWiFi baglaniyor: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWiFi baglandı!");
Serial.print("IP adresin: ");
IPAddress ip = WiFi.localIP();
Serial.println(ip);
#ifdef ESP8266
client.setInsecure();
#endif
}
void loop() {
if(api.getChannelStatistics(CHANNEL_ID)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ABONE SAYISI");
lcd.setCursor(0, 1);
lcd.print(api.channelStats.subscriberCount);
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("IZLENME SAYISI");
lcd.setCursor(0, 1);
lcd.print(api.channelStats.viewCount);
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("VIDEO SAYISI");
lcd.setCursor(0, 1);
lcd.print(api.channelStats.videoCount);
delay(2000);
}
//delay(timeBetweenRequests);
}
Nodemcu ile YouTube Abone Sayacı projemizi gerçekleştirdik. Diğer Nodemcu projeleri için Robolink Akademi‘yi ziyaret edebilirsiniz. 🙂
Süper valla.. tebrikler 👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻