ESP32 Telefondan Kontrol: BlueGrays IoT ile 5 Adımda Kurulum
ESP32 telefondan kontrol rehberi: BlueGrays IoT ile röle ve DHT22 bağlantısı, Ohmi'nin hazırladığı kod, 5 kurulum adımı, grafikler ve sık hataların çözümü.
ESP32 telefondan kontrol etmek; kartın üzerindeki bir röleyi, LED'i ya da motoru cebindeki telefondan açıp kapatmak ve sensör değerlerini telefonda görmek demektir. IoT öğrenmenin en keyifli ilk adımı da budur. ESP32'nin içinde 2,4 GHz Wi-Fi ve Bluetooth bulunduğu için ek bir modüle gerek kalmaz. Asıl soru hangi yolu seçeceğin. ESP32 uygulama ile kontrol için kendi web sunucunu yazabilir, Bluetooth üzerinden bağlanabilir ya da bir Telegram botu kurabilirsin. Blynk ve Arduino IoT Cloud gibi bulut panelleri de bir seçenektir. Her yöntemin kurulum süresi, menzili ve sınırları farklıdır.
Bu rehberde en kısa yolu adım adım kuracaksın: BlueGrays uygulamasındaki BlueGrays IoT özelliği. Kodu senin için Ohmi hazırlar. Sen yalnız devreyi kurar, kodu Arduino IDE'den ESP32'ye yüklersin. Kart şifreli bir bağlantıyla BlueGrays sunucusuna bağlanır, bu yüzden telefonun ve kartın aynı ağda olması gerekmez. Evdeki lambayı işteyken mobil veriyle de açabilirsin. Önce röleyle bir lamba anahtarı yapacaksın. Sonra devreye DHT22 ekleyip sıcaklık ve nemi canlı değer ve grafik olarak telefonuna taşıyacaksın. Yazının sonunda diğer yöntemlerle bir karşılaştırma ve en sık görülen hataların çözüm tablosu da var.

ESP32'yi telefondan kontrol etmenin 5 yolu
- Yerel web sunucusu: ESP32 bir web sayfası sunar, sen de telefonun tarayıcısından kartın IP adresine girersin. Ek hesap gerekmez ama normalde yalnız aynı Wi-Fi ağından erişilir. Ayrıntılar ESP32 Async Web Server yazısında.
- Bluetooth Classic ve BLE: İnternet ve modem gerekmez, telefon karta doğrudan bağlanır. Menzil iç mekânda genellikle 10 metre civarındadır. İki türü de ESP32 Bluetooth rehberinde anlattık.
- Telegram botu: Karta mesajla komut gönderir, karttan bildirim alırsın. Evin dışından da çalışır ama grafik ya da kaydırıcı gibi bir panel sunmaz. Kurulum için ESP32 Telegram Bot yazısına bakabilirsin.
- Bulut panelleri (Blynk, Arduino IoT Cloud): Web konsolunda şablon ve değişkenleri tanımlar, kodu kendin yazar, telefonda paneli kendin tasarlarsın. Esnek bir yoldur ama birkaç ayrı ekranı ve kavramı öğrenmen gerekir. Blynk için Blynk ESP32 Rehberi hazır.
- BlueGrays IoT: Uygulamada 8 hazır şablondan birini seçersin. Ohmi kodu senin pin ayarlarınla ve cihaz anahtarınla hazırlar. Telefonda anahtar, kaydırıcı, renk seçici ve grafikler şablona göre kendiliğinden çıkar. Panel tasarlaman ya da sunucu kurman gerekmez.
Gerekenler: malzeme ve yazılım listesi
| Malzeme | Ne işe yarar? | Not |
|---|---|---|
| ESP32 geliştirme kartı | Wi-Fi'lı denetleyici | ESP32 Dev Module, WROOM, S3 ve C3 desteklenir |
| USB veri kablosu | Kod yükleme ve besleme | Yalnız şarj eden kabloda port görünmez |
| 5 V röle modülü | Lambayı anahtarlamak | Optokuplörlü, 3,3 V sinyalle çeken modül tercih et |
| LED + 220 Ω direnç | Röle yerine güvenli ilk deneme | Kodda RELAY_ACTIVE_LOW = false yapılır |
| DHT22 (isteğe bağlı) | Sıcaklık ve nem ölçmek | Oda istasyonu şablonu için |
| Breadboard ve jumper kablolar | Bağlantıları kurmak | Modüller için erkek-dişi kablo pratiktir |
| 2,4 GHz Wi-Fi ağı | Kartın internete çıkışı | Kart 5 GHz ağa bağlanmaz |
| Arduino IDE | Kodu karta yüklemek | Espressif esp32 paketi 3.x sürümü gerekir |
| BlueGrays uygulaması | Kurulum ve telefondan kontrol | iOS ve Android; ilk cihazın ücretsiz |
ESP32 uygulama ile kontrol nasıl çalışır?
BlueGrays IoT'de telefon ile ESP32 birbirine doğrudan bağlanmaz. Kart açılınca önce evdeki 2,4 GHz Wi-Fi ağına bağlanır. Ardından BlueGrays sunucusuna 443 portu üzerinden şifreli bir WebSocket (TLS) bağlantısı açar ve bu bağlantıyı sürekli açık tutar. Telefondaki uygulama da aynı sunucuya bağlanır. Lamba anahtarına dokunduğunda komut telefondan sunucuya, sunucudan karta gider. Bağlantı zaten açık olduğu için komut beklemeden ulaşır. Kartın gönderdiği sıcaklık değeri de aynı yolu ters yönde izler. 443, web sitelerinin de kullandığı porttur. Bu yüzden modemde port yönlendirme yapman, kendi sunucunu kurman ya da kartın IP adresini bilmen gerekmez.
Kartı sunucuya tanıtan şey cihaz anahtarıdır. Bu anahtar, uygulamanın cihazı oluştururken ürettiği, bgd_ ile başlayan gizli bir metindir. Kart bağlantıyı açarken anahtarı bağlantı başlığında gönderir. Sunucu da telefondan gelen komutu doğru karta iletir. Anahtar Seri Port Ekranı'na yazdırılmaz. Bağlantı koparsa BlueGraysIoT kütüphanesi artan aralıklarla kendisi yeniden dener. Çevrimdışıyken ölçtüğü değerleri bağlanınca gönderir, elektrik gidip gelince anahtarların son durumunu geri yükler. Kartın ve telefonun internete erişmesi yeterlidir: kart ev Wi-Fi'ında, telefon başka bir şehirde mobil veride olabilir.
Devre: röle modülünü ESP32'ye bağlamak
Lamba anahtarı ve oda istasyonu şablonlarında varsayılan pinler şöyledir: röle IN ucu GPIO26'ya, DHT22'nin veri ucu GPIO4'e bağlanır. Bu pinleri kurulumun 3. adımında değiştirebilirsin. Kartının bacak dizilimini Pinout aracından kontrol et. Bazı kartlarda 5 V pininin üzerinde VIN, bazılarında 5V yazar.
| Parça | Parça pini | ESP32 pini | Not |
|---|---|---|---|
| Röle modülü | VCC | 5V (VIN) | Bobin 5 V ister; kart USB'den beslenirken bu pinde yaklaşık 5 V vardır |
| Röle modülü | GND | GND | Ortak toprak |
| Röle modülü | IN | GPIO26 | 3,3 V kontrol sinyali |
| LED (deneme için) | Uzun bacak (+) | GPIO26 | 220 Ω dirençle; kısa bacak GND'ye, kodda RELAY_ACTIVE_LOW = false |
| DHT22 | VCC | 3V3 | Oda istasyonu için |
| DHT22 | DATA | GPIO4 | Çıplak sensörde 10 kΩ pull-up gerekir; modüllerde kart üzerindedir |
| DHT22 | GND | GND | Ortak toprak |
BlueGrays IoT kurulumu: uygulamadaki 5 adım
Uygulamada Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle. Ekranın üstünde "Adım 1 / 5" gibi bir sayaç görürsün. İlk üç adım telefonda geçer, dördüncü adım bilgisayarda, beşinci adım yine telefonda.
- Kart ve şablon: "Kartın hangisi?" sorusunda ESP32'yi seç, "Ne yapacak?" sorusunda 8 şablondan birini işaretle. İlk deneme için "Röle ile lamba" ya da sensörlü "Oda istasyonu" iyi bir başlangıçtır. Cihaza "Salon lambası" gibi kolayca tanıyacağın bir ad ver.
- Parçalar ve devre: "Parçaları hazırla" listesi şablonun istediği parçaları gösterir. "Kabloları bağla" şeması da hangi ucun hangi pine gideceğini çizer. Röle şablonlarında "220 V ile çalışacaksan bunu bilen biriyle yap. Önce bir LED ile dene." uyarısını görürsün.
- Wi-Fi ve kod: Wi-Fi ağ adını ve şifresini gir. Ağ adı birebir aynı olmalı ve 2,4 GHz bandına ait olmalı. İstersen "Bağlantı pinleri" bölümünde GPIO26 ve GPIO4'ü başka pinlerle değiştir. Sonra "Cihazı oluştur ve kodu hazırla" düğmesine bas. Ohmi kodu senin cihaz anahtarınla hazırlar; "Kodu kopyala" ya da "Paylaş" ile kodu bilgisayarına aktar.
- Arduino IDE'ye yükle: Kodu ESP32'ye yüklersin. Uygulamadaki alt adımları bir sonraki bölümde tek tek anlattık.
- Bağlantı: "Kartın bekleniyor" ekranı, kart sunucuya bağlandığı anda kendiliğinden ilerler.
Adım 4 ve 5: kodu yüklemek ve bağlantıyı görmek
- Arduino IDE kurulu değilse kur. Adımlar Arduino IDE Kurulumu yazısında.
- Kart Yöneticisi'nde "esp32" ara ve Espressif'in esp32 paketini kur. Bu paketin 3.x sürümü gerekir; eski 2.x sürümü kuruluysa güncelle. Paketin kurulumu ESP32 Nedir? yazısında da var.
- Kartı veri taşıyan bir USB kablosuyla tak. Araçlar › Kart menüsünden ESP32 Dev Module'ü (ya da kartının modelini), Araçlar › Port menüsünden yeni çıkan portu seç. Port görünmüyorsa kabloyu değiştir. Ardından kartındaki USB çipine göre CP210x ya da CH340 sürücüsünü kur.
- Kütüphane Yöneticisi'nde BlueGraysIoT diye ara ve Kur'a bas. Bağımlılıkları sorduğunda "Tümünü kur" de; böylece WebSockets, ArduinoJson ve DHT sensor library de kurulur. Takılırsan Arduino Kütüphane Ekleme rehberine bak.
- Yeni bir taslak aç, içindekileri silip uygulamadan kopyaladığın kodu yapıştır ve Yükle'ye bas. Alt pencerede "Connecting…" yazısında takılırsa karttaki BOOT düğmesine basılı tut. Yazma yüzdeleri görünmeye başlayınca düğmeyi bırak.
- Seri Port Ekranı'nı aç ve hızı 115200 yap. Önce "Wi-Fi bağlandı", birkaç saniye sonra "BlueGrays IoT: bağlandı" satırını görmelisin.
Seri ekranda bağlandı yazısı çıktığı anda telefondaki "Kartın bekleniyor" ekranı "Bağlandı: Değerler artık anlık geliyor." ekranına geçer. Şimdi lamba anahtarına dokun: rölenin tık sesini duymalı ya da LED'in yandığını görmelisin. Kart 2 dakika içinde bağlanmazsa uygulama üç şeyi kontrol etmeni ister. 2,4 GHz ağı mı seçtin? Seri ekranda "Wi-Fi bağlandı" yazıyor mu? Şifrede büyük-küçük harfler doğru mu? İlk satır hiç gelmiyorsa sorun Wi-Fi tarafındadır. O durumda ESP32 WiFi Bağlanmıyor yazısındaki kontrol listesi işini görür.
İlk kod: telefondan lamba açıp kapatmak
Uygulamanın "Röle ile lamba" şablonu için hazırladığı kod aşağıdakine benzer. En üstteki üç satır senin cihaz anahtarın, ağ adın ve şifrenle dolu gelir; burada yer tutucularla gösterildi. Kodun geri kalanı kısadır: bir röle fonksiyonu, bir anahtar tanımı ve tek satırlık bir loop().
1/*
2 * Salon lambası · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9
10// Uygulama bu üç satırı senin bilgilerinle doldurur / The app fills these three lines with your details
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true; // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20
21void setup() {
22 Serial.begin(115200);
23 pinMode(RELAY_PIN, OUTPUT);
24 setRelay(false); // açılışta lamba kapalı / lamp off at power-up
25 bg.onSwitch("lamba", setRelay); // uygulamadaki "Lamba" anahtarı / the "Lamba" switch in the app
26 bg.setDebug(Serial); // durum mesajları Seri Port Ekranı'na / status messages to the Serial Monitor
27 bg.setLanguage(BG_LANG_TR);
28 bg.begin(WIFI_NAME, WIFI_PASSWORD);
29}
30
31void loop() {
32 bg.loop(); // burada uzun delay() kullanma / avoid long delay() calls here
33}
34| Satır | Görevi |
|---|---|
| #include | Kütüphaneyi ekler; Wi-Fi, şifreli bağlantı ve yeniden bağlanma işlerini kütüphane yönetir |
| DEVICE_KEY, WIFI_NAME, WIFI_PASSWORD | Cihaz anahtarı (bgd_ ile başlar), 2,4 GHz ağ adı ve şifresi; uygulama doldurur |
| BlueGraysIoT bg(DEVICE_KEY) | Anahtarla bg nesnesini oluşturur; diğer bütün komutlar bu nesneyle verilir |
| RELAY_PIN = 26 | Röle IN ucunun bağlı olduğu pin; 3. adımda pini değiştirdiysen burada başka sayı görürsün |
| RELAY_ACTIVE_LOW = true | Çoğu röle modülü LOW sinyalle çeker; LED ile deniyorsan false yap, yoksa ters çalışır |
| setRelay(bool on) | on true olduğunda aktif seviyeyi yazar: aktif LOW modülde LOW, diğerinde HIGH |
| setRelay(false) (setup içinde) | Kart açıldığında lamba kapalı başlar |
| bg.onSwitch("lamba", setRelay) | Uygulamadaki Lamba anahtarı her değiştiğinde setRelay fonksiyonunu true ya da false ile çağırır |
| bg.setDebug(Serial) | Bağlantı durum mesajlarını Seri Port Ekranı'na yazar |
| bg.setLanguage(BG_LANG_TR) | Durum mesajlarını Türkçe yazdırır |
| bg.begin(WIFI_NAME, WIFI_PASSWORD) | Wi-Fi ağına ve BlueGrays sunucusuna bağlanmayı başlatır |
| bg.loop() | Gelen komutları işler, bağlantıyı canlı tutar; loop() içinde sürekli çağrılmalıdır |
Sensör eklemek: Oda istasyonu (röle + DHT22)
Şimdi aynı karta bir DHT22 ekleyip telefona veri gönderelim. Uygulamada "Oda istasyonu" şablonunu seçersen lamba anahtarının yanına sıcaklık (°C) ve nem (%) değerleri ile grafikleri de gelir. DHT22, -40 ile 80 °C arasını yaklaşık ±0,5 °C doğrulukla ölçer. Nemi %0–100 aralığında ölçer ve en fazla 2 saniyede bir okunabilir. Veri ucunu GPIO4'e, VCC'yi 3V3'e, GND'yi GND'ye bağla. DHT ailesinin çalışma mantığını DHT11 Sıcaklık ve Nem Sensörü yazısında karşılaştırmalı olarak anlattık.
1/*
2 * Oda istasyonu · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9#include <DHT.h>
10
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true; // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20DHT dht(4, DHT22); // DHT22 veri ucu GPIO4 / DHT22 data on GPIO4
21unsigned long lastReadMs = 0;
22
23void setup() {
24 Serial.begin(115200);
25 pinMode(RELAY_PIN, OUTPUT);
26 setRelay(false);
27 bg.onSwitch("lamba", setRelay);
28 dht.begin();
29 bg.setDeadband("sicaklik", 0.1); // 0,1 °C değişmeden gönderme / send only after a 0.1 °C change
30 bg.setDeadband("nem", 1.0); // %1 değişmeden gönderme / send only after a 1 % change
31 bg.setDebug(Serial);
32 bg.setLanguage(BG_LANG_TR);
33 bg.begin(WIFI_NAME, WIFI_PASSWORD);
34}
35
36void loop() {
37 bg.loop(); // burada uzun delay() kullanma / avoid long delay() calls here
38 if (millis() - lastReadMs >= 2000) { // DHT22 en fazla 2 saniyede bir okunur / DHT22 reads at most every 2 s
39 lastReadMs = millis();
40 bg.send("sicaklik", dht.readTemperature());
41 bg.send("nem", dht.readHumidity());
42 }
43}
44Röle kısmı ilk kodla aynıdır; yeni olan üç şey var. Birincisi bg.send("sicaklik", dht.readTemperature()) satırıdır: karttan uygulamaya değer gönderir ve ilk parametre uygulamadaki değişkenin adıdır. İkincisi bg.setDeadband("sicaklik", 0.1) satırıdır. En küçük değişim payını belirler: sıcaklık 0,1 °C değişmeden yeniden gönderilmez, nem için bu pay %1'dir. Üçüncüsü loop içindeki millis() - lastReadMs >= 2000 kontrolüdür. Sensör 2 saniyede bir okunur, ama arada bg.loop() beklemeden dönmeye devam eder. Kütüphane değeri yalnız değiştiğinde gönderir ve plan hızını aşmaz. Aynı değişken için iki gönderim arasında ücretsiz planda en az 1 saniye, Premium'da en az 0,2 saniye geçer. Bu sınırlar sunucuda kontrol edilir; koddaki sayıları değiştirmek onları aşmaz. Oda sıcaklığı dakikalarca 23,4 °C'de kalırsa kart yeni değer göndermez, 23,5 °C olunca tek bir mesaj gider. Kablo gevşekse ya da pull-up eksikse okuma geçersiz (NaN) olur. Değer gelmiyorsa önce GPIO4 bağlantısını ve beslemeyi kontrol et.
Telefonda ne görürsün?
- Durum: Cihaz ekranının üstünde Çevrimiçi ya da Çevrimdışı yazar, altında "Son veri … önce" bilgisi bulunur. Kartın gerçekten bağlı olup olmadığını ilk buradan anlarsın.
- Kontroller: Lamba şablonunda aç/kapat anahtarı çıkar. RGB şerit şablonunda renk seçici, %0–100 parlaklık ve efekt seçimi gelir. Perde şablonunda da 0–180° açı kaydırıcısı bulunur.
- Canlı değerler ve grafikler: 1 sa, 24 sa, 7 gün ve 30 gün aralıkları vardır. 7 ve 30 günlük görünümde saatlik ortalama gösterilir. Grafikte En düşük, En yüksek ve Son değerler yazar. Kart bağlı kaldıkça her dakika yeni bir nokta eklenir.
- Kod ve anahtar: Kodun tamamını, cihaz anahtarını ve Wi-Fi bilgilerini sonradan da burada görürsün. Kartı yeniden programlaman gerekirse kodu buradan kopyala.
- Anahtarı yenile: Biri anahtarını gördüyse ya da kartı değiştirdiysen kullan. Eski anahtar hemen geçersiz olur, yeni kodu karta bir kez yüklemen yeterlidir.
- Cihazı kaldır: Cihaz ve grafik geçmişi silinir, cihaz hakkın geri gelir.
Ücretsiz ve Premium: ne kadar kullanabilirsin?
İlk cihazın ücretsiz. Bir ESP32 ile lamba anahtarı ya da oda istasyonu kurmak için başka bir şeye ihtiyacın yok. Oda istasyonunda sıcaklık ve nem iki ayrı değişkendir. Ücretsiz planda ikisinin de canlı değeri telefona gelir, ama grafik geçmişi yalnız bir değişken için tutulur. Planlar arasındaki farklar aşağıda; ayrıntılar BlueGrays Premium Neleri Açar? yazısında.
| Özellik | Ücretsiz | Premium |
|---|---|---|
| Cihaz sayısı | 1 | 10 |
| Grafik geçmişi tutulan değişken | 1 | 20 |
| Geçmiş süresi | 24 saat | 30 gün |
| Aynı değişken için iki gönderim arası en az süre | 1 saniye | 0,2 saniye |
Diğer yöntemlerle karşılaştırma
| Yöntem | Evin dışından erişim | Kurulumda senin işin | Panel ve grafik | Ne zaman uygun? |
|---|---|---|---|---|
| Yerel web sunucusu | Normalde yok, aynı ağdan | ESP32 kodu ve HTML sayfası yazmak | Kendin tasarlarsın | İnternetsiz ev içi kontrol paneli |
| Bluetooth / BLE | Yok, yaklaşık 10 m | Kart kodu ve telefon tarafında bir uygulama | Kullandığın uygulamaya bağlı | Modem olmayan yerler, yakından kontrol |
| Telegram botu | Var | Bot oluşturmak ve kodu yazmak | Mesaj ve düğmeler, grafik yok | Bildirim ve basit komutlar |
| Blynk | Var | Şablon, datastream, panel ve kod | Hazır widget'lar ve grafik | Kendi panelini tasarlamak isteyenler |
| Arduino IoT Cloud | Var | Arduino hesabında Thing ve değişken tanımlamak, kodu tamamlamak | Dashboard widget'ları | Arduino ekosisteminde kalanlar |
| BlueGrays IoT | Var | Devreyi kurmak ve kodu yüklemek | Şablona göre hazır kontroller ve grafikler | Hızlı başlamak ve öğrenirken kullanmak |
Doğru seçim ihtiyacına bağlı. İnternet hiç yoksa Bluetooth ya da yerel web sunucusu tek seçenektir. BlueGrays IoT, Blynk ve Arduino IoT Cloud kartın ve telefonun internete erişmesini ister. Arayüzü sıfırdan tasarlamak ya da Home Assistant'a bağlanmak gibi esnek kurulumlar istiyorsan ESP32 MQTT ve bulut panelleri daha geniş seçenek sunar. BlueGrays IoT'de hazır şablon sayısı 8'dir. Buna karşılık devre şeması, parça listesi, kod ve telefon arayüzü birbiriyle uyumlu olarak hazır gelir. Öğrenirken bir yerde hata yapma ihtimalin azalır.
Güvenlik: anahtar, Wi-Fi şifresi ve kod
- Cihaz anahtarı kartın kimliğidir. bgd_ ile başlayan anahtarı bilen biri senin kartının yerine geçebilir. Bu yüzden anahtarı ekran görüntüsünde, forumda ya da mesajlaşma grubunda paylaşma.
- Wi-Fi şifresi telefonda kalır. Şifre sunucuya gönderilmez; ağ adı ise kodu sonra yeniden gösterebilmek için cihazla birlikte saklanır. Ama karta yüklenen kodun içinde şifre yazılıdır.
- Kodu paylaşma. Uygulamanın da uyardığı gibi kodun içinde cihaz anahtarın ve Wi-Fi şifren var. Yardım istemek için kodu forumda göstereceksen önce DEVICE_KEY, WIFI_NAME ve WIFI_PASSWORD satırlarını sil.
- Bağlantı şifrelidir. Kart ile sunucu arasındaki trafik 443 portunda TLS ile gider, aynı ağdaki biri komutları okuyamaz.
- Şüphelendiğinde anahtarı yenile. Anahtarı yenile düğmesi eski anahtarı hemen geçersiz kılar. Kartı başkasına vereceksen de anahtarı yenile ya da cihazı kaldır.
Sık hatalar ve çözümleri
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| Seri ekranda "Wi-Fi bağlandı" hiç çıkmıyor | 5 GHz ağ seçilmiş ya da şifrede büyük-küçük harf hatası var | 2,4 GHz ağın adını gir; modemde bantlar aynı adı taşıyorsa ayır; şifreyi dikkatle yeniden yaz |
| Araçlar › Port menüsünde port yok | Yalnız şarj eden kablo ya da eksik sürücü | Veri kablosu kullan; çipe göre CP210x ya da CH340 sürücüsünü kur |
| Yükleme "Connecting…" yazısında takılıyor | Kart yükleme moduna geçmiyor | BOOT düğmesine basılı tut, yazma başlayınca bırak; daha fazlası Arduino Kod Yüklenmiyor yazısında |
| Derleme ESP32 çekirdeğiyle ilgili hatalarla duruyor | esp32 paketinin eski 2.x sürümü kurulu | Kart Yöneticisi'nden 3.x sürümüne güncelle |
| "No such file or directory" (BlueGraysIoT.h, DHT.h, WebSockets) | Kütüphane ya da bağımlılıkları kurulmamış | BlueGraysIoT'yi yeniden kur ve "Tümünü kur" de; eksik olanı adıyla ayrıca ara |
| Seri ekranda anlamsız karakterler | Hız 115200 değil | Seri Port Ekranı'nın hızını 115200 yap |
| "Wi-Fi bağlandı" var ama "BlueGrays IoT: bağlandı" yok | Ağ internete çıkmıyor, kurum ağı engelliyor ya da yenilenmiş anahtardan önceki kod yüklü | Telefonun hotspot'uyla dene; Kod ve anahtar ekranındaki güncel kodu yükle |
| Röle tıklayınca kart yeniden başlıyor | Besleme yetersiz (brownout) | Kaliteli kablo ve güçlü adaptör kullan, röleyi 5V'tan besle; bkz. ESP32 Brownout |
| Anahtar kapalıyken LED yanıyor | RELAY_ACTIVE_LOW röle için true bırakılmış | Doğrudan LED kullanıyorsan RELAY_ACTIVE_LOW = false yap |
| Analog sensör Wi-Fi açılınca hep aynı değeri veriyor | Sensör ADC2 pinine bağlı | ADC1 pinlerinden birini (GPIO32–39) kullan; ayrıntılar ADC Nedir? yazısında |
| Sıcaklık ve nem değerleri gelmiyor | DHT22 veri ucu yanlış pinde ya da pull-up eksik | DATA ucunu GPIO4'e bağla, VCC'yi 3V3'e ver; çıplak sensörde 10 kΩ pull-up ekle |
ESP32 ile kurabileceğin IoT proje fikirleri
- Lamba anahtarı: Bu yazıdaki ilk devrenin tam hâli ESP32 IoT Lamba Anahtarı (Röle) projesinde. Proje devre şeması ve parça listesiyle birlikte gelir.
- Oda istasyonu: Röle ve DHT22 bir arada, sıcaklık grafiğiyle: ESP32 IoT Oda İstasyonu (Röle + DHT22).
- Bitki sulama: Toprak nem sensörü GPIO34'e (bir ADC1 pini) bağlanır. Nem, telefondaki Sulama eşiği kaydırıcısının altına inince pompa açılır, eşiğin 10 puan üstüne çıkınca kapanır. Proje sayfası: ESP32 IoT Bitki Sulama (Nem Sensörü + Pompa). Sensör kalibrasyonu için Toprak Nem Sensörü yazısına da bak.
- RGB LED şerit: GPIO13'teki 30 LED'lik WS2812B şeridin rengini, parlaklığını ve efektini (Sabit, Gökkuşağı, Nefes, Yanıp sönme) telefondan seç: ESP32 IoT RGB LED Şerit (WS2812B). 30 LED tam beyazda yaklaşık 1,8 A çekebilir; şeridi ayrı bir 5 V kaynaktan besle. Ayrıntılar WS2812B NeoPixel yazısında.
- Perde açıcı: GPIO18'deki SG90 servoyu 0–180° kaydırıcıyla döndür: ESP32 IoT Perde Açıcı (SG90 Servo). Servoyu da ayrı 5 V kaynaktan besle ve GND'leri birleştir.
- Diğer şablonlar: Kapı sensörü, hareket sayacı ve sıcaklık ve nem projeleri Pico W ile anlatıldı. Bu şablonları uygulamada ESP32 için de seçebilirsin.
Kart, sunucu ve telefon arasındaki yolu bir kez kurduktan sonra yeni bir cihaz eklemek birkaç dakikanı alır. Lamba anahtarıyla başla, ardından DHT22 ile verinin telefona aktığını gör, sonra sulama ya da perde gibi daha büyük projelere geç. BlueGrays uygulamasında bu ESP32 IoT projelerine adım adım devre şeması ve koduyla bakabilirsin. Keşfet'teki IoT projeleri süzgecini kullanabilir, proje sayfasındaki "IoT cihazı olarak kur" kartıyla aynı devreyi doğrudan telefonuna bağlayabilirsin.
Sıkça sorulan sorular
ESP32 telefondan nasıl kontrol edilir?
ESP32 telefondan yerel web sunucusu, Bluetooth, Telegram botu ya da bulut panelleriyle kontrol edilebilir. BlueGrays IoT ile Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izlersin. Kartı ve şablonu seçer, Wi-Fi bilgilerini girer, Ohmi'nin hazırladığı kodu Arduino IDE ile yüklersin. Kart bağlandığında anahtarlar ve değerler telefonda görünür.
ESP32 internet olmadan telefondan kontrol edilir mi?
BlueGrays IoT ile hayır; hem kartın hem telefonun internete bağlı olması gerekir, çünkü komutlar sunucu üzerinden taşınır. İnternetsiz kontrol için Bluetooth (BLE) ya da aynı ağda çalışan bir ESP32 web sunucusu kullanabilirsin.
ESP32'yi başka bir şehirden kontrol edebilir miyim?
Evet. Kart ve telefon aynı sunucuya bağlandığı için aynı ağda olmaları gerekmez. Kart evdeki 2,4 GHz Wi-Fi'da, telefon mobil veride olabilir. Port yönlendirme, sabit IP ya da kendi sunucun gerekmez.
BlueGrays IoT ücretli mi?
İlk cihazın ücretsiz. Ücretsiz planda 1 cihaz, 1 değişkenin grafik geçmişi ve 24 saatlik geçmiş bulunur. Premium'da 10 cihaz, 20 değişkenin grafik geçmişi ve 30 güne kadar geçmiş açılır.
ESP32'yi Bluetooth ile mi Wi-Fi ile mi kontrol etmeliyim?
Bluetooth internet ve modem istemez, ama menzili iç mekânda genellikle 10 metre civarındadır. Wi-Fi ve sunucu üzerinden kontrolde kartı dünyanın her yerinden yönetirsin, grafik ve geçmiş de tutulur. Sürekli evdeysen ve modem yoksa Bluetooth, uzaktan erişim istiyorsan Wi-Fi daha uygundur.
BlueGrays IoT'ye kaç cihaz bağlayabilirim?
Ücretsiz planda 1, Premium'da 10 cihaz ekleyebilirsin. Desteklenen kartlar ESP32 (Dev Module, WROOM, S3, C3) ve Raspberry Pi Pico W'dir. Bir cihazı kaldırdığında cihaz hakkın geri gelir.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
ESP32 IoT Lamba Anahtarı (Röle)
Lambanı nerede olursan ol telefondan aç, kapat. Bu proje uygulamadaki Röle ile lamba IoT şablonunun adım adım rehberi: ESP32 ve röle modülü ile kurulur, önce bir LED ile denenir. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, Röle ile lamba'yı seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

ESP32 IoT Oda İstasyonu (Röle + DHT22)
Lambanı telefondan aç, odanın sıcaklığını ve nemini nerede olursan ol canlı izle. Bu proje uygulamadaki Oda istasyonu IoT şablonunun adım adım rehberi: ESP32, röle modülü ve DHT22 ile kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, Oda istasyonu'nu seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

ESP32 IoT Bitki Sulama (Nem Sensörü + Pompa)
Saksının toprağı kuruyunca pompa kendiliğinden çalışsın, toprak nemini telefondan canlı izle. Bu proje uygulamadaki Toprak nemi + pompa IoT şablonunun adım adım rehberi: ESP32, toprak nem sensörü, röle ve mini su pompası ile kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

ESP32 IoT RGB LED Şerit (WS2812B)
Odanın ışığını telefondan yönet: rengi seç, parlaklığı ayarla, gökkuşağı ya da nefes efektini aç. Bu proje uygulamadaki RGB LED şerit IoT şablonunun adım adım rehberi: ESP32 ve 30 LED'lik WS2812B şerit ile üç kabloda kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, RGB LED şerit'i seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

ESP32 IoT Perde Açıcı (SG90 Servo)
Telefondaki + ve − düğmelerine dokun, servo aynı anda o açıya dönsün: maket bir perdeyi, jaluzinin çevirme çubuğunu ya da küçük bir kapağı nerede olursan ol aç kapat. Bu proje uygulamadaki Servo ile perde IoT şablonunun adım adım rehberi: ESP32 ve SG90 servo ile, yalnız 3 kabloyla kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

Pico W IoT Sıcaklık ve Nem (DHT22)
Odanın sıcaklığını ve nemini nerede olursan ol telefondan canlı izle, değişimi grafikte gör. Bu proje uygulamadaki Sıcaklık ve nem IoT şablonunun adım adım rehberi: Raspberry Pi Pico W ve DHT22 ile üç kabloda kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, kart olarak Pico W'yi, şablon olarak Sıcaklık ve nem'i seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

Pico W IoT Kapı Sensörü (Reed)
Kapı ya da pencere açık mı kaldı? Nerede olursan ol telefondan bak. Bu proje uygulamadaki Kapı / pencere IoT şablonunun adım adım rehberi: Raspberry Pi Pico W, bir reed anahtar ve küçük bir mıknatıs ile iki kabloda kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, kart olarak Pico W'yi, şablon olarak Kapı / pencere'yi seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

Pico W IoT Hareket Sayacı (PIR)
Kapıdan ya da koridordan kaç kez geçildiğini say, hareket olduğu anı telefondan canlı gör. Bu proje uygulamadaki Hareket algılayıcı IoT şablonunun adım adım rehberi: Raspberry Pi Pico W ve PIR hareket sensörü ile, yalnız 3 kabloyla kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.
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ç

