-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArduino-file.ino
134 lines (106 loc) · 3.42 KB
/
Arduino-file.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
126
127
128
129
130
131
132
133
134
#include <Arduino.h>
#if defined(ESP32) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#endif
#include <Firebase_ESP_Client.h>
// Provide the RTDB payload printing info and other helper functions.
#include <addons/RTDBHelper.h>
/* 1. Define the WiFi credentials */
#define WIFI_SSID "wifi_name"
#define WIFI_PASSWORD "--------"
/* 2. If work with RTDB, define the RTDB URL and database secret */
#define DATABASE_URL "----------" //<databaseName>.firebaseio.com or <databaseName>.<region>.firebasedatabase.app
#define DATABASE_SECRET "--------"
/* 3. Define the Firebase Data object */
FirebaseData fbdo;
/* 4, Define the FirebaseAuth data for authentication data */
FirebaseAuth auth;
/* Define the FirebaseConfig data for config data */
FirebaseConfig config;
unsigned long dataMillis = 0;
int count = 0;
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
WiFiMulti multi;
#endif
void setup()
{
pinMode(D4,OUTPUT);
pinMode(D2,INPUT);
pinMode(D5,OUTPUT);
Serial.begin(115200);
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
multi.addAP(WIFI_SSID, WIFI_PASSWORD);
multi.run();
#else
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
#endif
Serial.print("Connecting to Wi-Fi");
unsigned long ms = millis();
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
if (millis() - ms > 10000)
break;
#endif
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
/* Assign the certificate file (optional) */
// config.cert.file = "/cert.cer";
// config.cert.file_storage = StorageType::FLASH;
/* Assign the database URL and database secret(required) */
config.database_url = DATABASE_URL;
config.signer.tokens.legacy_token = DATABASE_SECRET;
// The WiFi credentials are required for Pico W
// due to it does not have reconnect feature.
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
config.wifi.clearAP();
config.wifi.addAP(WIFI_SSID, WIFI_PASSWORD);
#endif
Firebase.reconnectWiFi(true);
/* Initialize the library with the Firebase authen and config */
Firebase.begin(&config, &auth);
// Or use legacy authenticate method
// Firebase.begin(DATABASE_URL, DATABASE_SECRET);
}
void loop()
{
if (millis() - dataMillis > 1000)
{
dataMillis = millis();
// Serial.printf("Set int... %s\n", Firebase.RTDB.setInt(&fbdo, "/test/int", count++) ? "ok" : fbdo.errorReason().c_str());
// int a = Firebase.RTDB.getInt(&fbdo,"/LED");
// Firebase.RTDB.get(&fbdo, "/LED");
// String str = fbdo.to<String>();
// a = fbdo;
Firebase.RTDB.get(&fbdo, "/LED");
int value = fbdo.to<float>();
// String str = fbdo.to<String>();
if(value==1){
digitalWrite(D4,1);
int va = digitalRead(D2);
Serial.println(va);
if(va==0){
Firebase.RTDB.setInt(&fbdo, "/trespassing", 0);
digitalWrite(D5,0);
}
else{
Firebase.RTDB.setInt(&fbdo, "/trespassing", 1);
digitalWrite(D5,1);
delay(1000);
}
}
else{
digitalWrite(D4,0);
digitalWrite(D5,0);
// digitalWrite(D2,0);
}
}
}