NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün
Solda NodeMCU ESP8266 ve Sağda ESP8266 Kullanılmış Farklı Bir Kart

Ö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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün
Tüm ülkelerin koronavirüs tablosu

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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;

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugü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.

CH340G Windows Linux, MacOS

CP210X Windows, Linux, MacOS

Devre Şeması

OLEDNodeMCU
GNDGND
VCCVCC
SCLD1
SDAD2
NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

İ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.

OLED Kütüphanesi

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

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugü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

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugü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

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

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.

NodeMCU ESP8266 ve OLED ile Koronavirüs Tablosunu Takip Etmek nodemcu esp8266,oled arduino,koronavirüs tablosu,koronavirüs tablosu bugün

Proje Görüntüleri

heaEs
uTMZl
vzL1E
bm2Pq

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.