COMBINED SENSORS OF ULTRASONIC ,PIR AND TEMPERATURE SENSOR
int analogpin = A0;
int pr = 13;
int val = 0;
#define echo 7
#define trig 8
long duration;
int distance;
void setup() {
pinMode(analogpin, INPUT);
pinMode(pr, INPUT);
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
// Assuming pin 2 is used for output in the condition
Serial.begin(9600);
}
void loop() {
int adc = analogRead(analogpin);
float voltage = (adc * 5.0) / 1024.0; // Correct voltage calculation
float temperatureC = (voltage-0.5) * 100.0; // Adjusted calculation assuming TMP36 sensor
Serial.println("Temperature Recorded:");
Serial.print(temperatureC);
Serial.println(" C");
val = digitalRead(2);
// Trigger the ultrasonic pulse
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
// Measure the duration of the echo
duration = pulseIn(echo, HIGH);
// Calculate the distance based on duration
distance = duration * 0.034 / 2.0;
Serial.println("Distance measured in cm:");
Serial.println(distance);
int pir=digitalRead(13);
// Corrected if condition
if((temperatureC>20 && temperatureC<=30) && (distance>10 && distance<=20) && (pir==HIGH) )
{
Serial.println("VALUE MEASURED - 1");
Serial.print(1);
digitalWrite(4,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
}
else if((temperatureC>30 && temperatureC<=40) && (distance>20 && distance<=30)&& (pir==HIGH))
{
Serial.println("VALUE MEASURED - 2");
Serial.print(2);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
}
else if((temperatureC>50 && temperatureC<=80) && (distance>50 && distance<=100)&& (pir==HIGH))
{
Serial.println("VALUE MEASURED - 3");
Serial.print(3);
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
digitalWrite(3,LOW);
}
delay(1000); // Adding a delay for readability and stability
}
.png)
Comments
Post a Comment