Cara Memprogram Sensor Kelembapan Tanah Di ESP32

Cara Memprogram Sensor Kelembapan Tanah Di ESP32

Sensor kelembapan tanah adalah sensor yang dapat mengukur tingkat kelembapan atau kadar air dalam tanah secara elektrik.Sensor ini berfungsi dengan memberikan sinyal listrik yang dapat diterjemahkan menjadi nilai kelembapan tanah.

Berikut adalah cara memprogram sensor kelembapan tanah dengan esp32 :

#include <Arduino.h>


int port_Kelembaban_Tanah = A0;




void setup()
{
Serial.begin(9600);
pinMode(port_Kelembaban_Tanah, INPUT);

}
void loop(){
int value_Kelembaban_Tanah = analogRead(port_Kelembaban_Tanah);
int Kelembaban_Tanah = map(value_Kelembaban_Tanah, 0, 1023, 0, 100);
Serial.println("Kelembaban Tanah : " + (String)Kelembaban_Tanah);


}


Berikut adalah penjelasan kode di atas :

1. Inklusi Library

#include <Arduino.h>
  • #include <Arduino.h>: Ini adalah library dasar yang digunakan untuk menyediakan fungsi-fungsi dasar dalam pemrograman Arduino (seperti pinMode, digitalRead, analogRead, dll). Biasanya, ini diimpor secara otomatis dalam lingkungan pemrograman Arduino.

2. Deklarasi Variabel

int port_Kelembaban_Tanah = A0;
  • int port_Kelembaban_Tanah = A0;: Variabel ini mendeklarasikan pin analog yang digunakan untuk membaca nilai dari sensor kelembaban tanah. Di sini, A0 adalah pin analog pada board (di ESP32 atau Arduino). Pin ini digunakan untuk membaca data dari sensor.

3. Fungsi setup()

void setup() {
  Serial.begin(9600);
  pinMode(port_Kelembaban_Tanah, INPUT);
}
  • Serial.begin(9600);: Menginisialisasi komunikasi serial dengan baud rate 9600. Ini memungkinkan ESP32 atau Arduino untuk mengirimkan data ke komputer atau perangkat lain melalui port serial.
  • pinMode(port_Kelembaban_Tanah, INPUT);: Menetapkan port_Kelembaban_Tanah (A0) sebagai INPUT, yang berarti pin ini digunakan untuk membaca data (bukan mengirimkan sinyal).

4. Fungsi loop()

void loop() {
  int value_Kelembaban_Tanah = analogRead(port_Kelembaban_Tanah);
  int Kelembaban_Tanah = map(value_Kelembaban_Tanah, 0, 1023, 0, 100);
  Serial.println("Kelembaban Tanah : " + (String)Kelembaban_Tanah);
}

Fungsi loop() adalah fungsi yang akan berjalan berulang kali setelah setup() dijalankan, selama board Arduino atau ESP32 aktif.

  • int value_Kelembaban_Tanah = analogRead(port_Kelembaban_Tanah);:
    • Fungsi analogRead(port_Kelembaban_Tanah) membaca nilai analog dari pin A0 yang terhubung ke sensor kelembaban tanah.
    • Nilai yang terbaca akan berada di rentang 0 hingga 1023, sesuai dengan resolusi ADC (Analog-to-Digital Converter) 10-bit di board Arduino atau ESP32.
  • int Kelembaban_Tanah = map(value_Kelembaban_Tanah, 0, 1023, 0, 100);:
    • Fungsi map() digunakan untuk mengubah rentang nilai yang dibaca dari sensor (0–1023) menjadi rentang persentase kelembaban tanah (0–100). Jadi, jika nilai yang dibaca sensor adalah 0, maka kelembaban tanah akan dianggap 0% (kering). Jika nilai 1023, kelembabannya dianggap 100% (sangat basah).
  • Serial.println("Kelembaban Tanah : " + (String)Kelembaban_Tanah);:
    • Fungsi Serial.println() mencetak hasil kelembaban tanah ke serial monitor.
    • (String)Kelembaban_Tanah mengubah variabel Kelembaban_Tanah menjadi tipe data String agar bisa digabungkan dengan teks dan dicetak di serial monitor. Hasil yang ditampilkan adalah nilai kelembaban tanah dalam persen, seperti “Kelembaban Tanah : 45”.

5. Secara keseluruhan, program ini melakukan hal berikut:

  1. Menginisialisasi komunikasi serial pada baud rate 9600.
  2. Membaca nilai kelembaban tanah dari sensor yang terhubung ke pin analog A0.
  3. Mengkonversi nilai tersebut menjadi persentase (0 hingga 100).
  4. Menampilkan nilai kelembaban tanah yang dihitung ke serial monitor.

6. Output pada Serial Monitor

Jika nilai kelembaban tanah sekitar 450 (misalnya), output di serial monitor akan terlihat seperti ini:

Kelembaban Tanah : 44

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?