● online
- Dual Volt Amp Meter Digital Ampere Meter Voltmeter....
- Jasa Cetak PCB....
- Water Level sensor ketinggian air - deteksi air....
- LDR Sensor 5mm Cahaya 5528 Light Dependent Resisto....
- Kabel Jumper 20cm Dupont 20 cm Female to Female Pe....
- Potensiometer 10K - Mono Potensio Meter Linear Res....
- TANG CRIMPING PRESS SKUN RATCHET YTH SN-48B....
- ADS1115 16 Bit I2C Module ADC 4 channel with Pro G....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
Halo Sobat Maker! Kamu lagi cari proyek mekatronika dan IoT yang seru, praktis, dan kepake banget di dunia nyata? Membuat sistem parkir otomatis sendiri di rumah bisa jadi langkah DIY paling pas buat melatih skill sistem terbenam (embedded system) kita. Dengan memadukan fitur penghitung kendaraan otomatis dan indikator slot parkir, kita bakal belajar cara menginterfaskan sensor inframerah, aktuator servomotor, serta pemrosesan layar LCD digital secara mudah dan menyenangkan!

1. Alat dan Bahan
| Komponen | Jumlah | Keterangan |
| Arduino Nano | 1 unit | Mikrokontroler utama pengontrol sensor inframerah dan servomotor |
| Nano Expansion Shield | 1 unit | Board ekspansi untuk mempermudah koneksi kabel pin komponen |
| Sensor Inframerah GP2Y0A21 | 1 unit | Sensor pemantau jarak objek/kendaraan secara presisi |
| Servomotor | 1 unit | Aktuator mekanis penggerak palang pintu parkir |
| Kabel USB A Male | 1 unit | Kabel komunikasi data dan pengunggahan kode program |
| Komputer / Laptop | 1 unit | Perangkat perangkat lunak untuk penyuntingan skrip program |
| ESP32 | 1 unit | Mikrokontroler berbasis Xtensa 32-bit LX6 untuk pengolahan tampilan |
| LCD I2C 16×2 | 1 unit | Modul layar tampilan karakter 16 kolom x 2 baris |
| Breadboard | 1 unit | Papan rekayasa sirkuit dan distribusi daya komponen |
| Kabel Jumper | Secukupnya | Kabel penghubung antar-pin mikrokontroler dan sensor |
| Pustaka LiquidCrystal_I2C | 1 software library | Pustaka Arduino IDE untuk kontrol antarmuka LCD I2C |
| Arduino IDE | 1 software | Lingkungan pengembangan terpadu untuk penyusunan kode |
2. Skematik Rangkaian

Untuk merakit proyek ini dengan rapi dan aman, kita membagi pemetaan jalur menjadi dua area utama berdasarkan fungsi mikrokontrolernya.
Jalur Mikrokontroler Arduino Nano (Sensor & Palang)
- Sensor Inframerah GP2Y0A21: Hubungkan kabel sinyal ke pin Analog A0 pada Arduino Nano/Shield.
- Servomotor Palang: Hubungkan kabel sinyal kontrol aktuator ke pin digital 3.
- Perhatian Khusus Shield: Saat memasang kabel ke Nano Expansion Shield, pastikan kamu selalu memeriksa urutan pin SVG (S = Signal, V = VCC 5V, G = Ground). Jangan sampai terbalik agar komponen tidak mengalami kerusakan atau korsleting.
Jalur Mikrokontroler ESP32 (Tampilan LCD I2C)
- VCC modul LCD I2C terhubung ke pin VIN pada ESP32.
- GND modul LCD I2C terhubung ke pin GND pada ESP32.
- SDA modul LCD I2C terhubung ke pin GPIO21 (SDA) pada ESP32.
- SCL modul LCD I2C terhubung ke pin GPIO22 (SCL) pada ESP32.
Penggunaan antarmuka I2C (Inter-Integrated Circuit) pada modul LCD 16×2 memberikan keuntungan besar karena sangat hemat jalur GPIO. Protokol komunikasi ini hanya membutuhkan 2 jalur data serial (SDA dan SCL) untuk mentransfer data karakter secara stabil, jauh lebih efisien dibandingkan mode paralel konvensional yang memakan banyak pin hardware.
3. Cara Kerja Sistem Parkir Otomatis

Sistem parkir otomatis ini menerapkan arsitektur dual-board yang cerdas dan efisien. Arduino Nano bertugas menangani pembacaan sensor dan pergerakan aktuator secara real-time tanpa latency, sementara ESP32 memanfaatkan performa tinggi prosesor dual-core Xtensa 32-bit LX6 untuk mengelola antarmuka layar visual LCD I2C serta membuka potensi konektivitas IoT di masa depan.
Proses kerja sistem diawali dari pembacaan sensor inframerah GP2Y0A21 yang memancar dan mengukur jarak kendaraan secara kontinu. Ketika sebuah kendaraan mendekati pintu masuk dan nilai analog sensor melampaui batas ambang deteksi (DETECT_VAL 300), sistem mengonfirmasi kehadiran objek.
Seketika rintangan terdeteksi, Arduino Nano memberi sinyal PWM kepada servomotor untuk mengangkat palang parkir dari posisi tertutup (BAS 90 derajat) menuju posisi terbuka penuh (HAUT 180 derajat). Begitu kendaraan selesai melintas dan pembacaan analog sensor kembali turun di bawah batas aman (CLEAR_VAL 200), sistem mengonfirmasi bahwa lintasan telah bersih. Servomotor kemudian memutar palang kembali ke posisi semula.
Secara bersamaan, status palang pintu serta pembaruan jumlah sisa slot parkir diproses untuk ditampilkan secara jernih pada layar LCD I2C 16×2. Kamu bisa mendalami dasar pemrograman mikrokontroler lewat dokumentasi resmi Arduino dan mempelajari spesifikasi teknis chip pada datasheet ESP32.
4. Pemrograman dan Kode Rangkaian
Sub-bagian: Instalasi Library dan Uji Sensor Inframerah
Sebelum mengunggah kode, buka Arduino IDE di komputer kamu. Install pustaka LCD terlebih dahulu melalui menu Sketch > Include Library > Manage Libraries, lalu cari dan unduh LiquidCrystal_I2C.
Gunakan skrip uji berikut untuk membaca nilai analog dari sensor inframerah GP2Y0A21. Kode ini mendefinisikan pin input gp2y0a21Pin = A0, nilai batas deteksi rintangan DETECT_VAL 300, dan batas kondisi area bersih CLEAR_VAL 200.
// Parameter
#define DETECT_VAL 300
#define CLEAR_VAL 200
// Konstanta
const int gp2y0a21Pin = A0;
// Variabel
int gp2y0a21Val = 0;
bool object = false, oldStatus = true;
String comment = "";
void setup() {
Serial.begin(9600);
Serial.println(F("Initialize System"));
pinMode(gp2y0a21Pin, INPUT);
}
void loop() {
readSensor();
delay(500);
}
void readSensor() {
gp2y0a21Val = analogRead(gp2y0a21Pin);
if (gp2y0a21Val > DETECT_VAL) {
object = true;
comment = "Obstacle detected";
}
if (gp2y0a21Val < CLEAR_VAL) {
object = false;
comment = "No obstacle";
}
if (oldStatus != object) {
Serial.print(F("Valeur du capteur : "));
Serial.print(gp2y0a21Val);
Serial.print(F(" -> "));
Serial.println(comment);
}
oldStatus = object;
}
Sub-bagian: Uji Servomotor Palang Parkir
Selanjutnya, kita lakukan pengujian pergerakan sudut servomotor. Pada kode uji ini, konstanta HAUT 180 mewakili sudut palang terangkat (posisi terbuka), BAS 90 mewakili sudut palang sejajar (posisi tertutup), dan UPDATE_TIME 15 menentukan jeda milidetik per derajat pergerakan agar gerakan palang terkesan halus dan tidak mengejutkan aktuator.
#include <Servo.h>
// Parameter
#define UPDATE_TIME 15
#define HAUT 180
#define BAS 90
// Konfigurasi pin dan objek servo
int servoPin = 3;
Servo myServo;
int pos = BAS;
void setup() {
Serial.begin(9600);
myServo.attach(servoPin);
}
void loop() {
// Menggerakkan servo dari posisi tertutup ke terbuka
for (pos = BAS; pos <= HAUT; pos += 1) {
myServo.write(pos);
delay(UPDATE_TIME);
}
Serial.print(F("Servo position HAUT : "));
Serial.println(HAUT);
delay(500);
// Menggerakkan servo dari posisi terbuka ke tertutup
for (pos = HAUT; pos >= BAS; pos -= 1) {
myServo.write(pos);
delay(UPDATE_TIME);
}
Serial.print(F("Servo position BAS : "));
Serial.println(BAS);
delay(500);
}
Sub-bagian: Integrasi Kode Palang Parkir Otomatis
Setelah masing-masing komponen teruji, kita satukan ke dalam logika kontrol utama. Dalam skrip terintegrasi ini, saat sensor mengonfirmasi objek (object == true), fungsi fenceUp() dieksekusi untuk membuka palang. Begitu area kembali steril (object == false), fungsi fenceDown() dipanggil untuk menutup palang secara otomatis.
Perlu diingat bahwa skrip Arduino Nano ini berfokus pada keandalan kontrol aktuator palang. Untuk menampilkan data slot parkir pada modul LCD I2C 16×2 yang terhubung ke ESP32, kita menggunakan fungsi standar perpustakaan LiquidCrystal_I2C seperti lcd.init(), lcd.backlight(), lcd.setCursor(), dan lcd.print() guna mencetak status kendaraan dan penghitung slot secara real-time.
#include <Servo.h>
// Parameter sensor dan servomotor
#define DETECT_VAL 300
#define CLEAR_VAL 200
#define UPDATE_TIME 15
#define HAUT 180
#define BAS 90
// Konfigurasi pin
const int gp2y0a21Pin = A0;
const int servoPin = 3;
// Variabel sensor
int gp2y0a21Val = 0;
bool object = false, oldStatus = true;
String comment = "";
// Variabel servomotor
int pos = BAS;
Servo myServo;
void setup() {
Serial.begin(9600);
Serial.println(F("Initialize System"));
pinMode(gp2y0a21Pin, INPUT);
myServo.attach(servoPin);
}
void loop() {
readSensor();
}
void readSensor() {
gp2y0a21Val = analogRead(gp2y0a21Pin);
if (gp2y0a21Val > DETECT_VAL) {
object = true;
comment = "Obstacle detected";
}
if (gp2y0a21Val < CLEAR_VAL) {
object = false;
comment = "No obstacle";
}
if (oldStatus != object) {
Serial.print(F("Valeur du capteur : "));
Serial.print(gp2y0a21Val);
Serial.print(F(" -> "));
Serial.println(comment);
if (object == true) {
fenceUp();
} else {
fenceDown();
}
}
oldStatus = object;
}
// Fungsi membuka palang parkir
void fenceUp() {
for (pos = pos; pos <= HAUT; pos += 1) {
myServo.write(pos);
delay(UPDATE_TIME);
}
Serial.print(F("Servo position HAUT : "));
Serial.println(HAUT);
}
// Fungsi menutup palang parkir
void fenceDown() {
for (pos = pos; pos >= BAS; pos -= 1) {
myServo.write(pos);
delay(UPDATE_TIME);
}
Serial.print(F("Servo position BAS : "));
Serial.println(BAS);
}
5. Pengujian dan Troubleshooting LCD I2C

Untuk menguji performa sirkuit, dekatkan tangan atau objek simulasi kendaraan di depan sensor inframerah GP2Y0A21. Amatilah pergerakan servomotor yang mendeteksi objek dan membuka palang pintu, lalu otomatis kembali menutup saat objek dijauhkan.
Apabila modul LCD I2C 16×2 milikmu tidak menampilkan teks atau layarnya tampak kosong, masalah paling umum terletak pada perbedaan alamat I2C hardware (alamat default standar biasanya 0x27). Kamu bisa menjalankan skrip I2C Scanner di bawah ini untuk mencari alamat heksadesimal modul LCD kamu melalui Serial Monitor (pada baud rate 115200):
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("\nI2C Scanner");
}
void loop() {
byte error, address;
int nDevices = 0;
Serial.println("Scanning...");
for(address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address<16) Serial.print("0");
Serial.println(address,HEX);
nDevices++;
} else if (error==4) {
Serial.print("Unknow error at address 0x");
if (address<16) Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0) Serial.println("No I2C devices found\n");
else Serial.println("done\n");
delay(5000);
}
6. Pengembangan Sistem dan Kesimpulan
Membuat proyek palang parkir otomatis ini memberikan wawasan mekatronika yang solid, terutama dalam hal pemrosesan sinyal analog sensor, pengontrolan aktuator presisi, dan manajemen antarmuka tampilan digital. Proyek ini sangat pas dijadikan portofolio dasar untuk kamu yang ingin mendalami dunia otomatisasi industri dan IoT. Kalau kamu tertarik mencoba proyek berbasis sensor seru lainnya, kamu juga bisa membaca panduan rancang sistem pendeteksi kebakaran dengan kipas otomatis dan alarm peringatan untuk semakin memperkaya skill maker kamu!
Sebagai langkah pengembangan lebih lanjut, kamu dapat mengintegrasikan beberapa fitur canggih berikut:
- Fitur Keselamatan (Safety Device): Menambahkan sensor pengaman tambahan yang mampu menyela (interrupt) siklus penutupan palang. Jika ada objek mendadak melintas saat fungsi
fenceDown()berjalan, logika kontrol akan menghentikan proses penutupan dan langsung memanggilfenceUp()demi mencegah palang menabrak kendaraan. - Lampu Lalu Lintas (Traffic Light): Menambahkan LED indikator merah dan hijau yang disinkronkan dengan variabel status palang (
HAUTatauBAS). - Pembaca Kartu RFID: Mengintegrasikan modul RFID reader sebagai sistem otentikasi pintu masuk, sehingga palang hanya akan terangkat jika pengguna menempelkan kartu (badge) akses yang valid.
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
Pada artikel ini saya akan memberikan cara cepat menggunakan motor servo pada Arduino. Pasti tentunya anda sedang mencari tutorial-tutorial... selengkapnya
Hallo kali ini saya akan membahas mengenai relay lagi yaitu relay 2 channel. Di pasaran, relay ini sudah menggunakan... selengkapnya
Setelah sebelumnya kamu belajar menyalakan LED, sekarang saatnya Arduino mulai menerima perintah langsung dari kamu. Salah satu cara paling sederhana... selengkapnya
8×8 LED dot matrix merupakan sebuah display yang terdiri dari kumpulan led yang disusun secara simetris sejumlah 8 baris... selengkapnya
Sensor suhu DS18b20 digunakan untuk mendeteksi suhu ruangan namun dapat juga digunakan untuk mendeteksi suhu air. Suhu yang dapat... selengkapnya
Rain sensor merupakan sensor yang berfungsi untuk mendeteksi hujan turun atau tidak. Intinya sensor ini jika terkena air pada... selengkapnya
Hallo, kali ini akan membahas bagaimana cara untuk membuat dimmer menggunakan mosfet D4184 module. Mosfet mempunyai fungsi yaitu untuk... selengkapnya
Sensor getar Piezoelektrik adalah komponen yang fantastis untuk mendeteksi benturan, getaran, atau bahkan suara. Namun berbeda dengan modul piezo 3... selengkapnya
Semangat pagi, salam hangat dari saya untuk semua pengunjung indomaker.com. Kali ini kita akan belajar mengenai penggunaan timer relay... selengkapnya
Modul Bluetooth DX-BT18 adalah perangkat elektronika yang digunakan untuk menghubungkan suatu perangkat menggunakan koneksi bluetooth. Saat ini penggunaan sensor sidik... selengkapnya
Item Deskripsi : This module performance is stable, measure the distance accurately. performance nearly the same as SRF05, SRF02 SRF05,… selengkapnya
Rp 13.900Support terus UKM indonesia dengan membeli produk-produk dalam negeri. Untuk kualitas tidak usah diragukan, udah kita tes QC dengan sangat… selengkapnya
Rp 8.500Dual Volt Amp Meter Digital Ampere Meter Voltmeter 10A 0-100V Ammeter Dilengkapi dengan pengukuran Voltmeter dan Amperemeter dalam 1 display… selengkapnya
Rp 26.500Kinerja Produk: Warnanya coklat (amber), Goldfinger tape sticky baik, patuh, suhu tinggi, pelarut, tidak ada rembesan timah dan tidak ada… selengkapnya
Rp 11.900ESP-WROOM-32 is Powered by Espressif’s most advanced SoC, the ESP-WROOM-32 features high performance, a wide range of peripherals, Wi-Fi and… selengkapnya
Rp 38.400Buruan dibeli gan….barang murah-berkualitas SIAPA CEPAT DIA DAPAT Spesifikasi: LCD 1602 / 16×2 (16 karakter, 2 baris) merek QAPASS (cek… selengkapnya
Rp 24.500Description: TP5100 is a double switch buck 8.4V, single cell 4. 2V lithium battery charge management chip. Its ultra-compact QFN16… selengkapnya
Rp 10.600Features and Specs: Dual-Core, 32-bit ARM Cortex M0+ Processor Clocked at 48MHz (default), configurable max to 133MHz. Ready with USB… selengkapnya
Rp 82.900TECHNICAL SPECIFICATIONS: – Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz – 2GB LPDDR4-2400 SDRAM – 2.4… selengkapnya
Rp 940.000Ini yang Seri SN – DS3231 I2C RTC Module khusus DS3231SN – Include Baterai – Module jam digital – Keperluan… selengkapnya
Rp 34.900Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
Kategori
Artikel Terkait
-
Rancang Sistem Pendeteksi Kebakaran dengan Kipas Otomatis dan Alarm Peringatan
-
Bikin Alat Monitoring Konsumsi Listrik Rumah Secara Real-Time Berbasis ESP32
-
Bikin Sistem Keamanan Pintu Berbasis RFID dengan Notifikasi Telegram
-
Rancang Sistem Penyiram Tanaman Otomatis Berbasis ESP32 dengan Monitoring Smartphone
-
Cara Bikin Sistem Monitoring Getaran Gempa dan Stabilitas Kemiringan Pakai ESP32 dan MPU 6050

Saat ini belum tersedia komentar.