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:

AT komutlarını öncelikle tanımlamak gerekirse, Hayes ismindeki bir firma tarafından oluşturulan haberleşme standardıdır. ismini her komutun başında AT harflerinin bulunmasından alır ve özellikle GSM,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 ortamdaki kablosuz ağları bulup, bu ağlara bağlanabiliyor veya kendi kablosuz ağını kurabiliyor.

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

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

Bu bağlantıları yaptıktan sonra komut setlerini yollayabilmek için bir seri port uygulamasına ihtiyacımız var. Hem kullanım kolaylığı hem de daha sonraki uygulamalarda kullanacağımız için ben Arduino IDE‘si ü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. Eğer BaudRate’yi 115200’den farklı bir değerde girerseniz 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 local ağ kurulabilip, bir kaç esp’yi birbirine 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.

 

18 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.

  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.

      • Arkadaşın bahsettiği olayın aynısı bende de mevcut malesef. Kablosuz ağım 10 karakterden fazla değil ayrıca. Herhangi bir öneriniz var mı acaba?

        • Merhabalar. Eğer wifi adında veya şifresinde türkçe karakter varsa, ingilizce olcak şekilde değiştirmenizi öneririm.

    • 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. ARDUNODA BAŞKA BİR PROGRAM YÜKLÜ BU ETKİLERMİ AT HABERLEŞME İÇİN ARDUNOYA PROGRAM YÜKLEMEK GEREKİRMİ OK ALAMIYORUM

CEVAP VER