Bu yazımımız aslında bir serinin ilk bölümü, Arduino alternatiflerini inceleyeceğimiz bu dizinin ilk bölümüne NodeMCU ile başlıyoruz.
NodeMCU Nedir?
NodeMCU; madeni paradan biraz daha büyük boyutta, küçük bir geliştirme kartıdır. Açık kaynaklıdır, ekonomik maliyetlidir ve yeteneklidir. Düşük gerilimle çalışır. Üzerindeki bağlantı pinleri sayesinde farklı elektronik bileşenleri kontrol edebilirsiniz. Dahili Wi-Fi özelliği sayesinde IoT (Nesnelerin İnterneti) projelerini hızlıca geliştirmenize olanak sağlar.
HTTP kütüphaneleri sayesinde web istemleri yapabilirsiniz veya web sunucusu çalıştırabilirsiniz. Bu sayede internet üzerinden bu cihazla iletişime geçebilirsiniz. Uzaktan bir şeyleri açabilir veya kapatabilirsiniz. Programlama dili olarak Lua betiği yani scripti kullanır. Buna rağmen yine de; Arduino IDE ve Arduino’nun kullandığı dille de programlanabilir. USB kablosuyla bilgisayara kolayca bağlanır, programlanabilir ve veri iletişim kurulabilir.

Şöyle ki; bir mikro çip olan ESP8266 türü bir mikro çip setinin üzerinde bulunur. Boyutları bir madeni para kadar olan kart; içinde bir yazılım bulundurur. Bu yazılım sayesinde de akıllı hale gelmiş olur, yani işlem yapabilir hale gelir. Kart; bir anlamda mikro bir bilgisayar gibidir. Elbette bir bilgisayara göre çok daha basit işler yapar ancak bir nesnenin internete sahip olması için yani veri transferinde bulunarak akıllı hale gelebilmesi için zorunludur.
NodeMCU ilk seferinde genellikle mikro usb girişiyle bilgisayara bağlanırlar ve içlerine bir yazılım yüklenir. Bu sayede nesnemizin ihtiyacını karşılamak üzere hazır hale gelirler. Aslına bakılırsa kontrol ünitesi sayesinde kendinize bir uzaktan kumandalı araba, otomatik olarak açılıp kapanan kapılar, perdeler ve pencereler gibi aklınıza gelebilecek birçok şeyi yapabilirsiniz.
Bu geliştirme kartları, sizinle nesne arasındaki veri alışverişini sağlayacak olan bir donanımdır. Bu aparatları; kendinizin geliştirdiği bütün akıllı nesnelerde kullanma imkanınız var. İçlerinde bulunan yazılım sayesinde sizin komutlarınızı anlamlandırırlar ve isteklerinize göre hareket ederek; üzerine monte ettiğiniz nesneyi yönlendirmenizi sağlarlar. İşte bu sebeple bir NodeMCU kontrol ünitesini kullanmak; geliştireceğiniz projelerde size yardımcı olacaktır.
Arduino Benzeri Donanımsal G/Ç (I/O)
Ayarlayabileceğiniz ve düzenleyebileceğiniz gelişmiş bir donanımsal G/Ç arabirimine sahiptir. Yani donanımsal bir girdi-çıktı APIye sahiptir. Bahsi geçen bu API kullanmak için çok çaba sarf etmenize gerek kalmaz. Kod yazım şekli Arduino cihazlarda olduğu gibidir. Yani o cihazlardaki yapıya çok benzerdir. Fakat NodeMCU, Arduino cihazlara nazaran daha etkileşimlidir ve bunu da Lua betikleriyle yapar.
Peki Neden Arduino Değil de NodeMCU?
NodeMCU’nun en önemli avantajlarından biri, eşdeğer birçok Arduino kartta dahili olmayan Wi-Fi özelliğini doğrudan sunmasıdır. Klasik kartlarda Wi-Fi için ek modül ve ek kod gerekirken, NodeMCU bu süreci ciddi ölçüde sadeleştirir. Bu da IoT projelerinde geliştirme süresini kısaltır.
NodeJS Tarzında Ağ Arabirimi
Olay-Tabanlı API sayesinde, geliştiriciler ağ uygulamaları NodeJS tarzıyla kodlarlar ve bu kodlar sadece 5x5mm boyutundaki MCU mikro-kontrolcü üzerinde çalışır. Olay-Tabanlıyı biraz daha açayım. JavaScript dilini ve jQuery gibi araçları kullananlar daha iyi anlayacaktır. Bir olay olduğunda; “bu çalıştırılsın” diye tanımladığınız fonksiyon çağrılır ve çalıştırılır.
Geliştirme Teçhizatı/Kiti
ESP8266 mikro-kontrolcüye sahiptir. Bu sayede Node MCU; GPIO, PMW, IIC, 1-Wire ve ADC gibi tüm teknolojileri, küçük boyutlardaki bünyesinde barındırır ve sunar. Ayrıca Node MCU firmware ile yani yerleşik yazılım ile gücüne güç katılabilir. Firmware yani yerleşik yazılımı da şöyle açalım. Node MCU ile geliştirme yapmak isteyenler LUA betikleriyle kod yazarlar. Ayrıca yazılan bu kod Node MCU cihazına bir takım şeyler yaptırmak adına üst katmanda firmware yani yerleşik yazılımla birlikte çalışır.
Node MCU Flasher Nedir? Ne İçin Kullanılır?
Node MCU’yu güncellemek için kullanılan araçlara Flasher denir. Daha iyi anlaşılması için bilgisayarın BIOS güncellemesi gibidir diyebilirim. Yani Node MCU içerisindeki temel ve minik yazılımın güncellemesi Node MCU Flasher ile yapılır.
Flasher’ı indirmek isterseniz eğer 32 bit sistem için buradan indirin. 64 bit sistem için ise buradan indirin.
Node MCU Firmware Nedir? Ne İçin Kullanılır?
Bu araç Node MCU içindeki temel ve minik yazılımı günceller. İşte bu güncellenen minik yazılım ise NodeMCU Firmware olmaktadır. Yani Flasher, Node MCU ile irtibata geçip Firmware’yi içerisine yazar ve böylece Node MCU içerisindeki firmware güncellenmiş yani değişmiş olur.
Node MCU Firmware’yi buradan indirebilirsiniz. Eskiden GitHub üzerinden indirilirdi. Şimdi ise başka bir site üzerinden kişiselleştirilip indirebiliyor. Mesela Node MCU’nuzda WebSocket işlemi hiç yapmayacaksanız Firmware oluşturma sayfasında bunun kutucuğunu iptal ederek firmware’nize WebSocket’i hiç katmayarak firmware boyutunu düşürebiliyorsunuz. Böylece NodeMCU içerisinde kendi yazacağınız kodlarınız için daha fazla alan kalmış oluyor.
Nasıl Güncellenir?
1. Öncelikle Flasher başlığı altından Flasher’ı indirin
2. Firmware başlığı altından Firmware’yi indirin.
3. Node MCU’yu USB kablosuyla bilgisayarınıza bağlayın
4. Flasher’ı çalıştırın ve Operation isimli ilk sekmede Node MCU bağlı olan COM portunu seçin
5. Config isimli ikinci sekmede, INTERNAL://NODE MCU yazan ilk satırın yanında bulunan dişli/çark simgesine tıklayın ve indirdiğiniz firmware dosyasını bulup seçin
6. İlk sekmeye yani Operation’a geri dönüp Flash düğmesine basın. İşlem tamamlanana kadar hiçbir şey yapmayın ve NodeMCU bağlantısını kesmeyin. İşlem bittiğinde cihaz kullanıma hazır olacaktır.
Başlangıç İçin Kısa Öneriler
- İlk denemelerde sadece seri haberleşme ve LED blink testi yapın.
- Wi-Fi bağlantısını sabitlemeden bulut/MQTT katmanına geçmeyin.
- Güç kaynağı kararsızsa yeniden başlama (reset) sorunları yaşanabilir.
- Proje büyüdükçe pin planını en baştan tablo halinde tutun.
Lua Dilini Kullanmaksızın Arduino IDE ile NodeMCU Kodlamak
Öncelike böyle bir şeye neden ihtiyaç olsun onu anlatayım. C/C++ ve türevi diller ve bu türdeki dil yapılarına daha aşina olmaktayız. Tamam Lua betik dili de yaygın kullanılan bir dildir ama C/C++ türevleri daha baskındır. Bu sebeple baştan Lua öğrenmek ve dil yapısını öğrenmekle vakit kaybetmek yerine C/C++ ve Arduino IDE kullanarak Node MCU geliştirmek daha akılcı olacaktır. Lua biliyorsanız bu başlık pek sizlik olmayabilir.
• Arduino IDE‘yi çalıştırın. Türkçe arabirim ille kullandığınızı varsayarak devam ediyorum;
• Ana menüde sırasıyla tıklayın; Dosya > Tercihler
• Gelen pencerenin Ayarlar isimli sekmesinde Ek Devre Kartları Yöneticisi URL’leri, ayrıca kutucuğu ve en sağında simgesi var. Simgeye tıklayın
• Bir pencere daha açılacak. Bu penceredeki yazı alanında bir metin yoksa şu URL’yi http://arduino.esp8266.com/stable/package_esp8266com_index.json yapıştırın eğer başka URLler varsa yeni satır oluşturun yani enter tuşlayıp ya da virgül kullanarak yapıştırın.
• Tüm pencerelerde Tamam düğmelerine tıklayıp Arduino IDE’nin ana penceresine ulaşın
• Ana menüde sırasıyla tıklayın; Araçlar > Kart:… > Kart Yöneticisi
• Açılan pencerede esp8266 ile arama yapın ve sonuçlar arasında esp8266 by ESP8266 Community olanı kurun ve inme işlemleri için bekleyin.
• İşlem tamamlandığında Kart Yöneticisi penceresini kapatın
• Arduino IDE artık NodeMCU için hazır
NodeMCU’yu bilgisayara bağlamak ve kod yüklemek;
- NodeMCU’yu USB kablosuyla bilgisayarınıza bağlayın
- Ana menüde sırasıyla tıklayın; Araçlar > Kart:… > NodeMCU 0.9 (ESP-12 Module) – Not: Farklı sürümde NodeMCU kullanıyorsanız ona uygun bir seçim yapın
- Ana menüde sırasıyla tıklayın; Araçlar > Port > COM X – Not: NodeMCU’yu hangi Com portuna bağladıysanız listede onu seçin
- Artık hazır, kodlarınızı yazıp NodeMCU’ya gönderebilirsiniz. Bu aşamadan sonrası Arduino IDE kullanma becerisinise girmektedir ve bambaşka bir yazı gerekir bunun için.
Kodu yazdıktan sonra yükleme işlemini hızlandırmak için yükleme hızı adım adım arttırılabilir. Bunun için ana menüde sırasıyla tıklayın; Araçlar > Upload Speed > XXX
Örnek Kod:
LoLin ve Amica Nedir. Farkları Var Mıdır?
Aslında bu isimler üretici isimleridir. Hatta üç ana üretici vardır diyebiliriz. Bunlar da sırasıyla; Amica, DOIT/SmartArduino ve LoLin/WeMos. İlk nesil, ayrıca v0.9 ve v1 sürüm NodeMCU cihazlar ebat olarak genişledi ve Amica tarafından üretilmişti. Sonrasında gelen sürümler ise farklı üreticiler tarafından üretildi. Hatta aynı sürümdeki NodeMCU cihazların ebatları, farklı üreticiler sebebiyle farklı olabiliyor.
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.
