#include <DHT.h>;
//Constants
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
const int pResistor = A0; // Photoresistor at Arduino analog pin A0
const int ledPin1=9; // Led pin at Arduino pin 9
const int ledPin2=6;
//Variables
int Relaypin = 7;
int PIRsensor = 4;
int state = 0;
int count=0;
int val;
int value;
int chk;
float hum; //Stores humidity value
float temp; //Stores temperature value
void setup()
{
pinMode(ledPin1, OUTPUT); // Set lepPin1 - 9 pin as an output
pinMode(ledPin2, OUTPUT); // Set lepPin2 - 6 pin as an output
pinMode(Relaypin, OUTPUT); // Set Relaypin - 10 pin as an output
pinMode(pResistor, INPUT); // Set pResistor - A0 pin as an input (optional)
pinMode(PIRsensor, INPUT); // Set PIRsensor - 4 pin as an input
Serial.begin(9600);
dht.begin();
}
void loop()
{
//Read data and store it to variables hum and temp
hum = dht.readHumidity();
temp= dht.readTemperature();
//Print temp and humidity values to serial monitor
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" Celsius");
delay(2000); //Delay 2 sec.
//If DHT 22 reads temperature greater than 30° it on the fan else it off
if(temp > 30)
{
digitalWrite(Relaypin, HIGH);
}
else
{
digitalWrite(Relaypin, LOW);
}
Serial.print("Photo Resistor : ");
value = analogRead(pResistor);
Serial.println(value);
//You can change value "25"
if (value > 900)
{
analogWrite(ledPin1, 255); //Turn led on
}
else if (value > 700)
{
analogWrite(ledPin1, 180); //Turn led on
}
else if (value > 400)
{
analogWrite(ledPin1, 100); //Turn led on
}
else if (value > 200)
{
analogWrite(ledPin1, 50); //Turn led on
}
else
{
analogWrite(ledPin1, 0); //Turn led off
}
delay(500); //Small delay
val = digitalRead(PIRsensor);
if(val == 1 && state == 0)
{
Serial.println("\nMotion is detected");
digitalWrite(ledPin2, HIGH);
count++;
state = 1;
Serial.print("\nTotal count is: ");
Serial.print(count);
Serial.print("\n");
delay(10000);
}
else if (val == 0 && state == 1)
{
digitalWrite(ledPin2, LOW);
state = 0;
}
}