ESP32 ile Akıllı Oda Sıcaklığı Takipçisi
- Tuncay liman
- 11 Kas 2025
- 3 dakikada okunur

Bu proje, ESP32 kartını kullanarak bir sensörden aldığı sıcaklık verisini okur ve bu veriyi Wi-Fi üzerinden ücretsiz bir IoT bulut platformuna (örneğin ThingSpeak) gönderir. Böylece sıcaklık değişimlerini cep telefonunuzdan veya bilgisayarınızdan anlık olarak takip edebilirsiniz.
Projeyi Hayata Geçirme Adımları
Bu projeyi tamamlamak için izleyeceğimiz adımlar aşağıdadır.
Adım 1: Gerekli Donanım ve Yazılımı Temin Etme
Kategori | Bileşen Adı | Açıklama |
Donanım | 1. ESP32 Geliştirme Kartı | Temel mikrodenetleyicimiz. |
2. DHT11 veya DHT22 Sensörü | Dijital sıcaklık ve nem sensörü (DHT22 daha hassastır). | |
3. Breadboard (Devre Tahtası) | Bileşenleri geçici olarak bağlamak için. | |
4. Bağlantı Kabloları (Jumper) | Bileşenleri birbirine bağlamak için (erkek-erkek). | |
5. Micro USB Kablosu | ESP32'yi bilgisayara bağlamak ve güç vermek için. | |
Yazılım | 1. Arduino IDE | Kodu yazacağımız ve karta yükleyeceğimiz programlama ortamı. |
2. ESP32 Kart Desteği | Arduino IDE'ye ESP32 kartlarını eklemek için. | |
3. DHT Sensör Kütüphanesi | Sensörden veri okumak için gerekli yazılım kütüphanesi. | |
4. ThingSpeak Hesabı | Verileri internet üzerinden görmek için ücretsiz bir IoT platformu hesabı. |
Adım 2: Geliştirme Ortamını Kurulumu (Yazılım ve Kodlama)
Arduino IDE Kurulumu: Bilgisayarınıza Arduino IDE'yi indirin ve kurun.
ESP32 Desteğini Ekleme: Arduino IDE içinde Dosya > Tercihler > Ek Kart Yöneticisi URL'leri alanına ESP32 kart destek linkini ekleyin ve Araçlar > Kart > Kart Yöneticisi'nden "esp32" paketini kurun.
Kütüphaneyi Kurma: Taslak > Kütüphaneleri Dahil Et > Kütüphaneleri Yönet seçeneğinden "DHT sensor library by Adafruit" ve "Adafruit Unified Sensor" kütüphanelerini aratıp kurun.
Adım 3: ThingSpeak Kanalını Ayarlama (IoT ve Bulut)
Hesap Oluşturma: ThingSpeak'te ücretsiz bir hesap oluşturun.
Kanal Oluşturma: "Channels" (Kanallar) sekmesine gidin ve "New Channel" (Yeni Kanal) oluşturun.
Alanları Tanımlama: Kanal ayarlarında (Channel Settings), Field 1'i "Sıcaklık (°C)" ve Field 2'yi "Nem (%)" olarak adlandırın ve kanalı kaydedin.
API Anahtarını Kaydetme: "API Keys" (API Anahtarları) sekmesine gidin ve Write API Key (Yazma API Anahtarı) değerini not alın. Bu anahtar, ESP32'nin veriyi buluta göndermesi için gereklidir.
Adım 4: Donanım Bağlantılarını Yapma (Teknik Rehber)
DHT sensörünü ESP32'ye bağlayın (DHT11/DHT22'nin 3 pini vardır):
DHT Sensör Pini | Bağlantı Yeri | ESP32 Pini |
VCC (Güç) | -> | 3.3V |
GND (Toprak) | -> | GND |
DATA (Veri) | -> | GPIO 4 (Veya herhangi bir boş dijital pin) |
Uyarı: Bağlantıları yapmadan önce kartın bilgisayardan ayrılmış olduğundan emin olun. Ters polarite kartınıza veya sensörünüze kalıcı olarak zarar verebilir.
Adım 5: ESP32 Kodunu Yazma ve Yükleme
Aşağıdaki kod taslağını Arduino IDE'ye yapıştırın. Önemli kısımları kendi bilgilerinizle değiştirmeniz gerekiyor.
#include <WiFi.h>
#include <DHT.h>
#include <ThingSpeak.h>
// ---------------- KENDİ BİLGİLERİNİZİ GİRİN ----------------
// Wi-Fi Bilgileri
const char* ssid = "WIFI_AG_ADINIZ";
const char* password = "WIFI_SIFRENIZ";
// ThingSpeak Bilgileri
unsigned long myChannelNumber = KANAL_ID_NUMARANIZ; // Örn: 123456
const char* myWriteAPIKey = "WRITE_API_ANAHTARINIZ"; // ThingSpeak'ten aldığınız anahtar
// DHT Sensör Bilgileri
#define DHTPIN 4 // Sensörün bağlı olduğu ESP32 pini (Adım 4'teki pin)
#define DHTTYPE DHT11 // Kullandığınız sensör türü (DHT11 veya DHT22)
// ---------------- KOD BURADAN SONRA STANDARTTIR ----------------
WiFiClient client;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
ThingSpeak.begin(client);
Serial.println("WiFi'ye Bağlanıyor...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi Bağlandı. IP Adresi: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Nem ve Sıcaklık değerlerini oku
float h = dht.readHumidity();
float t = dht.readTemperature();
// Okuma başarısız olursa atla
if (isnan(h) || isnan(t)) {
Serial.println("DHT okuması başarısız!");
return;
}
// ThingSpeak'e veri gönder
ThingSpeak.setField(1, t); // Field 1: Sıcaklık
ThingSpeak.setField(2, h); // Field 2: Nem
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200){
Serial.print("Gönderilen Sıcaklık: ");
Serial.print(t);
Serial.print(" C, Gönderilen Nem: ");
Serial.print(h);
Serial.println(" %. ThingSpeak güncellendi.");
}
else{
Serial.println("ThingSpeak yazma hatası. Hata Kodu: " + String(x));
}
delay(20000); // 20 saniye bekle (ThingSpeak ücretsiz hesap limitlerini aşmamak için)
}
Kodu Hazırlama: Yukarıdaki kodda WIFI_AG_ADINIZ, WIFI_SIFRENIZ, KANAL_ID_NUMARANIZ ve WRITE_API_ANAHTARINIZ kısımlarını kendi bilgilerinizle değiştirin.
Yükleme: Araçlar > Kart kısmından kullandığınız ESP32 modelini seçin. Araçlar > Port kısmından ESP32'nin bağlı olduğu COM portunu seçin. "Yükle" düğmesine tıklayın.
Test Etme: Yükleme tamamlandıktan sonra Araçlar > Seri Monitör'ü açın (Baud hızı: 115200). Bağlantı sürecini ve başarılı veri gönderme mesajlarını görmelisiniz.
Adım 6: Verileri Bulutta Görüntüleme (IOT ve Bulut)
ThingSpeak hesabınıza geri dönün.
Kanalınızı açın ve "Private View" (Özel Görünüm) sekmesine gidin.
ESP32'nin gönderdiği sıcaklık ve nem verilerinin canlı grafikler halinde belirmeye başladığını görmelisiniz.



Yorumlar