Skip to Content
ESP ve IoTESP8266 (NodeMCU) Nedir?

ESP8266 (NodeMCU) Nedir?

ESP8266, Espressif firmasının ürettiği, dahili Wi-Fi içeren bir mikrodenetleyici çipidir. Ucuz olması ve Arduino IDE ile programlanabilmesi sayesinde IoT projelerinin en yaygın kartlarından biri haline gelmiştir.

Çıplak ESP8266 çipi doğrudan kullanılmaz; genellikle bir geliştirme kartı üzerinde satılır.

Kart Çeşitleri

KartÖzellik
NodeMCU (ESP-12E)USB soketli, breadboard uyumlu, en yaygın
Wemos D1 MiniDaha küçük, USB-C/Micro-USB, shield desteği
ESP-01Çok küçük, 8 pinli, USB yok — harici programlayıcı gerekir
ESP-12F modülüÇıplak modül, kendi kartınıza lehimlemek için

Başlangıç için NodeMCU veya Wemos D1 Mini tercih edin; ikisi de USB üzerinden doğrudan programlanır.

Teknik Özellikler

ÖzellikDeğer
İşlemciTensilica L106, 80 MHz (160 MHz’e çıkarılabilir)
Flash bellek4 MB (tipik)
RAM~80 KB kullanılabilir
Wi-Fi802.11 b/g/n, 2,4 GHz
Lojik seviye3,3 V
Dijital pin~11 kullanılabilir
Analog giriş1 adet (A0)
PWMTüm GPIO’lar (yazılımsal)
BluetoothYok

Arduino Uno ile Karşılaştırma

Arduino UnoESP8266
Hız16 MHz80–160 MHz
Flash32 KB4 MB
RAM2 KB~80 KB
Wi-FiYokVar
Lojik5 V3,3 V
Analog giriş61
FiyatBenzerBenzer

Wi-Fi dışında bile ESP8266 her açıdan çok daha güçlüdür. Ancak iki önemli kısıtı vardır: tek analog giriş ve 3,3 V lojik.

NodeMCU Pin İsimlendirmesi — Kritik Tuzak

NodeMCU kartının üzerinde pinler D0, D1, D2… olarak yazılıdır. Ancak bu numaralar GPIO numaralarıyla eşleşmez.

Kodda D1 yazarsanız Arduino çekirdeği bunu doğru GPIO’ya çevirir. Ancak 1 yazarsanız GPIO1’i (TX pini) kastetmiş olursunuz.

Kart etiketiGPIONotlar
D0GPIO16Kesme yok, PWM yok; deep sleep uyandırma pini
D1GPIO5I2C SCL (varsayılan) — güvenli
D2GPIO4I2C SDA (varsayılan) — güvenli
D3GPIO0⚠ Boot modu; açılışta LOW olmamalı (FLASH butonu)
D4GPIO2⚠ Açılışta HIGH olmalı; dahili LED buraya bağlı
D5GPIO14SPI SCLK — güvenli
D6GPIO12SPI MISO — güvenli
D7GPIO13SPI MOSI — güvenli
D8GPIO15⚠ Açılışta LOW olmalı (dahili pull-down)
RXGPIO3Seri alma
TXGPIO1Seri gönderme
A0ADC0Tek analog giriş

Güvenli pinler

Boot sorunu yaşamamak için şu pinleri tercih edin:

D1, D2, D5, D6, D7 — bunlar her koşulda güvenlidir.

D3, D4, D8’den kaçının (özellikle bir sensör veya röle bağlayacaksanız). Bu pinler açılış anındaki seviyelerine bakarak kartın hangi modda başlayacağını belirler. Yanlış seviyede bir bileşen bağlarsanız kart hiç açılmaz veya flash moduna girer.

Örneğin D8’e (GPIO15) pull-up direnci olan bir sensör bağlarsanız kart açılmaz.

Tek Analog Giriş ve Aralığı

ESP8266’nın yalnızca bir analog girişi vardır ve çipin kendi ADC aralığı 0 – 1 V’tur.

NodeMCU ve Wemos D1 Mini kartlarında A0 pininde kart üzerinde bir gerilim bölücü bulunur; bu sayede pine 0–3,3 V uygulanabilir.

  • NodeMCU / Wemos: A0 pinine 0 – 3,3 V
  • Çıplak ESP-12 modülü: 0 – 1 V
void loop() { int ham = analogRead(A0); // 0 - 1023 float volt = ham * (3.3 / 1023.0); Serial.print(ham); Serial.print(" "); Serial.print(volt, 2); Serial.println(" V"); delay(500); }

A0 pinine 3,3 V’un üzerinde gerilim uygulamayın. 5 V’luk bir sensör çıkışını doğrudan bağlamak ADC’yi kalıcı olarak bozar.

Birden fazla analog sensör gerekiyorsa harici bir ADC (ADS1115, I2C, 4 kanal, 16 bit) veya analog çoklayıcı (CD4051) kullanın.

Arduino IDE’ye ESP8266 Desteği Ekleme

  1. Dosya → Tercihler menüsünü açın.
  2. Ek Kart Yöneticisi URL’leri alanına şunu ekleyin: https://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Araçlar → Kart → Kart Yöneticisi’nden esp8266 aratıp kurun.
  4. Araçlar → Kart → ESP8266 Boards → NodeMCU 1.0 (ESP-12E Module) seçin.

Kart görünmüyorsa CH340 veya CP2102 sürücüsünü kurmanız gerekebilir.

İlk Kod

Dahili LED, GPIO2’ye (D4) bağlıdır ve ters mantıkla çalışır: LOW yakar, HIGH söndürür.

void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); Serial.println(); Serial.println("ESP8266 basladi"); } void loop() { digitalWrite(LED_BUILTIN, LOW); // LED yanar (ters mantik) delay(500); digitalWrite(LED_BUILTIN, HIGH); // LED soner delay(500); }

ESP kartlarında Seri Monitör hızı olarak 115200 kullanılır.

Besleme

ESP8266 Wi-Fi iletimi sırasında ani akım çeker.

DurumAkım
Uyku modu (deep sleep)~20 µA
Boşta (Wi-Fi bağlı)~70 mA
Wi-Fi iletim tepe~300 mA

Bu, en sık karşılaşılan sorunun kaynağıdır: yetersiz besleme yüzünden kart sürekli resetlenir veya Wi-Fi’ye bağlanamaz.

Kurallar:

  • Arduino’nun 3.3V pininden beslemeyin (sadece 50 mA verir).
  • En az 500 mA verebilen bir kaynak kullanın.
  • Besleme hattına 470 µF elektrolitik + 100 nF seramik kondansatör ekleyin.
  • NodeMCU kartını USB’den beslemek genellikle yeterlidir.
  • Ayrı 3,3 V regülatör kullanacaksanız AMS1117 yeterli akımı sağlar (yaklaşık 800 mA).

Belirti: kart açılıyor ama Wi-Fi’ye bağlanırken resetleniyorsa neredeyse her zaman besleme sorunudur.

Deep Sleep — Pille Çalıştırma

ESP8266’nın en değerli özelliklerinden biri derin uyku modudur. Kart kendini kapatır, belirlenen süre sonra uyanır, işini yapar ve tekrar uyur.

Bu modda tüketim ~20 µA’e düşer; bir pille aylarca çalışan sensör düğümleri böyle yapılır.

Donanım şartı: GPIO16 (D0) pini ile RST pini bir kabloyla birleştirilmelidir. Uyandırma sinyali bu hat üzerinden gelir.

void setup() { Serial.begin(115200); Serial.println("Uyandi, olcum yapiliyor..."); int deger = analogRead(A0); Serial.print("Deger: "); Serial.println(deger); // Burada veriyi Wi-Fi ile gonderebilirsiniz Serial.println("Uykuya geciliyor (30 saniye)"); ESP.deepSleep(30e6); // mikrosaniye cinsinden: 30 saniye } void loop() { // deepSleep sonrasi program setup()'tan yeniden baslar }

Uyandıktan sonra program loop() içinden değil, setup()’ın başından devam eder. Kod yapınızı buna göre kurun.

Maksimum uyku süresi yaklaşık 3 saat (ESP8266’da ~71 dakika, çekirdek sürümüne göre değişir); daha uzun aralıklar için art arda uyku döngüleri kurulur.

Sık Karşılaşılan Sorunlar

BelirtiNeden
Kart açılmıyorD3/D4/D8’e yanlış bileşen bağlı
Sürekli resetleniyorBesleme yetersiz — kondansatör ve güçlü kaynak ekleyin
Wi-Fi’ye bağlanmıyor5 GHz ağa bağlanmaya çalışıyorsunuz — ESP8266 sadece 2,4 GHz destekler
Seri Monitör’de anlamsız karakterBaud hızı 115200 olmalı
Analog okuma hep 1023A0’a 3,3 V üstü gerilim uygulanmış
Kod yüklenmiyorSürücü eksik; yanlış kart seçili; D3 (GPIO0) bir yere bağlı
Yükleme sonrası çalışmıyorFlash boyutu ayarı yanlış seçilmiş olabilir

Özet

ESP8266, dahili Wi-Fi taşıyan, Arduino Uno’dan çok daha hızlı ve bellekli bir mikrodenetleyicidir. 3,3 V lojik seviyeyle çalışır ve yalnızca bir analog girişi vardır.

Bu derste şunları öğrendik:

  • NodeMCU, Wemos D1 Mini ve ESP-01 farklarını
  • Kart etiketi (D1) ile GPIO numarası eşleşmesini
  • D3, D4 ve D8 boot pinlerinden kaçınmayı
  • Tek analog girişin 0–3,3 V aralığını
  • Arduino IDE’ye kart desteği eklemeyi
  • Wi-Fi tepe akımı ve besleme gereksinimlerini
  • Deep sleep ile pille aylarca çalıştırmayı
Son güncelleme