Nesnelerin İnterneti (IoT), giyilebilir teknolojiler veya akıllı durum göstergeleri gibi projelerde harici bir ekranı kablolamak, hem elektriksel gürültü riskini artırır hem de taşınabilir tasarımlarda fazladan fiziksel alan tüketir. Wemos Lolin32 OLED Geliştirme Kartı; gücünü çift çekirdekli ESP32 SoC’den alan ve PCB üzerine yerleşik 0.96 inç boyutunda monokrom (siyah-beyaz) bir SSD1306 OLED ekran barındıran hepsi bir arada (all-in-one) kompakt bir donanımdır. Bu entegre kart, özellikle lityum batarya şarj yönetim birimiyle birleştiğinde mükemmel bir taşınabilir prototipleme cihazına dönüşür. Bu rehberimizde, Wemos Lolin32 OLED kartının donanım mimarisini, pin çıkış sınırlamalarını, yerleşik OLED ekranın Arduino IDE ve MicroPython kütüphaneleriyle nasıl kontrol edileceğini en ince mühendislik ayrıntılarıyla ele alacağız.

Önerilen Kılavuzlar ve Projeler:
- OLED ekranları gerçek zamanlı saatlerle entegre etmek için: DS1307 RTC Kullanımı ve OLED Ekran Saat Projesi
- ESP8266 tabanlı Wi-Fi ekran uygulamaları için: NodeMCU ESP8266 ile Wi-Fi Üzerinden OLED Mesajlaşma
- Harici SSD1306 ekranların genel bağlantı kuralları için: Arduino I2C OLED Ekran Kullanımı
- ESP32 I2C donanım mimarisini derinlemesine incelemek için: ESP32 I2C Protokolü Detaylı Rehberi

Wemos Lolin32 OLED, standart ESP32 geliştirme kartlarında olduğu gibi, kartın programlama moduna geçmesini veya manuel resetlenmesini sağlayan BOOT ve EN (RST) butonlarına sahiptir. Tasarım varyasyonlarına göre bu butonlar kartın önünde ya da arkasında bulunabilir. Ayrıca kart üzerinde, $3.7\text{ V}$ lityum polimer (LiPo) pilleri doğrudan bağlayıp güvenle şarj edebilmenizi sağlayan yerleşik bir JST PH-2.0 batarya konnektörü ve TP4054 şarj yönetim entegresi yer alır.

Wemos Lolin32 Donanımsal Pin Haritası ve Kritik Kısıtlama
Wemos Lolin32 OLED üzerindeki Xtensa GPIO pinlerinin konumları ve donanımsal karşılıkları aşağıdaki şemada detaylandırılmıştır:

KRİTİK DONANIM DETAYI (Özel I2C Pinleri): Standart ESP32 geliştirme kartlarında I2C veri yolu varsayılan olarak GPIO 21 (SDA) ve GPIO 22 (SCL) pinlerine bağlıdır. Ancak Wemos Lolin32 OLED kartı üzerindeki yerleşik SSD1306 ekranı, elektriksel yollarla doğrudan GPIO 5 (SDA) ve GPIO 4 (SCL) pinlerine pre-wired (önceden bağlı) olarak tasarlanmıştır. Bu durum, standart SSD1306 örnek kodlarının kartta doğrudan çalışmamasına ve ekranın kilitlenmesine neden olur. Ekranı aktifleştirebilmek için yazılım seviyesinde I2C pinlerini el ile `(5, 4)` olarak override etmemiz elzemdir.
| I2C Sinyali | Lolin32 OLED Dahili Bağlantısı (GPIO) |
| SDA (Data) | GPIO 5 |
| SCL (Clock) | GPIO 4 |
Arduino IDE Ortamında Yerleşik OLED Ekranı Kontrol Etmek
Arduino IDE kullanarak yazılım geliştirmeden önce ESP32 paket yöneticisinin ve sürücülerinin kurulu olduğundan emin olun. Ayrıntılı kurulum aşamaları için ESP32 Kullanımı ve Arduino IDE Desteği kılavuzumuza göz atabilirsiniz.
Adafruit Grafik Kütüphanelerinin Kurulumu
Yerleşik SSD1306 ekranı pürüzsüz ve performanslı bir biçimde sürebilmek için Adafruit firmasının endüstri standardı iki kütüphanesini kullanacağız:
- Arduino IDE menüsünden Taslak > library ekle > Kütüphaneleri Yönet (Library Manager) ekranını açın.
- Arama motoruna “Adafruit SSD1306” yazarak kütüphaneyi sisteminize dahil edin.

- Ardından “Adafruit GFX” araması yapıp bu temel grafik motoru kütüphanesini de kurun ve Arduino IDE’yi yeniden başlatın.

Yerleşik Pinlerin Kodda Yönlendirilmesi ve Override Tekniği
Adafruit kütüphaneleri varsayılan olarak GPIO 21/22 pinlerini dinler. Ekranı GPIO 5 ve GPIO 4 pinlerine yönlendirmek için setup() fonksiyonu içerisinde donanımsal I2C hattını el ile başlatmamız gerekir:
Wire.begin(5, 4); // SDA=5, SCL=4 olarak donanımı tetikleArdından, ekran nesnesini başlatırken varsayılan pinlerin üzerine yazılması (override) için parametreleri şu şekilde sınırlandırırız:
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C, false, false)) {
// Hata yönetimi
}Burada yer alan sondaki iki adet false parametresi, kütüphanenin varsayılan (reset ve I2C) pin eşlemelerini kapatarak bizim Wire.begin(5, 4) ile başlattığımız özel I2C sinyal hattını kullanmasını zorunlu kılar.
Arduino Lolin32 OLED Test Kodu
Aşağıdaki hazır örnek kodu kartınıza yükleyerek yerleşik ekran üzerinde piksel koordinatlı bir grafik maske çizimini test edebilirsiniz:
Ekran kontrol komutları, grafik çizimleri ve yazı boyutlarını özelleştirme adımları hakkında daha kapsamlı bilgi almak için hazırladığımız Arduino I2C OLED Ekran Kullanımı Kılavuzumuzu inceleyebilirsiniz.
Kod Yükleme ve Kart Seçimleri
Wemos Lolin32 OLED kartınızı bilgisayara USB kablosu ile bağlayın. Arduino IDE menüsünden Araçlar > Port sekmesinden kartınızın COM numarasını seçin. Ardından Araçlar > Kart > ESP32 Arduino listesi altından WEMOS LOLIN32 modelini seçerek kodu yükleyin:

Kod başarıyla yüklendiğinde, OLED ekran üzerinde pürüzsüz çizilmiş maskot grafik görselini gözlemleyebilirsiniz:

Yerleşik OLED Ekranı MicroPython ile Kontrol Etmek
Kartınızı daha esnek ve komut satırı odaklı (REPL) olan MicroPython ortamında kodlamayı tercih ediyorsanız, entegre SSD1306 ekranı sürmek son derece pratiktir.
MicroPython ssd1306 Kütüphane Dosyası
Öncelikle Adafruit tarafından geliştirilen resmi MicroPython SSD1306 sürücüsünü sisteminize dahil etmelisiniz. Bu güncel kütüphane kodunu MicroPython ssd1306.py Sürücüsü adresinden ham metin olarak kopyalayıp, Thonny veya uPyCraft editörleri yardımıyla kartınızın içine ssd1306.py adıyla kaydedin:
MicroPython Kontrol Betiği (boot.py)
Kütüphane dosyasını kart belleğine yükledikten sonra, kart açıldığında otomatik çalışması için aşağıdaki kod bloğunu boot.py veya main.py dosyası olarak karta yazın:
from machine import Pin, SoftI2C
import ssd1306
from time import sleep
# Lolin32 OLED için özel donanımsal I2C pin tanımlamaları (SCL=4, SDA=5)
i2c = SoftI2C(scl=Pin(4), sda=Pin(5))
# Ekran çözünürlük parametreleri
oled_genislik = 128
oled_yukseklik = 64
oled = ssd1306.SSD1306_I2C(oled_genislik, oled_yukseklik, i2c)
# Ekrana koordinat bazlı metinler yazdır (x, y koordinatları)
oled.text('Hello, World 1!', 0, 0)
oled.text('Hello, World 2!', 0, 10)
oled.text('Hello, World 3!', 0, 20)
# Çizim tamponunu (buffer) ekrana yansıt
oled.show()Lojik Pin Yapılandırması: MicroPython üzerinde varsayılan donanımsal I2C pinleri SoftI2C sınıfında çağrılmadığında standart pinleri arar. Lolin32 OLED sırt kartı pin eşlemesi farklı olduğundan, SoftI2C(scl=Pin(4), sda=Pin(5)) şeklinde el ile tanımlama yapılması zorunludur. Kartı yeniden başlattığınızda ekran şu pürüzsüz çıktı formuna kavuşacaktır:

MicroPython firmware yükleme süreçleri, Thonny IDE yapılandırmaları ve genel amaçlı pin kontrol yetenekleri hakkında daha fazla pratik yapmak isterseniz kapsamlı ESP32 MicroPython Kullanımı kılavuzumuzu inceleyebilirsiniz.
Özetle; Wemos Lolin32 OLED geliştirme kartı, yerleşik ekranı ve batarya şarj devresiyle üst düzey taşınabilir projeler tasarlamak için son derece ergonomik bir donanımdır. Donanımsal özel I2C pin yönlendirmelerine dikkat ettiğiniz sürece, kartı hem Arduino hem de MicroPython ortamlarında kararlılıkla kontrol edebilir, projelerinize kompakt gösterge yetenekleri kazandırabilirsiniz.
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.

