Program Pertama: Blink LED
Blink LED adalah "Hello World"-nya dunia embedded system. Pada tutorial ini, kita membuat LED berkedip setiap 1 detik menggunakan Arduino IDE — fondasi GPIO sebelum WiFi (#4) dan sensor DHT22 (#5).
Prasyarat: Sudah install Arduino IDE & board ESP32 (#2) dan paham dasar hardware dari Mengenal ESP32 (#1).
Apa itu GPIO?
GPIO (General Purpose Input/Output) adalah pin pada mikrokontroler yang bisa diprogram sebagai input atau output. ESP32 memiliki 34 pin GPIO yang masing-masing bisa digunakan untuk berbagai fungsi.
Built-in LED pada ESP32 DevKit biasanya terhubung ke pin GPIO 2. Namun ini bisa berbeda tergantung versi board yang kamu gunakan — cek silkscreen di PCB.
Wiring LED Eksternal (Opsional)
Untuk LED terpisah di breadboard, ikuti koneksi pin-ke-pin berikut. Built-in LED di GPIO 2 sering sudah ada di board — wiring ini berguna jika kamu pakai LED eksternal:
Kode Program Blink LED
Berikut kode lengkap untuk membuat LED berkedip di GPIO 2:
// Mendefinisikan pin LED
#define LED_PIN 2
void setup() {
// Set pin LED sebagai OUTPUT
pinMode(LED_PIN, OUTPUT);
// Mulai Serial Monitor untuk debugging
Serial.begin(115200);
Serial.println("Program Blink LED ESP32 dimulai!");
}
void loop() {
// Nyalakan LED
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
delay(1000); // Tunggu 1 detik
// Matikan LED
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
delay(1000); // Tunggu 1 detik
}
Alur Eksekusi Program
Sketch Arduino ESP32 mengikuti pola setup() sekali, lalu loop() berulang:
Penjelasan Kode
setup() Function
Fungsi setup() hanya dijalankan sekali saat ESP32 pertama kali dinyalakan atau direset. Di sini kita:
pinMode(LED_PIN, OUTPUT)— mengatur pin LED sebagai outputSerial.begin(115200)— menginisialisasi komunikasi serial dengan baud rate 115200
loop() Function
Fungsi loop() dijalankan berulang-ulang setelah setup() selesai. Di sini kita:
digitalWrite(LED_PIN, HIGH)— memberikan tegangan ke pin LED (LED menyala)delay(1000)— menunggu 1000 milidetik (1 detik)digitalWrite(LED_PIN, LOW)— mematikan tegangan di pin LED (LED padam)
Cara Upload Program
- Salin kode di atas ke Arduino IDE
- Pastikan board sudah dipilih: Tools → Board → ESP32 Arduino → ESP32 Dev Module
- Pilih port yang benar di Tools → Port
- Klik tombol Upload (panah ke kanan)
- Tunggu hingga muncul "Done uploading"
Modifikasi: Blink dengan Kecepatan Berbeda
Coba eksperimen dengan mengubah nilai delay untuk kecepatan kedip yang berbeda:
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(100); // Cepat: 100ms
digitalWrite(LED_PIN, LOW);
delay(100);
}
Dengan delay 100ms, LED akan berkedip 5 kali lebih cepat dari sebelumnya!
Tantangan: Modifikasi program agar LED berkedip dengan pola SOS morse code: 3 kedipan cepat, 3 kedipan lambat, 3 kedipan cepat.
Langkah Selanjutnya
- Menghubungkan ESP32 ke WiFi (#4) — tambahkan konektivitas jaringan
- Membaca sensor DHT22 (#5) — baca suhu & kelembaban
- Web Server ESP32 + DHT22 (#6) — monitoring di browser