Penyiram Tanaman IoT ESP32 (Sensor Tanah + Pompa)
Biarkan pompa menyala sendiri ketika tanah di potmu mengering, dan pantau kelembapan tanah secara langsung di ponselmu. Ini panduan langkah demi langkah untuk template IoT Kelembapan tanah + pompa di aplikasi, dengan ESP32, sensor kelembapan tanah, relay, dan pompa air mini. Buka Labku › Perangkat › Tambah perangkat; Ohmi menyiapkan kodenya dengan kunci perangkatmu sendiri. Kode di halaman ini adalah contoh: kunci dan detail Wi-Fi-nya hanya pengisi tempat.

Kendalikan perangkat ini dari aplikasi
Sambungkan ESP32 atau Raspberry Pi Pico W ke Wi-Fi, nyalakan dan matikan dari ponsel, lalu pantau pembacaan secara langsung. Kodenya disiapkan Ohmi; kamu cukup mengisi data Wi-Fi lalu mengunggahnya.
Template di aplikasi: Kelembapan tanah + pompa
- Di mana letaknya di aplikasi?Tambahkan perangkat baru dari tab Alat atau Labku › Perangkat, lalu pilih template ini.
- Library ArduinoBuka Library Manager di Arduino IDE, cari BlueGraysIoT, lalu instal.
Paket gratis berisi 1 perangkat, 1 grafik, dan riwayat 24 jam. Dengan Premium, kamu dapat lebih banyak perangkat, grafik, dan riwayat lebih panjang.
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Penyiram Tanaman IoT ESP32 (Sensor Tanah + Pompa)
4// ─────────────────────────────────────────
5// Template IoT "Kelembapan tanah + pompa" dari aplikasi BlueGrays: sensor
6// kelembapan tanah mengukur tiap 2 detik dan mengirim nilainya ke
7// aplikasi, relay menyalakan pompa ketika kelembapan turun di bawah batas
8// penyiraman dan mematikannya 10 poin di atasnya; kamu juga bisa
9// mengendalikan pompa dan batasnya dari ponsel. Ohmi menyiapkan kode
10// aslinya di aplikasi dengan kunci perangkatmu sendiri (Labku ›
11// Perangkatku › Tambah perangkat); kode di sini hanya contoh, kunci
12// perangkat dan detail Wi-Fi adalah placeholder. Library Manager:
13// BlueGraysIoT (beserta dependensinya). Board hanya bisa tersambung ke
14// jaringan Wi-Fi 2.4 GHz. Relay menyala dengan LOW. Keselamatan: beri daya
15// pompa dari tempat baterainya sendiri (4 x AA), bukan dari board; simpan
16// board, relay dan baterai di dalam kotak tertutup, jauh dari air; jangan
17// pernah menjalankan pompa tanpa air.
18//
19// Pin:
20// GPIO34 -> AO sensor kelembapan tanah
21// 3V3, GND -> VCC, GND sensor kelembapan tanah
22// GPIO26 -> IN modul relay
23// 5V, GND -> VCC, GND modul relay
24// COM relay -> tempat baterai (+), NO -> pompa (+), pompa (-) -> tempat baterai (-); pompa
25// jalan dengan 4 x AA sendiri Pico W: AO sensor kelembapan GP26, IN relay GP15
26
27/*
28 * Kelembapan tanah + pompa · BlueGrays IoT
29 * BlueGrays · bluegrays.com
30 * Jangan bagikan kode ini: berisi kunci perangkat dan kata sandi Wi-Fi-mu.
31 */
32
33#include <BlueGraysIoT.h>
34
35const char *DEVICE_KEY = "YOUR_DEVICE_KEY";
36const char *WIFI_NAME = "YOUR_WIFI_NAME";
37const char *WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
38
39BlueGraysIoT bg(DEVICE_KEY);
40
41const int RELAY_PIN = 26;
42const bool RELAY_ACTIVE_LOW = true; // kebanyakan modul relay menyala dengan LOW
43void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
44const int SOIL_PIN = 34;
45const int SOIL_DRY = 3200; // pembacaan di tanah kering
46const int SOIL_WET = 1300; // pembacaan di tanah basah
47int threshold = 30; bool pump = false; unsigned long lastReadMs = 0;
48
49void setup() {
50 Serial.begin(115200);
51 pinMode(RELAY_PIN, OUTPUT);
52 setRelay(false);
53 analogReadResolution(12);
54 bg.onSwitch("pompa", [](bool on) { pump = on; setRelay(on); });
55 bg.onNumber("esik", [](float v) { threshold = (int)v; });
56 bg.setDeadband("toprak", 1.0);
57 bg.setDebug(Serial);
58 bg.setLanguage(BG_LANG_EN);
59 bg.begin(WIFI_NAME, WIFI_PASSWORD);
60}
61
62void loop() {
63 bg.loop(); // hindari pemanggilan delay() yang lama di sini
64 if (millis() - lastReadMs >= 2000) {
65 lastReadMs = millis();
66 int pct = constrain(map(analogRead(SOIL_PIN), SOIL_DRY, SOIL_WET, 0, 100), 0, 100);
67 bg.send("toprak", pct);
68 // Nyalakan pompa di bawah batas, matikan 10 poin di atasnya
69 if (pct < threshold && !pump) { pump = true; setRelay(true); bg.send("pompa", true); }
70 if (pct > threshold + 10 && pump) { pump = false; setRelay(false); bg.send("pompa", false); }
71 }
72}
73FAQ
Bisakah aku langsung meng-upload kode di halaman ini ke board-ku?
Bisa, tetapi tidak akan tersambung: kunci perangkat dan detail Wi-Fi di dalamnya hanya pengisi tempat. Di aplikasi, buka Labku › Perangkat › Tambah perangkat dan pilih template Kelembapan tanah + pompa; Ohmi menyiapkan kodenya dengan kuncimu, nama jaringan, dan kata sandi. Salin kode itu lalu upload. Kamu bisa melihat kode lengkapnya nanti di Perangkat › Kode dan kunci.
Apakah ini bekerja dengan Pico W?
Ya. Pilih Pico W sebagai board ketika menambahkan perangkat; kodenya tetap sama dan hanya pin serta nilai kalibrasinya yang berubah: sensor kelembapan ke GP26 (input analog) dan relay ke GP15. Di Arduino IDE, instal paket "pico" dari Boards Manager. Rangkaian dan foto di halaman ini dibuat dengan ESP32.
Kenapa pompa punya baterainya sendiri?
Arus yang ditarik pompa dan derau dari motornya bisa me-reset board. Karena itu pompa berjalan dari dudukan baterai 4 x AA dan hanya melewati terminal COM dan NO relay; pompa tidak punya sambungan kabel ke board. Jauhkan board, relay, dan dudukan baterai dari air di dalam kotak tertutup, dan jaga sambungan kabel tetap kering. Pompa hanya boleh berjalan di dalam air; jika berjalan kering, pompa memanas dan rusak dalam beberapa menit. Lepaskan baterai ketika kamu memasang selang atau mengangkat pompa dari air.
Kapan pompa berjalan, dan apa yang terjadi jika aku mengalihkannya secara manual?
Board mengukur kelembapan setiap 2 detik. Ketika turun di bawah Batas penyiraman di aplikasi (awalnya 30%), pompa menyala, dan mati 10 poin di atas ambang; celah itu mencegah pompa berbunyi klik nyala-mati. Kamu juga bisa mengetuk sakelar Pompa secara manual, tetapi aturan otomatis yang menang: jika kamu mematikannya ketika tanah di bawah ambang, pompa menyala lagi dalam 2 detik, dan jika kamu menyalakannya ketika tanah 10 poin di atas ambang, pompa langsung mati. Atur ambangnya sesuai potmu.
