Wemos Lolin32 OLED ESP32 Geliştirme Kartı

Wemos Lolin32 OLED ESP32 Geliştirme Kartı

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.

Wemos Lolin32 OLED Geliştirme Kartı
Wemos Lolin32 OLED

Önerilen Kılavuzlar ve Projeler:

Wemos Lolin32 OLED Ön Yüzü

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 OLED Arka Yüzü

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:

Wemos Lolin32 OLED Detaylı Pin Çıkış Şeması

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 SinyaliLolin32 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:

  1. Arduino IDE menüsünden Taslak > library ekle > Kütüphaneleri Yönet (Library Manager) ekranını açın.
  2. Arama motoruna “Adafruit SSD1306” yazarak kütüphaneyi sisteminize dahil edin.
Adafruit SSD1306 Kütüphane Kurulumu
  1. Ardından “Adafruit GFX” araması yapıp bu temel grafik motoru kütüphanesini de kurun ve Arduino IDE’yi yeniden başlatın.
Adafruit GFX Grafik Kütüphane Kurulumu

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ı tetikle

Ardı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:

Wemos Lolin32 Kart Seçim Ayarları

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

Lolin32 Ekranında Çizilen Yüz Grafiği

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 ile Lolin32 Ekran Yazısı

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.