IoT Macerası 1. Bölüm — ESP8266 Wifi Modülü (ESP01) Firmware Güncelleme

Image for post
Image for post

Evet uzunca bir süredir Arduino Uno ile bir şeyler yapma niyetim vardı. Doğum günü hediyesi olarak bir Proje Seti almıştım. İlk olarak hareket sensörü ile denemeler yapıp başarılı olduktan sonra neden IoT macerasına atılmıyorum dedim kendi kendime. Ve karşıma ESP8266 modülü çıktı. Bozuk para büyüklüğünde internete bağlanabilen, AP (Access Point) olarak kullanılabilen kabiliyetli mi kabiliyetli ama sizi sonrasında çıldırtabilen, saç baş yolduran bir modül.

Ben bu işe koyulurken gerçekten de ne yaptığımı bilmediğim için çok zaman harcadım. Benim harcadığım bu zamanı sizler harcamayın diye detaylı bir güncelleme yazısı yazayım istedim.

Projelere başlamadan önce elimizde ki modülün yazılımını güncelleyelim. Mevcut hali ile de kullanılabilir tahminim ama ben direk bu güncelleme konusu ile başladım sürece.

Günceleme yapabilmek için öncelikle Arduino Uno ile ESP8266 modülümüzü bağlamamız gerekiyor. Bunun için öncelikle ESP8266 modülü PIN’lerine aşina olalım.

Image for post
Image for post
ESP8266 Wifi Modülü Pin Şeması

Bağlantı yapabilmek için ihtiyacımız olan malzemeler:

  1. 6 Adet Erkek — Dişi Kablo
  2. 2 Adet Erkek — Erkek Kablo
  3. 1 Adet ESP8266 (ESP01)
  4. 1 Adet Arduino Uno
  5. 1 Adet USB Bağlantı Kablosu
  6. 1 Adet BreadBoard
  7. Windows İşletim Sistemi (MacOS içinde bir program var ama esptool.py ile ilgili bir sıkıntı olduğu için deneyemedim)

İnternette o kadar çok bu konuyu anlatan var ki. Çoğu doğru ama her birinde bir eksiklik var ve bu eksiklikler dolayısı ile bir türlü sonuca ulaşamıyorsunuz. Benim sonuca ulaşabildiğim bağlantı şekli aşağıdaki gibi.

Image for post
Image for post
Bağlantı Şekli

Aşama aşama anlatarak başlayalım bağlantımıza.

  1. Öncelikle BreadBoard’a Uno’nun 3,3 voltundan bir kablo çekeceğiz. Bu güç kablosunu direk ESP8266'ya da bağlayabilirsiniz ama ben BreadBoard üstünden rahat çalışayım diye güç hattını ona çektim. Uno üzerinde 3.3v yazan yerden erkek-erkek kablo kullanarak BreadBoard üzerindeki Artı hatta (kırmızı şerit olan) kırmızı kablo çektim.
  2. Aynı şekilde Uno üzerindeki GND yazan yerden BreadBoard üzerindeki eksi hatta (mavi şerit olan) kahverengi kablo çektim. Bu arada renkler anlaşılsın diye yazıyorum. Siz farklı renk kullanabilirsiniz.
  3. ESP8266 üzerindeki TX pinini (Pin Şemasına göre sol en üstteki pin) Arduino Uno’da TX Yazan Yere taktım. (Dişi — Erkek Kablo. Görselde Unoya Giden Sarı Kablo)
  4. ESP8266 üzerindeki CH_PD/EN yazan yerden BreadBoard üzerindeki artı hatta siyah kabloyu çektim. (Bu kabloyu 5 volta bağlayanda var. Ama ben modül zarar görebilir dedikleri için gene 3.3v hattına çektim)
  5. CH_PD/EN pini altında RST pini var. Yeşil bir kablo çektim ama bir yere bağlamadım. Resetleme işlemi için BreadBoard üzerindeki eksi hatta 1 saniye takıp çekince ESP8266 resetleniyor. Bu amaçla kullanacağız.
  6. RST pininin hemen altında 3.3v pini var. Bu pinden BreadBoard üzerindeki artı hatta kırmızı kablo çektim.
  7. ESP8266 üzerindeki RX pinini Arduino Uno’da RX Yazan Yere taktım. (Dişi — Erkek Kablo. Görselde Unoya Giden Mavi Kablo)
  8. RX pininin hemen bir üstünde GPIO0 pini var. Günceleme işlemini bu pin sayesinde yapacağız. ESP8266 modülünü güncelleme moduna sokan bu PIN oluyor. Bunun içinde mavi kablo kullandım. Ama bu BreadBoard üzerindeki eksi hatta bağlı. (Mavi Şerit olan hat, topraklama)
  9. GPIO0 üzerindekini boş bıraktım. (GPIO2 diye geçiyor.)
  10. GPIO2 üzerindeki ise GND pini. Bunu BreadBoard üzerindeki eksi hatta çekiyoruz. (Kahverengi kablo kullandım. Topraklama olduğu belli olsun diye)

Bağlantılarımız tamam ise öncelikle indirmemiz gereken firmware dosyalarını ve günceleme yapabilmek için gerekli uygulamamızı indirmeliyiz. Bunun için linkine tıklıyoruz. Açılan sayfada Tools kısmından Flash Download Tools indiriyoruz.

Image for post
Image for post

Bu işlemden sonra Tools yazan kısmın aşağısında AT (allta görseli var) yazan bölüm var. Bu kısımdan ise ESP8266 AT Bin V1.7.0 yazan satırdaki dosyaları indiriyoruz. Her iki zipide yeni bir klasör oluşturup onun içinde açmak faydalı olacaktır.

Image for post
Image for post

Bu aşamada Arduino IDE’sini açıyoruz. IDE içindeki Tools kısmında Board olarak Arduino Uno seçili olduğuna, portun (usb)düzgün ve bağlı olduğuna emin oluyoruz. Bir boş kodu Uno’ya gönderiyoruz. Burada dikkat edilmesi gereken önemli bir konu şu. Unoya kod atma işlemi yaparken Uno’nun RX pini boş olmalı. Bağlantı yaparken taktığımız RX pinini boşa alıyoruz. (Mavi Kablo)

Image for post
Image for post

Kodu attıktan sonra USB’yi çıkarıp boşa aldığımız RX pinini tekrar Uno’ya takıp USB’yi tekrar takıyoruz.

Bu güç kesme ve tekrar güç verme işlemleri sonucunda ESP8266 GPIO0 pini eksi hatta bağlı olduğu için Flash moduna geçiyor.

Güncelleme dosyalarını atabilmek için siteden indirdiğimiz ‘Flash Download Tools’ klasörü içerisindeki ‘flash_download_tools_v3.6.8.exe’ programını çalıştırıyoruz.

Açılan ekranda ‘ESP8266 Download Tool’ yazan butona basıyoruz. Aşağıdaki gibi bir ekran açılacak.

Image for post
Image for post
  • İlk sıraya siteden ESP8266_AT_Bin_V1.7.zip \ESP8266_AT_Bin_V1.7\bin klasörü altında bulunan boot_v1.7.bin dosyasını seçiyoruz. Yan tarafındaki kolona 0x00 yazıyoruz.
  • Sonra sırasıyla ESP8266_AT_Bin_V1.7\bin\esp_init_data_default_v08.bin dosyasını seçip yanındaki kolona 0x1fc000
  • 3. sıraya ESP8266_AT_Bin_V1.7\bin\at\1024+1024\user1.2048.new.5.bin dosyasını seçip yanındaki kolona 0x1000
  • Son sıraya ise SP8266_AT_Bin_V1.7\bin\blank.bin dosyasını seçip yanındaki kolona 0x1fe000 yazıyoruz.

SPI SPEED 40 MHz, SPI Mode QIO, Flash Size 16MBit-C1 olmalı.

COM bağlı olduğu port numarası, BAUD ise 115200 olmalı.

Bu arada çok dikkat etmeniz gereken bir şey var. Oda satırların solundaki tik işaretlerini mutlaka atın.

Image for post
Image for post

Bu aşamada program eğer Uno’yu görmezse USBden çıkarıp tekrar takabilirsiniz. İllaki görecektir başka bir sorununuz yok ise.

START butonuna basıyoruz. Bağlantılarda sıkıntı yok ise hemen MAC adreslerini görürsünüz.

Image for post
Image for post

Bu işlemlerin sonunda yazılımınız güncellenmiş olacaktır. Tekrar USB’yi çıkarıyoruz. ESP8266 üzerindeki GPIO0 pinini çıkarıyoruz. Bu pin flash moduna aldığı için çıkarılması gerekiyor. Haberleşmede sıkıtı yapabiliyor çünkü. Sonra tekrar USB’yi takıp güç veriyoruz.

Yaptığımız işlemlerin sonuçlarını anlayabilmek için Uno IDE içindeki Serial Monitörü kullanabiliriz. Bunun için aşağıdaki ekran görüntüsünde kırmızı ile belirtilen yerlerin aynı olduğunu kontrol edin lütfen.

Image for post
Image for post

Bu aşamada iken ESP8266 üzerinde RST pininde olan kabloyu (Yeşil olan) 1 saniye breadboard üzerindeki eksi hatta takıp çıkarıyoruz. Bunu yaptığımız anda işlemleri doğru yapmış isek ES8266 bize ready şeklinde dönüş yapıyor.

Image for post
Image for post

Sonrasında sırasıyla aşağıdaki komutları çalıştırıp versiyonumuz güncellenmiş mi bakıyoruz.

AT , AT+GMR

Image for post
Image for post

Not: Bu arada benim ilk güncelleme deneyimim fiyasko. Güncelleme yapabildiğimi zannedip 2–3 gün uğraştım. Bu resetleme pinini kesinlikle kullanın. Takıldığında direk resetleme kullanın. Ready dönmüyorsa birşeyler yanlış gitmiştir. Tekrar güncelleme yapıp deneyebilirsiniz. Kendi pdf dokümanında da detaylı bilgiler var.

Bundan sonrasında AT komutları ile ESP8266'yı internete aşağıdaki komutlarla bağlayabilirsiniz.

AT+CWMODE=1 (3 modu var. 1= Station , 2= AP, 3= AP+Station)

AT+CWJAP=”my-test-wifi”,”1234test” (tırnak içindeki ilk kısma Wifi isminizi, ikinci kısma şifrenizi yazıyorsunuz)

Umarım faydalı olur.

Teşekkürler.

Engin Hafızoğlu @2020.01.24 01:44

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store