Upload files to "/"

This commit is contained in:
ArdianHilmiPramulintang 2024-05-21 11:10:44 +07:00
parent 25256de5c4
commit 823f988ab3
1 changed files with 178 additions and 0 deletions

178
smart_home.ino Normal file
View File

@ -0,0 +1,178 @@
#include <Firebase_ESP_Client.h>
#include <Arduino.h>
#include <ESP8266WiFi.h>
//Provide the token generation process info.
#include "addons/TokenHelper.h"
//Provide the RTDB payload printing info and other helper functions.
#include "addons/RTDBHelper.h"
// Insert your network credentials
#define WIFI_SSID "Comingsoon"
#define WIFI_PASSWORD "hilmi123"
// Insert Firebase project API Key
#define API_KEY "AIzaSyCmquF32M-zZDpW_Hswg9ZvREgikmteJMY"
// Insert RTDB URLefine the RTDB URL */
#define DATABASE_URL "https://smart-home-e64ae-default-rtdb.firebaseio.com/"
// Pin untuk mengontrol lampu
#define TENGAH 5
#define DEPAN 16
#define SAMPING 4
//Define Firebase Data object
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
//some importent variables
String sValue, sValue2, sValue3;
bool signupOK = false;
bool depanState = false;
bool sampingState = false;
bool tengahState = false;
unsigned long lastResponseTimeHigh = 0;
unsigned long lastResponseTimeLow = 0;
void setup() {
Serial.begin(115200);
pinMode(DEPAN,OUTPUT);
pinMode(TENGAH,OUTPUT);
pinMode(SAMPING,OUTPUT);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
/* Assign the api key (required) */
config.api_key = API_KEY;
/* Assign the RTDB URL (required) */
config.database_url = DATABASE_URL;
/* Sign up */
if (Firebase.signUp(&config, &auth, "", "")) {
Serial.println("ok");
signupOK = true;
}
else {
Serial.printf("%s\n", config.signer.signupError.message.c_str());
}
/* Assign the callback function for the long running token generation task */
config.token_status_callback = tokenStatusCallback; //see addons/TokenHelper.h
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
if (Firebase.ready() && signupOK ) {
if (Firebase.RTDB.getString(&fbdo, "/DEPAN")) {
if (fbdo.dataType() == "string") {
sValue = fbdo.stringData();
int a = sValue.toInt();
Serial.println(a);
if (a == 1){
digitalWrite(DEPAN,HIGH);
if (!depanState) {
unsigned long now = millis();
Serial.print("DEPAN switched to HIGH, response time: ");
Serial.print(now - lastResponseTimeLow);
Serial.println(" ms");
lastResponseTimeHigh = now;
}
depanState = true;
}else{
digitalWrite(DEPAN,LOW);
if (depanState) {
unsigned long now = millis();
Serial.print("DEPAN switched to LOW, response time: ");
Serial.print(now - lastResponseTimeHigh);
Serial.println(" ms");
lastResponseTimeLow = now;
}
depanState = false;
}
}
}
else {
Serial.println(fbdo.errorReason());
}
if (Firebase.RTDB.getString(&fbdo, "/SAMPING")) {
if (fbdo.dataType() == "string") {
sValue2 = fbdo.stringData();
int b = sValue2.toInt();
Serial.println(b);
if (b == 1){
digitalWrite(SAMPING,HIGH);
if (!sampingState) {
unsigned long now = millis();
Serial.print("SAMPING switched to HIGH, response time: ");
Serial.print(now - lastResponseTimeLow);
Serial.println(" ms");
lastResponseTimeHigh = now;
}
sampingState = true;
}else{
digitalWrite(SAMPING,LOW);
if (sampingState) {
unsigned long now = millis();
Serial.print("SAMPING switched to LOW, response time: ");
Serial.print(now - lastResponseTimeHigh);
Serial.println(" ms");
lastResponseTimeLow = now;
}
sampingState = false;
}
}
}
else {
Serial.println(fbdo.errorReason());
}
if (Firebase.RTDB.getString(&fbdo, "/TENGAH")) {
if (fbdo.dataType() == "string") {
sValue3 = fbdo.stringData();
int c = sValue3.toInt();
Serial.println(c);
if (c == 1){
digitalWrite(TENGAH,HIGH);
if (!tengahState) {
unsigned long now = millis();
Serial.print("TENGAH switched to HIGH, response time: ");
Serial.print(now - lastResponseTimeLow);
Serial.println(" ms");
lastResponseTimeHigh = now;
}
tengahState = true;
}else{
digitalWrite(TENGAH,LOW);
if (tengahState) {
unsigned long now = millis();
Serial.print("TENGAH switched to LOW, response time: ");
Serial.print(now - lastResponseTimeHigh);
Serial.println(" ms");
lastResponseTimeLow = now;
}
tengahState = false;
}
}
}
else {
Serial.println(fbdo.errorReason());
}
}
}