ESP8266, dahili Wi-Fi'ye sahip, ucuz ve küçük bir mikrodenetleyicidir. NodeMCU ve WeMos D1 Mini gibi kartlar ESP8266'yı USB bağlantısı, regülatör ve pin başlıklarıyla hazır sunar ve Arduino IDE ile programlanır. Kart, ev Wi-Fi ağına bağlanarak web sunucusu çalıştırabilir, sensör verisini internete gönderebilir ve röleleri telefondan kontrol edebilir. Pinleri 3,3V ile çalışır ve tek bir analog girişi vardır.
Bir sensörün verisini telefonda görmek, prizleri uzaktan açıp kapatmak ya da odanın sıcaklığını bir internet sayfasına kaydetmek için Wi-Fi'li bir mikrodenetleyici gerekir. Bu işi en ucuza yapan kartlardan biri ESP8266 tabanlı NodeMCU ve WeMos D1 Mini'dir. Bu rehberde ESP8266'yı tanıtıyor, Arduino IDE ile ilk Wi-Fi projesini adım adım kuruyoruz.
ESP8266 nedir?
ESP8266, Espressif firmasının ürettiği, 2,4 GHz Wi-Fi'yi çipin içinde barındıran 32 bitlik bir mikrodenetleyicidir. 80 MHz (160 MHz'e çıkarılabilir) hızında çalışır ve kartlarda genellikle 4 MB flaş bellekle birlikte bulunur. Ucuz ve yaygın olduğu için ev otomasyonu ve nesnelerin interneti (IoT) projelerinin en bilinen çiplerinden biridir.
NodeMCU ve WeMos D1 Mini nedir?
| Kart | Özellik | Örnek |
|---|---|---|
| NodeMCU | Breadboard'a takılan, USB'li, yaklaşık 30 pinli geliştirme kartı | NodeMCU CH340G Type-C |
| WeMos D1 Mini | Çok küçük boyutlu, shield'lerle genişletilebilir | WeMos D1 Mini Type-C |
| WeMos D1 (Uno boyutunda) | Arduino Uno kalıbında ESP8266 kart | WeMos D1 ESP8266 kart |
| ESP-01 / ESP-12 modüller | Çıplak modüller; ürün içine gömmek için | Hazır röle ve LED modüllerinde |
NodeMCU'yu kablo karmaşası olmadan kullanmak için NodeMCU base shield ya da ESP8266 30 pin klemens shield kullanılabilir.
Arduino IDE'ye ESP8266 nasıl eklenir?
- Arduino IDE'de Dosya → Tercihler → Ek Kart Yöneticisi URL'leri alanına ESP8266 topluluğunun kart paketi adresini ekleyin (adres, ESP8266 Arduino çekirdeğinin resmi belgelerinde yer alır).
- Araçlar → Kart → Kart Yöneticisi'nden "esp8266" paketini kurun.
- Kart olarak "NodeMCU 1.0 (ESP-12E Module)" ya da "LOLIN(WEMOS) D1 mini" seçin.
- Kartın USB-seri çipi (CH340 ya da CP2102) için sürücü gerekiyorsa kurun ve doğru COM portunu seçin.
- Dosya → Örnekler → ESP8266 → Blink ile kartı deneyin. NodeMCU'nun dahili LED'i ters mantıkla çalışır: LOW yazınca yanar.
D pinleri ve GPIO numaraları
NodeMCU ve D1 Mini kartlarında pinler D0, D1… olarak etiketlenir, ancak bu etiketler çipin GPIO numaralarıyla aynı değildir; kodda D1 gibi etiketler ya da doğru GPIO numaraları kullanılmalıdır.
- D1 = GPIO5 (I2C SCL), D2 = GPIO4 (I2C SDA)
- D5 = GPIO14, D6 = GPIO12, D7 = GPIO13 (SPI)
- D3 = GPIO0, D4 = GPIO2, D8 = GPIO15: açılışta belirli seviyede olması gereken "boot" pinleri; bu pinlere bağlanan devreler kartın açılmasını engelleyebilir.
- D0 = GPIO16: derin uykudan uyanmak için RST'ye bağlanır.
- A0: tek analog giriş. NodeMCU ve D1 Mini'de giriş genellikle 0-3,3V'a uyarlanmıştır; çıplak çipin girişi ise 0-1V'tur.
Tüm pinler 3,3V ile çalışır; 5V sinyal doğrudan bağlanmamalıdır.
İlk Wi-Fi projesi: Telefondan LED kontrolü
- Kodda ESP8266WiFi ve ESP8266WebServer kütüphanelerini ekleyin.
- Wi-Fi ağ adı ve şifresiyle WiFi.begin() çağırın, bağlanınca IP adresini seri monitöre yazdırın.
- Web sunucusunda "/ac" ve "/kapat" adresleri tanımlayın; her biri LED pinini değiştirsin.
- Telefon aynı ağdayken tarayıcıya kartın IP adresini yazın ve düğmeleri deneyin.
- LED yerine bir röle modülü bağlayarak gerçek bir lambayı kontrol edin; bkz. röle bağlantı şeması. Hazır çözüm için ESP-12F 4 kanal Wi-Fi röle modülü kullanılabilir.
Daha kapsamlı bir örnek için ESP32 akıllı ev projemize bakın; aynı yöntem ESP8266'da da çalışır.
Pille çalışan projeler için derin uyku
ESP8266 derin uyku (deep sleep) modunda çok az akım çeker ve belirlenen süre sonunda kendini yeniden başlatır; GPIO16 (D0) pini RST pinine bağlanmalıdır. Örneğin bir sensör 10 dakikada bir uyanıp ölçüm yapıp veriyi gönderir ve tekrar uyur. Kartlardaki USB çipi, LED ve regülatör uyku akımını artırabilir; uzun pil ömrü için düşük tüketimli kartlar seçilir.
Sık sorulan sorular
ESP8266 ile Arduino arasındaki fark nedir?
ESP8266'da dahili Wi-Fi vardır ve işlemcisi Arduino Uno'dan çok daha hızlıdır. Buna karşılık pinleri 3,3V ile çalışır, analog giriş sayısı azdır ve bazı pinlerin açılışta özel görevi vardır.
NodeMCU 5V ile beslenir mi?
NodeMCU USB'den ya da VIN pininden 5V ile beslenebilir; kart üzerindeki regülatör bunu 3,3V'a düşürür. GPIO pinlerine ise 5V sinyal uygulanmamalıdır.
ESP8266 kartı neden sürekli yeniden başlıyor?
Yetersiz besleme, boot pinlerine bağlanan devreler, kodda uzun süren döngülerde yield() verilmemesi ya da bellek taşması yeniden başlamaya neden olur. Seri monitördeki hata mesajı nedeni anlamaya yardımcı olur.
ESP8266 5 GHz Wi-Fi'ye bağlanır mı?
Hayır, ESP8266 yalnızca 2,4 GHz Wi-Fi ağlarını destekler. Modemde 2,4 GHz bandının açık olması gerekir.
ESP8266 mı, ESP32 mi?
Basit, tek görevli Wi-Fi projeleri için ESP8266 yeterlidir. Daha fazla pin, analog giriş, Bluetooth ve işlem gücü gerekiyorsa ESP32 tercih edilir; ayrıntılar ESP32 ve ESP8266 karşılaştırma yazımızda.
Özet
- ESP8266, dahili Wi-Fi'li ucuz bir mikrodenetleyicidir.
- NodeMCU ve WeMos D1 Mini, ESP8266'yı USB'li hazır kart olarak sunar.
- Arduino IDE'ye kart paketi eklenerek programlanır.
- D etiketleri GPIO numaralarından farklıdır; boot pinlerine dikkat edilir.
- Pinler 3,3V'tur; tek analog giriş vardır.