#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
//sensor jarak
const int PIN_TRIGGER = 12;
const int PIN_ECHO = 13;
//servo
const int SERVO_PIN = 15;
Servo servo;
//kapasitas lahan
const int MX_KAP = 10;
int KAP_KEN = 0;
//button reset
const int BTN_REST = 14;
void setup() {
Serial.begin(115200);
//lcd
lcd.init();
lcd.backlight();
//servo
servo.setPeriodHertz(50);
servo.attach(SERVO_PIN);
//sensor jarak
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
}
void loop() {
//mengukur jarak
int jarak = contJarak();
if (jarak < 30) {
Serial.println("parkir berbasis iot");
Serial.println("jumlah kendaraan saat ini adalah :" + String(KAP_KEN));
servo.write(0);
delay(2000);
} else {
servo.write(90);
delay(2000);
KAP_KEN++;
}
}
int contJarak() {
digitalWrite(PIN_TRIGGER, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIGGER, LOW);
long duration = pulseIn(PIN_ECHO, HIGH);
int distance = duration / 58; // Menghitung jarak dalam cm
return distance;
}