First Project of Embedded System : LED Blink

Imanuel Raditya
7 min readFeb 5, 2023

--

- The Beginning -

Pada mata kuliah Sistem Embedded di semester 4 ini, selain memperoleh pelajaran secara teori, kami, mahasiswa, juga diberikan hands on dengan melakukan berbagai project menggunakan ESP32. Dengan metode ini, diharapkan kami bisa memperoleh dan memperdalam pengalaman kami secara langsung menggunakan microcontroller.

Nah, project pertama ini akan dimulai dengan mempersiapkan ESP32 dan membuat LED berkelap-kelip!!!

- Requirements -

Untuk menyelesaikan project ini, tentunya dibutuhkan alat dan bahan yang perlu dipersiapkan. Berikut adalah alat dan bahan yang akan digunakan dalam project ini :

ESP32 | Kabel Micro USB | Laptop

Kebetulan karena ini pengenalan pertamaku dengan ESP32, maka aku memesannya di Tokopedia sebagai berikut.

Pemesanan perangkat ESP32

Sementara, untuk kabel micro USB yang juga diperlukan untuk project ini sudah aku miliki sebelumnya jadi tidak perlu membeli lagi.

- Preparation -

Sebelum membuat lampu dalam ESP32 bisa blinking, kita perlu melakukan berbagai persiapan terlebih dahulu, seperti mendownload IDE yang dibutuhkan oleh ESP32 dan menghubungkannya dengan laptop atau komputer.

IDE yang akan kita butuhkan untuk keselurahn project di Sistem Embedded ini adalah Arduino IDE. Arduino IDE dapat diunduh di situs https://www.arduino.cc/en/software sesuai dengan ilustrasi yang ada pada gambar di bawah. Sebelum mengunduh, perlu diperhatikan untuk memilih operating system yang sesuai dengan perangkat yang digunakan. Misalnya, karena saya menggunakan operating system Windows 11, maka aku memilih pilihan Win 10 or newer sebagai berikut. Setelah memilih, tinggal mengikuti langkah instalasi hingga program berhasil di-install.

Setelah selesai mengunguh Arduino IDE, kita perlu melakukan beberapa set up agar sesuai dengan perangkat ESP32 yang kita gunakan. Hal ini dikarenakan pada dasarnya Arduino IDE diciptakan khusus untuk mendukung penggunaan perangkat Arduino.

1. Buka menu files pada Arduino IDE dan buka jendela Preferences.

2. Masukkan link berikut pada Additional Boards Manager URLs: https://dl.espressif.com/dl/package_esp32_index.json

3. Buka menu Tools kemudian buka jendela Boards Manager dan lakukan pencarian ESP32 untuk melakukan instalasi ESP32

4. Selesai! Setelah meng-install package ESP32, buka menu Tools dan pilih tipe board ESP yang sesuai dengan yang dimiliki. Karena aku menggunakan tipe DEVKIT V1, maka aku akan memilih board DOIT ESP32 DEVKIT V1

5. Setelah melakukan konfigurasi, kita masih belum bisa langsung menghubungkan ESP32 dengan perangkat laptop atau komputer kita. Hal ini disebabkan, komunikasi antara PC dengan ESP32 menggunakan USB to UART. Oleh karena itu, perlu dilakukan instalasi driver yang dapat diunduh pada situs https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers. Sama seperti saat mengunduh Arduino IDE, perlu dipilih operating system yang sesuai dengan perangkat yang digunakan sebagai berikut.

6. Langkah selanjutnya adalah melakukan extraxt pada file driver yang telah diunduh tadi karena masih berada dalam format zip

7. Sesudah melakukan extract, kita tinggal memilih port yang terhubung dengan ESP32 dengan cara membuka menu Tools dan tekan jendela Port. Berdasarkan pengalaman yang sudah aku coba dan dan pengalaman beberapa teman-teman, umumnya port yang biasanya dipilih adalah port yang terbesar. Namun, jika masih gagal bisa dilakukan percobaan pada setiap port.

Yatta!! Selesailah sudah proses persiapan untuk menghubungkan ESP32 dengan perangkat laptop atau komputer yang dimiliki. Board ESP32 sudah siap digunakan dan project yang ditunggu-tunggu akan bisa segera dieksekusi.

- Let There Be Light -

Huft~ Proses preparation yang cukup panjang telah berhasil kita lalui. Mari langsung merangkai ESP32!! Sebenernya rangkaian yang dibuat sangatlah sederhana. ESP32 hanya perlu disambungkan ke salah satu port USB yang ada di perangkat laptop atau komputer kita menggunakan kabel micro USB sebagaimana tertera pada gambar berikut.

Jika sudah tersambung dengan baik, maka kita tinggal menuliskan kode pada Arduino IDE agar kita bisa memprogram lampu yang ada pada ESP32 bisa berkelap-kelip. Kebetulan, karena project pertama ini masih sederhana dan berupa pengenalan, kode yang dibutuhkan untuk memungkinkan lampu LED pada ESP32 melakukan blinking tersedia sebagai example yang ada di aplikasi Arduino IDE itu sendiri yang bisa diakses seperti ini.

Kemudian, akan muncul halaman baru yang berisikan untaian kode sebagai berikut.

/*
Blink

Turns an LED on for one second, then off for one second, repeatedly.
*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Langkah selanjutnya, kita perlu melakukan verification terlebih dahulu dengan menekan tombol berbentuk centang yang ada di atas dan tunggu hingga tertulis proses selesai.

Lalu, jangan lupa untuk meng-upload kode tersebut ke ESP32 kita agar ESP32 bisa mengerti dan mengeksekusi perintah tersebut. Hal ini dilakukan dengan menekan tombol berbentuk panah ke kanan.

Tara!! Kini lampu LED yang ada pada ESP32 sudah bisa berkelap-kelip. Keren bangett pas pertama kali aku lihat.

- Explanation -

Nah, tentu saja lampu LED yang ada di ESP32 tidak bisa berkelap-kelip begitu saja, dong. Jadi aku akan mencoba melakukan analisis terhadap kode yang tadi tertera pada Arduino IDE agar bisa mengerti bagaimana mekanisme ini kira-kira bisa terjadi.

Sebagai analisis awal, umumnya hampir semua kode program yang melibatkan penggunaan ESP32 pasti akan memanfaatkan fungsi utama, yakni void setup() dan void loop() yang pastinya akan selalu ada. Tanpa kedua fungsi ini, ESP32 tidak akan bekerja.

Di fungsi void setup(), dilakukan inisialisasi pin-pin mana sajakah yang akan menerima output. Karena pada project kali ini kita memanfaatkan lampu LED yang sudah terpasang di perangkat ESP32, maka kita memanfaatkan LED_BUILTIN. Oleh karena itu, kode yang dituliskan adalah pinMode(LED_BUILTIN, OUTPUT).

Pada fungsi void loop(), terdapat pemanggilan fungsi-fungsi lainnya seperti digitalWrite serta delay. Fungsi digitalWrite akan berisi parameter yang memiliki value HIGH ataupun LOW. Nilai ini merepresentasikan tingkat voltase pada arus listrik yang akan merambat. Jika digitalWrite bernilai HIGH, maka arus listrik yang merambat akan memiliki voltase yang tinggi sehingga memungkinkan lampu LED menyala, sebaliknya jika LOW, arus ang merambat akan memiliki voltase yang rendah sehingga lampu LED tidak akan bisa menyala. Selanjutnya ada fungsi delay yang bertujuan mengatur lamanya durasi antar perintah. Terakhir, perlu diperhatikan bahwa sesuai dengan namanya, proses ini akan terus berulang terus-menerus tanpa henti sampai sambungan antara ESP32 dan perangkat laptop atau komputer dicabut. Oh iya, aku juga sempat melakukan beberapa eksperimen dengan mengganti waktu delay dan memperoleh hasil seperti ini.

LED Blinking dengan delay 500ms
LED Blinking dengan delay 1000ms
LED Blinking dengan delay 2000ms

- Errors and Tips -

Meskipun project ini masih bisa dibilang cukup mudah, namun bukan berarti aku bisa menyelesaikannya tanpa kendala apapun. Ketika aku hendak melakukan upload kode LED Blinking ke ESP32, aku sempat menjumpai pesan error seperti ini.

Nah, setelah melihat slide dan melakukan searching di internet, akhirnya aku berhasil menemukan solusi untuk permasalahan ini. Ketika melakukan proses upload, kita perlu menekan tombol BOOT yang ada pada perangkat ESP32 hingga proses uploading selesai dan muncul pesan Done uploading. Tampilannya akan terlihat seperti ini.

Setelah itu, tekan tombol EN untuk mereset board dan LED biru akan berkedip terus menerus.

- The End of The Beginning -

Berhasilnya lampu LED berkelap-kelip menandakan berakhirnya project pertama dari Sistem Embedded ini. Eits, tapi jangan berkecil hati karena pengalaman kita baru dimulai! Sampai bertemu di project-project selanjutnya ~

--

--