forked from JanhaviD/smart-lights
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEntryExitCountModular.ino
125 lines (123 loc) · 2.62 KB
/
EntryExitCountModular.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
//udm 1 - trig1,echo1
//udm 2 - trig2,echo2
#include<ESP8266WiFi.h>
#include<ESP8266HTTPClient.h>
int trig1 = D0;
int echo1 = D1;
int trig2 = D2;
int echo2 = D3;
int duration=0;
int maxdist1 = 100;
int maxdist2 = 100;
int dist1=0;
int dist2=0;
int i=0;
int count=0;
int countchange = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println();
/*Serial.println("Connecting to Wifi");
WiFi.begin("wow", "ven@2801");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");*/
pinMode(trig1,OUTPUT);
pinMode(echo1,INPUT);
pinMode(trig2,OUTPUT);
pinMode(echo2,INPUT);
}
int udm1() //returns distance calculated by udm1
{
int dist;
digitalWrite(trig1, LOW);
delayMicroseconds(2);
digitalWrite(trig1, HIGH);
delayMicroseconds(5);
digitalWrite(trig1, LOW);
duration = pulseIn(echo1, HIGH);
dist = duration / 29 / 2;
return dist;
}
int udm2() //returns distance calculated ny udm2
{
int dist;
digitalWrite(trig2, LOW);
delayMicroseconds(2);
digitalWrite(trig2, HIGH);
delayMicroseconds(5);
digitalWrite(trig2, LOW);
duration = pulseIn(echo2, HIGH);
dist = duration / 29 / 2;
return dist;
}
void checkEntry()
{
for(i=0;i<5;i++)
{
dist2 = udm2();
if(dist2<maxdist2)
{
Serial.println("Crossed udm2 second");
Serial.println("a person entered room");
count++;
break;
}
}
}
void checkExit()
{
for(i=0;i<5;i++)
{
dist1 = udm1();
if(dist1<maxdist1)
{
Serial.println("Crossed udm1 second");
Serial.println("a person left room");
count--;
break;
}
}
}
void sendCount() //sends the count of people to the server
{
HTTPClient http;
String postData = "http://192.168.43.195/udm.php?count=";
postData.concat(count);
http.begin(postData);
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.print("Count sent : ");
Serial.println(payload);
}
}
void loop() {
// put your main code here, to run repeatedly:
dist1 = udm1();
Serial.print("distance calc by udm1 :");
Serial.println(dist1);
if(dist1<maxdist1)
{
Serial.println("Crossed udm1 first");
checkEntry();
}
dist2 = udm2();
Serial.print("distance calc by udm2 :");
Serial.println(dist2);
if(dist2<maxdist2)
{
Serial.println("Crossed udm2 first");
checkExit();
}
Serial.print("No of people currently in room : ");
Serial.println(count);
delay(4000);
Serial.println("Starting in 1sec");
//sendCount();
delay(1000);
}