#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <time.h>
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define DATABASE_URL "https://projekberyl-default-rtdb.asia-southeast1.firebasedatabase.app/log_deteksi.json"
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int pinPIR = 13;
const int pinBuzzer = 25;
void setup() {
Serial.begin(115200);
randomSeed(analogRead(34));
lcd.init();
lcd.backlight();
pinMode(pinPIR, INPUT);
pinMode(pinBuzzer, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("sedang koneksi...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nterhubung!");
configTime(7 * 3600, 0, "pool.ntp.org");
Serial.print("Sync NTP");
while (time(nullptr) < 100000) {
delay(500);
Serial.print(".");
}
Serial.println("\nNTP OK!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sistem Log Aktif");
}
void loop() {
lcd.clear();
int randomVal = random(1, 11);
String statusTeks;
int statusAngka;
if (randomVal > 7) {
statusTeks = "BAHAYA";
statusAngka = 1;
lcd.setCursor(0, 0);
lcd.print("ADA GERAKAN!");
tone(pinBuzzer, 880);
} else {
statusTeks = "AMAN";
statusAngka = 0;
lcd.setCursor(0, 0);
lcd.print("AREA AMAN");
noTone(pinBuzzer);
}
time_t now = time(nullptr);
String jsonData = "{\"status\":\"" + statusTeks +
"\", \"nilai\":" + String(statusAngka) +
", \"timestamp\":" + String((long)now) + "}";
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(DATABASE_URL);
http.addHeader("Content-Type", "application/json");
http.setTimeout(5000);
http.setConnectTimeout(3000);
Serial.println("Mengirim: " + jsonData);
int httpResponseCode = http.POST(jsonData);
if (httpResponseCode > 0) {
Serial.printf("Sukses! Code: %d\n", httpResponseCode);
lcd.setCursor(0, 1);
lcd.print("Data Terkirim!");
} else {
Serial.printf("Gagal! Error: %d\n", httpResponseCode);
lcd.setCursor(0, 1);
lcd.print("ERR: " + String(httpResponseCode));
}
http.end();
} else {
Serial.println("WiFi putus, reconnecting...");
WiFi.reconnect();
}
delay(5000);
}Loading
esp32-devkit-v1
esp32-devkit-v1