ESP8266–01 ve Arduino ile webserver

Bir seneden fazladır elimde bulunan ESP8266–01 wifi modülünü artık bir kullanayım diye elime aldım. İnternette bolca döküman oluşmuş aslında ama farklı yorumlar, bazılarında çalışıp bazılarında çalışmayan yöntemler mevcut. Ben de kendi kullandığım yöntemi yazıp ihtiyacı olana yardım etmek istedim. ESPyi kullanmanın iki türü var aslında, içerisinde bulunan firmware ile haberleşebilir ve bir şeyler yaptırabilirsiniz veya firmware değiştirerek doğrudan kendini programlayabilirsiniz. Ben burada öntanımlı halini kullanıp, AT komut setleriyle Arduino ile ESP’nin haberleşmesini sağlayacağım.


Öncelikle şunu söyleyebilirim ESP bildiğiniz gibi 3.3V ile çalışıyor fakat bende USB-UART dönüştürücü yoktu. Bu yüzden ufak bir aramayla bulduğum şu kaynakta gösterildiği gibi ben de doğrudan Arduino üzerinden bağlantı yaptım. Riskli ve tavisye edilmeyen bir şey ama herhangi bir dönüştürücüm olmadığı için denemeye değerdi. Bu yüzden bu yöntemi deneyen kişiler kendi risklerini göze almalıdır. Yaptığım bağlatı aşağıda görünen şekildeydi, bazılarında Rx-Tx ters olabiliyormuş sizde çalışmazsa bir de öyle deneyebilirsiniz.

ESP8266–01 ile Arduino bağlantısı

Bu bağlantıyı yaptıktan sonra Arduino’yu bilgisayara bağlayıp, Arduino’ya boş sketch attım. Sonra seri monitörü açıp alttan satır sonu ayarını Both NL & CR ve bağlantı hızını 115200 baudyapıp, AT yazıp yolladım ve OK cevabı geldi, yani bağlantı doğru ve haberleşme çalışıyordu. Daha sonra şuradan inceleyebileceğiniz diğer AT komutlarıyla Arduino IDE’sindeki seri monitör üzerinden bağlantı modunu ayarlama, kablosuz ağları tarama, seçilen ağa bağlanma, IP adresi görme gibi temel işlemleri denedim ve çalıştı. Yani ESP8266 çipi çalışıyor ve her şey düzgün.

ESP8266 ile Webserver

ESP ile Webserver kurup burada, Arduino’nun analog pini ile okuduğumuz potansiyometre değerini göstereceğiz. Potansiyometre yerine analog veya dijital pinleri kullanabileceğiniz herhangi bir sensör bağlayıp bunun değerini de okuyabilirsiniz. Bağlantıyı aşağıda görüldüğü gibi yaptım. Öncekinden farklı olarak Arduino’nun D7 ve D8 pinlerine ESP’nin Tx -Rx’ini bağlamam tamamen tercih ve yapılabilirlik (yazılımda software serial kullanmak) içindir yoksa yine D0 ve D1'i kullanmaya devam edebilirdik.

Pot — Arduino — ESP8266–01 bağlantısı

Bağlantıyı yaptıktan sonra bu linkte bulunan örnekten bolca yararlanarak yazdığım kod ile potansiyometre değerini webserverı üzerinde görebilirsiniz. Kod tam olarak bizim denemek için yukarıda serial monitörden gönderdiğimiz komutları otomatik olarak sırayla yolluyor ve internete bağlanıyor. Sonrasında ESP’ye webserver modunda çalışma komutunu verip Arduino analog pininden okuduğu pot değerlerini basit bir web arayüzüne html kodları ile yazdırıyor. İlgili koda buraya tıklayarak ulaşabilirsiniz. Çok farklı html kodları yollayarak siteyi biçimlendirebilir veri alış verişi yapabilirsiniz.

webserver çıktısı

Çok basit bir giriş oldu ama ESP’yi anlamak için bunu yapmak gerekiyordu.

Diğer kaynaklar:

Mit_Fab.cba

labradoc