Arduino Alternatifi Geliştirme Kartları: NodeMCU

ModeMCU Nedir?

NodeMCU; madeni paradan biraz daha büyük boyutta, minik bir elektronik devredir. Açık kaynaktır, ucuzdur ve yeteneklidir. Düşük gerilimli enerjiyle çalışır. Üzerinde çok sayıda bağlantı noktaları vardır. Bu bağlantı noktalarını kullanarak bağlayacağınız başka elektonik bileşenleri yönetebilirsiniz. Barındırığı WiFi sayesinde kolayca IOT yani internet şeyleri olarak bilinen cihazlar yapmanıza 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.

nodeMCU, Arduino Alternatifi Geliştirme Kartları: NodeMCU

Şöyle ki; bir mikro çip olan NodeMCU; ESP8266 türü bir mikro çip setinin üzerinde bulunur. Boyutları bir madeni para kadar olan NodeMCU; içinde bir yazılım bulundurur. Bu yazılım sayesinde de akıllı hale gelmiş olur, yani işlem yapabilir hale gelir. NodeMCU; 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 NodeMCU 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. Akıllı ev sistemleri denilen ve yeni gelişip yayılan bu teknolojilerde de bir NodeMCU kontrol ünitesi yer alıyor. NodeMCU‘lar, 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.

Ardinuno Benzeri Donanımsal G/Ç (I/O)

Node MCU, 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?

Öncelikle Node MCU’ya eş-değerdeki Arduino’larda WiFi mevcut değil. Bu tür Arduino’lara WiFi yeteneği kazandırmak için ek olarak WiFi modülü almak gerekiyor. Sonra da kod yazarak modülle iletişim kurmanız gerekiyor. Gördüğünüz gibi hem modül almanız gerekiyor hem de iletişim kurmak için fazladan kod yazmanız gerekiyor. Bu ise IOT yani internet şeyleri kavramına anlamsız bir yük. Fakat yeni çıkan klon arduino kartlarına da WiFi modülü eklendi bu dizinin ikinci bölümünde bahsettiğim kartı inceleyeceğiz.

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.

Mesela HTML dokümanı hazır olduğunda aşağıda bulunan kodun çalıştırılması gibi;

 

 jQuery(document).ready (

   fonksiyon(){

      console.log (“devre yakan”);

   }

);

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.

NodeMCU Flasher Nedir? Ne İçin Kullanılır?

NodeMCU’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 NodeMCU içerisindeki temel ve minik yazılımın güncellemesi NodeMCU 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.

NodeMCU 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 NodeMCU 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 NodeMCU’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.

NodeMCU Nasıl Güncellenir?

1. Öncelikle Flasher başlığı altından Flasher’ı indirin

2. Firmware başlığı altından Firmware’yi indirin.

3. NodeMCU’yu USB kablosuyla bilgisayarınıza bağlayın

4. Flasher’ı çalıştırın ve Operation isimli ilk sekmede NodeMCU bağlı olan COM portunu seçin

5. Config isimli ikinci sekmede, INTERNAL://NODEMCU 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 gerip dönüp Flash düğmesine basın ve tamamlanana kadar hiç bir şey yapmayın, NodeMCU bağlantısını kesmeyin. İşlem bitince sizi uyaracak ve artık kullanmaya hazır hala gelecek.

 

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 hemen yapıştırın eğer başka URLler varsa yeni satıra oluşturun yani enter tuşlayıp 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:

 void setup() {

  pinMode(LED_PIN, OUTPUT);

}

// elektrik bağlantısı kesilene kadar sonsuza kadar çağrılır

void loop() {

  digitalWrite(LED_PIN, HIGH);   // LED’i yak yani 1 numaralı pin’e 5 volt ver

  delay(1000);              // biraz bekle

  digitalWrite(LED_PIN, LOW);    // LED’i söndür yani 1 numaralı pin’e 0 volt ver

  delay(1000);              // biraz bekle

}

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.