Dünyayı ve ülkemizi etkileyen yeni tip Koronavirüs sürecinde veriler her gün güncelleniyor. Bu yazıda NodeMCU ile internet üzerinden veri çekip OLED ekranda göstermeyi ele alacağız. Önce NodeMCU hakkında kısa bir temel bilgiyle başlayalım.
NodeMCU ve ESP8266 Nedir?
Öncelikle NodeMCU ve ESP8266’nın ne olduğunu netleştirelim; çünkü birçok platformda bu iki kavram karıştırılıyor. NodeMCU, Arduino benzeri bir geliştirme kartıdır ve üzerinde ESP8266 bulunur. ESP8266 ise tek başına bir mikrodenetleyicidir. Kısaca biri kart, diğeri kartın üzerinde yer alan işlem birimidir.

Önceki NodeMCU Yazıları
OLED Ekran Nedir?
OLED ekranlar tıpkı LED ekranlar gibi yarı katı iletkenlerdir. OLED ekranlar elektrik uygulandığında ışığı emen organik malzemelerden yapılmıştır. OLED’ler 2 ya da 3 ana organik katman sahip olabilir ve üçüncü katman bulunduğunda bu katman katottan ışık yayan tabakaya yani bir anot tabakaya elektron taşınmasına aracılık eder. Ayrıca bu teknolojinin gelişmesinde, Nanoteknolojinin payı oldukça büyüktür. Arzu ederseniz buradan OLED hakkındaki yazımıza erişebilirsiniz.

ThingSpeak Kurulumu
Site verilerini çekebilmek için, bu servisi kullanıyoruz. Kişisel kullanım için üyelik tamamen ücretsiz, ayrıca verdiğimiz koddaki API kodlarını doğrudan kullanabilirsiniz. Eğer bizim verdiğimiz API kodları çalışmıyorsa, bu yazıdan epey uzun bir zaman geçmiş olabilir.

Buradan ThingSpeak üyeliği oluşturduktan sonra üst menüdeki “Apps” bölümünden ThingHTTP alanına girip New ThingHTTP butonuna basıyoruz. Gerekli formları veri çekeceğimiz siteye göre dolduracağız.

1. Name: İstediğiniz her hangi bir isim yazabilirsiniz.
2. URL: Veri çekeceğimiz web sitenin tam adresini yazıyoruz, biz worldometer kullandık o yüzden https://www.worldometers.info/coronavirus/country/turkey/ olarak girdik.
3. Parse String: Bir sonraki başlıkta, bu kısmı anlatacağız.

worldometer veya T.C Sağlık Bakanlığından Veri Almak
İstediğiniz web sayfasından aynı mantıkla veri çekebilirsiniz; biz worldometer servisini kullandık. Parse String bölümüne hedef sitedeki ilgili verinin XPath yolunu yazıyoruz. XPath yolunu almak için “Inspect” (inceleme) özelliği olan herhangi bir tarayıcıyı kullanabilirsiniz; biz bu işlem için Google Chrome kullandık.

Veri çekeceğimiz adrese buradan ulaşabilirsiniz. Biz Türkiye’nin koronavirüs verilerini çekeceğimiz için doğrudan bu adrese girebilirsiniz. Farklı ülkeler için ana sayfadan ayrıca seçim yapabilirsiniz.

Türkiye verileri için verdiğimiz bağlantıya girdikten sonra sizi böyle bir ekran karşılayacaktır. Buradaki;
- 1. Coronavirus Cases
- 2. Deaths
- 3. Recovered
verilerinin tek tek XPath yoluna ihtiyacımız var. Bu verilerin XPath yollarını almak için;

Veriyi seçin -> Sağ tıklayın -> İncele butonuna basın

Sağ tarafta açılan pencerede, seçtiğiniz veriyi görmeniz gerekiyor, doğru bir şekilde gerekli elemente sağ tıklayıp “Copy XPath” butonuna tıklamanız gerekiyor. Bu yolu kopyaladıktan sonra ThingHTTP’de oluşturduğumuz uygulamalardan aldığımız veriye uygun uygulamadaki Parse String kısmına yapıştırıp, API kodunu kopyalayıp kaydedip çıkıyoruz. Bu işlemi 3 veri için de tekrarlayacağız. Eğer verileri doğrudan Sağlık Bakanlığından almak isterseniz, aynı işlemlerle XPath yollarını almanız gerekiyor fakat ThingHTTP uygulaması oluştururken URL kısmına https://covid19.saglik.gov.tr/ yazmalısınız.
Gerekli Sürücüler
API bilgileri oluşturduktan sonra ve genel olarak prensibi anladığımıza göre, devre şemalarına ve kod bölümüne geçebiliriz fakat bundan önce eğer NodeMCU kartınızı ilk defa kullanacaksınız, gerekli sürücüleri kurmanız gerekiyor. Büyük ihtimalle CH340G ya da CP210X entegreli bir karta sahipsiniz. Bu projeyi yapacağınız cihazda daha önce Arduino kullandıysanız bu sürücüler zaten yüklüdür, eğer yüklü değilse aşağıdaki bağlantılardan indirebilirsiniz.
Devre Şeması
| OLED | NodeMCU |
|---|---|
| GND | GND |
| VCC | VCC |
| SCL | D1 |
| SDA | D2 |

NodeMCU Program Yüklemek
Birçok geliştirme kartında olduğu gibi, NodeMCU programlarken de Arduino IDE kullanabilirsiniz. Buna ek olarak NodeMCU için hazırlanmış flashlama araçlarını da tercih edebilirsiniz. Önceki NodeMCU yazılarımızda farklı bir flashlama aracı kullanmıştık; bu içerikte ise macOS için geliştirilen NodeMCU Py-Flasher-4.0 aracına da değineceğiz. Önce Arduino IDE ile yükleme adımlarını tamamlayalım.

İki yöntemi de gerçekleştirebilmek için, kartınızın kullandığı USB iletişim entegresinin sürücüsünü kurmanız gerekiyor. Bizim kullandığımız NodeMCU kartının iletişim entegresi CH340G, fakat bazı kartlarda CP210X gibi entegrelerin kullanıldığını gördük. İşlemlere başlamadan önce, mutlaka gerekli sürücüleri kurmalısınız, kartınızın hangi entegreye sahip olduğunu anlamak için aşağıdaki görselden referans alabilirsiniz. Bir üst başlıktan gerekli sürücüleri indirebilirsiniz.
Arduino IDE ile Programlamak
Programlamaya başlamak için öncelikle NodeMCU kart dosyalarını ve kullanılan kütüphaneleri kurmak gerekiyor. OLED kütüphanesi için alternatif kütüphaneler kullanabilirsiniz, fakat biz programı buraya eklediğimiz kütüphane doğrultusunda oluşturduk.
Arduino IDE’ye NodeMCU Desteği Eklemek
• Arduino IDE‘yi çalıştırın. Türkçe arabirim ille kullandığınızı varsayarak devam ediyorum;
• Ana menüde sırasıyla tıklayın; Dosya > Tercihler
• Gelen pencerenin Ayarlar isimli sekmesinde Ek Devre Kartları Yöneticisi URL’leri, ayrıca kutucuğu ve en sağında simgesi var. Simgeye tıklayın

• Bir pencere daha açılacak. Bu penceredeki yazı alanında bir metin yoksa şu URL’yi http://arduino.esp8266.com/stable/package_esp8266com_index.json bağlantısını yapıştırın eğer başka URLler varsa yeni satırla ya da virgül koyarak yapıştırın.
• Tüm pencerelerde Tamam düğmelerine tıklayıp Arduino IDE’nin ana penceresine ulaşın

• Ana menüde sırasıyla tıklayın; Araçlar > Kart:… > Kart Yöneticisi
• Açılan pencerede esp8266 ile arama yapın ve sonuçlar arasında esp8266 by ESP8266 Community olanı kurun ve inme işlemleri için bekleyin.
• İşlem tamamlandığında Kart Yöneticisi penceresini kapatın
• Arduino IDE artık NodeMCU için hazır

Doğru kartı ve portu seçtikten sonra, aşağıdaki program kodu ile Arduino ile doğrudan yükleyebilirsiniz, fakat kodun başlangıç kısmındaki WiFi ayarlarını kendi ağınıza göre ayarlamanız gerekiyor.
.BIN Dosyasını Flashlamak
NodeMCU’ya programlarınızı flashlayarak yüklüyorsanız, doğrudan paylaştığımız .BIN dosyasını yükleyebilirsiniz, fakat WiFi ayarları farklı olduğu için tam olarak çalışmayabilir bu yüzden bu yazı için bu kısım sadece rehber olması amacıyla anlatıldı. PyFlasher uygulamasını buradan indirebilirsiniz.

Proje Görüntüleri




Kurulum Sonrası Hızlı Kontrol
Projeyi çalıştırmadan önce ağ bağlantısı, API çağrısı ve ekran sürücüsü tarafını ayrı ayrı test etmek sorun giderme süresini ciddi şekilde azaltır. Özellikle Wi-Fi bilgileri ve ThingSpeak API yapılandırması doğru olsa bile, I2C pin eşleşmesi hatalıysa OLED tarafında görüntü alınamayabilir.
Bu nedenle önce seri port ekranında bağlantı günlüklerini doğrulayıp ardından OLED çıktısını kontrol etmek daha güvenli bir yaklaşımdır. Aşamaları sırayla test etmek, hatanın ağda mı yoksa donanım tarafında mı olduğunu hızlıca ayırmanızı sağlar.
- Wi-Fi SSID ve şifre bilgilerinin doğru girildiğini kod içinde tekrar kontrol edin.
- ThingSpeak API anahtarlarının doğru endpoint ile eşleştiğini doğrulayın.
- OLED için `SCL -> D1`, `SDA -> D2` bağlantısını tekrar gözden geçirin.
- İlk çalıştırmada seri monitör/log çıktısından HTTP yanıt kodunu mutlaka izleyin.
Program Kodu
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.

