#include <Servo.h>
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Servo myservo;
int i=0;
void setup() {
myservo.attach(9);
Serial.begin(115200);
dht.begin();
}
void loop() {
float temp = readTemperature();
float humi = readHumidity();
dht_show(temp,humi);
controlServo(temp,humi);
Serial.print("\n");
delay(1000);
}
void dht_show(float temperature,float humidity)
{
if (isnan(temperature) || isnan(humidity)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Temperature: "));
Serial.print(temperature);
Serial.print(F("°C\t "));
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print("%\t");
}
float readTemperature()
{
float temperature = dht.readTemperature();
return temperature;
}
float readHumidity()
{
float humidity = dht.readHumidity();
return humidity;
}
void controlServo(float temperature,float humidity)
{
if(temperature <=-20.00 || temperature >=50.00 || humidity >=66.00)
{
myservo.detach();
Serial.print("\nmyservo has been closed!!! \n");
}
else if(temperature >=23.00 && humidity <= 40.00)
{
myservo.write(30);
Serial.print("myservo:30");
}
else if(temperature >=23.00 && humidity > 40.00)
{
myservo.write(45);
Serial.print("myservo:45");
}
else if(temperature <23.00 && humidity <= 40.00)
{
myservo.write(60);
Serial.print("myservo:60");
}
else if(temperature <23.00 && humidity > 40.00)
{
myservo.write(90);
Serial.print("myservo:90");
}
}