#include <FirebaseESP32.h>
#include <WiFi.h>
#define ldrPin 34
#define IRpin 26
#define pirPin 13
#define echoPin 6 // Echo Pin
#define trigPin 4 // Trigger Pin
#define FIREBASE_HOST "https://latihan11-24075-default-rtdb.firebaseio.com/" // Firebase project URL
#define FIREBASE_AUTH "rq6MhavvDRrlQkoPdKDFw7AubD8maF4sWKDgF0gT" // Firebase authentication token
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
FirebaseData firebaseData;
int i1 = 1;
int i2 = 1;
int i3 = 1;
int i4 = 1;
int data1 = 1;
int data2 = 1;
int data3 = 1;
int data4 = 1;
long duration, distance;
void setup() {
Serial.begin(115200);
pinMode(ldrPin, INPUT);
pinMode(IRpin, INPUT);
pinMode(pirPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
WiFi.begin(WIFI_SSID, WIFI_PASS);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void ldr() {
int dataLDR = analogRead(ldrPin);
if (data1 != dataLDR) {
if (i1 <= 10) {
Firebase.setFloat(firebaseData, "/LDR/DATA" + String(i1), dataLDR);
i1++;
} else {
i1 = 1;
}
data1 = dataLDR;
}
}
void ir() {
int dataIR = digitalRead(IRpin);
if (data2 != dataIR) {
if (i2 <= 10) {
Firebase.setFloat(firebaseData, "/IR/DATA" + String(i2), dataIR);
i2++;
} else {
i2 = 1;
}
data2 = dataIR;
}
}
void pir() {
int dataPIR = digitalRead(pirPin);
if (data3 != dataPIR) {
if (i3 <= 10) {
Firebase.setFloat(firebaseData, "/PIR/DATA" + String(i3), dataPIR);
i3++;
} else {
i3 = 1;
}
data3 = dataPIR;
}
}
void ultra() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
if (data4 != distance) {
if (i4 <= 10) {
Firebase.setFloat(firebaseData, "/ULTRASONIK/DATA" + String(i4), distance);
i4++;
} else {
i4 = 1;
}
data4 = distance;
}
}
void loop() {
ldr();
ir();
pir();
ultra();
delay(1000);
}