#include #include #include const int oneWireBus = 2; // Pin D4 pada NodeMCU untuk sensor suhu DS18B20 const int turbidityPin = A0; // Pin analog untuk sensor turbidity OneWire oneWire(oneWireBus); DallasTemperature sensors(&oneWire); LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C untuk LCD 16x2 void setup() { Serial.begin(115200); sensors.begin(); lcd.init(); lcd.backlight(); } void loop() { // Membaca suhu dalam derajat Celsius sensors.requestTemperatures(); float temperatureC = sensors.getTempCByIndex(0); // Membaca nilai kekeruhan dari sensor turbidity int turbidityValue = analogRead(turbidityPin); // Menampilkan hasil ke LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Suhu: "); lcd.print(temperatureC); lcd.print(" C"); lcd.setCursor(0, 1); if (turbidityValue >= 100) { lcd.print("Tingkat: Jernih"); Serial.println("Tingkat kekeruhan: Jernih"); } else if (turbidityValue >= 100 && turbidityValue < 800) { lcd.print("Tingkat: Sedang"); Serial.println("Tingkat kekeruhan: Sedang"); } else { lcd.print("Tingkat: Kotor"); Serial.println("Tingkat kekeruhan: Kotor"); } // Menampilkan nilai kekeruhan dan suhu ke Serial Monitor Serial.print("Suhu: "); Serial.print(temperatureC); Serial.print(" C, Kekeruhan: "); Serial.println(turbidityValue); delay(1000); // Delay 1 detik }