#include <Servo.h>
#include "DHT.h"
#define DHTPIN 12
#define DHTTYPE DHT22
#define lred 8
#define lyellow 12
#define lgreen 13
#define alarm 5
Servo myservo;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("Sensor Suhu dan Kelembapan");
dht.begin();
pinMode(lred, OUTPUT);
pinMode(lyellow, OUTPUT);
pinMode(lgreen, OUTPUT);
pinMode(alarm, OUTPUT);
myservo.attach(3);
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
digitalWrite(lred, HIGH);
digitalWrite(lyellow, HIGH);
noTone(buzzer);
delay(2000);
myservo.write(180);
digitalWrite(led, LOW);
tone(buzzer, 1000);
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
float temperature = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Sensor Gagal Berfungsi");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("%");
Serial.print(" Temperature: ");
Serial.print(temperature);
Serial.print("°C");
Serial.println();
if (temperature >= 35) {
digitalWrite(lred, HIGH);
digitalWrite(lyellow, HIGH);
digitalWrite(lgreen, HIGH);
tone(alarm, 700);
myservo.write(180);
}
else {
digitalWrite(lred, LOW);
digitalWrite(lyellow, LOW);
digitalWrite(lgreen, LOW);
noTone(alarm);
myservo.write(0);
}
}