#376OrtaIoT

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.

0.0(0)
ESP32 IoT Bitki Sulama (Nem Sensörü + Pompa)
Tatile çıkınca saksıların susuz kalmasın istiyorsan bu proje tam sana göre. Sensör topraktaki nemi ölçer, nem senin belirlediğin eşiğin altına inince röle pompayı çalıştırır, toprak yeterince ıslanınca durdurur. Nem değeri telefonunda grafikte birikir, eşiği ve pompayı oradan da yönetirsin. Pompa karttan değil kendi pillerinden beslenir; su ile elektroniği ayrı tutmayı ve güvenli kablolamayı da öğrenirsin.
IoT · uzaktan kontrolİlk cihazın ücretsiz

Bu cihazı uygulamadan kontrol et

ESP32 ya da Raspberry Pi Pico W kartını Wi-Fi'ye bağla; telefonundan aç, kapat ve ölçümleri canlı izle. Kodu Ohmi hazırlar, sen yalnız Wi-Fi bilgini girip yüklersin.

Uygulamadaki şablon: Toprak nemi + pompa

  • Uygulamada nerede?Araçlar sekmesinden ya da Atölyem › Cihazlarım'dan yeni cihaz ekle, bu şablonu seç.
  • Arduino kütüphanesiArduino IDE'de Kütüphane Yöneticisi'ni aç, BlueGraysIoT diye ara ve kur.
Uygulamayı ücretsiz indir

Ücretsiz planda 1 cihaz, 1 grafik ve 24 saatlik geçmiş var. Premium ile daha fazla cihaz, grafik ve daha uzun geçmiş.

Devre Şeması

ESP32 IoT Bitki Sulama (Nem Sensörü + Pompa) - Circuit

Kaynak Kodu

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 IoT Bitki Sulama (Nem Sensörü + Pompa)
4// ─────────────────────────────────────────
5// BlueGrays uygulamasındaki "Toprak nemi + pompa" IoT şablonu: toprak nem
6// sensörü nemi 2 saniyede bir ölçüp uygulamaya gönderir, nem sulama
7// eşiğinin altına inince röle pompayı çalıştırır, eşiğin 10 puan üstüne
8// çıkınca durdurur; pompayı ve eşiği telefondan da yönetirsin. Gerçek kodu
9// uygulamada Ohmi senin cihaz anahtarınla hazırlar (Atölyem › Cihazlarım ›
10// Yeni cihaz ekle); buradaki kod örnektir, cihaz anahtarı ve Wi-Fi
11// bilgileri yer tutucudur. Kütüphane Yöneticisi: BlueGraysIoT
12// (bağımlılıklarıyla). Kart yalnız 2,4 GHz Wi-Fi ağlarına bağlanır. Röle
13// LOW ile çeker. Güvenlik: pompayı karttan değil ayrı bir pil yuvasından
14// (4 x AA) besle; kartı, röleyi ve pilleri sudan uzak, kapalı bir kutuda
15// tut; pompayı kuru çalıştırma.
16//
17// Pinler:
18//   GPIO34 -> Toprak nem sensörü AO
19//   3V3, GND -> Toprak nem sensörü VCC, GND
20//   GPIO26 -> Röle modülü IN
21//   5V, GND -> Röle modülü VCC, GND
22//   Röle COM -> pil yuvası (+), NO -> pompa (+), pompa (-) -> pil yuvası (-); pompa 4 x AA ile
23//   ayrı beslenir
24//   Pico W: nem sensörü AO GP26, röle IN GP15
25
26/*
27 * Toprak nemi + pompa · BlueGrays IoT
28 * BlueGrays · bluegrays.com
29 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
30 */
31
32#include <BlueGraysIoT.h>
33
34const char *DEVICE_KEY = "CIHAZ_ANAHTARIN";
35const char *WIFI_NAME = "WIFI_ADIN";
36const char *WIFI_PASSWORD = "WIFI_SIFREN";
37
38BlueGraysIoT bg(DEVICE_KEY);
39
40const int RELAY_PIN = 26;
41const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker
42void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
43const int SOIL_PIN = 34;
44const int SOIL_DRY = 3200;  // kuru toprakta okunan değer
45const int SOIL_WET = 1300;  // ıslak toprakta okunan değer
46int threshold = 30; bool pump = false; unsigned long lastReadMs = 0;
47
48void setup() {
49  Serial.begin(115200);
50  pinMode(RELAY_PIN, OUTPUT);
51  setRelay(false);
52  analogReadResolution(12);
53  bg.onSwitch("pompa", [](bool on) { pump = on; setRelay(on); });
54  bg.onNumber("esik", [](float v) { threshold = (int)v; });
55  bg.setDeadband("toprak", 1.0);
56  bg.setDebug(Serial);
57  bg.setLanguage(BG_LANG_TR);
58  bg.begin(WIFI_NAME, WIFI_PASSWORD);
59}
60
61void loop() {
62  bg.loop();  // burada uzun delay() kullanma
63  if (millis() - lastReadMs >= 2000) {
64    lastReadMs = millis();
65    int pct = constrain(map(analogRead(SOIL_PIN), SOIL_DRY, SOIL_WET, 0, 100), 0, 100);
66    bg.send("toprak", pct);
67    // Eşiğin altına inince pompayı aç, 10 puan üstüne çıkınca kapat
68    if (pct < threshold && !pump) { pump = true; setRelay(true); bg.send("pompa", true); }
69    if (pct > threshold + 10 && pump) { pump = false; setRelay(false); bg.send("pompa", false); }
70  }
71}
72

Sıkça Sorulanlar

Bu sayfadaki kodu doğrudan karta yükleyebilir miyim?

Yükleyebilirsin ama bağlanmaz: koddaki cihaz anahtarı ve Wi-Fi bilgileri yer tutucu. Uygulamada Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle ve Toprak nemi + pompa şablonunu seç; Ohmi kodu senin anahtarın, ağ adın ve şifrenle hazırlar. O kodu kopyalayıp yükle. Kodun tamamını sonra da Cihaz › Kod ve anahtar bölümünde görebilirsin.

Pico W ile de olur mu?

Olur. Cihazı eklerken kart olarak Pico W'yi seç; kod aynı kalır, yalnız pinler ve kalibrasyon değerleri değişir: nem sensörü GP26'ya (analog giriş), röle GP15'e. Arduino IDE'de Kart Yöneticisi'nden "pico" paketini kur. Bu sayfadaki devre ve fotoğraf ESP32 ile hazırlandı.

Pompayı neden ayrı pille besliyorum?

Pompa çalışırken çektiği akım ve motorun ürettiği parazit kartı yeniden başlatabilir. Bu yüzden pompa 4 x AA pil yuvasından beslenir ve yalnız rölenin COM ve NO uçlarından geçer; kartla arasında kablo bağlantısı yoktur. Kartı, röleyi ve pil yuvasını sudan uzak, kapalı bir kutuda tut, kablo eklerini suya değdirme. Pompa yalnız suyun içindeyken çalışmalı; kuru çalışırsa birkaç dakikada ısınıp bozulur. Hortumu takarken ya da pompayı sudan çıkarırken pilleri çıkar.

Pompa ne zaman çalışır, elle açınca ne olur?

Kart 2 saniyede bir nemi ölçer. Nem uygulamadaki Sulama eşiği değerinin (başlangıçta %30) altına inince pompa açılır, eşiğin 10 puan üstüne çıkınca kapanır; aradaki boşluk pompanın sürekli açılıp kapanmasını önler. Pompa anahtarına elle de dokunabilirsin, ama otomatik kural önceliklidir: toprak eşiğin altındayken kapatırsan 2 saniye içinde yeniden açılır, eşiğin 10 puan üstündeyken açarsan hemen kapanır. Eşiği saksına göre ayarla.