LOADING

Type to search

Share

Gömülü sistemlere ilk adımı attıysanız sanıyorum zevk almaya başlamışsınızdır. Bu sonsuz hazzın arkasını beslemezseniz içinizi yemeye başlar. İşte bir sonra ki adımda ne yapacağım diye düşünüyorsanız ESP 8266 serisi çipler ile uzaktan da olsa tanışmışsınızdır.  ESP8266 serisi çipler, wifi ile internete çıkabilen hem boyut olarak küçük hemde fiyat olarak ucuz çip kartlarıdır. Günümüzde internete bağlanamayan neredeyse hiç bir cihaz kalmadı. Buzdolabı, çamaşır makinesi, evler, televizyonlar… Aklınıza gelebilecek hemen hemen her cihaz arıtk internete bağlanabiliyor. Sanırım bir tek tencere ve ütüler kaldı 🙂

Esp8266 ile yapabileceğiniz bir çok şey mevcut. Tabii Türkçe kaynak azlığından dolayı muhtemelen Esp8266 nasıl programlanır, Esp8266 nasıl kullanılır gibi kelimeler ile sadece ingilizce klavuzlara ve yazılara ulaşıyorsunuz. Dolayısıyla nasıl başlanır, nasıl proje üretilir kilit noktasını geçemediniz.

Geçen yılın başında aklımda ki bir proje için Esp8266 serisi ile bir cihaz tasarlamak gelmişti. Fakat gerek iş yoğunluğu, gerek zamansızlık, gerek yorgunluk gerekse Türkiye`nin içinde bulunduğu özel durumlardan ötürü bir türlü elim gitmedi projeye. Bir diğer nedenim de, böyle bir projeyi tek başıma yapmaktansa arkamda bir destek ile ilerlemeyi çok istememe rağmen bir türlü güvenimin kalmamış olması bu gecikmeye neden oldu. Malum ki ülkemizde Tübat, Kosgeb gibi kurumlar saçma sapan projelere destek verirken, ülkemize katma değer katacak projelere malesef her türlü engeli koyuyorlar. Beni az çok tanıdıysanız ne iş yaptığımı, bir yandan iş adamı olduğumu biliyorsunuzdur. Bu sebeple ülkede ki işleyişe, neyin nasıl gittiğine yada gidemediğine dair her zaman izlenimlerim oldu.

Hal böyle olunca da pek bir adım atma taraftarı olmadım. Fakat son dönemlerde ki aşırı durgunluklar, ekonomik hareketsizlik ve benzeri öğeler beni evde “katma değer üretecek” projelere yöneltti ve tekrardan kapattığım defterleri açtım. Ve şu anda projem için Esp8266 ile çalışmaya başladım. Bir yandan da yetersiz kaynaklardan ötürü blogumda böyle bir yazıya yer verme kararı aldım. Haydi başlayalım;

Esp8266 Nedir?

Esp8266

ESP8266 E-01 modülünün örnek dış görünümü.

ESP8266 ve ESP8266 üzerinde barındıran geliştirme kartları gerçekten küçük bir devrim niteliğindeler. ESP8266’nın üretiliş amacı öncelikle Arduino’yu WiFi üzerinden internete bağlamaktı. Xbee, Ethernet shield gibi pahalı parçalar kullanmak yerine 2-3 Dolar maliyetinde olan bu modülü kullanmak istediler. Bana kalırsa, bu haliyle bile çok başarılı bir ürün olurdu. ESP8266 Wi-Fi modülü piyasadaki en uygun Wi-Fi modüllerindendir ve tüm Arduino projelerinizde kullanabilirsiniz. Arduino ile haberleşmeyi seri port üzerinden yapıyor. Bu nedenle Tx ve Rx pinlerini kullanarak, Serial ile haberleşme yapabilirsiniz. Modül ile olan bağlantınızı debug etmek için USB-Serial kartı kullanabilirsiniz. Ancak test modunda Serial Monitor kullanmak isterseniz ESP8266 seri bağlantısını SoftwareSerial ile de yapabilirsiniz. En önemli avantajları ise birincisi fiyatının diğer modüllere göre ucuz olması. Diğeri ise Arduino IDE üzerinden tıpkı arduino programlar gibi USB-TTL serial dönüştürücü ile programlanabilmesidir. Birinci kullanım şekli UART seri haberleşme protokolü üzerinden RX-TX pinleri ile arduino veya başka kartları wi-fi ile internete bağlar. Bu sayede internet üzerinden kontrollü devreler oluşturmamıza olanak sağlar. İkinci kullanım şeklinde ise Arduino IDE’ye ESP8266 kütüphanelerini yükleyerek, bu kartı programlayabilirsiniz. Bu kullanım şeklinde ise programlandıktan sonra başka hiç bir şeye ihtiyaç duymadan internet üzerinden kontrol edilen projeler yapabilirsiniz.

Esp8266 Pin Dağılımı

ESP-01 Pin Dağılımı ve Kart Şeması

ESP8266 modülünün versiyonlarına göre pin dağılımları değişmektedir. Fakat yukarıda gördüğünüz ESP-01 modülü için pin dağılımı URXD, GPIO0, GPIO1, GND, VCC, RST, CH_PD, UTXD olarak görülmektedir. Bu kısaltmaları açıklamıyorum, buraya kadar geldiyseniz zaten neyin ne olduğunu biliyorsunuzdur. Eğer bilmiyorsanız yakında bununla ilgili de bir yazı yazacağım 🙂 Takipte kalın.

Bu pin dağılımı ile ESP8266 modülünü ister başka bir MCU ile haberleştirebilir, istersenizde içinde bulunan kendi MCU`su üzerinden iletişim kurarak fiziksel dünya`ya müdahale edebilirsiniz.  Bu modüllerin versiyonlarına göre GPIO port sayısı değişmekte ve özellikleri de bu modellere göre değişmektedir. Aşağıda bir kıyaslama tablosu bırakıyorum, göz gezdirmenizde fayda var. Hangi kart işinizi görüyorsa o kartı kullanabilirsiniz.

ESP Modelleri Özellik Kıyaslama Tablosu

ESP8266 Kullanmaya Başlamak

NodeMCU ESP8266 Modülü

Sabırsızlıka gelmek istediğiniz nokta. Fakat Arduino`ya aşinaysanız bu noktaya gelmeden önce bilmeniz gereken bir kaç nokta var. ESP serisini Arduino ile programlamak isterseniz öyle USB kablosunu karta takayım, upload`a basayım ile iş bitmiyor. Muhtemelen elinizde ki ESP serisi boş olarak gelmiş olacak. Dolayısıyla programlamak için önce bir nevi BIOS yüklemesi yapmanız gerekiyor. Yani Firmware ile Flash`ına yazmanız lazım. Arduino UNO da ki Bootloader gibi düşünün. İşimizi daha da kolaylaştırmak için ESP8266’yı Nodemcu aygıt yazılımı ile güncellemeyi inceleyeceğiz. Daha önce dediğim gibi, ESP8266 modüllerin pin yapısı ve boyutu sebebiyle direkt programlamanıza izin veren kolay bağlantılar içermiyor. Fakat NodeMCU ve WeMos ile bu işlemler çok daha hızlandı. Direk micro usb ile modülü Arduino ile programlayabilirsiniz. Ayrıca NodeMCU ile ESP8266 kodlamaya başlarsanız hem pin yapısı hemde uyumluluğu sebebiyle çok tatlı ve kolay olduğunu fark edeceksiniz.

Bu noktada birkaç hatırlatma yapmak istiyorum. Arduino üzerinde bulunan TX, RX pinleri lojik 1 ile çalıştığından dolayı 5V ESP8266’ya zarar verebilir. Arduino üzerinde bulunan 3.3 Volt pininin verebildiği akım miktarı ESP8266 için teorik olarak yeterli olmadığından dolayı ttl üzerindeki 3.3 Volt çıkışını kullanıyoruz.

ESP8266 Firmware Güncelleme

ESP8266 FTDI Bağlantı Şeması

Yukarıda ki bağlantı şemasına uygun FTDI bağlantınızı yaptıysanız devam edelim, yazılım yüklerken GPIO 0 (sıfır) pininin toprağa gittiğinden emin olun. Normal kullanımda bu bağlantı yapılmıyor. Aşağıdaki link üzerinden Nodemcu’nun son yayınlanmış olan sürümünü indirmeniz gerekiyor. Integer versiyonunu kullanabilirsiniz.

https://github.com/nodemcu/nodemcu-firmware/releases

Daha sonra bu aygıt yazılımını cihaza yüklemek için gerekli aracı aşağıdaki linkten edinmeniz gerekiyor.

https://github.com/nodemcu/nodemcu-flasher

Burada Config altından, ayarlar simgesine tıklayarak indirdiğiniz son Nodemcu relase’i seçmeniz gerekiyor. Daha sonra Operation sayfasına gelerek yükleme işlemini başlatabilirsiniz. Bu işlem esnasında Mac adresleri, firmware flasher dosyasının bulunduğu klasörde Config içine kayıt ediliyor. Daha sonra buradan bunlara erişebilirsiniz. İlerleme esnasında gidişatı Log ekranından takip edebilirsiniz. Flashlama bittikten sonra sol alt köşede yeşil bir tik işareti gelecektir.

Artık FTDI üzerinden Arduino IDE ile ESP8266 modülünüzü programlayabilirsiniz. Ayrıca ufak bir bilgi vereyim, ESP8266 E-12 modülü Arduino Mega ve mod ile Arduino DUE den daha hızlı CPU`ya sahip (160 Mhz).

WiFiManager Kütüphanesi

İşte wifi ile kontrolün en güzel tarafı bu kütüphane. Modül küçük olunca, projeyi küçültme gerekliliği artıyor, projeyi küçültme gerekliliği artınca devre kümesini de küçültmek istiyoruz. ESP ile ekstra Arduino yada Atmel gibi bir MCU kullanmamıza gerek kalmadığı gibi, küçük bir kart ile internete çıkıp, fiziksel dünyayı GPIO portları ile kontrol ediyorken, bu cihazı ortamlarda WiFi bağlantısını aracısız nasıl yapacağız? Yani projemizi yaptık, küçük bir kutuya cihazı koyduk. Açtık çalışıyor ama serial yok, ortamda ki wifi sisteme gömülmedi, peki nasıl iletişim kuracak?

İşte bu noktada ESP modülünün AP (Access Point) özelliği devreye giriyor. Bu modülü bir wifi bağlantısı yapmak için kullanmanın dışında bir wifi modem gibi de kullanabiliyoruz. Ve bu özellik ile WiFiManager kütüphanesinin gücü birleştiğinde dışarıdan kontrol edilebilen bir sistem doğuyor.

Starbuck ve benzeri yerlerde ki wifi sistemine bağlandığınızda internete çıkmadan karşınıza bir pencere açılır, bazı bilgiler ister, doğru girerseniz internete çıkarsınız. İşte AP modda WiFiManager tam olarak bunu yapmanıza olanak sağlıyor. Ayrıca karşılama ekranını bir template vasıtasıyla biraz HTML biliyorsanız rahatlıkla güncelleyebilir ve özelleştirebilirsiniz.

Öncelikle ESP sistemini yüklediyseniz arduino IDE için ve içinde WiFiManager yoksa https://github.com/tzapu/WiFiManager adresinden indirebilirsiniz. Nasıl yüklemeniz gerektiğini anlatmama gerek yok sanırım 🙂 Bildiğiniz kütüphane yani.

Hazır example/örneklerden bir tanesini uygulayarak hemen kurcalamaya başlayabilirsiniz. Bu kütüphane ile çalışır hale getirdiğiniz sistem şu aşamaları izleyecektir;

  1. Gömülü sistemde tanımlı SSID bulunuyor mu? Bulunuyorsa bağlan
  2. Bulunmuyorsa AP moduna geç. Bağlantı bekle
  3. AP Modda bağlantı geldiyse HTTPServer başlat
  4. Kullanıcıya seçenekleri sun, WiFi Tara, Seçtir, Bilgileri Al, Flasha Yaz, Yeniden Başla
  5. Kayıtlı Bilgiler ile Bağlantı varsa, Bağlan, görevlerini işle. Bilgiler hatalıysa ve bağlanadamıysan AP modu tekrar başlat, bağlantı bekle.

   

Bu prosedür doğrultusunda ESP modülünüz artık WiFi bulamadığı zaman dışarıdan bir WiFi bağlantılı cihaz (Telefon, Tablet, Bilgisayar) ile işlenebiliyor. Herşeyi ambalajladıktan sonra “ben bu cihazı wifi ye nasıl bağlayacağım” diye düşünmenize gerek yok.

Ayrıca default açılan arayüzü editlemek isterseniz kütüphane dosyaları içinde WiFiManager.h adlı dosyayı bir editör ile açarsanız ilgili bölümleri göreceksiniz. Eğer gördüğünüz kodlara dair bir fikriniz yoksa bence hiç dokunmayın derim. Ve mutlaka yedek alın. Göreceğiniz bölümde değişiklik yapmak ve kendi atınızı koşturmak isterseniz bilmeniz gerekenler; HTML, CSS, Native JavaScript olacaktır..

İlerleyen süreçte örnek kodları da paylaşacağım.

 

Kaynaklar:

Espressif`in Resmi ESP8266 Forumu: http://bbs.espressif.com/

Summary
Esp8266 ve WiFiManager Kütüphanesi
Article Name
Esp8266 ve WiFiManager Kütüphanesi
Description
ESP8266 ve ESP8266 üzerinde barındıran geliştirme kartları gerçekten küçük bir devrim niteliğindeler. ESP8266’nın üretiliş amacı öncelikle Arduino’yu WiFi üzerinden internete bağlamaktı. Xbee, Ethernet shield gibi pahalı parçalar kullanmak yerine 2-3 Dolar maliyetinde olan bu modülü kullanmak istediler.
Anthony Burak DURSUN
Anthony Burak DURSUN
Badursun
Publisher Logo
Tags:
Anthony Burak DURSUN

Adjans Digital Agency CEO, Gömülü sistemler, yazılım, fotoğraf çekmek, tasarım, teknoloji konularına hisli, evli, 4 kedi babası, asabi, anksiyetik bir kişi. Tekrarlayan şeyleri sevmez, her an her şey hakkında yazabilir, konuşabilir. Önceki hayatında marangoz olduğunu düşünüyor.

  • 1

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.