-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharduinocode.c
More file actions
183 lines (151 loc) · 5.05 KB
/
arduinocode.c
File metadata and controls
183 lines (151 loc) · 5.05 KB
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<<<<<<< HEAD
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define TRIGPIN 3
#define ECHOPIN 4
#define RED_LED 12
#define GREEN_LED 13
void setup() {
Serial.begin(9600);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
dht.begin();
}
void loop() {
// Measure distance using the ultrasonic sensor
long duration, distance;
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
duration = pulseIn(ECHOPIN, HIGH);
distance = duration * 0.034 / 2;
if (distance <= 50) {
Serial.println("Object detected within 50 cm.");
// Read temperature and humidity from the DHT sensor only if object is detected
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Handle RED_LED for high temperatures
if (temperature > 38) {
digitalWrite(RED_LED, HIGH); // Turn on RED_LED if temperature is above 38°C
} else {
digitalWrite(RED_LED, LOW); // Turn off RED_LED if temperature is <= 38°C
}
// Handle GREEN_LED behavior
if (temperature < 38) {
digitalWrite(GREEN_LED, HIGH); // Turn on GREEN_LED if temperature is below 38°C
} else {
digitalWrite(GREEN_LED, LOW); // Turn off GREEN_LED if temperature is >= 38°C
}
}
} else {
Serial.println("No object detected within 50 cm.");
// Turn off LEDs
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, LOW);
}
// Check for incoming data from the backend
if (Serial.available() > 0) {
String message = Serial.readStringUntil('\n');
message.trim(); // Remove any trailing whitespace or newline characters
if (message == "Mask detected") {
// Turn on the green light
digitalWrite(GREEN_LED, HIGH); // Turn on the green LED
digitalWrite(RED_LED, LOW); // Turn off the red LED
} else if (message == "No mask detected") {
// Turn on the red light
digitalWrite(RED_LED, HIGH); // Turn on the red LED
digitalWrite(GREEN_LED, LOW); // Turn off the green LED
}
}
delay(1000); // Wait for a second before reading again
}
=======
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define TRIGPIN 3
#define ECHOPIN 4
#define RED_LED 12
#define GREEN_LED 13
void setup() {
Serial.begin(9600);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
dht.begin();
}
void loop() {
// Measure distance using the ultrasonic sensor
long duration, distance;
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
duration = pulseIn(ECHOPIN, HIGH);
distance = duration * 0.034 / 2;
if (distance <= 50) {
Serial.println("Object detected within 50 cm.");
// Read temperature and humidity from the DHT sensor only if object is detected
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Handle RED_LED for high temperatures
if (temperature > 38) {
digitalWrite(RED_LED, HIGH); // Turn on RED_LED if temperature is above 38°C
} else {
digitalWrite(RED_LED, LOW); // Turn off RED_LED if temperature is <= 38°C
}
// Handle GREEN_LED behavior
if (temperature < 38) {
digitalWrite(GREEN_LED, HIGH); // Turn on GREEN_LED if temperature is below 38°C
} else {
digitalWrite(GREEN_LED, LOW); // Turn off GREEN_LED if temperature is >= 38°C
}
}
} else {
Serial.println("No object detected within 50 cm.");
// Turn off LEDs
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, LOW);
}
// Check for incoming data from the backend
if (Serial.available() > 0) {
String message = Serial.readStringUntil('\n');
message.trim(); // Remove any trailing whitespace or newline characters
if (message == "Mask detected") {
// Turn on the green light
digitalWrite(GREEN_LED, HIGH); // Turn on the green LED
digitalWrite(RED_LED, LOW); // Turn off the red LED
} else if (message == "No mask detected") {
// Turn on the red light
digitalWrite(RED_LED, HIGH); // Turn on the red LED
digitalWrite(GREEN_LED, LOW); // Turn off the green LED
}
}
delay(1000); // Wait for a second before reading again
}
>>>>>>> fbbba1c86fe856ae56832b3f9182dbbc5a945594