Rectronx Circuits
Back to Blog
Tutorial Projek Akhir Tahun6 min read2026-06-17

Tutorial Projek Akhir Tahun: Cara Bina Sistem Pemantauan Pertanian Pintar dan Pengairan Automatik

Belajar cara bina sistem pertanian pintar menggunakan ESP32, sensor kelembapan tanah kapasitif, dan pengairan automatik yang boleh dipantau melalui telefon pintar melalui Blynk. Sesuai untuk FYP kejuruteraan elektrik, mekanikal, dan komputer.

R

Rectronx

2026-06-17

Smart farming soil moisture and irrigation automation

Tutorial Projek Akhir Tahun: Cara Bina Sistem Pemantauan Pertanian Pintar dan Pengairan Automatik

Kalau kamu pelajar kejuruteraan yang tengah tercari-cari idea FYP yang ada nilai, ada impact, dan senang nak dibentangkan depan panel — projek pertanian pintar ini adalah pilihan yang sangat solid.

Malaysia adalah negara pertanian. Sektor agrikultur menyumbang bilion ringgit kepada ekonomi negara, tapi ramai petani kita masih bergantung pada kaedah manual — siram bila ingat, periksa tanah bila ada masa, dan keliru bila tanaman mati tanpa sebab yang jelas. Masalah ini boleh diselesaikan dengan teknologi IoT yang murah dan praktikal.


Kenapa Projek Ini Sesuai untuk FYP?

Projek ini menggabungkan sensor kelembapan tanah, ESP32 dengan WiFi built-in, pam air automatik, dan dashboard monitoring yang boleh diakses dari telefon pintar. Panel assessor FYP suka projek yang ada real-world application, dan pertanian pintar adalah salah satu bidang yang selalu dapat kredit tinggi kerana ia menyentuh isu kemapanan (sustainability) dan Industry 4.0.

Lebih best lagi — kamu boleh bawa demo hidup ke pembentangan. Letak pasu bunga kecil, tunjukkan sensor baca data, tunjukkan pam start automatik bila tanah kering.


Senarai Komponen

BilKomponenKuantitiAnggaran Harga
1ESP32 Development Board (30-pin)1RM 25–35
2Capacitive Soil Moisture Sensor v1.22–4RM 8–12 seunit
3DHT22 Temperature & Humidity Sensor1RM 12–18
45V Mini Water Pump (submersible)1–2RM 8–15 seunit
55V Relay Module (1 channel)1RM 5–10
6LDR (Light Dependent Resistor)1RM 1–2
7LCD I2C 16x2 Display1RM 10–15
8Breadboard + Jumper Wires1 setRM 10–15
9Power Supply 5V 2A1RM 15–25
10Selang air plastik kecil (1 meter)1RM 3–5

Jumlah Anggaran: RM 120–180

Tip Penting: Guna capacitive soil moisture sensor, bukan resistive. Sensor resistive akan karat dalam beberapa minggu dan bacaan tak stable. Capacitive lebih tahan lama dan accurate.


Gambarajah Pendawaian

Soil Moisture Sensor → ESP32:

  • VCC → 3.3V, GND → GND
  • AOUT → GPIO34 (ADC input)

DHT22 → ESP32:

  • VCC → 3.3V, GND → GND
  • DATA → GPIO4 (dengan 10kΩ pull-up resistor ke 3.3V)

LCD I2C → ESP32:

  • SDA → GPIO21, SCL → GPIO22, VCC → 5V, GND → GND

Relay Module → ESP32:

  • VCC → 5V, GND → GND, IN → GPIO26

Water Pump → Relay:

  • Sambung pam melalui relay (NO — Normally Open contact)
  • Power pam dari supply berasingan untuk elak noise pada ESP32

LDR → ESP32 (Voltage Divider):

  • 3.3V → LDR → GPIO35 → 10kΩ → GND

Kod Arduino/ESP32

#include <WiFi.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <BlynkSimpleEsp32.h>

#define DHTPIN     4
#define DHTTYPE    DHT22
#define SOIL_PIN   34
#define RELAY_PIN  26
#define LDR_PIN    35

char auth[] = "YOUR_BLYNK_AUTH_TOKEN";
char ssid[] = "YOUR_WIFI_NAME";
char pass[] = "YOUR_WIFI_PASSWORD";

// Threshold kelembapan (0-4095 untuk ADC 12-bit ESP32)
// Nilai TINGGI = tanah KERING, nilai RENDAH = tanah BASAH
#define SOIL_DRY_THRESHOLD  2800
#define WATERING_DURATION   5000  // 5 saat

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define VPIN_SOIL     V0
#define VPIN_TEMP     V1
#define VPIN_HUMIDITY V2
#define VPIN_LIGHT    V3
#define VPIN_PUMP     V4
#define VPIN_AUTO     V5

bool autoMode = true;
bool pumpRunning = false;
unsigned long pumpStartTime = 0;
unsigned long lastSendTime = 0;

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // Active LOW relay — HIGH = pump OFF

  dht.begin();
  lcd.init(); lcd.backlight();
  lcd.setCursor(0, 0); lcd.print("Rectronx FarmBot");
  lcd.setCursor(0, 1); lcd.print("Connecting...");

  Blynk.begin(auth, ssid, pass);
  lcd.clear(); lcd.print("Sistem Aktif!");
  delay(2000);
}

void loop() {
  Blynk.run();

  if (millis() - lastSendTime > 2000) {
    lastSendTime = millis();
    bacaDanHantar();
  }

  if (pumpRunning && (millis() - pumpStartTime > WATERING_DURATION)) {
    hentikanPam();
  }
}

void bacaDanHantar() {
  int soilRaw = analogRead(SOIL_PIN);
  float temp  = dht.readTemperature();
  float hum   = dht.readHumidity();
  int lightRaw = analogRead(LDR_PIN);

  int soilPct  = map(soilRaw, 4095, 0, 0, 100);
  soilPct      = constrain(soilPct, 0, 100);
  int lightPct = map(lightRaw, 4095, 0, 0, 100);

  Serial.printf("Soil:%d%% Temp:%.1f°C Humid:%.1f%% Light:%d%%\n",
    soilPct, temp, hum, lightPct);

  Blynk.virtualWrite(VPIN_SOIL,     soilPct);
  Blynk.virtualWrite(VPIN_TEMP,     temp);
  Blynk.virtualWrite(VPIN_HUMIDITY, hum);
  Blynk.virtualWrite(VPIN_LIGHT,    lightPct);

  lcd.clear();
  lcd.setCursor(0, 0); lcd.printf("Tanah:%d%% T:%.0fC", soilPct, temp);
  lcd.setCursor(0, 1); lcd.printf("H:%.0f%% Cahaya:%d%%", hum, lightPct);

  if (autoMode && !pumpRunning && soilRaw > SOIL_DRY_THRESHOLD) {
    Serial.println("Tanah kering! Mulakan pengairan...");
    hidupkanPam();
    Blynk.logEvent("tanah_kering", "Tanah kering! Pengairan automatik dimulakan.");
  }
}

void hidupkanPam() {
  digitalWrite(RELAY_PIN, LOW); // Active LOW
  pumpRunning   = true;
  pumpStartTime = millis();
  Blynk.virtualWrite(VPIN_PUMP, 1);
  Serial.println("PAM ON");
}

void hentikanPam() {
  digitalWrite(RELAY_PIN, HIGH);
  pumpRunning = false;
  Blynk.virtualWrite(VPIN_PUMP, 0);
  Serial.println("PAM OFF");
}

BLYNK_WRITE(VPIN_PUMP) {
  if (param.asInt() == 1) hidupkanPam();
  else hentikanPam();
}

BLYNK_WRITE(VPIN_AUTO) {
  autoMode = param.asInt();
  Serial.printf("Auto Mode: %s\n", autoMode ? "ON" : "OFF");
}

Langkah Demi Langkah

Langkah 1 — Setup Arduino IDE untuk ESP32 Pergi ke File → Preferences, tambah URL boards ESP32: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Langkah 2 — Install Library Dalam Manage Libraries, cari dan install:

  • DHT sensor library oleh Adafruit
  • LiquidCrystal I2C oleh Frank de Brabander
  • Blynk oleh Volodymyr Shymanskyy

Langkah 3 — Daftar Blynk dan Dapatkan Auth Token Pergi ke blynk.cloud, daftar akaun percuma. Buat template baru, tambah datastreams untuk V0 hingga V5. Copy auth token ke kod.

Langkah 4 — Kalibrasi Sensor Kelembapan Tanah Langkah kritikal! Baca nilai ADC bila sensor dalam udara kering (nilai maksimum, contoh 3800) dan dalam air (nilai minimum, contoh 1200). Update nilai dalam map() mengikut sensor spesifik kamu.

Langkah 5 — Test Relay dan Pam Dengar bunyi "klik" dari relay bila tanah kering disimulasikan. Pastikan pam start dan berhenti dalam tempoh yang betul.

Langkah 6 — Setup Blynk Dashboard Tambah widgets: Gauge (soil moisture), Value Display (suhu & kelembapan), Button (kawalan manual pam), Switch (toggle auto mode).


Tips Pembentangan FYP

  • Bawa demo hidup: Bawa pasu bunga, tunjukkan bacaan dalam Blynk app di telefon secara real-time.
  • Highlight penjimatan air: Sistem ini boleh jimat 30–50% berbanding pengairan manual.
  • Eksperimen perbandingan: Siram manual seminggu vs automatik — rekod berapa banyak air digunakan.
  • Terangkan kenapa capacitive sensor: Sensor resistive karat → bacaan tak tepat → keputusan salah.
  • Cadangkan penambahbaikan: Solar panel, integrasi weather API, machine learning untuk optimise jadual.

Penutup

Sistem pertanian pintar ini adalah FYP yang sempurna — ada nilai praktikal, boleh demo hidup, dan mudah diperluas. Dengan kos bawah RM 200 dan masa build sekitar 1–2 minggu, ini adalah salah satu projek IoT paling cost-effective untuk FYP. Untuk komponen berkualiti termasuk capacitive soil moisture sensor, ESP32, dan relay module, lawati Rectronx di rectronx.com!

Need Help With Your FYP?

We've helped hundreds of students complete their projects on time. Get a free quote today.

Chat with Rectronx