#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 3
#define DHTTYPE DHT22
#define TRIG_PIN 4
#define ECHO_PIN 5
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
int adc = A0;
long timer;
int jarak;
const int btn1 = 8;
const int btn2 = 9;
const int btn3 = 10;
const int btn4 = 11;
int buttonstatus1 = 0;
int buttonstatus2 = 0;
int buttonstatus3 = 0;
int buttonstatus4 = 0;
void setup() {
lcd.begin(16,2);
lcd.backlight();
lcd.init();
dht.begin();
pinMode(btn1, INPUT);
pinMode(btn2, INPUT);
pinMode(btn3, INPUT);
pinMode(btn4, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN , INPUT);
Serial.begin(9600);
}
void loop() {
float kelembapan = dht.readHumidity();
float suhu = dht.readTemperature();
int adc = analogRead(A0);
buttonstatus1 = digitalRead(btn1);
buttonstatus2 = digitalRead(btn2);
buttonstatus3 = digitalRead(btn3);
buttonstatus4 = digitalRead(btn4);
if (buttonstatus2 == HIGH){
lcd.clear();
Serial.print("Data Kelembapan : " + String(kelembapan));
Serial.println("%");
lcd.setCursor(1, 0);
lcd.print("Nilai kelembapan");
lcd.setCursor(2, 1);
lcd.print(kelembapan);
lcd.println("%");
}
else if (buttonstatus1 == HIGH){
lcd.clear();
Serial.print("Data suhu : " + String(suhu));
Serial.println("°C");
lcd.setCursor(1, 0);
lcd.print("Nilai suhu");
lcd.setCursor(2, 1);
lcd.print(suhu);
lcd.println("°C");
}
else if(buttonstatus4 == HIGH){
lcd.clear();
Serial.println("nilai adc :" + String(adc));
lcd.setCursor(1, 0);
lcd.print("Nilai ADC");
lcd.setCursor(2, 1);
lcd.println(adc);
}
else if(buttonstatus3 == HIGH){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
timer=pulseIn(ECHO_PIN, HIGH);
jarak=timer/58;
delay(100);
lcd.clear();
Serial.print("nilai jarak :" + String(jarak));
Serial.println("cm");
lcd.setCursor(1, 0);
lcd.print("Nilai Jarak");
lcd.setCursor(2, 1);
lcd.print(jarak);
lcd.println("cm");
delay(1000);
}
}