//Group 3 BSCpE-4B
//Laboratory No. 11
#include <dht.h> // DHT sensor
#include <Servo.h> // Servo
dht DHT;
Servo Servo1, Servo2;
// Pins
int Button = 12;
int LED = 13;
int DHT22 = 2;
int Potentiometer = 0;
int pos = 0;
int value;
int ledFlag = 0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(Button,INPUT);
Servo1.attach(10);
Servo2.attach(9);
}
void loop()
{
int chk = DHT.read22(DHT22);
if (digitalRead(Button)==HIGH)
{
if (ledFlag==0)
{
ledFlag=1;
digitalWrite(LED,HIGH);
Serial.println("Device Status: ON");
if (DHT.humidity < 50 && DHT.temperature < 25)
{
automaticRotate();
}
else
{
manualRotate();
}
}
else
{
ledFlag=0;
}
}
else
{
digitalWrite(LED,LOW);
Serial.println("Device Status: OFF");
}
}
void manualRotate()
{
value = analogRead(Potentiometer);
value = map(value, 0, 1023, 0, 180);
Servo1.write(value);
Servo2.write(value);
delay(10);
}
void automaticRotate()
{
Serial.print("Temperature: ");
Serial.println(DHT.temperature);
Serial.print("Humidity: ");
Serial.println(DHT.humidity);
for (pos = 180; pos >= 0; pos -= 1)
{
Servo1.write(pos);
Servo2.write(pos);
delay(10);
}
for (pos = 0; pos <= 180; pos += 1)
{
Servo1.write(pos);
Servo2.write(pos);
delay(10);
}
}