ESP32 Ders Planı: Okulda İlk Ders, Hazırlık ve 40 Dakikalık Akış
ESP32 ders planı: ilk derste her grup kod yükleyip LED yakar. Hazırlık listesi, 24 kişilik malzeme tablosu, 40 dakikalık akış, kodlar ve 8 sorunun çözümü.
ESP32 ders planı hazırlarken ilk dersin hedefini tek cümleye indir: ders bittiğinde her grup kendi ESP32'sine kod yüklemiş ve bir LED yakmış olsun. Wi-Fi, sensör ve telefondan kontrol sonraki derslerin işi. 40 dakikanın yetip yetmeyeceğini derste yaptıkların değil, dersten önce yaptıkların belirler: USB-seri sürücüsü kurulu mu, Arduino IDE'de ESP32 kart paketi var mı, masadaki kablo gerçekten veri taşıyor mu? Bu üçü hazırsa ilk yükleme beş dakikada biter; hazır değilse dersin yarısı "port görünmüyor" diye geçer.
Bu yazıda yarın sınıfa götürebileceğin bir paket var: bir hafta önce, bir gün önce ve ders sabahı için kopyalanabilir kontrol listesi, malzeme tablosu, dakika dakika 40 dakikalık akış, derlenebilir iki kod, ESP32'yi Arduino Uno'dan ayıran beş nokta, derste en sık çıkan sekiz sorunun bir dakikalık çözümü ve çıkış soruları. Diyelim ki 24 kişilik bir sınıfın var ve öğrencileri üçerli 8 gruba ayırıyorsun; bütün sayılar bu varsayıma göre verildi. ESP32'yi henüz yakından tanımıyorsan önce ESP32 nedir yazısına göz at.

İlk dersin hedefi: neden yalnız bir LED?
İlk ESP32 dersinde önünde iki yol vardır: Wi-Fi'li etkileyici bir proje göstermek ya da herkesin kendi eliyle küçük bir şey çalıştırması. İkincisi çok daha fazla şey öğretir. Bir LED'i yakmak için öğrencinin bütün zinciri bir kez baştan sona geçmesi gerekir: kodu açmak, kartı ve portu seçmek, derlemek, yüklemek, devreyi kurmak, sonucu görmek ve bir değeri değiştirip yeniden yüklemek. Bu zincir bir kez çalıştığında sonraki derslerde yalnız yeni parçalar eklenir. Zincir çalışmadan Wi-Fi'ye geçersen ağ şifresi, sürücü ve kablo sorunları üst üste biner ve hatanın hangisinden geldiğini ayırmak neredeyse imkânsızlaşır. Bu yüzden bu planda ilk derste ağ yok: önce kartın dahili LED'i, sonra breadboard'da tek bir harici LED, hızlı gruplar için de ikisinin sırayla yanması.
Ders öncesi hazırlık kontrol listesi
Hazırlığı üç zamana böl. Listeyi kopyalayıp yazdırabilir ya da okulun bilişim sorumlusuyla paylaşabilirsin; sürücü ve program kurulumu gibi yönetici yetkisi isteyen işler çoğu okulda onun elinden geçer. Bir hafta önce yapılacaklar:
- Kartları say ve modelini kontrol et. Bu plan 30 pinli ESP32 DevKit (ESP32-WROOM-32 modüllü) kart için yazıldı; 38 pinli kartlarda kod aynıdır, yalnız pin sırası farklıdır.
- Kartın USB girişinin yanındaki küçük yongayı oku: CP2102 mi, CH340 mı, CH9102 mi? Hangi sürücünün gerektiğini bu belirler.
- Ders bilgisayarlarına Arduino IDE 2 kurulsun. Okul bilgisayarlarında kurulum genelde yönetici yetkisi ister; bilişim sorumlusuyla gün ayarla.
- Arduino IDE'de Kart Yöneticisi'nden esp32 by Espressif Systems paketini kur. Paket yüzlerce megabayt indirir; okul ağında derste indirmeye kalkarsan 40 dakika yetmeyebilir.
- USB-seri sürücüsünü kur, bir kartı takıp Araçlar > Port menüsünde yeni bir portun belirdiğini gör.
- Kablolarını test et: her kabloyla bir karta yükleme yap, şarj kablolarını ayıkla, veri kablolarını renkli bantla işaretle.
- Breadboard'a bir ESP32 tak ve iki yanda boş delik kalıp kalmadığına bak. Kalmıyorsa her gruba iki breadboard vereceksin.
- Okul ağının kısıtlarını öğren: ESP32 yalnız 2,4 GHz Wi-Fi'ye bağlanır, kullanıcı adı ve şifre isteyen kurumsal ağlarla uğraşmak zordur. İlk derste Wi-Fi kullanmayacaksın, ama sonraki dersler için bu bilgiye şimdiden ihtiyacın var.
Bir gün önce her bilgisayar sınıfa hazır olmalı; amaç, derste ilk kez yapılan hiçbir kurulum adımı kalmaması. Ders sabahı için de on dakika ayır. İki listeyi tek yerde topladım:
- Bir gün önce: Her bilgisayarda test yüklemesi yap. Kartı tak, ESP32 Dev Module kartını ve portu seç, dahili LED kodunu yükle, LED'in yanıp söndüğünü gör. İlk derleme bir dakikayı geçebilir; bu deneme sonraki derlemeleri de kısaltır.
- Bir gün önce: Windows'ta port numarasını (COM3, COM5 gibi) bir etiketle bilgisayarın kenarına yapıştır. Aynı kart aynı USB girişine takıldığında genelde aynı numarayı alır.
- Bir gün önce: Grup kutularını hazırla: kart, kablo, breadboard, iki LED, iki 220 Ω direnç, dört jumper. Yedek seti öğretmen masasında tut.
- Bir gün önce: İki kodu her bilgisayarın masaüstüne kaydet; internet yavaşlarsa öğrenciler kodu oradan açar.
- Bir gün önce: Projeksiyonda BlueGrays'te ESP32 Dahili LED Yakma projesinin açıldığını kontrol et.
- Ders sabahı: Bilgisayarları ve Arduino IDE'yi aç, kart seçiminin ESP32 Dev Module olarak kaldığını kontrol et.
- Ders sabahı: Tahtaya kartın basit bir çizimini yap: USB girişi, BOOT, EN, GND, 3V3 ve GPIO5 (kartta D5 yazar).
- Ders sabahı: Tahtanın köşesine tek satır yaz: "Connecting... yazısında takılırsan BOOT'a basılı tut."
- Ders sabahı: Kutulardaki LED ve direnç sayısını son kez say, kabloları kutuların üstüne koy.
Sürücü, kart paketi ve BOOT: bilmen gereken ayrıntılar
Arduino IDE'nin Kart Yöneticisi'nde iki ESP32 paketi görebilirsin. Okul kartları için doğrusu Espressif'in esp32 paketidir; "Arduino ESP32 Boards" adlı paket Arduino'nun kendi Nano ESP32 kartı içindir. Kurulumdan sonra Araçlar > Kart > esp32 menüsünden ESP32 Dev Module seçilir. Paket listede görünmüyorsa Tercihler'deki ek kart yöneticisi adreslerine Espressif'in paket adresini eklemen gerekir; adımları ESP32 nedir yazısında bulursun. ESP32 kodları Uno'ya göre daha uzun sürede derlenir; bir LED kodunda bile ilk derleme bir dakikayı geçebilir. Bunu öğrencilere baştan söyle, yoksa ilerleme çubuğu dururken tekrar tekrar Yükle'ye basarlar. Kartın USB-seri yongası hangi sürücüyü kuracağını belirler:
| USB-seri yonga | Kartta nasıl anlarsın? | Windows'ta port adı | Not |
|---|---|---|---|
| CP2102 / CP2104 | USB girişinin yanında küçük kare yonga, üzerinde CP2102 ya da SiLabs yazar | Silicon Labs CP210x USB to UART Bridge (COMx) | Windows sürücüyü çoğu zaman kendisi kurar; kurmazsa Silicon Labs'in CP210x sürücüsü gerekir |
| CH340 (CH340C, CH340G) | Dikdörtgen yonga, üzerinde CH340 yazar | USB-SERIAL CH340 (COMx) | WCH'nin CH340 sürücüsü gerekir; Windows Update bazen kendisi kurar |
| CH9102 | Yeni kartlarda küçük kare yonga, üzerinde CH9102 yazar | USB-Enhanced-SERIAL CH9102 (COMx) | WCH'nin CH9102/CH343 sürücüsü gerekir; CH340 sürücüsü bu yongayı tanımaz |
BOOT düğmesi ESP32'nin GPIO0 pinine bağlıdır. Yükleme başlarken kartın programlama moduna girmesi gerekir; çoğu DevKit bunu USB-seri yonganın iki sinyaliyle kendisi yapar. Bazı kart ve kablo ikililerinde bu otomatik geçiş tutmaz: çıktıda "Connecting..." noktaları uzar ve sonunda "Failed to connect to ESP32" hatası gelir. Çözüm, "Connecting..." yazısı görünür görünmez BOOT'a basılı tutmak, "Writing at" ile başlayan ilerleme satırları akmaya başlayınca bırakmaktır. EN düğmesi kartı yeniden başlatır; yükleme bittiği hâlde kod çalışmıyor gibi görünürse bir kez EN'e basmak yeter. Sorun aynı kartta sürekli tekrarlanıyorsa Araçlar menüsündeki Upload Speed değerini 921600'den 115200'e indirmek çoğu zaman işe yarar. macOS'ta port adı genelde cu.usbserial ya da cu.SLAB_USBtoUART ile başlar.
Malzeme listesi: grup başına ve 24 kişilik sınıf
24 öğrenciyi üçerli gruplara bölünce 8 grup çıkar; bir yedek setle 9 set hazırlarsın. İkili grup tercih edersen 12 grup ve bir yedekle 13 set gerekir, bilgisayar sayısı da buna göre artar. Hiçbir parça lehim istemez. LED ve dirençten grup başına ikişer koymanın nedeni basit: ters takılan ya da bacağı kırılan LED ilk derste çok sık görülür ve grubu bekletmemek gerekir.
| Malzeme | Grup başına | Sınıf için (8 grup + 1 yedek) | Not |
|---|---|---|---|
| ESP32 DevKit (30 pin, ESP32-WROOM-32) | 1 | 9 | Hepsi aynı model olsun; karışık modeller pin sırasını karıştırır |
| USB veri kablosu (karta göre Micro-USB ya da USB-C) | 1 | 11 | 2 yedek kablo; hepsi test edilmiş ve işaretli |
| Breadboard (830 delik) | 1 | 9 | Kart sığmıyorsa grup başına 2 (sınıfa 18) |
| 5 mm kırmızı LED | 2 | 20 | Kırmızı LED 3,3 V ile rahat yanar |
| 220 Ω direnç | 2 | 20 | Renk halkaları: kırmızı-kırmızı-kahverengi |
| Erkek-erkek jumper kablo | 4 | yaklaşık 40 | GND için hep siyah kullan |
| Arduino IDE ve ESP32 paketi kurulu bilgisayar | 1 | 8 + öğretmen bilgisayarı | Port numarası etiketli |
| BlueGrays açık telefon ya da tablet | 1 (isteğe bağlı) | 8 | Şemayı ve kodu okumak için; projeksiyon da yeter |
| Parça kutusu ya da poşet | 1 | 9 | Ders sonunda sayarak geri al |
40 dakikalık ders akışı
Akış iki ücretsiz BlueGrays projesine dayanıyor: önce ESP32 Dahili LED Yakma (devre yok, yalnız kart ve kablo), sonra ESP32 ile LED Yakma (GPIO5, 220 Ω direnç ve bir LED). İki projede de parça listesi, devre şeması, kod, bloklar ve Kodu anla ücretsiz açık. Grupta üç rol dağıt ve her aşamada rolleri döndür: klavyeyi kullanan, devreyi kuran, şemayı ve kodu telefondan ya da projeksiyondan okuyan. Böylece kimse 40 dakika boyunca yalnız izlemez.
| Dakika | Aşama | Öğretmen | Öğrenci |
|---|---|---|---|
| 0–4 | Giriş ve hedef | Kartı kaldırır, tek hedefi söyler: "Ders bitmeden her grup kendi kodunu yükleyip bir LED yakacak." Telefonlardaki Wi-Fi'nin bu kartta da olduğunu, ama bugün kullanılmayacağını söyler. | Rolleri paylaşır, kutuyu açar, parçaları sayar. |
| 4–9 | Kartı tanıma | Tahtadaki çizimle USB girişini, BOOT ve EN düğmelerini, GND, 3V3 ve GPIO5 pinlerini gösterir; 3,3 V uyarısını yapar. | Bu noktaları kendi kartında bulur, dahili LED'in yerini işaretler. |
| 9–17 | İlk yükleme: dahili LED | Projeksiyonda ESP32 Dahili LED Yakma projesini açar, kart ve port seçimini bir kez gösterir, BOOT notunu hatırlatır. | Kodu açar ya da kopyalar, ESP32 Dev Module ve portu seçer, yükler; LED saniyede bir yanıp söner. |
| 17–21 | Bir değeri değiştir | "1000 yerine 200 yazarsanız ne olur?" diye sorar, önce tahmin ister. | Tahminini söyler, iki delay() değerini değiştirip yeniden yükler, sonucu tahminle karşılaştırır. |
| 21–31 | Harici LED devresi | ESP32 ile LED Yakma projesinin devre şemasını yansıtır, LED'in uzun bacağını ve direncin yerini gösterir; gruplar arasında dolaşıp devreyi USB takılı değilken kontrol eder. | USB'yi çıkarır, GPIO5 → 220 Ω → LED uzun bacak, kısa bacak → GND devresini kurar; onaydan sonra kodu yükler. |
| 31–35 | Mini görev | Hızlı gruplara ek görev verir: dahili ve harici LED sırayla yansın. Takılan grupta önce kabloya ve LED yönüne bakar. | İki pini de çıkış yapar, biri yanarken diğerini söndürür; bitiren grup Kodu anla'daki Kendin dene görevine geçer. |
| 35–38 | Toparlama | USB'lerin çıkarılmasını ve parçaların sayılmasını ister. | Devreyi söker, parçaları sayarak kutuya koyar. |
| 38–40 | Çıkış soruları | Dört soruyu tahtaya yazar ya da sözlü sorar. | Kâğıda kısa cevap yazar, çıkarken teslim eder. |

Kodlar: dahili LED ve harici LED
Aşağıdaki iki kod uygulamadaki projelerle aynı pinleri ve süreleri kullanıyor; Arduino IDE'de ESP32 Dev Module seçiliyken doğrudan derlenir. İlk kod kartın üzerindeki LED'i saniyede bir yakıp söndürür. Çoğu ESP32 DevKit kartında bu mavi LED GPIO2'ye bağlıdır. Arduino Uno'da dahili LED 13 numaralı pindeydi; daha önce Uno kullanan öğrenciler alışkanlıkla 13 yazmak isteyebilir, farkı baştan söyle.
1// ESP32 Dahili LED Yakma / ESP32 built-in LED blink
2// Çoğu ESP32 DevKit kartında dahili LED GPIO2'dedir / On most ESP32 DevKit boards the built-in LED is on GPIO2
3int BUILTIN_LED_PIN = 2; // Kartına göre değişebilir / May differ on your board
4
5void setup() {
6 pinMode(BUILTIN_LED_PIN, OUTPUT); // Pini çıkış yap / Set the pin as output
7}
8
9void loop() {
10 digitalWrite(BUILTIN_LED_PIN, HIGH); // LED'i yak / Turn the LED on
11 delay(1000); // 1 saniye bekle / Wait 1 second
12 digitalWrite(BUILTIN_LED_PIN, LOW); // LED'i söndür / Turn the LED off
13 delay(1000); // 1 saniye bekle / Wait 1 second
14}
15İkinci kodun devresi şöyle: GPIO5 pininden 220 Ω direncin bir ucuna, direncin diğer ucundan LED'in uzun bacağına (anot), LED'in kısa bacağından (katot) GND'ye. ESP32 pini 3,3 V verir; kırmızı bir LED'in üzerinde yaklaşık 2 V düşer, kalan 1,3 V 220 Ω üzerinden yaklaşık 6 mA akım geçirir. Bu, LED'in net görülmesine yeter ve pini zorlamaz. Farklı renk LED kullanacaksan direnci LED direnci hesaplayıcısıyla kontrol edebilirsin. Mini görevde hızlı gruplar iki kodu birleştirir: setup() içinde iki pini de çıkış yapar, loop() içinde biri HIGH iken diğerini LOW yazar.
1// ESP32 ile LED Yakma: harici LED / ESP32 external LED blink
2// Bağlantı: GPIO5 -> 220 Ω direnç -> LED uzun bacak (+), kısa bacak (-) -> GND
3// Wiring: GPIO5 -> 220 ohm resistor -> LED long leg (+), short leg (-) -> GND
4const int LED_PIN = 5; // Harici LED pini (kartta D5) / External LED pin (D5 on the board)
5
6void setup() {
7 pinMode(LED_PIN, OUTPUT); // Pini çıkış yap / Set the pin as output
8}
9
10void loop() {
11 digitalWrite(LED_PIN, HIGH); // Pin 3,3 V verir, LED yanar / Pin outputs 3.3 V, LED on
12 delay(500); // Yarım saniye bekle / Wait half a second
13 digitalWrite(LED_PIN, LOW); // Pin 0 V verir, LED söner / Pin outputs 0 V, LED off
14 delay(500); // Yarım saniye bekle / Wait half a second
15}
16ESP32'yi Arduino Uno'dan ayıran 5 nokta
Öğrencilerin bir kısmı daha önce Arduino Uno kullanmış olabilir. Kod aynı Arduino diliyle yazılır, setup() ve loop() yerli yerindedir; ama kartın donanımı farklıdır ve ilk derste çıkan hataların çoğu bu farklardan gelir. Aşağıdaki beş maddeyi kartı tanıma aşamasında birkaç dakikada anlatabilirsin. Daha ayrıntılı karşılaştırma için Arduino mu ESP32 mi yazısına bakabilirsin.
| Konu | Arduino Uno | ESP32 DevKit | Derste ne anlama gelir? |
|---|---|---|---|
| Mantık gerilimi | 5 V | 3,3 V; pinler 5 V'a dayanıklı değildir | Hiçbir GPIO'ya 5 V verme; 5 V ile çalışan bir modülü bağlamadan önce çıkış gerilimine bak |
| Pin numaraları | D0–D13 ve A0–A5 | GPIO numarası kullanılır; kartta D5 yazan pin kodda 5'tir | Koddaki sayı kart üzerindeki GPIO numarasıdır, kenardan sayılan sıra değil |
| Yalnız giriş pinleri | Yok; dijital pinlerin hepsi çıkış olabilir | GPIO34, 35, 36 (VP) ve 39 (VN) yalnız giriştir ve dahili pull-up dirençleri yoktur; GPIO6–11 flaş belleğe bağlıdır | 34'e takılan LED hiçbir zaman yanmaz; ilk derste GPIO2 ve GPIO5 dışına çıkma |
| BOOT ve EN düğmeleri | Tek reset düğmesi; yükleme kendiliğinden başlar | BOOT (GPIO0) programlama modu, EN yeniden başlatma içindir | "Connecting..." uzarsa BOOT'a basılı tutulur; kod çalışmıyor gibiyse EN'e basılır |
| Kablosuz bağlantı | Yok | 2,4 GHz Wi-Fi ve Bluetooth (Classic ve BLE) yerleşik | İlk derste kullanılmaz; okul ağına göre sonraki derslerde telefondan açılan erişim noktasıyla denenir |
Derste en sık 8 sorun ve 1 dakikalık çözüm
| Belirti | Muhtemel neden | 1 dakikalık çözüm |
|---|---|---|
| Araçlar > Port menüsü boş ya da gri | Şarj kablosu ya da sürücü eksik | İşaretli bir veri kablosuyla dene; port hâlâ yoksa Aygıt Yöneticisi'nde yonga adına bak, kartı öğretmen bilgisayarında dene |
| "Connecting..." uzuyor, sonra "Failed to connect to ESP32" | Kart programlama moduna kendiliğinden girmedi | Yeniden yükle, "Connecting..." görününce BOOT'a basılı tut, "Writing at" satırları başlayınca bırak |
| Çıktıda avrdude hataları var | Kart olarak Arduino Uno seçili kalmış | Araçlar > Kart > esp32 > ESP32 Dev Module seç, yeniden yükle |
| Yükleme başarılı ama LED'de bir şey değişmiyor | Yanlış port seçili (birden çok kart takılı) | Kartı çıkar, Port menüsünde kaybolan portu bul, kartı takıp o portu seç; bilgisayardaki etiketle karşılaştır |
| Harici LED hiç yanmıyor | LED ters ya da direnç ile LED aynı breadboard sırasında değil | LED'i çevir: uzun bacak direnç tarafında, kısa bacak GND'de; bağlantıların aynı sırada olduğunu kontrol et |
| Devre doğru görünüyor, LED yine yanmıyor | Kablo başka bir pine (D4 ya da D34 gibi) takılı | Kablonun takılı olduğu pinin etiketini oku ve koddaki sayıyla karşılaştır; 34–39 arası pinlerden kaçın |
| Kod yüklendi ama dahili LED yanmıyor | Kartta programlanabilir LED yok ya da başka pinde | Kartın pin şemasına bak; vakit kaybetmeden harici LED aşamasına geç |
| LED sürekli yanıyor ya da kart ısınıyor | LED 5V/VIN ya da 3V3 pinine bağlı, ya da 3V3 ile GND kısa devre | Hemen USB'yi çıkar; LED'i GPIO5'e taşı, kısa devre yapan kabloyu bul, sonra yeniden tak |
Çıkış soruları ve ikinci dersin önizlemesi
- Kodda 5 yazan sayı kartın üzerindeki hangi pini gösteriyor? Kartta o pinin yanında neden "D5" yazıyor olabilir?
- delay(1000) yerine delay(200) yazınca LED'de ne değişti? LED şimdi bir saniyede kaç kez yanıp sönüyor?
- LED'i ters takınca neden yanmadı? LED'in hangi bacağı direnç tarafına gelir?
- ESP32'nin pinleri kaç volt verir? Bir LED'i ya da modülü neden doğrudan 5V pinine bağlamamalıyız?
Cevaplar hangi kavramın ikinci derste tekrar edilmesi gerektiğini gösterir; ikinci soruda 2,5 diyen öğrenci zamanlamayı oturtmuştur. İkinci derste aynı devreye bir buton eklenir: ESP32 Buton ile LED Kontrol (Push) projesinde LED butona basılı tuttuğun sürece yanar, ESP32 Buton ile LED Kontrol (Toggle) projesinde her basışta durumu değişir. İkisi de ücretsiz ve bloklu; öğrenciler ilk kez giriş okur ve if ile karar verir. Üçüncü ya da dördüncü derste Wi-Fi'ye geçebilirsin; o ders için ESP32 WiFi bağlanmıyor yazısındaki durum kodları tablosunu yanında bulundur. BlueGrays'teki Wi-Fi'li ESP32 projeleri Premium; öğrencilerinin bu projelere geçmesini istersen her birine ayrı abonelik yerine eğitmen paketinden kod vermenin nasıl işlediğini sınıf için Premium kod yazısında anlattık.
BlueGrays'i derste nasıl kullanırsın?
- Projeyi bul: Keşfet › Projeler'de Filtrele ile platformu ESP32, Ücret Durumu'nu ücretsiz seç. LED, buton, trafik lambası, ışık ve mesafe sensörü gibi ilk derslere uygun ESP32 projeleri tamamen açık gelir.
- Gerekli Komponentler ve Devre Şeması: Parça listesi adetleriyle hazır. Şemayı büyütüp projeksiyona yansıtabilir ya da Galeriye Kaydet ile kaydedip çıktısını alabilirsin.
- Kaynak Kodu: Kopyala ile kodu panoya alırsın. Öğrenci projeyi telefonda açtıysa Linki Kopyala ile kodu bilgisayarda açmak için bir bağlantı alır ve kodu elle yazmak zorunda kalmaz.
- Kodu anla: Önce Bu kod ne yapıyor? özeti, ardından Adım adım açıklama, Takıldıysan bölümü ve Kendin dene görevi gelir. Mini görevi erken bitiren grup için hazır bir sonraki adımdır.
- Bloklarla göster: Ücretsiz ESP32 projelerinin hepsinde blok görünümü var. Anahtar açılınca kodun yerine aynı programın blokları gelir ve sekme Blokları anla olur. Bloklar okumak içindir; uygulamada düzenlenmez ve karta yüklenmez, karta her zaman gerçek kod gider.
- Birlikte yapalım: Parçaları hazırla, devreyi kur, kodu yükle, çalıştır ve test et adımlarıyla ilerleyen rehber modu. Ekran açık kalır, telefon masada dururken grup adımları takip eder; bitince Yaptım ile proje tamamlandı olarak işaretlenir.
İlk ders bir LED'den ibaret görünse de öğrenciler o 40 dakikada derlemeyi, yüklemeyi, pin numarasını, 3,3 V sınırını ve hata ayıklamayı bir kez yaşamış olur; sonraki her ESP32 dersi bu zeminin üstüne kurulur. Proje sayfasının bütün bölümlerini proje sayfası rehberinde ayrıntılı anlattık. Dersten önce iki projeyi bir kez kendin yapmak istersen BlueGrays uygulamasında ESP32 Dahili LED Yakma projesini aç; şema, kod, bloklar ve Kodu anla hazır, provan on dakikayı geçmez.
Sıkça sorulan sorular
ESP32 ile ilk derste ne yapılır?
İlk dersin hedefi her grubun kendi ESP32'sine kod yükleyip bir LED yakmasıdır: önce kartın dahili LED'i, sonra breadboard'da 220 Ω dirençle bir harici LED. Wi-Fi ve sensörler sonraki derslere kalır. Böylece öğrenciler derleme, yükleme ve pin numarası zincirini bir kez sorunsuz yaşar.
Arduino IDE'de ESP32 için hangi kart seçilir?
ESP32 DevKit gibi genel kartlar için Espressif'in esp32 paketini kurup Araçlar > Kart > esp32 menüsünden ESP32 Dev Module seçilir. Arduino ESP32 Boards paketi Arduino Nano ESP32 içindir. Kart Arduino Uno olarak seçili kalırsa yükleme avrdude hatasıyla durur.
ESP32 bilgisayarda görünmüyor, ne yapmalıyım?
Önce kabloyu değiştir; birçok USB kablosu yalnız şarj içindir ve veri taşımaz. Sonra kartın üzerindeki USB-seri yongayı (CP2102, CH340 ya da CH9102) oku ve ona uygun sürücüyü kur. Windows'ta Aygıt Yöneticisi'nde Bağlantı noktaları altında yeni bir COM portu belirmelidir.
ESP32'ye kod yüklerken BOOT tuşuna basmak gerekir mi?
Çoğu DevKit programlama moduna kendiliğinden girer, BOOT'a basmak gerekmez. Çıktıda "Connecting..." uzayıp "Failed to connect to ESP32" hatası geliyorsa yüklemeyi yeniden başlat, "Connecting..." görününce BOOT'a basılı tut ve yazma başlayınca bırak. Sorun sürerse yükleme hızını 115200'e düşür.
ESP32 dahili LED hangi pinde?
Yaygın 30 pinli ESP32 DevKit kartlarında dahili mavi LED GPIO2'ye bağlıdır. Ancak bu karta göre değişir: Espressif'in DevKitC kartında yalnız güç LED'i vardır, bazı kartlarda LED başka pindedir. Emin değilsen kartın pin şemasına bak ya da breadboard'da harici bir LED kullan.
Okulda Arduino Uno yerine ESP32 ile başlanır mı?
Başlanabilir; kod aynı Arduino diliyle yazılır ve ilk LED dersi neredeyse aynıdır. Farklar 3,3 V mantık gerilimi, GPIO numaralandırması, yalnız giriş olan pinler ve BOOT düğmesidir; bunları ilk derste birkaç dakikada anlatmak yeterli. Kurulum hazırlığı Uno'ya göre biraz daha uzundur, karşılığında sonraki derslerde Wi-Fi ve Bluetooth hazır gelir.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
ESP32 Dahili LED Yakma
ESP32 DevKit V1'in üzerindeki dahili (built-in) mavi LED'i yanıp söndürmek. Hiçbir harici bileşen gerekmez! ESP32 satın aldığında ilk denemen gereken proje. GPIO 2 dahili LED'e bağlıdır.

ESP32 ile LED Yakma
ESP32 ile temel GPIO çıkışı kullanımını öğretir. Bir LED'i dijital pinden açıp kapatarak yanıp sönme efekti elde ederiz. Arduino UNO'daki klasik blink projesinin ESP32 versiyonu; Arduino ortamındaki temel blink komutları aynıdır, ancak ESP32'nin pin yerleşimi ve 3,3 V GPIO seviyeleri Arduino UNO'dan farklıdır.

ESP32 Buton ile LED Kontrol (Push)
Butona basılı tutulduğunda LED yanar, bırakıldığında söner. ESP32'nin dijital input pin'i ve dahili pull-up direncinin nasıl kullanıldığını gösterir. INPUT_PULLUP modu sayesinde harici direnç gerekmez.

ESP32 Buton ile LED Kontrol (Toggle)
Butona her basıldığında LED'in durumu değişir: açıksa kapanır, kapalıysa açılır. Klasik toggle (geçiş) pattern'i. Debounce (sıçrama önleme) ile butonun mekanik gürültüsünü temizleyerek tek basışta tek değişim sağlarız.

ESP32 Trafik Lambası
Kırmızı-sarı-yeşil 3 LED'le gerçek trafik lambası simülasyonu. Süreler gerçek trafik mantığına yakın: kırmızı uzun, sarı kısa, yeşil uzun. Sıralı GPIO kontrolünün klasik örneği.

ESP32 LDR Modülü ile Işık Şiddeti Okuma
LDR modülünün ham ADC değerini ve karanlık/aydınlık referanslarına göre hesaplanan göreli ışık yüzdesini Serial Monitor'da gerçek zamanlı izleme. Bu yüzde lux ölçümü değildir. Modülün kalibrasyon mantığını öğretir. Proje 10'un öncesinde yapılması ideal; çünkü eşik değerini belirlemek için kullanılır.

ESP32 HC-SR04 Ultrasonik Mesafe Ölçer
HC-SR04 ultrasonik sensör, gönderdiği ses dalgasının nesneye çarpıp geri dönme süresini (Time of Flight) ölçerek mesafe hesaplar. Bu projede ESP32 ile TRIG pinine 10 mikrosaniyelik darbe gönderip, ECHO pininden gelen yankı süresini pulseIn() ile okuyacağız. Hesaplanan mesafeyi cm cinsinden 16x2 I2C LCD'de göstereceğiz. HC-SR04 5V çalıştığı için ECHO pinine gerilim bölücü zorunludur — aksi halde ESP32'nin 3.3V GPIO'su zarar görür.

ESP32 DHT22 Sıcaklık ve Nem (LCD Ekranlı)
DHT22 sensörü ile ortam sıcaklığını ve nem oranını ölçüp 16x2 I2C LCD ekranda gerçek zamanlı olarak gösteren bir projedir. Adafruit DHT kütüphanesi kullanılarak tek kablo (one-wire) protokolü ile sensörden veri okunur. Bu proje, IoT hava istasyonu, akıllı ev otomasyonu veya seralarda ortam takip sistemlerinin temelini oluşturur. ESP32'nin GPIO 4 pini üzerinden DHT22 ile haberleşme sağlanır.
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

