ESP-01 / ESP8266-01 Programlama

4 September 2021

Bugün başarılı bir şekilde bir mesajı ESP-01'den NodeJS serverıma gönderebilmeyi başardım, alkışlar gelsin! 👏👏

İlk olarak neden benim ESP-01'im kafasına göre çalışıyor, bazen beni iplemiyor onu anladım. İlginç olacak ki, teknik motlarında (en. datasheet) yazdığı gibi ~3.3 Volt ile çalışmıyordu benim hergele, deneme yanılma yolu ile ~5 (=4.6) Volt ile beslenmesi gerektiğini öğrendim. Bundan sonra artık AT komutlarını kendisine verebiliyor, istediğimi basit düzeyde yaptırabiliyordum.

Daha sonra internette gezinirken çok güzel bir videoya rastladım. Adam, boot seçeneklerinin neler olduğunu ve nasıl bu modlara girebileceğimizi teknik notlardan okuyor ve gösteriyordu.

Mod Adı GPIO0 durumu
Programlama LOW
Çalıştırma HIGH
Çip Test ?

Yani biz bu SoC'yi programlamak istediğimizde ilk güç verdiğimiz belirli bir süre boyunca GPIO0'ı topraklamalıymışız. İçine yüklediğimiz donanım yazılımını çalıştırmak istiyor isek aygıtı tekrar başlatmaklı ve güç verirken GPIO0'ı topraklamadığımızdan emin olmalıymışız. Zırt pırt toprağa kablo takıp çıkarmamak için ben bir tane sürgülü anahtar koydum.

Sıra geldi programlama yapabilmek için bilgisayar ve ESP-01'in bağlantısını yapabilmeye. Bilmemiz gereken ilk bilgi ESP-01'i programlamak için TX ve RX genel amaçlı giriş/çıkışlarını kullanmamız gerektiği. Bu ikisini direk bilgisayara bağlayamayacağımız bariz bir gerçek, peki nasıl programlayacağız?

USB-TTL dönüştürücüleri, TX ve RX'in bağlantısını direk olarak USB'ye yapmanızı sağlarlar. Ancak elinizde bir tane yoksa satın almak için vermeniz gereken bedel ve kargoyu beklemesi sizler (ve benim) için yıldırıcı olabilir. Üstelik aldığınız ürünün sürücü yazılımlarını bilgisayarınıza da kurmanız gerekiyor, GNU/Linux kullanıcısıysanız vay halinize!

Bir diğer yol, Arduino geliştirme kartlarını kullanmak. Bildiğiniz gibi Arduino'yu USB ile programlayabiliyoruz ve kendisinin TX-RX genel amaçlı giriş/çıkışları var. Vâla.

Arduino IDE'sini ve ilk sürümünü kullanıyorsanız Seçenekler sekmesinden Kart Yöneticisi Ekleme Bağlantıları tarzı bir yazı-girdi bileşenine şu bağlantıyı ekleyin: https://arduino.esp8266.com/stable/package_esp8266com_index.json. Bunun ardından Kart Yöneticinizde "esp8266" kartları paketini bulun ve yükleyin. Yükleme işlemi kısa sürecektir. Bitişin ardından sanki Arduino'nuzun tipini seçermişcesine, aynı panelden, Generic ESP8266 Module kartını seçin. Portunuzu da kontrol ettiniz mi, tüm işler tamamdır. Gelsin programlama.

ESP8266-01 SoC'sinizin bağlantılarını güzelce hallettikten sonra güç kaynağına bağlamadan önce GPIO0'ı topraklayın. Güç kaynağını bağlayın ve on saniye kadar bekledikten sonra GPIO0'ı artık toprağından çekin. Şu andan itibaren IDE'nizde yazacağınız kodlar ESP-01'inize göre derlenip onun içine yüklenecektir. Fritzing veya Draw.io ile şematik çizecektim sizlere ancak saat gecenin üçü ve ben çok yoruldum. Beni maruz görün, yalnızca yazı ile anlatacağım.

İstediğiniz gibi programlayabilirsiniz artık WIFI'lı geliştirme kartınızı, kolaylıklar dilerim.

(A): Arduino
(E): ESP-01
(L): Mantıksal Seviye Düşürücü
(S): Sürgülü Anahtar

A{USB} -- PC{USB}

L{LV} -- 3.3 Volt
L{HV} -- 5 Volt

A{TX} -- {HV}L{LV} -- E{TX}
A{RX} -- {HV}L{LV} -- E{RX}

E{CH_EN} -- 5 Volt
E{VCC} -- 5 Volt
E{GND} -- GND
E{GPIO0} -- S{YOL1} -- GND
E{GPIO0} -- S{YOL2} -- Açık Devre
Yazılı Devre Şeması (?)
Not: Yakında Socket.io ile NodeJS ve ESP-01 bağlantısı üzerine yazı gelecek. Beklemede kalın.