Cara Memprogram Sensor Turbidity Pada ESP32

Sensor Turbidity adalah sensor kekeruhan air yang digunakan untuk mengukur seberapa keruh atau jernih suatu cairan, biasanya air.Berikut ini adalah code untuk memprogramnya :

#include <Arduino.h>


int port_kejernihan = A0;


float konversi_kejernihan(int sensorValue) {
 
//jika 0 artinya kotor, jika 100 artinya bersih
float kejernihan = map(sensorValue, 0, 1023, 0, 100); //kalo esp32 4096
return kejernihan;
}


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

}
void loop(){
int value_kejernihan = analogRead(port_kejernihan);
float kejernihan = konversi_kejernihan(value_kejernihan);
Serial.println("Kejernihan : " + (String)kejernihan);
 
 


}

Berikut ini adalah penjelasan dari kode di atas :

1. Import Library

#include <Arduino.h>
  • Library utama Arduino. Wajib untuk board seperti ESP32, ESP8266, dan Arduino core lainnya.

2. Deklarasi Pin

int port_kejernihan = A0;
  • Menentukan bahwa pin analog A0 digunakan untuk membaca sensor turbidity.
  • Catatan: Jika pakai ESP32, pin analog biasanya GPIO 34, 35, 32, dsb. Bukan A0 (itu khas Arduino UNO).

3. Fungsi Konversi Nilai Sensor

float konversi_kejernihan(int sensorValue) {
  float kejernihan = map(sensorValue, 0, 1023, 0, 100);
  return kejernihan;
}

Penjelasan:

  • Fungsi ini mengubah nilai ADC dari sensor (0–1023) menjadi skala 0–100.
  • Fungsi map() di Arduino mengubah satu rentang nilai menjadi rentang lain.

Catatan penting:

  • Jika kamu pakai ESP32, range ADC-nya adalah 0–4095, bukan 0–1023.
    Maka perlu diubah: float kejernihan = map(sensorValue, 0, 4095, 0, 100);

4. Fungsi setup()

void setup() {
  Serial.begin(9600);
  pinMode(port_kejernihan, INPUT);
}
  • Memulai komunikasi serial dengan baud rate 9600.
  • Menetapkan pin sensor sebagai input.

5. Fungsi loop()

void loop(){
  int value_kejernihan = analogRead(port_kejernihan);
  float kejernihan = konversi_kejernihan(value_kejernihan);
  Serial.println("Kejernihan : " + (String)kejernihan);
}

Apa yang dilakukan:

  1. Baca data dari sensor turbidity via analogRead().
  2. Konversi nilainya ke skala 0–100 dengan fungsi konversi_kejernihan().
  3. Cetak hasil ke Serial Monitor.

Contoh Output:

Kejernihan : 82.00
Kejernihan : 80.00
Kejernihan : 79.00

Artinya air dianggap semakin jernih.


Tips Tambahan:

  • Sensor turbidity biasanya menghasilkan tegangan lebih rendah saat air lebih keruh. Jadi, nilai ADC kecil = keruh, nilai besar = jernih.
  • Untuk ESP32, gunakan analogReadResolution(12) jika ingin 0–4095.
  • Bisa juga kalibrasi pakai air bening dan air keruh untuk mendapatkan nilai minimal dan maksimal aktual.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?