Menu
Sepet

ESP32 Programlama Rehberi

PCB rehberleri · Yazılım geliştirme

ESP32 Programlama Rehberi

Okuma süresi: yaklaşık 2 dkElektromall teknik ekibi

Kısa cevap ESP32 nasıl programlanır?

Arduino IDE'ye Espressif'in ESP32 kart paketini ekleyip ESP32 Dev Module seçin ve kartı USB ile bağlayın. Yükleme sırasında kart otomatik olarak indirme moduna geçer; geçmezse BOOT (GPIO0) düğmesini basılı tutun. Çıplak ESP32-WROOM modülünde GPIO0 düşük, EN yüksek yapılarak modül seri porttan programlanır.

ESP32, Wi-Fi ve Bluetooth'u tek çipte birleştiren, çift çekirdekli ve uygun fiyatlı bir mikrodenetleyicidir. Hazır geliştirme kartları (DevKit) USB kablosuyla doğrudan programlanır; ESP32-WROOM gibi çıplak modülleri ise kendi kartınızda kullanırken önyükleme (boot) mantığını ve USB–seri bağlantısını bilmeniz gerekir. Bu rehberde Arduino IDE ile ESP32 kurulumunu, ilk Wi-Fi programını, modülün programlama moduna nasıl alındığını ve kendi kartınızı tasarlarken dikkat edilecek noktaları anlatıyoruz.

ESP32'yi Arduino IDE'ye eklemek

  1. Dosya → Tercihler → "Ek Kart Yöneticisi URL'leri" alanına Espressif'in ESP32 paket adresini ekleyin (github.com/espressif/arduino-esp32 sayfasında güncel adres verilir).
  2. Araçlar → Kart → Kart Yöneticisi'nde "esp32" arayıp esp32 by Espressif Systems paketini kurun.
  3. Araçlar → Kart → esp32 → ESP32 Dev Module seçin. WROOM-32 / 32D modülleri için bu seçim uygundur; flash boyutu 4 MB'tır.
  4. Port olarak kartınızın USB–seri çipinin (CP2102 veya CH340) portunu seçin.

İlk program: Wi-Fi'ye bağlanmak

#include <WiFi.h>

const char* AG = "Ag_Adi";
const char* SIFRE = "Ag_Sifresi";

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(AG, SIFRE);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.print("\nBağlandı, IP adresi: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  Serial.printf("Sinyal: %d dBm\n", WiFi.RSSI());
  delay(2000);
}

Seri monitörü 115200 baud ile açın. RSSI değeri −50 dBm civarında mükemmel, −70 dBm altında zayıftır; dBm hakkında bilgi için dB hesaplama aracına bakabilirsiniz.

Programlama modu: GPIO0 ve EN

ESP32 açılırken GPIO0 pinine bakar: GPIO0 yüksekse flash'taki programı çalıştırır, düşükse (GND'ye çekilmişse) seri porttan program bekler (indirme modu). DevKit kartlarındaki BOOT düğmesi GPIO0'ı, EN düğmesi reset'i kontrol eder. Kartların çoğunda iki transistörlü bir otomatik reset devresi, USB–seri çipin DTR ve RTS hatlarıyla bu işi kendiliğinden yapar. Yükleme "Connecting…" satırında takılıyorsa BOOT düğmesini basılı tutup yükleme başlayınca bırakın.

Çıplak ESP32-WROOM modülüyle kendi kartınız

  • Besleme: 3,3 V, Wi-Fi iletimi sırasında 500 mA'e varan anlık akım. AMS1117 gibi bir LDO kullanılabilir, ancak girişte ve çıkışta yeterli kondansatör (ör. 10 µF + 100 nF, modülün yanında 22 µF) şarttır; aksi halde bağlanırken reset atar ("brownout").
  • EN pini: 10 kΩ pull-up ve 1 µF kondansatörle yumuşak başlangıç.
  • Strapping pinleri: GPIO0, GPIO2, GPIO5, GPIO12 ve GPIO15 açılışta önyükleme modunu belirler. Özellikle GPIO12'yi açılışta yüksekte tutan bir devre flash gerilimini yanlış seçtirir; bu pinlere dikkatli bağlantı yapın.
  • Programlama başlığı: TX, RX, GND, 3,3 V, GPIO0 ve EN pinlerini bir başlığa çıkarın veya otomatik reset devresini ekleyin.
  • Anten: Modülün anten kısmı kart kenarına taşmalı ve altında/çevresinde bakır olmamalıdır. Ayrıntılar: ESP32 PCB anten tasarımı.

Bu yazıda kullanılan ürünler

Sıkça sorulan sorular

"A fatal error occurred: Failed to connect to ESP32" hatası neden olur?

Kart indirme moduna girmemiştir. BOOT düğmesini basılı tutarak yüklemeyi yeniden deneyin; USB kablosunun veri hatlı olduğundan ve doğru portun seçildiğinden emin olun.

ESP32 hangi gerilimle çalışır, 5 V sensör bağlayabilir miyim?

ESP32 pinleri 3,3 V'tur ve 5 V'a dayanıklı değildir. 5 V çıkışlı sensörleri gerilim bölücü veya seviye dönüştürücüyle bağlayın.

ESP32'nin ADC'si neden doğru okumuyor?

ESP32 ADC'si özellikle alt ve üst uçlarda doğrusal değildir ve Wi-Fi açıkken ADC2 kanalları kullanılamaz. ADC1 pinlerini (GPIO32 – 39) tercih edin ve kalibrasyon API'sini kullanın.

Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.

Kablosuz Modüller