#include <Servo.h>
#include <dht.h>
#include <LiquidCrystal.h>
#define DHT_PIN 2
dht DHT;
LiquidCrystal lcd(12, 11, 10, 8, 7, 6);
Servo scanner;
void setup() {
Serial.begin(9600);
scanner.attach(9);
lcd.begin(16, 2);
lcd.print("Temperat:");
lcd.setCursor(0, 1);
lcd.print("Humidity:");
}
void loop() {
int chk = DHT.read22(DHT_PIN);
if (chk == DHTLIB_OK) {
displayTemperatureAndHumidity(DHT.temperature, DHT.humidity);
printTemperatureAndHumidity(DHT.temperature, DHT.humidity);
controlServo(DHT.temperature);
}
delay(1000);
}
void displayTemperatureAndHumidity(float temperature, float humidity) {
lcd.setCursor(11, 0);
lcd.print(temperature, 1);
lcd.write(223);
lcd.setCursor(11, 1);
lcd.print(humidity, 1);
lcd.write('%');
}
void printTemperatureAndHumidity(float temperature, float humidity) {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
}
void controlServo(float temperature) {
if (temperature >= 0 && temperature < 20) {
scanner.write(0);
} else if (temperature >= 20 && temperature < 30) {
scanner.write(90);
} else if (temperature >= 30) {
scanner.write(180);
}
}