Koding Simulasi Trafik Light Menggunakan ESP32 di Wokwi
Pelajari cara membuat Simulasi Traffic Light di Perempatan Jalan menggunakan ESP32 secara lengkap dan mudah dipahami. Pada proyek ini, ESP32 digunakan sebagai pengendali utama sistem lampu lalu lintas yang bekerja secara otomatis layaknya persimpangan jalan nyata. Simulasi menampilkan pergantian lampu merah, kuning, dan hijau pada setiap arah secara bergantian untuk mengatur arus kendaraan dengan aman dan teratur. Cocok untuk pemula yang ingin belajar mikrokontroler, pemrograman Arduino IDE, serta konsep sistem kendali lalu lintas. Proyek ini juga dapat dikembangkan lebih lanjut dengan sensor kendaraan, LCD, IoT, dan fitur smart traffic light berbasis teknologi modern.
Pada proyek ini, saya membuat sebuah simulasi lampu lalu lintas (Traffic Light) pada perempatan jalan menggunakan mikrokontroler ESP32. Proyek ini bertujuan untuk memahami konsep dasar sistem kendali lalu lintas yang banyak diterapkan pada persimpangan jalan di dunia nyata.
Dengan memanfaatkan ESP32 sebagai pusat pengendali, setiap lampu lalu lintas dapat bekerja secara otomatis sesuai urutan yang telah diprogram sehingga arus kendaraan dari empat arah dapat diatur dengan lebih aman dan teratur.
Sistem ini terdiri dari empat jalur utama, yaitu arah Utara, Selatan, Timur, dan Barat. Setiap arah memiliki tiga buah LED yang mewakili lampu merah, kuning, dan hijau. Pada program, masing-masing LED dihubungkan ke pin GPIO ESP32 yang berbeda. Untuk arah Utara digunakan pin 25, 26, dan 27. Arah Selatan menggunakan pin 23, 22, dan 21. Arah Timur menggunakan pin 14, 12, dan 13. Sedangkan arah Barat menggunakan pin 19, 18, dan 5.
Pada bagian awal program dilakukan pendefinisian pin menggunakan perintah #define. Cara ini memudahkan proses pemrograman karena setiap pin dapat dipanggil menggunakan nama yang lebih mudah dipahami daripada nomor pin secara langsung.
Dengan demikian, kode menjadi lebih rapi, mudah dibaca, dan mudah dikembangkan di kemudian hari.
Program juga memiliki fungsi khusus bernama `semuaMerah()`. Fungsi ini sangat penting karena bertugas mengatur seluruh lampu merah menjadi aktif sementara lampu kuning dan hijau dimatikan. Fungsi ini dipanggil setiap kali akan terjadi pergantian arah kendaraan yang mendapatkan lampu hijau. Dengan metode ini, hanya satu arah saja yang memperoleh hak jalan pada satu waktu sehingga simulasi menjadi lebih realistis dan aman.
Pada fungsi `setup()`, seluruh pin yang digunakan sebagai output dikumpulkan ke dalam sebuah array. Selanjutnya dilakukan perulangan menggunakan perintah `for` untuk mengatur semua pin sebagai OUTPUT.
Teknik ini membuat kode menjadi lebih singkat dibandingkan menuliskan perintah `pinMode()` satu per satu sebanyak dua belas kali. Setelah semua pin berhasil diinisialisasi, fungsi `semuaMerah()` dipanggil agar sistem memulai kondisi awal dengan seluruh lampu merah menyala.
Bagian utama program berada pada fungsi `loop()`. Pada bagian ini terdapat urutan pengendalian lampu lalu lintas yang berlangsung secara terus-menerus. Pertama, arah Utara mendapatkan lampu hijau selama 10 detik. Selama periode tersebut kendaraan dari arah lain harus berhenti karena lampu merah tetap menyala. Setelah waktu hijau selesai, lampu kuning arah Utara menyala selama 2 detik sebagai tanda bahwa fase hijau akan berakhir.
Setelah itu giliran arah Timur yang mendapatkan lampu hijau selama 10 detik. Mekanisme yang sama diterapkan, yaitu lampu hijau menyala terlebih dahulu kemudian berubah menjadi kuning selama 2 detik. Selanjutnya sistem berpindah ke arah Selatan dengan durasi yang sama, yaitu 10 detik untuk lampu hijau dan 2 detik untuk lampu kuning. Terakhir, arah Barat mendapatkan giliran melintas dengan pola waktu yang identik.
Siklus ini akan terus berulang tanpa henti selama ESP32 mendapatkan sumber daya listrik. Dengan pola tersebut, setiap arah memperoleh kesempatan yang sama untuk melintas sehingga lalu lintas menjadi lebih tertib. Konsep ini merupakan bentuk dasar dari sistem pengendalian lampu lalu lintas yang banyak digunakan pada simulasi pembelajaran mikrokontroler dan sistem tertanam (embedded system).
Proyek ini sangat cocok untuk pemula yang ingin belajar ESP32, Arduino IDE, logika pemrograman, penggunaan LED sebagai indikator, serta konsep otomasi dalam kehidupan sehari-hari. Selain itu, sistem ini dapat dikembangkan lebih lanjut dengan menambahkan sensor ultrasonik untuk mendeteksi kepadatan kendaraan, LCD untuk menampilkan waktu hitung mundur, buzzer sebagai peringatan pergantian lampu, maupun teknologi Internet of Things (IoT) sehingga kondisi lalu lintas dapat dipantau secara real-time melalui internet.
Melalui proyek ini, pengguna tidak hanya belajar tentang pemrograman ESP32, tetapi juga memahami bagaimana teknologi dapat digunakan untuk mengatur lalu lintas secara efisien, meningkatkan keselamatan pengguna jalan, dan menjadi dasar pengembangan sistem Smart Traffic Light yang lebih cerdas di masa depan.
Berikut adalah koding yang bisa saya bagikan Koding Simulasi Trafik Light Menggunakan ESP32 di Wokwi
Koding Simulasi Trafik Light Menggunakan ESP32 di Wokwi
// UTARA
#define U_MERAH 25
#define U_KUNING 26
#define U_HIJAU 27
// SELATAN
#define T_MERAH 23
#define T_KUNING 22
#define T_HIJAU 21
// TIMUR
#define S_MERAH 14
#define S_KUNING 12
#define S_HIJAU 13
// BARAT
#define B_MERAH 19
#define B_KUNING 18
#define B_HIJAU 5
void semuaMerah() {
digitalWrite(U_MERAH, HIGH);
digitalWrite(T_MERAH, HIGH);
digitalWrite(S_MERAH, HIGH);
digitalWrite(B_MERAH, HIGH);
digitalWrite(U_KUNING, LOW);
digitalWrite(T_KUNING, LOW);
digitalWrite(S_KUNING, LOW);
digitalWrite(B_KUNING, LOW);
digitalWrite(U_HIJAU, LOW);
digitalWrite(T_HIJAU, LOW);
digitalWrite(S_HIJAU, LOW);
digitalWrite(B_HIJAU, LOW);
}
void setup() {
int pin[] = {
U_MERAH,U_KUNING,U_HIJAU,
T_MERAH,T_KUNING,T_HIJAU,
S_MERAH,S_KUNING,S_HIJAU,
B_MERAH,B_KUNING,B_HIJAU
};
for(int i=0;i<12 barat="====" delay="" digitalwrite="" high="" i="" loop="" low="" output="" pin="" pinmode="" pre="" selatan="====" semuamerah="" timur="====" utara="====" void="">
12>
