back to top

ESP8266 Dersleri 3: AT Komutlarının Kullanılması

Merhaba arkadaşlar. Bu yazıda ESP modülümüz ile Arduino’muzu haberleştirmede kullandığımız AT komutlardan bahsedeceğim.

Bu uygulamada kullanacağımız malzemeler:

Öncelikle AT komutlarını tanımlamak gerekirse, Hayes isimli bir firma tarafından oluşturulan UART haberleşmede kullanılan standart bir komut setidir. İsmini her komutun başında AT harflerinin bulunmasından alır ve özellikle GSM modülleri, fax, modem, Bluetooth gibi haberleşme birimlerinde kullanılır. Örneğin telefonunuz ile bir arama yapacağınızda telefonunuzun işlemcisi, GSM modülüne bir AT komutu yollar ve arama başlar.

Bu AT komutları yardımı ile ESP modülümüz de çeşitli fonksiyonlarını gerçekleştirebiliyor; örneğin ortamdaki kablosuz ağları bulup, bu ağlara bağlanabiliyor veya kendi kablosuz ağını kurabiliyor.

Doğrudan seri port üzerinden AT komutlarını kullanmak için Arduino ve ESP arasında aşağıdaki bağlantının yapılması gerekmektedir.

ESP8266 ile Thing Speak’e Sıcaklık Yollama_bb

Bu bağlantıları yaptıktan sonra komutları gönderebilmek için bilgisayarımızda çalışan bir seri port terminaline ihtiyacımız var. Hem kullanım kolaylığı açısından, hem de daha sonraki uygulamalarda da kullanacağımız için ben Arduino IDE içerisinde yer alan seri port ekranı üzerinden devam edeceğim.

Komutları kullanmadan önce Arduino IDE’sinin serial port ekranında çeşitli ayarlar yapmamız gerekmekte. Yapılacak ayarlar aşağıdaki resimdeki gibi olmalıdır. Baud rate ayarını 115200’den farklı bir değerde seçerseniz modül ile haberleşmede sorun çıkacaktır. Modülünüzü güncellemediyseniz buradan güncelleme işlemini de yapabilirsiniz.

esp8266 serial port ekrani

Bu ayarlar ile beraber artık komutları kullanmaya başlayabiliriz.

Serial port ekranının komut satırına AT yazdığımızda ESP modülü bize OK mesajı ile geri dönecektir. OK mesajı modül ile iletişimin sağlandığı anlamına gelmektedir.

Modül ile iletişimi sağladığımıza göre diğer komutlara geçebiliriz.

AT+CWMODE? komutu ile modülümüzü hangi modda kullandığımızı öğrenebiliriz. Eğer modül bize 1,2 veya 3 geri dönüşü yapacaktır. 1 ile dönerse modülü STA modunda yani başka ağlara bağlanabilecek şekilde kullanıyoruz anlamına gelmektedir. 2 ile dönerse modülümüz access point (AP) olarak kullanılabilmektedir. Bu mod ile yerel ağ kurulabilip, diğer WiFi cihazları modülümüze bağlayabiliriz. Modül bize 3 ile dönerse hem STA hem de AP olarak çalışmaktadır.

Modülü STA moduna sokmak için AT+CWMODE=1 komutunu vermemiz gerekmektedir. Diğer modlar için de ilgili sayıyı yazmak yeterli olacaktır. Eğer ortamdaki ağlara bağlanmak istiyorsak STA modunda çalıştırmamız gerekiyor.

AT+CWLAP 

Bu komutu kullandığımızda ortamdaki tüm ağlar taranıp listelenmiş bir şekilde karşımıza çıkıyor. Şimdi bu ağlardan bir tanesine bağlanmayı deneyelim.

wifi adresleri

Bir ağa bağlanmak için AT+CWJAP=”wifi-adı”,”wifi-sifresi” şeklinde bir komut kullanıyoruz. Örnek olarak ismi bartu şifresi de robotistan olan bir ağa bağlanmak için AT+CWJAP=”bartu”,”robotistan” yazmamız yeterli olacaktır. Eğer modülümüz WiFi ağına bağlanırsa;

WIFI CONNECTED
WIFI GOT IP
OK 

 şeklinde geri dönüş yapacaktır.

Bu komutların dışında, AT+CWQAP komutu ile WiFi bağlantısını sonlandırabilir, AT+CIFSR komutu ile IP adresinizi öğrenebilirsiniz. Modül ile ilgili tüm komutlara buradan ulaşabilirsiniz.

Son Çıkan Yazılar

58 YORUMLAR

  1. Merhaba,
    Bağlantıyı aynı şekilde yapmama rağmen serial port üzerinden haberleşme yapamıyorum. Önceki yazınızdaki anlatımınızdaki gibi güncellemeyi de yaptım ama güncellemenin olup olmadığndan da emin değilim.

    • Merhaba Muhammed Bey,

      Güncellemeyi yaparken Rx ve Tx bacaklarını doğru taktığınızdan emin olun. Güncellemeyi yaparken Arduino güçte ise gücü söküp tekrar takın böylece kendini güncelleme moduna sokacaktır. Haberleşmeyi yapamamanızın nedeni de yine rx-tx bacakları veya BaudRate değerinin hatalı ayarlanmış olması olabilir.

      • ESP8266 bağlantılarını yapıp AT komutları ile haberleşmiştim ama sonrasında internet üzerinden LED yakma projesini yapmaya çalışırken bir türlü haberleşme sağlanamadı. Sonra tekrar AT komutlarını çalıştırmayı deneyince anlamsız karakterler çıkmaya başladı. AT yazınca OK yanıtını vermemeye başladı. Sonra yeniden anlamsız karakterler çıkmaya başlayınca baudrate i yeniden değiştirdim. Bu sefer
        “Fatal exception (0):
        epc1=0x40100003, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000” şeklinde bir hata almaya başladım. Bunu nasıl düzeltebilirim?

  2. Cevabınız için teşekkür ederim. Tüm bağlantılar rx-tx hepsi doğru bağlı ve baudrate değeri de doğru olmasına ragmen haberleşme olmuyor. ESP’nin ışığı yanıyor, güncelleme işlemi için de gücü kesip tekrar bağladım tekrar denedim işlem tamamlanmıyor.

    • OK geridönüşünü alıyorsanız, haberleşmeyi yapıyorsunuz demektir. “AT+CWLAP?” yazdığınızda bir geri dönüş olmuyor mu? Seri monitörde ESP’nin gördüğü ağların listelenmesi gerekiyor.

  3. İyi günler ben modül ile haberleşme yapabiliyorum ama ağa bağlanmak istediğimde modül resetleniyor şu şekilde bir hata alıyorum;
    ets Jan 8 2013,rst cause:4, boot mode:(3,0)

    wdt reset
    load 0x40100000, len 612, room 16
    tail 4
    chksum 0x12
    load 0x3ffe8000, len 788, room 4
    tail 0
    chksum 0x50
    load 0x3ffe8314, len 264, room 8
    tail 0
    chksum 0x4a
    csum 0x4a

    2nd boot version : 1.1
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size : 4Mbit
    jump to run user1

    sl
    ready

    bu hatadan sonra modül ile bağlantı kopuyor ve gücü kesip sonra tekrar vermeden bağlantı kurulamıyor. ne yapmam lazım?

  4. OK
    AT+CWMODE=?

    +CWMODE:(1-3)

    OK
    AT+CWMODE=1

    OK
    AT+CWMODE=1

    OK
    AT+CWMODE=1

    OK
    AT+CWMODE=1

    OK
    AT+CWMODE=1

    OK
    AT+CWLAP

    +CWLAP:(3,”TP-LINK_C2CE”,-82,”ec:08:6b:6c:c2:ce”,5)
    +CWLAP:(4,”MUCAHIT”,-56,”58:2a:f7:41:b4:fd”,5)
    +CWLAP:(3,”NetMASTER Uydunet-0511″,-69,”00:1c:7b:cc:4b:f2″,6)
    +CWLAP:(3,”ZyXEL3372cV5″,-68,”c8:6c:87:45:3d:58″,6)
    +CWLAP:(3,”Menekse”,-89,”f8:3d:ff:8f:ab:15″,9)
    +CWLAP:(4,”HALILU”,-77,”dc:ee:06:3a:bc:dc”,9)
    +CWLAP:(3,”DEDEOGLU”,-50,”fc:4a:e9:46:fd:67″,11)

    OK
    AT+CWJAP=”wifi ismini giriyorum”,”sifreyi giriyorum”

    +CWJAP:3

    FAIL

    sonuç bu oluyor diğer kısımlarda hiçbir sorun yok bplanma kısmı hariç yardımcı olabilirseniz çok memnun olurum

    • Bu hata, ESP8266 modülünün firmware’inden kaynaklı bir bug olabilir. Kablosuz ağınızın adı 10 karakterden uzun ise bu şekilde bir hata almanız olasıdır. Ağınıza farklı bir isim vererek bağlanmayı deneyebilirsiniz.

    • Orada şu tırnakları(” ”) bulunan ağlardaki tırnakları kopyalayın oluyor virgülüde aynı şekilde kopyalayıp komut satırındaki ” ” tırnaklar ile değiştirin. sonra OK geri dönüşü alırsınız

  5. iyi günler şimdi arduino uno yu esp 07 modülüme bağladım.
    uno esp07
    rx rx
    tx tx
    3.3v vcc
    3.3v En
    gnd gnd
    gnd GPIO15

    bu bağlantıdan sonra arduino ide yi açtım.Kart hala uno seçili programcı rastgele ve 115200 baud ta nl ve rn seçili iken serial ekranında
    Ai Thinker tec…
    ready yazdığını görüyorum.Bunu her vcc yi kesip tekrar verdiğimde görüyorum.
    ama AT KOMUTUNA bir cevap alamıyorum.Yardım lütfen esp07 modülüm var

  6. Bağlantı ve herseyi aynısı gibi yaptım at ok ile dönmüyor daha önce bir kaç kez bu uygulmayı yapmıstım sorunsuz calısmıstı.Arduino sürümü 1.8.0 ondan olurmu board kısmında herhangi bir seçim mi yapacagım yoksa bana yardımcı olabilir misiniz?

  7. Fatal exception (2):
    epc1=0x3ffe839c, epc2=0x00000000, epc3=0x00000000, excvaddr=0x3ffe839c, depc=0x00000000
    yazıyor sürekli seriportta neden olabilir?

  8. Merhaba,
    ESP8266’yı güncelliyorum, ve yeşil OK işaretini alıyorum.
    Ancak hiçbir şekilde AT komutuna OK dönmüyor.
    VCC – 3.3V
    CHPD – 3.3V
    GND – GND
    RX-TX, TX-RX (bunu diğer şekilde de denedim)
    NL&CR – 115200
    ESP8266 üzerinde sadece kırmızı Led yanıyor

    Neye dikkat etmeliyim?
    Teşekkürler

  9. Merhabalar hocam ben güncellemeyi yaptım fakat at komutuna ok diye bir cevap alamadım.Bozuk bir yazı ile karşılaştım.
    At +gmr komutunu girince ⸮⸮H⸮⸮⸮⸮1t böyle bir ifade ile karşılaştım. Sebebini biliyor musunuz ?
    ⸮HΌ⸮⸮⸮⸮

    ⸮⸮H
    H⸮(⸮⸮⸮⸮1t
    ⸮H⸮⸮ ⸮⸮⸮H.@ (H5

  10. iyi günler ben bunu arduino uno ile denedim esp modülüm çok iyi çalıştı. aynı aşamaları arduino mega ile denedim hiçbir komuta cevap vermiyor ne yapmam gerekiyor?

    • UNO ile Nano birebir aynı işlemciye sahiptir, teorik olarak çalışması gerekir. Aldığınız hatayı yazabilirseniz daha kolay yardımcı olmaya çalışırız.

      • bağlantıyı birebir aynı şekilde yapmama rağmen at komutlarına herhangi bir yanıt alamıyorum. söküp aynı şekilde uno’ya bağlıyorum onda çalışıyor. bu arada iki farklı nano’da denedim.

  11. Merhaba,arduino ve esp8266 haberleşmesini sağlayamadım.Öncelikle firmware güncellemesi yaptım.En son yeşil tık yandı.sonra com dan AT komutu gönderim ama hiçbir cevap vermiyor.Tüm komutları denedim.Ama hiçbiri yanıt vermiyor.arduinoyu boş kodla çalıştırdım ,resetledim herşeyi denedim ,Ama olmuyor neden olabilir acaba ?

    • Baud rate’i değiştirmeyi denediniz mi? Ayrıca modülü programlama moduna sokmak için GPIO0 pinini low’a çekmeniz gereklidir. AT modunu bu şekilde bağlantı yapıldığında kullanamazsınız.

  12. merhaba, ders 2 de thinspeak e sıcaklık yollama örneğini anlatıldığı yapıyorum değerleri alıyorum yalnız bu bağlantılarla AT konutlarına cevap alamıyorum boş örnek yükledim. com ekranına AT komutunu yazıyorum komut ne görünüyor ne de cevap geliyor. baud rate doğru güncelleme tamam. fakat aynı bağlantı reset ile gnd yi birleştirip rx i rx e tx i de tx e bağlayınca AT komutları çalışıyor yalnız bu şekilde de thingspeak örneği çalışmıyor. bişeyleri yanlışlıkla doğru ya da doğruyu yanlış mı yapıyorum? teşekkür ederim.

    • Kendi yanlışımı kendim düzelteyim: ders 2 deki bağlantılarla AT komutları çalışmıyor demiştim. ders 2 ile ders 3 teki rx ve tx bağlantıları farklıymış, dikkat etmemişim. düzeltince AT komutlarına cevap alabildim.

  13. ** AT KOMUTUNA CEVAP ALAMAYANLAR 115200 Seçtiğimiz Baud Rate solunda ki “satır sonu” kısmını “NL ve CR ile birlikte” seçip denesinler. Bende AT komutuna cevap alamıyordum bunu denedim oldu. Ne olduğu konusunda bilgisi olan bilgilendirirse güzel olur.. İyi çalışmalar..

  14. MERHABA Serial portu açtığımda arduino bana anlamsız karakterler gönderiyor” {⸮⸮og’cc⸮l {d{⸮⸮⸮⸮⸮⸮l⸮cd⸮s#lcd⸮s{l” sebebi ne olabilir?
    baud rate’i ayarladım

  15. Arkadaşlar merhaba,
    bir türlü AT komutuna OK dönüşünü alamıyorum. esp yi güncelledim ama cevap alamıyorum AT komutuna. lütfen yardımcı olabilir misiniz?

    • SEN NASIL BİR KRALSIN ALLAH NE MURADIN VARSA VERSİN. 2 GÜNDÜR UĞRAŞIYORUM HERŞEYİ DENEDİM ÇÖZEMEDİM HİÇBİR ŞEKİLDE AKLIMIN UCUNA DAHİ GELMEDİ FİRMWARENİN YANLIŞ OLACAĞI ALLAH SENDEN BİN KEZ RAZI OLSUN. HOCAM LİNKİ DENEYİN ÇALIŞIYOR BURADA ANLATTIĞINIZ ÇALIŞMIYOR LÜTFEN YAZINIZI GÜNCELLEYİNİZ ROBOTİSTAN EKİBİ RİCA EDİYORUM

  16. Merhaba, ben Arduino Uno ile hc06 bluetooth modülü kullanarak nabız ölme uygulaması üzerinde çalışmaktayım. Ancak hc06 buetooth modülü üzerindeki kırmızı ışık yanmıyor bu sebeple cihaz eşleşmesi de sağlanamıyor. Fakat bluetooth modülünde herhangi bir sıkıntı yok, farklı devrelerde çalışıyor. Önceleri normal bir şekilde çalışıyordu sonradan böyle bir durum oluştu. Yardımcı olursanız sevinirim, teşekkür ederim.

  17. Merhaba.
    Bir önceki yazınızda anlattığınız gibi güncelleme yükledim at komutları çalışmıyor.
    Güncelleme yüklemeden önce at komutları çalışıyordu. Yardımcı olabilir misiniz?

  18. ESP8266 hassas ve nazlıdır. öncelikle enerji kısmında çok hassastır.gördüğüm kadarı ile birçok kişi arduino nun 3v kısmından direkt enerji alıyorsunuz. ilk yanlış burdur. ardunio 3v beslemesi dsp için yetersizdir. 5v ise fazladır esp nizi yakarsınız çöp edersiniz.
    diğer sorun baud rate olayıdır. baud rate’ yüksek hızlarda ilken esp saçmalıyor.
    bir diğeri de güncellemelere dikkat edin.
    bir çok sorun düzelecektir.

  19. Bu şekilde bağlantıyı yapınca port bölümünde port gözükmüyor. Arduino nano kullanıyorum. Farklı arduinolar ve esp8266’larda denedim. Yardımcı olabilir misiniz? Ücretli destek dahi olabilir.

  20. Lütfen yardımcı olun Firmware güncellemesini yaptım oldu arduinoya boş kodu yüklemiştim daha sonra baund rate’yi de ayarladım nl ve cr ile birlikteyide yaptım . o değişik yazılar çıktıktan sonra ready mesajını alamıyorum bütün bağlantılar doğru eminim AT komutları çalışmıyor hiç birşey çıkmıyor. lütfen yardımcı olunnnn 🙁

  21. Bir makinenin sıcaklık sensörü pt100 dür. Bu sıcaklık sensörünün bize vermiş olduğu bilgileri oradan alıp esp8266 ve arduino ile web sitesine atmak istiyorum. Mümkün mü bu modül ile yapmak

  22. 23:47:10.011 -> ets Jan 8 2013,rst cause:4, boot mode:(3,0)
    23:47:10.011 ->
    23:47:10.011 -> wdt reset
    23:47:10.045 -> load 0x40100000, len 612, room 16
    23:47:10.045 -> tail 4
    23:47:10.045 -> chksum 0x12
    23:47:10.045 -> load 0x3ffe8000, len 788, room 4
    23:47:10.045 -> tail 0
    23:47:10.045 -> chksum 0x50
    23:47:10.045 -> load 0x3ffe8314, len 264, room 8
    23:47:10.045 -> tail 0
    23:47:10.045 -> chksum 0x4a
    23:47:10.045 -> csum 0x4a
    23:47:10.045 ->
    23:47:10.045 -> 2nd boot version : 1.1
    23:47:10.045 -> SPI Speed : 40MHz
    23:47:10.045 -> SPI Mode : QIO
    23:47:10.045 -> SPI Flash Size : 4Mbit
    23:47:10.045 -> jump to run user1
    23:47:10.045 ->
    23:47:10.113 -> Fatal exception (9):
    23:47:10.113 -> epc1=0x4021b8a0, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000043, depc=0x00000000
    23:47:10.113 -> Fatal exception (0):
    23:47:10.113 -> epc1=0x4025fe07, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000043, depc=0x00000000
    23:47:10.113 -> Fatal exception (0):
    23:47:10.113 -> epc1=0x4025fe04, epc2=0x00000000, epc3=0x00000000, excvaddr

    Tüm bağlantılar doğru, Arduino UNO kullanıyorum, içerisinde Blink kodu dönüyor ancak ESP8266 modülümün üzerinde yer alan mavi ışığı sadece arduinoya giden gücü kesip tekrar bağladığım an anlık olarak yanıyor ancak kırmızı led sürekli açık ve hep bu hatayı veriyor. Yardımcı olursanız sevinirim

  23. Benimkinde 9600 baudrate ve NR ve CL birlikte seçeneklerinde oldu. Eğer sizinki de hata veriyorsa bunları deneyebilirsiniz.

  24. Çalışmıyor ise Firmware güncellemesini buradan yapın. http://www.gokhanaltan.com/index.php/2017/03/21/esp8266-firmware-guncellemesi/
    Ben aldığım hataları yazacağım. Sorunla karşılaşanlar için belki yardımı olur. AT+CWLAP yazdıktan sonra OK mesajı dışında herhangi bir ağ algılanmadı. AT+CWJAP=”ağ adı”, “ağ şifresi” girdikten sonra da bağlantı gerçekleştirilemedi. Attığım linkteki uygulamada default butonu var. Oraya basıp ayarlamaları varsayılan değere getirdikten sonra tekrar yüklemeyi denedim. AT+CWLAP komutu bunu gerçekleştirdikten sonra çalıştı. AT+CWJAP komutu bağlandı gösterip WIFI GOT IP mesajı gelmeden bağlantı geri kesildi.
    AT+RESOTRE
    AT+GMR
    AT+CWMODE=3 (ya da 1)
    AT+CWLAP
    komutlarını tekrar yazdıktan sonra ağ tekrar bağlanabildim.
    https://bbs.espressif.com/viewtopic.php?t=2275

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz