
STM32 ve ESP32: Farklar, Avantajlar ve Hangi Projede Hangisi?
Gömülü sistemler dünyasında iki dev isim: STM32 ve ESP32. Her ikisi de popüler mikrodenetleyici platformları olsa da, tasarım felsefeleri, hedef kitleleri ve güçlü yönleri oldukça farklıdır.
STM32 ve ESP32: Farklar, Avantajlar ve Hangi Projede Hangisi?

Gömülü sistemler dünyasında iki dev isim: STM32 ve ESP32. Her ikisi de popüler mikrodenetleyici platformları olsa da, tasarım felsefeleri, hedef kitleleri ve güçlü yönleri oldukça farklıdır. STM32, STMicroelectronics’in ARM Cortex-M tabanlı geniş ailesiyle endüstriyel ve profesyonel uygulamalarda sağlamlığıyla bilinir. ESP32 ise Espressif Systems’in Wi-Fi ve Bluetooth entegreli çipiyle IoT prototipleme ve hobi projelerinde devrim yaratmıştır. Peki hangisi sizin projenize daha uygun? Bu yazıda her iki platformu teknik özelliklerinden kullanım senaryolarına kadar karşılaştıracağız.
STM32 Nedir?
STM32, ARM Cortex-M işlemci çekirdekleri üzerine inşa edilmiş, geniş ürün yelpazesine sahip bir mikrodenetleyici ailesidir. Düşük güç tüketiminden yüksek performansa kadar birçok seri (F0, F4, H7, vb.) sunar. Endüstriyel otomasyon, tıbbi cihazlar, motor kontrolü ve güvenlik sistemlerinde yaygın olarak tercih edilir. Geliştirme ortamı olarak STM32CubeIDE, Keil, IAR gibi profesyonel araçlar kullanılır.
ESP32 Nedir?
ESP32, Espressif tarafından geliştirilen, Wi-Fi ve Bluetooth’u entegre eden düşük maliyetli bir çiptir. Tensilica Xtensa LX6 (veya yeni nesilde RISC-V) çekirdeklerine sahiptir. IoT cihazları, akıllı ev ürünleri, giyilebilir teknolojiler ve prototipleme için biçilmiş kaftandır. Arduino IDE, ESP-IDF, MicroPython ile rahatça programlanabilir.
Özellik | STM32 (F4 serisi) | ESP32 (DevKit) |
|---|---|---|
İşlemci | ARM Cortex-M4 (180MHz) | Tensilica Xtensa LX6 (240MHz) |
RAM | 192 KB’ye kadar | 520 KB |
Flash | 1 MB’ye kadar | 4 MB (harici) |
GPIO | 80+ | 25-40 (modele göre) |
Wi-Fi / Bluetooth | Harici modül gerekir | Dahili (2.4G + BLE) |
Güç tüketimi (aktif) | ~100 µA/MHz | ~160 mA (Wi-Fi açık) |
Fiyat (yaklaşık) | 5-15$ (model bazında) | 4-8$ |
Geliştirme ortamı | STM32CubeIDE, Keil | Arduino, ESP-IDF, MicroPython |
“STM32 endüstriyel sağlamlık ve hassasiyet isteyen projelerin vazgeçilmezidir; ESP32 ise kablosuz bağlantı ve hızlı prototipleme söz konusu olduğunda rakipsizdir.”
Avantajlar ve Dezavantajlar
STM32 Avantajları:
- Yüksek işlem gücü ve geniş ürün yelpazesi
- Düşük güç tüketimi (özellikle L serisi)
- Güvenlik özellikleri (TrustZone, kripto)
- Uzun ömürlü ürün desteği
ESP32 Avantajları:
- Dahili Wi-Fi ve Bluetooth – ayrı modül gerekmez
- Uygun fiyat
- Büyük topluluk ve kolay öğrenme eğrisi (Arduino)
- OTA (Over-The-Air) güncelleme desteği
Dezavantajlar:
- STM32: Kablosuz bağlantı için ek maliyet ve karmaşıklık
- ESP32: Endüstriyel ortamlar için daha az güvenilirlik, sınırlı analog hassasiyet
Hangi Durumda Hangisi?
- Prototip, IoT, Wi-Fi/BLE projeleri → ESP32 hızlı ve ekonomik.
- Endüstriyel kontrol, motor sürücü, yüksek hassasiyet → STM32.
- Her ikisi de kullanılabilir: ESP32 ile veri toplayıp STM32’ye işlem yaptırmak veya STM32’yi ESP32 üzerinden yönetmek.
SSS (Sık Sorulan Sorular)
ESP32 ile STM32 birlikte çalışabilir mi?
Evet, UART, SPI, I2C gibi protokollerle haberleşebilirler. Çoğu projede ESP32 ağ geçidi, STM32 ise gerçek zamanlı kontrol ünitesi olarak kullanılır.
Hangisi daha ucuz?
Basit modellerde ESP32 daha ucuzdur, ancak STM32’nin giriş seviyesi modelleri de benzer fiyat aralığındadır.
Hangisi daha kolay programlanır?
ESP32, Arduino ekosistemiyle yeni başlayanlar için daha kolaydır. STM32 daha profesyonel araçlar gerektirir.
Güç tüketimi açısından hangisi daha iyi?
STM32’nin ultra düşük güç serileri (L0, L4) pil ile çalışan cihazlar için çok daha avantajlıdır; ESP32 Wi-Fi açıkken oldukça fazla çeker.
Örnek kod: ESP32 ile Wi-Fi bağlanma (Arduino)
#include <WiFi.h>
const char* ssid = "SSID";
const char* password = "Şifre";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Bağlandı!");
}STM32 ile LED yakma (HAL kütüphanesi)
#include "main.h"
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1) {
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(500);
}
}