Arkadaşlar Merhaba, daha önceki 6 bölümde, ESP8266 modülümüzü Arduino ile haberleştirmiş ve hep Arduino’yu kodlamıştık. Yani ESP modülümüzün kodlamasına hiç girmemiştik.

Fakat ESP8266’nın üzerinde bulunan işlemciyi hiç programlamamıştık. Modülümüzün üzerinde 32-bit CPU bir işlemci bulunmakta ve bu işlemcinin dışarı açılmış 2 tane GPIO pinleri bulunmaktadır(ESP8266-01 için geçerlidir, diğer modüllerde GPIO sayısı daha fazladır).

Bu yazımızda bahsettiğim 32bit işlemciyi Lua programlama dili ile programlayacağız ve GPIO pinini kullanacağız.

Bu işleme başlayabilmek için işlemcimizi Lua programlama diline uygun NodeMCU firmware’i ile güncellememiz gerekmektedir. Bu güncelleme 1. dersteki güncellemeden farklı olacaktır.

NOT: Güncelleme yapıldıktan sonra ESP8266 modülü tekrar eski yazılardaki gibi Arduino ile kullanılamıyor. Tekrar aynı şekilde kullanılması için, 1.yazıdaki güncellemenin yapılması gerekiyor

Kullanılacak araç ve gereçler:

FTDI ile ESP arasındaki bağlantıyı aşağıdaki gibi yapıyoruz.

ftdi ile esp baglantisi

Bağlantıyı yaptıktan sonra, güncellemeyi yapmak için NodeMCU-Flasher, güncelleme dosyası ve LUA dilinde programlama yapabilmek için IDE’yi indiriyoruz. IDE için 2 seçenek var. İkisi için de internette bolca örnek mevcut. Bunlardan birisi ve örneği yapacağımız, ESPlorer, diğeri ise LuaLoader.

NOT: ESPlorer programının çalışması için bilgisayarda Java olması gerekmektedir.

NodeMCU Flasher’ı indirdikten sonra açıyoruz, nodemcu-flasher-master\Win64\Release(benim bilgisayarım 64bit olduğu için bu şekilde 32bit için ayrı bir klasör mevcuttur) adresinden ESP8266Flasher.exe dosyasını açıyoruz ve karşımıza aşağıdaki gibi bir ekran geliyor.

nodemcu_flasher_baslangic

Bu ekrana geldikten sonra Config sekmesine tıklıyoruz, güncelleme dosyalarını indirmek için girdiğiniz siteden, ister float , ister integer başlıklı olanı indirip, programa ekliyoruz.
nodemcu_flasher_configBen güncellemeyi yaparken float olanı tercih ettim, siz istediğinizi kullanabilirsiniz.

Tekrar Operation menüsüne gelip Flash(F) butonuna basınca güncelleme başlıyor ve yaklaşık 30 saniye kadar devam ediyor.

NOT: ben bu güncellemeyi Arduino kullanarak yapmayı denediğimde gerekli gücü alamadığı için güncelleme başlamadı. Siz ek güç kaynağı kullanarak deneyebilirsiniz. Fakat, Arduino’nun başına gelecek herhangi bir sorundan sorumlu değilim 🙂 

Güncelleme bittikten sonra ESP modülümüz NodeMCU ile programlanmaya hazır durumdadır.

ESPloerer programını açıyoruz ve karşımıza şu şekilde bir ekran geliyor.

esploerer

Programda sol üstten dosya işlemlerini halledebiliyoruz, sol alttan yazdığımız kodu ESP’ye atarken ki kullandığımız butonlar bulunuyor. Sol kısımda ise kodu yazıyoruz. Sağ kısımda ise port bağlantısını yaptığımız kısım ve terminal bulunuyor.

Sağ taraftaki menüden ESP’nin bağlı olduğu portu seçip OPEN’a basıyoruz ve ESP bağlanmış oluyor. Bu işlem Arduino’da port seçmek ile aynı mantık. Portu seçtikten sonra aşağıdaki devreyi kuruyoruz.

esp-ftdi

Üstteki devrenin ilk baştaki devreden bir kaç tane farkı bulunmaktadır. Bunlara dikkat ederek kurmanız gerekmektedir. Devreyi kurduktan sonra aşağıdaki kodu ESPlorer’in sol kısmına yazıp alttaki menüden Save to ESP butonuna tıklıyoruz ve bu şekilde kod ESP’ye yüklenmiş oluyor.

lighton=0
pin=4
gpio.mode(pin,gpio.OUTPUT)
tmr.alarm(1,2000,1,function()
    if lighton==0 then
        lighton=1
        gpio.write(pin,gpio.HIGH)
    else
        lighton=0
         gpio.write(pin,gpio.LOW)
    end
end)

Bu işlem ile elimize kod olan ve tek başına kullanılmaya hazır bir ESP modül geçiyor. Artık led devresini kurup ESP’ye güç verdiğimizde 2 saniyede bir 4. pinde yanıp söndüğünü göreceğiz. ESP8266’da 4. pin GPIO0’a denk gelmekte. Yani devreyi aşağıdaki gibi kurduğumuzda kodumuz sorunsuz çalışacaktır.

NOT: 3.3Volt’u FTDI  veya Arduıno’dan alabilirsiniz.

esp_led_devresi

 

 

6 Yorumlar

  1. peki bu dilde iki esp kullanıp birinden dht sensoruyle aldıgımız veriyi digerine kablosuz olarak atıp mesela onda bulunan bir led i yakmamız mumkun mu arduino olmadan =? galiba esp lerden birini ap digerini sta olarak kullanmamız lazım ama gerisini bilmiyorum mesela dht yi esp ye baglayıp nasıl sıcaklık okutcaz? yada digerinin bu veriyi okuyup ledi yakmasını nasıl saglarız?

  2. esp leri bulunduğunuz networke bağlayın, sonra birine server diğerine client kodlarını yazıp, bu bahsettiğiniz basit uygulamayı yapabilirsiniz. Ben UDP örneklerini öneririm. Veri göndermesi çok basit, server’in açık olmasına da gerek yok. Havaya gönderip, eğer o IP ağda varsa ilgili porttan dinliyorsa (her on saniyede gelen mesajı) okuyacak ve işlem yapacaktır.

  3. Server kullanmadan 2 nodemcuyu nasıl haberleştirebilirim? birinin eeproöumda ki bilgi değişince diğerinin de değişmesini istiyorum. bunun için nodemcu mu yoksa başka bir kart mı önerirsiniz?

CEVAP VER