Bu rehberimizde, nesnelerin interneti (IoT) dünyasının iki popüler donanımı olan ESP8266 ve ESP32 MicroPython belleniminin (firmware) kurulumunu ve temel kullanımını adım adım inceliyoruz. Klasik masaüstü Python ile MicroPython arasındaki mimari farkları ele alacak, uPyCraft IDE geliştirme ortamı yardımıyla kartlarımızı nasıl programlayacağımızı öğreneceğiz. Rehberin sonunda, gömülü sistemlerin “merhaba dünya”sı olan asenkron LED yakıp söndürme (blink) uygulamasını da gerçekleştireceğiz.
MicroPython Nedir?
MicroPython; bellek ve işlemci kaynakları kısıtlı olan mikrodenetleyiciler ve gömülü sistemler için sıfırdan tasarlanmış, Python 3 dil standartlarının hafifletilmiş ve optimize edilmiş bir açık kaynak kodlu yorumlayıcı uygulamasıdır. Sözdizimi (syntax) standart Python ile tamamen aynıdır. Dolayısıyla, Python dilinde temel düzeyde kodlama yapabilen herkes ekstra bir öğrenme süreci yaşamadan MicroPython ile donanım programlamaya başlayabilir.

Masaüstü Python ile MicroPython Arasındaki Farklar
Birkaç donanımsal kısıtlama ve mimari zorunluluk dışında, standart Python dilinin temel döngüleri, veri tipleri ve nesne yönelimli yapısı MicroPython’da da eksiksiz korunur. Aralarındaki en büyük fark, MicroPython’un megabaytlar veya gigabaytlar yerine yalnızca birkaç kilobaytlık (KB) RAM ve kısıtlı işlem gücüyle çalışmak üzere tasarlanmış olmasıdır.
Bu kısıtlamalardan dolayı standart Python kütüphanelerinin (library) tamamı MicroPython içerisinde yer almaz; sadece en temel standart fonksiyon alt kümeleri dahil edilmiştir. Bunun yerine, donanım katmanına (fiziksel GPIO pinleri, ADC kanalları, I2C/SPI haberleşme bus hatları) doğrudan ve son derece pratik bir şekilde erişebilmeyi sağlayan özel donanım modülleri (Örn: machine) eklenmiştir.
Ayrıca, ESP8266 ve ESP32 gibi üzerinde yerleşik Wi-Fi ve Bluetooth modülleri barındıran çipler için kablosuz ağ bağlantılarını ve TCP/IP protokollerini saniyeler içinde yönetmeyi sağlayan özel ağ modülleri (Örn: network) standart olarak sunulur.
Neden MicroPython Tercih Etmeliyiz?
Python, dünyada en yaygın kullanılan, temiz kod yazım yapısına sahip ve öğrenmesi en kolay modern programlama dillerinden biridir. C/C++ gibi dillerdeki bellek yönetimi (pointers), derleme karmaşaları ve zorlu sözdizimi kuralları olmadan, MicroPython ile donanım dünyasına adım atmak süreci inanılmaz derecede kolaylaştırır. Elektronik ve mikrodenetleyici programlamaya yeni başlayacaksanız, MicroPython mükemmel bir başlangıç noktasıdır.
MicroPython’un ana felsefesi gömülü programlamayı olabildiğince demokratikleştirmek ve basitleştirmektir. Günümüzde hobicilerden akademisyenlere, mühendislerden endüstriyel ürün tasarımcılarına kadar çok geniş bir kitle tarafından aktif olarak kullanılmaktadır. Örneğin, bir ESP32 veya ESP8266 kartında dahili LED’i asenkron olarak flaşör yapacak kod bloğu şu kadar basittir:
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(0.5)MicroPython’un en güçlü yanlarından biri de etkileşimli REPL (Read-Evaluate-Print Loop) terminal desteğidir. REPL sayesinde karta herhangi bir kod yüklemeden veya derleme bekletmeden doğrudan terminal satırından anlık Python komutları yazıp kartın üzerindeki pini anında lojik-1 veya lojik-0 yapabilirsiniz.
ESP32 MicroPython Tarafından Desteklenen Popüler Donanımlar

- ESP32 ve varyantları (S2, S3, C3 vb.)
- ESP8266 modülleri
- Resmi Pyboard serisi
- BBC micro:bit
- Teensy 3.X / 4.X serisi
- Pycom WiPy serisi
- Adafruit Circuit Playground Express
- Raspberry Pi Pico (RP2040)
Biz bu rehberimizde fiyat/performans avantajı en yüksek olan ve geliştiriciler tarafından en sık tercih edilen ESP32 ve ESP8266 donanımlarına odaklanacağız.
ESP32 çipi, ESP8266 entegresinin çok daha gelişmiş çift çekirdekli halefidir. Her iki kartın yazılım altyapısı MicroPython seviyesinde tamamen ortaklaştırılmıştır. Yani ESP8266 için yazdığınız bir kod bloğu, sadece pin numaralarını hedef karta göre düzenleyerek ESP32 üzerinde de hiçbir değişiklik gerektirmeden sorunsuzca çalışacaktır.
uPyCraft IDE Kurulum Adımları
Çalışmalara başlamadan önce bilgisayarınıza hafif ve stabil bir editör olan uPyCraft IDE yazılımını kurmanız gerekmektedir. İşletim sisteminize özel adım adım kurulum kılavuzlarımıza aşağıdaki bağlantılardan ulaşabilirsiniz:
- uPyCraft IDE – Windows Kurulum Rehberi
- uPyCraft IDE – macOS Kurulum Rehberi
- uPyCraft IDE – Linux Kurulum Rehberi
Alternatif Öneri: Eğer uPyCraft IDE arayüzünde bağlantı sorunları yaşarsanız, benzer şekilde stabil ve profesyonel olan bir diğer popüler araç için hazırladığımız Thonny IDE ile MicroPython Programlama Rehberi içeriğimizi de inceleyebilirsiniz.
MicroPython Firmware (Bellenim) Yazma Aşamaları
Fabrikadan yeni çıkan ESP32 ve ESP8266 geliştirme kartları varsayılan olarak MicroPython bellenimi yüklü gelmez (genellikle AT komut seti veya üretici yazılımları yüklüdür). Karta Python komutlarını öğretebilmek için öncelikle kararlı MicroPython .bin imajını flaşlamamız gerekir. Flaşlama işlemi için hazırladığımız kapsamlı iki yöntemi takip edebilirsiniz:
- uPyCraft IDE Arayüzü ile Kolay Bellenim Flaşlama
- Python esptool.py Komut Satırı ile Profesyonel Flaşlama

uPyCraft IDE Kullanım Rehberi
Bu bölümde, MicroPython kodlarımızı yazarken, kaydederken ve karta yüklerken uPyCraft IDE arayüzünü nasıl en verimli şekilde kullanacağımızı detaylandıracağız.
uPyCraft; gömülü sistemlerin kendine has dosya yapısını (boot/main ayrımı) görselleştiren, anlık dosya okuma/yazma işlemlerini ve REPL terminalini tek ekranda toplayan son derece kompakt bir yazılımdır.
Arayüz Yapısı ve Çalışma Alanları
uPyCraft IDE ilk açıldığında karşımıza şu şekilde fonksiyonel bir pencere gelir:

Arayüz temelde 4 ana bölümden oluşmaktadır:
- Dosya ve Klasör Ağacı (File Tree): Sol tarafta yer alan bu panel kartın içindeki dosyaları ve bilgisayardaki çalışma alanınızı yönetir.
- Kod Editörü: Python scriptlerinizi renklendirilmiş sözdizimi desteğiyle yazdığınız ana metin editörüdür.
- MicroPython Terminali (Shell / REPL): Karttan gelen seri logları okuduğumuz ve anlık etkileşimli komut gönderdiğimiz alandır.
- Hızlı Erişim Araç Çubuğu: Sağ tarafa dikey olarak yerleştirilmiş fonksiyonel butonlardır.
Kart Dosya Sisteminin Mantığı (boot.py ve main.py)
Sol taraftaki dosya ağacında “device” (cihaz) klasörünü genişlettiğinizde kartın dahili flash belleğinde saklanan dosyaları görürsünüz. MicroPython sistemlerinde iki özel dosya mimarisi bulunur:
- boot.py: Kart her açıldığında veya resetlendiğinde ilk çalışan dosyadır. Kablosuz ağ bağlantıları veya donanımsal başlangıç tanımlamaları gibi tek seferlik temel ayarlar burada yapılır.
- main.py:
boot.pydosyası başarıyla yürütüldükten hemen sonra otomatik olarak başlayan ana program dosyasıdır. Yazdığımız sonsuz döngülü asıl kodlar bu dosya içerisinde saklanır.
uPyCraft arayüzündeki “workSpace” klasörü ise bilgisayarınızda projelerinizi yedekleyeceğiniz yerel klasördür. uPyCraft’ı ilk açtığınızda bilgisayarınızda boş bir klasör oluşturup bu klasörü çalışma alanı olarak sisteme tanıtmanız istenir:

Çalışma alanınızı seçtikten sonra sol menüdeki dosya ağacını tazelemek için File > Reflush Directory menüsüne tıklayabilirsiniz. Dilerseniz çalışma alanınızı daha sonra Tools > InitConfig menüsünden de güncelleyebilirsiniz:

Hızlı Erişim Butonlarının İşlevleri
Sağ tarafta bulunan dikey butonların işlevleri şunlardır:

- New File (Yeni Dosya): Editörde sıfırdan yeni bir Python dosyası sekmesi açar.
- Open File (Dosya Aç): Bilgisayarınızdaki yerel dosyaları editöre dahil eder.
- Save File (Dosya Kaydet): Aktif sekmeyi kaydeder.
- Download and Run (Yükle ve Çalıştır): Yazılan kodu doğrudan kartın flash belleğine yazar ve kartı otomatik olarak resetleyerek kod yürütümünü başlatır.
- Stop (Durdur): Kart üzerinde aktif olarak çalışan döngüyü keser (Terminalde klavyeden Ctrl + C göndermekle aynı etkiyi yapar).
- Connect / Disconnect (Bağlan / Bağlantıyı Kes): Seçilen COM portu üzerinden kartla seri haberleşmeyi (REPL) başlatır veya sonlandırır.
İlk MicroPython Uygulaması: LED Blink
Şimdi teorik bilgileri pratiğe dökmek amacıyla, ESP kartımızla bağlantı kurup ilk kodumuzu yükleyeceğiz.
Donanım Bağlantısının Sağlanması
MicroPython firmware yüklemesini tamamladığınız kartınızı USB kablosuyla bilgisayara bağladıktan sonra editörde şu adımları takip edin:
- Tools > Board menüsünden kullandığınız donanımı (ESP32 veya ESP8266) seçin.
- Tools > Port menüsünden kartınızın bağlı olduğu COM portunu (Örn: COM3 veya /dev/tty.usbserial) belirleyin.
- Sağ menüdeki yeşil fiş simgeli Connect butonuna tıklayarak bağlantıyı kurun.

Bağlantı başarıyla sağlandığında terminal (Shell) ekranında >>> ifadesi görünmelidir. REPL terminalinin çalışıp çalışmadığını test etmek için şu komutu yazıp Enter tuşuna basın:
>>> print('Hello World!')
Hello World!
>>>Eğer ekranda “Hello World!” yanıtını aldıysanız kartınız anlık Python komutlarını dinlemeye hazır demektir:

main.py Dosyasının Oluşturulması ve Yüklenmesi
Hızlı erişim menüsünden New File butonuna basın:

Ardından Save File butonuna tıklayarak dosyayı kaydedin:

Açılan pencerede dosya adını mutlaka küçük harflerle main.py olarak yazın ve çalışma alanınıza kaydedin:

Dosyayı kaydettikten sonra editörde main.py adında boş bir sekme açılacaktır:

Şimdi aşağıdaki asenkron LED kontrol kodunu editöre kopyalayıp yapıştırın:
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(0.5)Kodu karta yüklemeden önce eğer arka planda çalışan eski bir yazılım varsa, sağ menüdeki Stop butonuna basarak kartı güvenli moda alın:

Son olarak, hazırladığınız main.py kodunu karta yazmak için Download and run butonuna tıklayın:

Flaşlama işlemi bittiğinde terminal penceresinde download ok onay mesajı görünecek ve cihaz klasör ağacında main.py dosyası listelenecektir:

Yazılımın Test Edilmesi ve Başlatılması
Yazdığımız kodun kart enerjilendiği andan itibaren bağımsız çalışabilmesi için şu adımları izleyin:
- Gerekirse uPyCraft üzerinden Stop butonuna tıklayın.
- Kart üzerindeki fiziksel EN (Enable) veya RST (Reset) düğmesine bir kez basın.

Kart yeniden başladığında terminal ekranında MicroPython başlangıç logları görünecek ve hemen ardından main.py dosyası çalışmaya başlayacaktır:

Bu adımdan sonra kart üzerindeki yerleşik mavi LED’in her 500 milisaniyede bir (saniyede iki kez) asenkron olarak yanıp sönmeye başladığını doğrulayabilirsiniz:

Karşılaşılabilecek Olası Sorunlar ve Çözümleri
uPyCraft IDE ile geliştirme yaparken en sık karşılaşılan hataları ve bu hataların donanımsal çözümlerini sizler için derledik:
Sorun 1: Port Açma ve Bağlantı Hataları
Select Serial Port could not open port 'COM4': FileNotFoundError(2, 'The system cannot find the file specified.')Veya:
could not open port 'COM4': PermissionError(13, 'A device attached to the system is not functioning.')Çözüm: Kartınızın USB kablosunu bilgisayardan çekip farklı bir porta takın. Tools > Serial menüsünden COM port adını iki kez kontrol edin. Bu hata genellikle portun bilgisayardaki başka bir yazılım (Örn: Arduino IDE, Serial Monitor veya Cura vb.) tarafından meşgul edildiğini gösterir. Diğer açık programları tamamen kapatıp uPyCraft IDE’yi yeniden başlatın.
Sorun 2: Download Sırasında Kilitlenme Hatası
already in download model, please wait.Çözüm: Kart aktif bir döngüde kilitlendiği için yükleme moduna geçemiyordur. Arayüzdeki kırmızı renkli Stop butonuna arka arkaya 1-2 kez basarak aktif betiği sonlandırın ve ardından Download and run komutunu tekrar gönderin.
Sorun 3: Donanımsal Brownout Hatası
Brownout detector was triggeredÇözüm: Brownout uyarısı, kartın işlemci çekirdeğine gelen voltajın kararsız olduğunu ve eşik değerinin altına düştüğünü gösteren tamamen donanımsal bir koruma uyarısıdır. Bu sorunun ana nedenleri şunlardır: Düşük kaliteli uzun USB kabloları, bilgisayarın USB portunun yetersiz akım vermesi veya breadboard üzerindeki kalitesiz/gevşek lehim bağlantılarıdır. Çözüm için daha kalın ve kısa kaliteli bir USB veri kablosu kullanmalı ya da harici güç kaynağına sahip bir USB hub tercih etmelisiniz.
Genel Özet
Bu kapsamlı kılavuzumuzda, ESP32 ve ESP8266 kartlarında MicroPython geliştirme dünyasına hızlı ve kararlı bir giriş yaptık. uPyCraft IDE arayüzünün kullanımı, bellenim yazma adımları, boot/main dosya mimarisi ve REPL terminali üzerinden anlık kod çalıştırma tekniklerini pratik bir LED uygulamasıyla doğruladık. MicroPython ile IoT ve kablosuz haberleşme projelerinde daha da uzmanlaşmak için sitemizdeki diğer detaylı rehberlerimizi inceleyebilirsiniz.
Resmi ESP8266 veri sayfasına buradan ulaşabilirsiniz.
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.

