ESP32 Nedir? Programlamaya Giriş

Nesnelerin internetinin pazar hacmi 2019 yılında 212  milyar $ erişti.  26.66 milyar cihaz şuan da internete bağlı bulunmaktadır. Bu rakamın 2025 yılına geldiğinde yaklaşık olarak 75.44 milyar’a erişeceği düşünülmektedir.

Espressif Sytems, nesnelerin interneti kapsamında çip tasarımı ve üreten firmadır. Espressif Systems, Şanghay merkezlidir. Düşük maliyetli ve WI-FIçözümleri için düşük bariyere sahip  olarak tanınmaktadır.

Espressif Systems firmasına ait system-on-chip, Modül ve geliştirme kartı aşağıdaki görseldeki gibidir. Donanım mühendisi, PCB dizaynında modül kullanması anten onay ihtiyacı seride gerektirmediğinden dolayı tercih edilmektedir. Espressif Systems’e ait ürünlerin Türkiye distribütörü Empa Elektronik‘tir

ESP32 Modülleri

esp32 Modülleri.

ESP Geliştirme Kartları

Espressif Systems’in sunduğu üç farklı ESP32 geliştirme kartı mevcuttur.

ESP32 Geliştirme Kartları

 

Kullanım alanları

  • Tüketici Elektroniği
  • Akıllı evler
  • Oyuncaklar
  • Ağ geçitleri
  • Veri Toplama
  • Gömülü Kontrol

ESP32-DEVKITC Donanım

Esp modülün bilgisayarımızda çalışması için gerekli Uart driver’ın yüklü olması gerekmektedir.

CP210x USB to UART Bridge VCP Drivers için tıklayınız…

Denetim Masası\Donanım ve Ses\Aygıtlar ve Yazıcılar ‘dan esp32’nin bilgisayarda hangi USB port’a bağlandığını öğrenebiliriz. Benim bilgisayarımda COM3’e bağlı olduğunu görüyoruz.

ESP-IDF Tools

ESP IoT Development Framework (ESP-IDF), ESP32 serisi çipler için kullanılan resmi framework‘tür. ESP-IDF önşartı olan Pyhton, Git, cross-compiler CMake ve Ninja Build Tooldur. ESP-IDF Tool yüklendiğinde cross-compiler, OpenOCD, Cmake ve Ninja Tool’u da indirecektir. Eğer bilgisayarda Phyton ve Git yüklü değilse onlarında yüklemesi gerçekleşecektir.

  • Git SCM=Git, küçük’den büyüğe projelerde kullanılan ücretsiz ve açık kaynaklı versiyon kontrol sistemidir. Bilgisayarımıza Git’in kurulması gerekmektedir.

ESP-IDF Tool indirmek için tıklayınız…

Visual Studio Code

ESP32’nin programlanması sırasında kullanılacak kod editörü Visual Studio Code‘dur. Extension (eklenti) kısmından C/C++’ı indirmeliyiz.

Visual Studio Code indirmek için tıklayın…

Visual Studio Kurulumunda seçili olması dikkat edilecekler

Node.js

Node.js’ nin bilgisayarımızda kurulu olup olmadığını öğrenmek amaçlı aşağıdaki komudu terminal  (cmd.exe)’de öğrenebiliriz.

Node.js bilgisayarımıza yüklendiğinde Npm’de bilgisayarımıza yüklemiş olacaktır. Npm (Node Package Manager)’ nin bilgisayarımızda kurulu olup olmadığını aşağıdaki komutla öğrenebiliriz.

Node.js indirmek için tıklayınız…

npx ile local de mevcut olan npm paketini çalıştırmak (execute) amaçlı kullanılan toollardan birisidir.

GitHub

Sürüm kontrol sistemi olarak kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisi GitHub’ı kullanacağız. Bundan dolayı Github’da bir hesap oluşturulmalıdır.

Github’da hesap oluşturmak için tıklayın..

Versiyon kontrol sistemi kullanmayı bilmiyorsanız. Sitemizde mevcut olan Git Kullanımı yazısı için aşağıdaki bağlantıya tıklayınız.

Git kullanımı için tıklayınız…

Ayrıca bilinmesi gereken cmd.exe komutları aşağıdaki gibidir

  • cd              : Farklı bir klasöre girmek istendiğinde kullanılır.
  • mkdir      : Yeni klasör oluşturmak için kullanılmaktadır.
  • dir              : Klasör içerisindeki dosya ve klasörleri listeler.
  • cd\            : Kök dizine ulaşmak için kullanılır.

Hata Ayıklama (Eklenti)

ESP-DevkitC-V4’da MTCK, MTDI, MTDO, MTMS pinleri mevuttur ama USB to JTAG birimi mevcut değildir. Hata ayıklama için herhangi donanımsal JTAG için birim bulunmamaktadır. Bu durumdan dolayı FR223H kartına ihtiyacı gereksinim duyulmaktadır. Ama Logging Library(esp_log.h ) kullanarak hata ayıklama işlemi FR223H gereksimi olmadan UART üzerinde yapılabilir. Aşağıdaki esp_log.h daki Esp_logi(), Esp_loge() komutlar hata ayıklama için kullanılabilir.

 

FR2232H

“Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header ” hatasını görüyorsak eğer;

ESP-IDF Command Prompt’dan idf.py menuconfig üzerinden  Serial Flasher Config’e girerek Flash size 2 MB’dan 4 MB’a çıkarmalıyız. Aşağıdaki gif’de de bu işlemin nasıl yapılacağı gözükmektedir.

 

ESP-IDF’den  Hello world!

Bilgisayarımıza gerekli tüm programları kurduktan sonra ESP-IDF Command Prompt açıyoruz.

 

Logging Library

ESP-IDF, kendi sistem level API’ sine Logging Library eklemiştir. Logging kütüphanesi, 5 adet log level desteklemektedir.Aşağıdaki macro’ ları kullanarak bunlara erişilir.

  • ESP_LOGE – error (lowest)
  • ESP_LOGW – warning
  • ESP_LOGI– info
  • ESP_LOGD – debug
  • ESP_LOGV– verbose (highest)

Logging Library’nin kullanılması için gereken header aşağıdaki gibidir.

Çıkmak için ctrl+t ardından ctrl+x  yapmak gerekir.

Delay

Esp32’de Delay ile çalışmak için gereken headerlarımız aşağıdaki gibidir.

1 sn aralıklarla delay ve kaçıncı döngüde olduğumuzu logging info ile öğrenme.

Rastgele Sayı Üretme

Esp32’de rastgele sayı üretmek için gereken headerımız aşağıdaki gibidir.

Ramdom sayı üretmek amaçlı kullanılacak olan fonksiyon aşağıdaki gibidir.

Led Blink

ESP32 ait geliştirme kartları genellikle üzerinde led bulunmaktadır. Eğer geliştirme kartınızda led bulunmuyorsa genel amaçlı giriş çıkışa (GPIO)  bağlı LED e 200 ohm direnç bağlamız yeterlidir.

Genel amaçlı giriş çıkış (GPIO) kullanması için dahil edilmesi gereken header.

 

Chip ID (**çalış**)

Chip ID kullanım alanları çoğaltılabilir. Örnek vermek gerekirse;

  • 2 yıldır üretim yapan bir firmasın ürünlerinde bazı değişiklikleri cihazlara update edeceksi ama farklı ID’lere göre farklı yüklemeler gerçekleştirilecek o zaman Chip ID işimize yarar.
  • Belli ID’deki ürünlerde problemler vardır. Onlar piyasadan toplatılması gerekir. Ozaman Chip ID işimize yarar.

Gelecek düzenlemeler

  • Template yükle.
  • esp-ıdf pathlerin ayarını yükle.

 

Bu yazı hakkında ne düşünüyorsun ?
  • Gereksiz 
  • Normal 
  • Faydalı 
  • Müthiş 
Sidar ATABEY

About Sidar ATABEY

Elektrik-Elektronik Mühendisi. Makine Mühendisliğinde yan dal programını tamamladı. 1 sene boyunca Erasmus Programı kapsamında Polonya Silesian University of Technology'de eğitim gördü.

View all posts by Sidar ATABEY →