top of page

ESP32 ile Akıllı Oda Sıcaklığı Takipçisi



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)


  1. Arduino IDE Kurulumu: Bilgisayarınıza Arduino IDE'yi indirin ve kurun.

  2. 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.

  3. 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)


  1. Hesap Oluşturma: ThingSpeak'te ücretsiz bir hesap oluşturun.

  2. Kanal Oluşturma: "Channels" (Kanallar) sekmesine gidin ve "New Channel" (Yeni Kanal) oluşturun.

  3. 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.

  4. 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)

}




  1. 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.

  2. 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.

  3. 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)


  1. ThingSpeak hesabınıza geri dönün.

  2. Kanalınızı açın ve "Private View" (Özel Görünüm) sekmesine gidin.

  3. ESP32'nin gönderdiği sıcaklık ve nem verilerinin canlı grafikler halinde belirmeye başladığını görmelisiniz.

Yorumlar


bottom of page