1#include <Servo.h>
2Servo servo;
3int level=0;
4float temperature=0;
5int valhumidity=0;
6int detection=0;
7
8int pir=2;
9int buzzerPin=3;
10int relay1=4;
11int relay2=5;
12int green=9;
13int red=10;
14
15int ldr1;
16int ldr2;
17int temp;
18int waterlevel;
19int humidity1;
20int humidity2;
21
22
23void setup(){
24Serial.begin(9600);
25servo.attach(11);
26pinMode(green, OUTPUT);
27pinMode(red, OUTPUT);
28pinMode(pir, INPUT);
29pinMode(buzzerPin, OUTPUT);
30pinMode(relay1, OUTPUT);
31pinMode(relay2, OUTPUT);
32pinMode(waterlevel, INPUT);
33pinMode(humidity1, INPUT);
34pinMode(humidity2, INPUT);
35pinMode(temp, INPUT);
36pinMode(ldr1, INPUT);
37pinMode(ldr2, INPUT);
38}
39void loop()
40{
41 temp=analogRead(A2);
42 temperature =((temp * 0.00488) - 0.5) / 0.01;
43 detection=digitalRead(pir);
44 waterlevel=analogRead(A3);
45
46 ldr1 = analogRead(A0);
47 ldr2 = analogRead(A1);
48 Serial.print("ldr1 is:");
49 Serial.print(ldr1);
50 Serial.print(" | ");
51 Serial.print("ldr2 is:");
52 Serial.print(ldr2);
53 Serial.print(" | ");
54 Serial.print("water level is:");
55 Serial.println(waterlevel);
56 Serial.print(" | ");
57 Serial.print("temperature is:");
58 Serial.println(temperature);
59
60 if((ldr1-ldr2)>=250 || (ldr2-ldr1)>=250) {
61 if(detection==HIGH)
62 servo.write(0);
63 digitalWrite(relay1,HIGH);{
64 for(int i=1; i<6; i++) {
65 tone(buzzerPin, 1000, 500);
66 digitalWrite(red,HIGH);
67 digitalWrite(green,LOW);
68 delay(500);
69 digitalWrite(red,LOW);
70 delay(500);}
71 delay(5000);}}
72
73 else{
74 if(((ldr1+ldr2)/2)>700 && temperature>15 ){
75 servo.write(90);
76 digitalWrite(relay1,LOW);
77 delay(1000);}
78
79 if(((ldr1+ldr2)/2)<700 || temperature>15 ){
80 servo.write(0);
81 digitalWrite(relay1,HIGH);
82 delay(1000);}
83
84
85 if(waterlevel<180){
86 digitalWrite(red,HIGH);
87 digitalWrite(green,LOW);
88 digitalWrite(relay2,LOW);
89 if(detection==HIGH){
90 for(int i=1; i<5; i++) {
91 tone(buzzerPin, 1000, 500);
92 delay(1000);}
93 delay(5000);}}
94
95 else{
96 digitalWrite(green,HIGH);
97 digitalWrite(red,LOW);
98 digitalWrite(relay2, LOW);
99 do{
100 digitalWrite(relay2, HIGH);
101 humidity1=analogRead(A4);
102 humidity2=analogRead(A5);}
103 while (((humidity1+humidity2)/2)> 500);
104 digitalWrite(relay2, LOW);
105 delay(1000);
106 }}}
h4ydnc
2 years ago
Hi, do you have the completed tinkerCad file? so I can recreate it , cheers