Neler lazım?
| NO | PARÇA | ADET | NOT |
|---|---|---|---|
| 01 | ESP32 geliştirme kartı | 1 | Arduino IDE'ye tanıtılmış olmalı |
| 02 | DHT22 (AM2302) sensör | 1 | 4 bacaklı ya da hazır modül |
| 03 | 10 kΩ direnç | 1 | Modülde varsa gerekmez |
| 04 | Breadboard | 1 | |
| 05 | Erkek-erkek jumper kablo | 4 | |
| 06 | USB veri kablosu | 1 |
| Bacak | Görevi | ESP32'de |
|---|---|---|
| 1 | Besleme (3–5 V) | 3V3 |
| 2 | Veri | GPIO4 |
| 3 | Bağlı değil | boş bırak |
| 4 | Toprak | GND |
Kartları yerleştir
ESP32'yi breadboard'un ortasındaki boşluğun iki yanına gelecek şekilde tak; iki sıra bacak birbirine değmemeli. Sensörü kartın yanına koy.
Üç kabloyu bağla
Tablodaki gibi: 3V3 sensörün 1. bacağına, GPIO4 2. bacağa, GND 4. bacağa. 3. bacak boş kalır.
Direnci tak
10 kΩ direnci sensörün 1. bacağıyla (besleme) 2. bacağı (veri) arasına koy. Üç bacaklı hazır modüllerin bazılarında bu direnç kartın üstünde zaten vardır; modülün açıklamasına bak.
Kütüphaneyi kur, kodu yükle
Araçlar > Kütüphaneleri Yönet'te "DHT sensor library" ara ve Adafruit'in kütüphanesini kur. IDE bağımlı kütüphaneleri (Adafruit Unified Sensor) da kurmak isteyip istemediğini sorarsa hepsini kur. Aşağıdaki kodu yükle, seri port ekranını 115200'de aç.
#include "DHT.h"
#define DHT_PIN 4
#define DHT_TURU DHT22
DHT sensor(DHT_PIN, DHT_TURU);
void setup() {
Serial.begin(115200);
sensor.begin();
}
void loop() {
delay(2000);
float nem = sensor.readHumidity();
float sicaklik = sensor.readTemperature();
if (isnan(nem) || isnan(sicaklik)) {
Serial.println("Sensör okunamadı, kabloları kontrol et");
return;
}
Serial.printf("Nem: %.1f%% Sıcaklık: %.1f°C\n", nem, sicaklik);
}
Sensör ne kadar doğru ölçer?
Üreticinin değerlerine göre DHT22 neme 0–100 aralığında yüzde 2–5 sapmayla, sıcaklığa −40 ile 80 °C arasında ±0,5 °C sapmayla bakar. Ev ve sera için yeterli; laboratuvar ölçümü için değil.
Ekranda "okunamadı" yazıyorsa
- 1. ve 4. bacağın yerleri karışmış olabilir; tabloya yeniden bak.
- Veri kablosu GPIO4'e değil başka bir bacağa takılmış olabilir.
- Çıplak sensörde 10 kΩ direnç eksik olabilir.