NodeMCU ESP8266 Kullanımı ve Fonksiyonları : Bölüm 1

NodeMCU ESP8266 Kullanımı ve Fonksiyonları : Bölüm 1

Daha önce kaleme aldığımız Arduino Alternatifi Geliştirme Kartları incelememizde kısaca değindiğimiz NodeMCU ESP8266 kullanımı geliştirme kartı ile bu rehberimizde temel fonksiyonları, donanım yapılandırmalarını ve ilk web uygulamalarımızı gerçekleştireceğiz. NodeMCU; madeni paradan biraz daha büyük fiziksel boyutlarına rağmen, üzerinde yerleşik Wi-Fi çipi barındıran, açık kaynak kodlu, son derece ucuz ve üstün yetenekli bir mikrodenetleyici kartıdır. Düşük güç tüketimi ve zengin bağlantı arayüzleri ile IoT projelerinin en popüler hammaddesidir.

NodeMCU üzerindeki dijital ve analog giriş/çıkış (GPIO) pinlerini kullanarak sensörleri okuyabilir, röleleri tetikleyebilir veya motorları kontrol edebilirsiniz. Kartın bünyesindeki güçlü Wi-Fi modülü sayesinde internete kolayca bağlanarak IoT (Internet of Things – Nesnelerin İnterneti) cihazları üretebilirsiniz. TCP/IP yığınını donanımsal olarak desteklemesi ve HTTP kütüphaneleri sayesinde uzak sunuculara GET/POST istekleri (requests) atabilir veya kartı bir yerel web sunucusu (web server) olarak yapılandırabilirsiniz. NodeMCU, varsayılan olarak Lua programlama dili ve eLua betik altyapısı ile çalışmaktadır. Ancak bu rehberimizde olduğu gibi popüler yazılım geliştirme aracı olan Arduino IDE ile C/C++ dilinde de kolayca kodlanabilir.

NodeMCU ESP8266 Kullanımı ve Fonksiyonları
NodeMCU ESP8266 Kullanımı ve Fonksiyonları

NodeMCU ESP8266 Kullanımı: Arduino IDE Üzerinde İlk Hazırlık

NodeMCU’yu programlamaya başlamak için öncelikle Arduino IDE’ye ESP8266 kart çekirdek desteğini eklememiz gerekir. Sırasıyla şu adımları takip edin:

1. Arduino IDE programını açın ve **Dosya > Tercihler (File > Preferences)** menüsüne girin.
2. Açılan pencerede en altta yer alan **”Ek Kurul Yöneticisi URL’leri (Additional Boards Manager URLs)”** alanının yanındaki kutucuğa şu bağlantı adresini yapıştırın: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Arduino IDE Tercihler ESP8266 URL Ekleme
Ek Kart Yöneticisi URL tanımı

3. Ardından **Araçlar > Kart > Kart Yöneticisi (Boards Manager)** menüsüne gidin. Arama kısmına “esp8266” yazarak topluluk tarafından geliştirilen resmi **esp8266 by ESP8266 Community** paketini bulup “Kur” butonuna basın. Kurulum bittikten sonra geliştirme kartınız kod yüklenmeye hazır hale gelecektir.

Arduino IDE ESP8266 Kart Paketi Kurulumu

IoT Dünyasında NodeMCU Kullanım Alanları

İnternet teknolojileri artık modern yaşamın vazgeçilmez bir parçasıdır. Cihazların birbiriyle kablosuz haberleştiği, akıllı ev otomasyonlarının yaygınlaştığı günümüzde “Nesnelerin İnterneti (IoT)”, geliştirilen yeni nesil tüm teknolojilerin temelini oluşturmaktadır. NodeMCU ESP8266 ile evinizdeki lambaları, klimaları veya prizleri internet üzerinden kontrol edebilir, sıcaklık ve nem verilerini uzak sunuculara (ThingSpeak, Firebase vb.) anlık kaydederek grafiksel raporlar üretebilirsiniz. Düşük maliyeti ve yerleşik USB-Seri dönüştürücüsü (CP2102 veya CH340) sayesinde ek programlayıcılara ihtiyaç duymadan doğrudan micro USB kablosuyla bilgisayara bağlanarak kullanılabilir.

Akıllı Ev IoT Şeması

Bu Eğitim Serisinin Kapsamı

DevreYakan topluluğu olarak hazırladığımız bu kapsamlı ESP8266 eğitim serisi, sıfırdan uzmanlığa kadar tüm kablosuz IoT süreçlerini kapsamaktadır. Bu yazı dizisinde sırasıyla aşağıdaki başlıkları detaylandıracağız:

(+) ESP8266 Donanım Kurulumu ve Tanımlamalar
(+) İlk Çalışma ve Donanım Testleri
(+) ESP8266 Firmware Flashlama ve Güncelleme İşlemleri
(+) ESP8266 Web Server ile İlk Hello World Uygulaması
(+) Temel Kod Örnekleri ve Algoritmalar
(+) Ev/Oda Otomasyon Sistemlerine Entegrasyon
(+) Mesafe ve Sinyal Kalitesi Testleri
(+) Hata Giderme ve Çökme Analizleri (Brownout, Guru Meditation)

Firmware Güncelleme ve Flashlama İşlemi

NodeMCU kartları fabrikadan bazen eski sürüm veya farklı yazılım altyapılarıyla (AT komut seti) çıkabilir. Kartınızı en güncel kararlı sürüme (firmware) yükseltmek, Wi-Fi bağlantı sorunlarını giderecektir. Firmware güncellemesi için resmi olarak sunulan açık kaynak kodlu NodeMCU Flasher programını kullanacağız. Kartınızı bilgisayara bağlayıp ilgili sanal portu seçtikten sonra doğrudan Flash butonuna basarak işlemi başlatabilirsiniz. Ayrıca hazırladığınız özel .bin derleme dosyalarını Config sekmesinden seçerek doğrudan karta yükleyebilirsiniz.

Çok Kritik Donanım Uyarısı (GPIO Boot Pinleri): ESP8266 mimarisinde kartın yükleme modunda veya normal çalışma modunda başlayacağını belirleyen kritik boot pinleri bulunur. Lojik durum seçiciler şu şekildedir: GPIO 0 (D3) yükleme esnasında mutlaka LOW (GND) seviyesine çekilmelidir (NodeMCU kartlarındaki USB entegresi bunu otomatik yapar). GPIO 15 (D8) ise her zaman donanımsal olarak 10K direnç ile toprağa (GND) çekili kalmalıdır. Flash işlemi yaparken kartın GPIO pinlerine bağlı harici donanımları veya sensörleri mutlaka sökün. Aksi takdirde pinlerin lojik seviyeleri değişeceği için kart yükleme moduna geçemez ve hata verir.

NodeMCU Flasher Programı Arayüzü
Flasher Advanced Ayarlar
Config Sekmesi BIN Dosyası Seçimi
Flash İşleminin Başlatılması

ESP8266 Geliştirme Kartına Kod Yükleme

Daha önce yaptığımız ATtiny85 Programlama yöntemine benzer şekilde, Arduino IDE üzerinden doğrudan yükleme yapabiliriz. Araçlar menüsünden kart modelinizi (örn: NodeMCU 1.0 ESP-12E Module) ve doğru COM portunu seçin. Yükleme hızını (Upload Speed) 115200 veya daha hızlı yükleme için 921600 olarak ayarlayıp “Yükle” butonuna basın. Yükleme bittikten sonra kartı RESET (RST) butonuyla yeniden başlatın.

Arduino IDE ESP8266 Kart Seçimi
Yükleme İlerleme Ekranı

Arduino IDE derleyici ekranından yükleme yüzdesini anlık olarak izleyebilirsiniz.

Yükleme Tamamlandı Ekranı

Yükleme başarıyla tamamlandığında konsolda Leaving... Hard resetting via RTS pin... uyarısı görünür.

Çalışma Testi: Çevredeki Wi-Fi Ağlarını Tarama

Kartımızın donanımsal kablosuz RF modülünün sağlamlığını test etmek için çevre kirliliği ve ağ yoğunluğunu ölçen bu Wi-Fi tarayıcı kodunu yükleyip Seri Monitör üzerinden aktif kablosuz ağları listeleyebilirsiniz:

Seri Monitör (115200 baud) çıktısında çevrenizdeki ağları, sinyal kalitesi değerleri (RSSI) ve şifreleme türleriyle birlikte görebilirsiniz:

Seri Monitör Wi-Fi Tarama Çıktısı
Algılanan kablosuz ağlar ve RSSI sinyal güçleri

Yerel Web Sunucusu (Web Server) Uygulaması

ESP8266’nın en güçlü yönlerinden biri yerel bir web sunucusu olarak çalışabilmesidir. Aşağıdaki kodu yükleyerek tarayıcınızdan ESP8266’nın atadığı IP adresini girip dinamik web sayfalarına erişebilir ve IoT röle kontrollerinizi kolayca yönetebilirsiniz:

ESP8266 Web Sunucusu Arayüzü
Seri Port Bağlantı Durumu

Aynı zamanda, ESP8266 kütüphaneleri sayesinde alt dizinler, dinamik listeleme çalışmaları ve ağ istemci yapılandırmaları son derece kararlı çalışmaktadır.

Dinamik Dizin Listeleme Arayüzü

Özet ve Sonuç

Bu ilk rehberimizde, ESP8266 NodeMCU kartımızı genel donanım mimarisiyle yakından tanıyıp; Arduino IDE entegrasyonunu, firmware flashlama adımlarını, çevresel Wi-Fi sinyal tarama testlerini ve temel düzeyde yerel bir web sunucusu çalıştırmayı öğrendik. Bir sonraki bölümümüzde interaktif bir kontrol sayfası tasarlayarak ESP8266’yı fiziksel bir röle kartına bağlayacak ve lambaları internetten açıp kapatacağız. Proje aşamalarında aklınıza takılan veya hata aldığınız bir bölüm olursa, yorum bırakmaktan çekinmeyin. Kendinize çok iyi bakın!

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.