Rehberler · 10 dk okuma

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.

30 pinli ESP32 DevKit geliştirme kartı: Micro-USB girişi, BOOT ve EN düğmeleri, ESP32-WROOM-32 modülü ve iki sıra pin
İlk dersin kartı: 30 pinli ESP32 DevKit. Derse başlamadan öğrencilerle birlikte USB girişini, BOOT ve EN düğmelerini, D5, GND ve 3V3 pinlerini kartın üzerinde bulun.

İ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.
Şarj kablosu tuzağı: Çekmecedeki Micro-USB ve USB-C kabloların bir kısmı yalnız şarj içindir, içlerinde veri telleri yoktur. Bu kabloyla kartın güç LED'i yanar, öğrenci kartın çalıştığını sanır, ama Arduino IDE'de port hiç görünmez. Derste "port yok" diyen grubun ilk yapacağı şey kabloyu değiştirmektir. Test edilmiş veri kablolarını işaretle ve öğrencilerin evden getirdiği kabloları ilk derste kullanma.

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 yongaKartta nasıl anlarsın?Windows'ta port adıNot
CP2102 / CP2104USB girişinin yanında küçük kare yonga, üzerinde CP2102 ya da SiLabs yazarSilicon 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 yazarUSB-SERIAL CH340 (COMx)WCH'nin CH340 sürücüsü gerekir; Windows Update bazen kendisi kurar
CH9102Yeni kartlarda küçük kare yonga, üzerinde CH9102 yazarUSB-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.

İlk derste Wi-Fi kullanma. ESP32 yalnız 2,4 GHz ağlara bağlanır; okul ağları çoğu zaman kullanıcı adı ve şifreyle giriş ister ya da tarayıcıda bir onay sayfası açar, ESP32 bu sayfaları geçemez. Wi-Fi dersine geldiğinde en pratik yol, öğretmen telefonunda 2,4 GHz bandında açılan bir kişisel erişim noktasıdır. Bunu da dersten bir gün önce kendi kartınla dene.

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.

MalzemeGrup başınaSınıf için (8 grup + 1 yedek)Not
ESP32 DevKit (30 pin, ESP32-WROOM-32)19Hepsi 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)1112 yedek kablo; hepsi test edilmiş ve işaretli
Breadboard (830 delik)19Kart sığmıyorsa grup başına 2 (sınıfa 18)
5 mm kırmızı LED220Kırmızı LED 3,3 V ile rahat yanar
220 Ω direnç220Renk halkaları: kırmızı-kırmızı-kahverengi
Erkek-erkek jumper kablo4yaklaşık 40GND için hep siyah kullan
Arduino IDE ve ESP32 paketi kurulu bilgisayar18 + öğretmen bilgisayarıPort numarası etiketli
BlueGrays açık telefon ya da tablet1 (isteğe bağlı)8Şemayı ve kodu okumak için; projeksiyon da yeter
Parça kutusu ya da poşet19Ders sonunda sayarak geri al
30 pinli ESP32 DevKit standart bir breadboard'un neredeyse tamamını kaplar ve bir tarafta yalnız bir sıra delik bırakır. Kartı, D5 ve GND pinlerinin olduğu taraf boşta kalacak şekilde tak; LED'i ve direnci o tarafa kur. Bu kartta D5, GND ve 3V3 aynı sıradadır, bu yüzden ilk dersin devresi tek tarafta biter. Yine de yer kalmıyorsa iki breadboard'u yan yana getirip kartın bir sırasını birine, diğer sırasını öbürüne oturt. Kartı sökerken pinleri eğmemek için iki uçtan eşit kaldır.

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.

DakikaAşamaÖğretmenÖğrenci
0–4Giriş ve hedefKartı 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–9Kartı tanımaTahtadaki ç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 LEDProjeksiyonda 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–21Bir 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–31Harici LED devresiESP32 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–35Mini görevHı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–38ToparlamaUSB'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.
ESP32 Dahili LED Yakma projesinin Türkçe blokları: BUILTIN_LED_PIN = 2 tanımı, kurulumda pini çıkış yapma, sürekli tekrarla içinde YÜKSEK ve DÜŞÜK yazma ve 1000 ms bekleme
İlk yüklemenin blokları. Projeksiyonda bu görüntüyü kodla yan yana gösterirsen "tanımla" bloğunun int satırına, "kurulum" bloğunun setup() fonksiyonuna, "sürekli tekrarla" bloğunun loop() fonksiyonuna karşılık geldiği hemen görülür.

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.

C++ (Arduino IDE)
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.

C++ (Arduino IDE)
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}
16
Dahili LED her kartta GPIO2'de değildir. Bazı kartlarda, örneğin Espressif'in kendi DevKitC kartında, yalnız kırmızı güç LED'i vardır ve programlanabilen bir LED yoktur; bazı kartlarda da LED başka bir pine bağlıdır. Test yüklemesinde LED yanıp sönmüyorsa kartının pin şemasına bak; dahili LED yoksa o grup doğrudan harici LED aşamasına geçsin. Sınıf setinde tek model kullanmak bu sürprizleri baştan önler.

ESP32'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.

KonuArduino UnoESP32 DevKitDerste ne anlama gelir?
Mantık gerilimi5 V3,3 V; pinler 5 V'a dayanıklı değildirHiç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–A5GPIO numarası kullanılır; kartta D5 yazan pin kodda 5'tirKoddaki sayı kart üzerindeki GPIO numarasıdır, kenardan sayılan sıra değil
Yalnız giriş pinleriYok; dijital pinlerin hepsi çıkış olabilirGPIO34, 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ır34'e takılan LED hiçbir zaman yanmaz; ilk derste GPIO2 ve GPIO5 dışına çıkma
BOOT ve EN düğmeleriTek reset düğmesi; yükleme kendiliğinden başlarBOOT (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ıYok2,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

BelirtiMuhtemel neden1 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 girmediYeniden 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ı varKart 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şmiyorYanlış 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ıyorLED ters ya da direnç ile LED aynı breadboard sırasında değilLED'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ıyorKablo 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ıyorKartta programlanabilir LED yok ya da başka pindeKartın pin şemasına bak; vakit kaybetmeden harici LED aşamasına geç
LED sürekli yanıyor ya da kart ısınıyorLED 5V/VIN ya da 3V3 pinine bağlı, ya da 3V3 ile GND kısa devreHemen USB'yi çıkar; LED'i GPIO5'e taşı, kısa devre yapan kabloyu bul, sonra yeniden tak
Üç dakika kuralı: Bir grup aynı sorunda üç dakikadan uzun kalırsa kartını ve kablosunu yedek setle değiştir, sorunlu parçayı ders sonunda kendin incele. Bozuk bir kablo yüzünden bir grubun dersin tamamını kaçırması, nedeni o anda bulmaktan daha pahalıdır. İlerleme çubuğu durmuş gibi görünse de Yükle'ye ikinci kez bastırma; ilk derleme uzun sürer. Port ve sürücü sorunlarının daha derin kontrolleri için Arduino kod yüklenmiyor yazısındaki adımlar ESP32 için de geçerli.

Çıkış soruları ve ikinci dersin önizlemesi

  1. Kodda 5 yazan sayı kartın üzerindeki hangi pini gösteriyor? Kartta o pinin yanında neden "D5" yazıyor olabilir?
  2. delay(1000) yerine delay(200) yazınca LED'de ne değişti? LED şimdi bir saniyede kaç kez yanıp sönüyor?
  3. LED'i ters takınca neden yanmadı? LED'in hangi bacağı direnç tarafına gelir?
  4. 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.

Tüm projeleri gör
ESP32 Dahili LED Yakma
#106Başlangıç

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.

4.8(29)
53
ESP32 ile LED Yakma
#103Başlangıç

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.

4.7(37)
99
ESP32 Buton ile LED Kontrol (Push)
#104Başlangıç

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.

4.6(36)
55
ESP32 Buton ile LED Kontrol (Toggle)
#105Başlangıç

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.

4.6(39)
57
ESP32 Trafik Lambası
#107Başlangıç

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.

4.4(21)
44
ESP32 LDR Modülü ile Işık Şiddeti Okuma
#113Başlangıç

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.

4.6(36)
55
ESP32 HC-SR04 Ultrasonik Mesafe Ölçer
#116Orta

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.

4.9(28)
45
ESP32 DHT22 Sıcaklık ve Nem (LCD Ekranlı)
#117Orta

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.

4.8(38)
56