-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
105 lines (89 loc) · 3.08 KB
/
main.cpp
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
#include "creds.h"
const char *ssid = wifi_ssid;
const char *pass = wifi_pass;
const char *fb_host = Firebase_host;
const char *fb_auth = Firebase_auth;
int prevInput = 0;
FirebaseData fbdo1;
FirebaseData fbdo2;
FirebaseData fbdo3;
FirebaseData fbdo_occupied;
void firebasereconnect()
{
Serial.println("Trying to reconnect");
Firebase.begin(fb_host, fb_auth);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
//Setup Pinmodes
pinMode(irPin, INPUT);
pinMode(ldrPin, INPUT);
pinMode(Fan, OUTPUT);
pinMode(light, OUTPUT);
pinMode(TV, OUTPUT);
//Setup WiFi
WiFi.begin(ssid,pass);
Serial.print("Connecting to SSID: ");Serial.println(ssid);
while (WiFi.status()!=WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("Connected:");
Serial.println(WiFi.localIP());
delay(100);
//Setup Firebase interface
Firebase.begin(fb_host,fb_auth);
Firebase.reconnectWiFi(true);
}
void loop() {
// put your main code here, to run repeatedly:
if (Firebase.ready() && (millis() - sendDataPrevMillis > 15000 || sendDataPrevMillis == 0)) // 15sec delay
{
sendDataPrevMillis = millis();
int ldr = analogRead(ldrPin);
Serial.print("LDR: ");Serial.println(ldr);
Firebase.getString(fbdo1,"S1");
val1 = fbdo1.stringData().toInt(); //Reading the value of the varialble Status from the firebase
if(val1==1) // If, the Status is 1, turn on the Fan
{
digitalWrite(Fan,HIGH);
Serial.println("Fan ON");
}
else if(val1==0) // If, the Status is 0, turn Off the Fan
{
digitalWrite(Fan,LOW);
Serial.println("Fan OFF");
}
Firebase.getString(fbdo2, "S2");
val2=fbdo2.stringData().toInt(); //Reading the value of the varialble Status from the firebase
if(val2==1) // If, the Status is 1, turn on the Light
{
digitalWrite(TV,HIGH);
Serial.println("TV ON");
}
else if(val2==0) // If, the Status is 0, turn Off the Light
{
digitalWrite(TV,LOW);
Serial.println("TV OFF");
}
Firebase.getString(fbdo3, "S3");
val3 = fbdo3.stringData().toInt();
if(ldr <= 300 && val3==0)
{
digitalWrite(light,LOW);
Serial.println("Lights OFF");
}
if( ldr <=300 && val3 == 1)
{
digitalWrite(light,HIGH);
Serial.println("Lights ON");
}
else if(ldr > 300 || val3==0)
{
digitalWrite(light,LOW);
Serial.println("Lights OFF");
}
}
}