#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 4
#define TAMPIL_SERIAL true
#define DHTTYPE DHT11
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C, jumlah kolom, jumlah baris
DHT dht(DHTPIN, DHTTYPE);
int sensorPin = A3;
const int potPin=A0;
float ph;
float Value=0;
const byte KARAKTER_DERAJAT = 0;
byte derajat[] = {
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
B00000
};
int hum = 0, temp = 0;
void setup() {
#if TAMPIL_SERIAL
Serial.begin(9600);
Serial.begin(115200);
pinMode(potPin,INPUT);
#endif
lcd.init();
lcd.createChar(KARAKTER_DERAJAT, derajat);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("TEMPERATUR :");
lcd.setCursor(0, 1);
lcd.print("KELEMBABAN :");
lcd.setCursor(0, 2);
lcd.print("Ph :");
lcd.setCursor(0, 3);
lcd.print("Kualitas :");
dht.begin();
}
void loop() {
delay(2000); // Delay untuk
hum = dht.readHumidity();
temp = dht.readTemperature(); // Baca temperatur dalam celcius (default)
Value= analogRead(potPin);
Serial.print(Value);
Serial.print(" | ");
float voltage=Value*(3.3/4095.0);
ph=(3.3*voltage);
Serial.println(ph);
delay(500);
int sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
int turbidity = map(sensorValue, 0, 750, 100, 0);
delay(100);
if (isnan(hum) || isnan(temp)) {
#if TAMPIL_SERIAL
Serial.println(F("Failed to read from DHT sensor!"));
#endif
return;
}
lcd.setCursor(13, 0);
lcd.print(temp);
lcd.setCursor(13, 1);
lcd.print(hum);
lcd.setCursor(13, 2);
lcd.print(ph);
lcd.setCursor(13, 3);
lcd.print(turbidity);
if(temp < 10){
lcd.setCursor(14, 0);
}else{
lcd.setCursor(15, 0);
}
lcd.write(KARAKTER_DERAJAT);
if(temp < 10){
lcd.setCursor(15, 0);
}else{
lcd.setCursor(16, 0);
}
lcd.print("C");
if(hum < 10){
lcd.setCursor(14, 1);
}else{
lcd.setCursor(15, 1);
}
lcd.print("%");
if (turbidity < 20) {
lcd.setCursor(12, 3);
lcd.print(" Jernih ");
Serial.print(" Jernih ");
}
if ((turbidity > 20) && (turbidity < 50)) {
lcd.setCursor(12,3);
lcd.print(" Keruh ");
Serial.print(" Keruh ");
}
if (turbidity > 50) {
lcd.setCursor(12, 3);
Serial.print(" Kotor ");
}
#if TAMPIL_SERIAL
Serial.println("\n================");
Serial.print(F("Kelembababan: ")); Serial.print(hum); Serial.println("%");
Serial.print(F("Temperature: ")); Serial.print(temp); Serial.println(F("°C"));
Serial.print(F("Ph: ")); Serial.println(ph);
Serial.print(F("Turbidity: ")); Serial.println(turbidity);
#endif
}