ESP32 ile ilk proje: Wi-Fi'ye bağlanıp sıcaklık ve nem okumak
ESP32, dahili Wi-Fi ve Bluetooth'u olan, ucuz ve güçlü bir mikrodenetleyici. Bu rehberde bir DHT22 sensörüyle sıcaklık ve nem okuyup değerleri tarayıcıdan görüntüleyeceğiz.
Gerekenler
- ESP32 geliştirme kartı (ör. ESP32 DevKit)
- DHT22 (AM2302) sıcaklık/nem sensörü
- 10 kΩ direnç (sensör modül olarak geliyorsa genelde kartın üstündedir)
- Breadboard ve jumper kablolar
- Veri aktarabilen bir USB kablosu (bazı kablolar sadece şarj eder!)
Bağlantı
| DHT22 | ESP32 |
|---|---|
| VCC | 3V3 |
| DATA | GPIO 4 (+ 10 kΩ ile 3V3'e) |
| GND | GND |
Arduino IDE kurulumu
- Board Manager'dan "esp32" (Espressif) paketini kur.
- Library Manager'dan "DHT sensor library" (Adafruit) ve istediği "Adafruit Unified Sensor" kütüphanesini kur.
- Araçlar menüsünden kart olarak "ESP32 Dev Module" ve doğru COM portunu seç.
Kod
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>
const char* SSID = "AgAdin";
const char* PASS = "AgSifren";
DHT dht(4, DHT22);
WebServer server(80);
void handleRoot() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
server.send(500, "text/plain", "Sensor okunamadi");
return;
}
String json = "{\"sicaklik\":" + String(t, 1) + ",\"nem\":" + String(h, 1) + "}";
server.send(200, "application/json", json);
}
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(SSID, PASS);
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Serial.println();
Serial.print("IP adresi: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.begin();
}
void loop() {
server.handleClient();
}
Yükledikten sonra Seri Monitör'ü (115200 baud) aç, yazdırılan IP adresini aynı ağdaki bir tarayıcıda aç.
Sık karşılaşılan sorunlar
- Port görünmüyor: Kablo sadece şarj kablosu olabilir ya da USB–seri çip (CP210x / CH340) sürücüsü eksiktir.
- "Failed to connect" yükleme hatası: Yükleme başlarken karttaki BOOT düğmesine basılı tut.
- Wi-Fi'ye bağlanmıyor: ESP32 sadece 2,4 GHz ağlara bağlanır. 5 GHz ağ adına bağlanmaya çalışıyorsan olmaz.
- NaN değerleri: DHT22 iki saniyede bir okunabilir; daha sık okuma ve gevşek kablo bu hatayı verir.
- Analog okuma yapacaksan: Wi-Fi açıkken ADC2 pinleri kullanılamaz; ADC1 pinlerini seç.
Sonraki adımlar
- Değerleri MQTT ile Home Assistant'a göndermek
- Derin uyku (deep sleep) ile pille aylarca çalıştırmak
- Wi-Fi bilgilerini koda gömmek yerine WiFiManager gibi bir kütüphaneyle ayarlamak
Projenizi bu başlık altında paylaşırsanız devam adımlarında birlikte ilerleyebiliriz.