#include <DHT.h>
#define DHTPIN 32 // Pin yang terhubung ke output sensor DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT yang digunakan (DHT11 atau DHT22)
DHT dht(DHTPIN, DHTTYPE);
unsigned long previousMillis = 0; // Waktu sejak program dimulai
const long interval = 2000; // Interval pembacaan sensor (2 detik)
const int led = 33;
const int led1 = 25;
const int led2 = 26;
const int led3 = 27;
const int potPin = 35; // Pin yang terhubung ke potensiometer
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
dht.begin();
Serial.println("Hello, ESP32!");
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
digitalWrite(led, 0);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led3, 0);
}
void loop() {
int potValue = analogRead(potPin);
float voltage = potValue * (3.3 / 4095.0);
int brightness = map(potValue, 0, 4095, 0, 255);
analogWrite(led, brightness); // Menyetel kecerahan LED sesuai dengan nilai yang dibaca dari potensiometer
analogWrite(led1, brightness);
analogWrite(led2, brightness);
analogWrite(led3, brightness);
Serial.print("Nilai Analog: ");
Serial.print(potValue);
Serial.print("\t Tegangan: ");
Serial.print(voltage);
Serial.println(" V");
Serial.print("\t Kecerahan LED: ");
Serial.println(brightness);
unsigned long currentMillis = millis(); // Waktu saat ini
// Cek apakah sudah waktunya untuk membaca sensor
if (currentMillis - previousMillis >= interval) {
// Simpan waktu terakhir pembacaan
previousMillis = currentMillis;
// Membaca kelembaban dari sensor DHT22
float humidity = dht.readHumidity();
// Membaca suhu dari sensor DHT22 (dalam derajat Celsius)
float temperature = dht.readTemperature();
// Memeriksa apakah pembacaan berhasil
if (!isnan(humidity) && !isnan(temperature)) {
// Menampilkan kelembaban dan suhu ke Serial Monitor
Serial.print("Kelembaban: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" °C");
} else {
Serial.println("Gagal membaca sensor DHT22!");
}
}
delay(100); //
}