Embedded System 1st Project — ESP32 : LED Blink

Nicolas Owen Halim
5 min readFeb 4, 2023

--

Hai semuanya! Ini adalah permulaan dari blog yang akan didedikasikan untuk menceritakan perjalanan proyek Sistem Embedded selama beberapa bulan ke depan. Aku harap kalian semua dapat mengikuti proses berjalannya proyek ini dan melihat hasil akhirnya bersama-sama. Hope you enjoy ! Sebelum membahas proyek pertama ini, mari kita mencari tahu apa itu Embedded Sytem dan Microcontroller.

Embedded System & Microcontroller

Embedded System atau Sistem Embedded adalah sebuah sistem perangkat keras komputer berbasis microprocessor dengan software yang di desain untuk mengerjakan suatu fungsi. Nah, salah satu contoh Sistem Embedded adalah microcontroller. Microcontroller adalah sebuah komputer kecil yang terdiri dari processor, memori, dan input/output yang berfungsi untuk menjalankan suatu tugas tertentu. Sudah terdapat banyak sekali tipe microcontroller, tetapi pada proyek kali ini yang akan digunakan adalah ESP32 DOIT DEVKIT V1.

ESP 32 DOIT DEVKIT V1

— Project Introduction

Di proyek pertama ini, kita hanya akan memulai setup ESP32 kita dengan menggunakan Arduino IDE. Kita akan menyambungkan ESP32 kita dengan laptop dan mencoba fitur blink yang sudah tersedia pada Arduino IDE. Ada beberapa alat dan bahan yang dibutuhkan untuk memulai proyek ini, seperti :

  1. ESP32 DOIT DEVKIT V1
  2. Kabel Micro USB
  3. PC / Laptop yang kompatibel dengan Arduino IDE
ESP32 | Kabel USB to Micro USB | Laptop dengan Arduino IDE

— Installing Arduino IDE & Setting Up the Board

Untuk bisa menggunakan ESP32 dibutuhkan sebuah program bernama Arduino IDE. Kita dapat menginstall Arduino IDE pada link ini.

Tampilan Website Arduino IDE

Disini kita bisa bisa menginstall program sesuai dengan OS Laptop/PC yang kita gunakan. Setelah kita selesai download dan install Arduino UDO, kita akan menjalankan programnya. Akan muncul tampilan seperti dibawah.

Tampilan Awal Arduino IDE

Pada saat pertama kali menjalankan Arduino IDE, belum terdapat opsi untuk menyambungkan ESP32. Oleh karena itu kita akan menginstallnya sendiri. Pertama kita akan membuka File -> Preferences

File -> Prefrences

Selanjutnya, kita akan memasukkan link https://dl.espressif.com/dl/package_esp32_index.json ke dalam kotak “Additional boards manager URLs dan memencet tombol OK.

Menambahkan Opsi Board ESP32 ke dalam Arduino IDE

Setelah itu kita akan menambahkan opsi boards ESP32 pada Tools -> Board -> ESP32. Setelah selesai menginstall pilihan board untuk ESP32, kita akan memilih opsi ESP32 DOIT DEVKIT V1 agar sesuai dengan board kita.

Tools -> Board -> esp32 -> DOIT ESP32 DEVKIT V1

Port yang digunakan pada ESP32 adalah port UART, sedangkan port yang tersedia pada laptop atau PC adalah port USB. Untuk bisa menggunakan ESP32 dibutuhkan driver yang dapat mengkonversi port USB menjadi port UART. Driver tersebut dapat diinstall pada link berikut. Download program sesuai dengan OS laptop/PC masing-masing.

Tampilan Website untuk Menginstall Driver UART

Setelah berhasil diinstall, kita akan memilih port yang sesuai dengan ESP32 kita. Untuk dapat mengecek port yang mana akan digunakan, kita dapat melihat pada device manager -> Ports(COM & LPT). Pilih COMX dengan X adalah port yang memiliki nama Silicon Labs CP210x USB to UART Bridge.

Device Manager -> Ports (COM & LPT)
Tools -> Port -> COM13

Nah, sudah selesai setup ESP32 dan Arduino IDE kita. Sekarang, kita dapat menggunakan ESP32 kita.

— The Code

Untuk proyek ini kali ini, kita hanya akan mencoba menggunakan kode Blink yang sudah disediakan oleh Arduino. Kode ini bisa didapatkan dengan cara File -> Examples -> 01.Basic -> Blink

File -> Examples -> 01.Basics -> Blink
Tampilan dari Code Example Blink

Kita akan melakukan verify untuk memastikan code dapat berjalan dan kemudian kita akan mengupload code tersebut ke dalam ESP32

Verify Code Berhasil
Upload Code Berhasil
Upload Berhasil

Yay Kode sudah berhasil! Lampu LED di ESP32 sudah berhasil menyala kelap kelip.

— Code Analysis

// 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
}

Sekarang, kita akan menganalisa kode yang didapatkan dari Arduino IDE. Pada bagian pertama terdapat void setup(), void setup disini digunakan untuk menentukan pin mana yang akan menjadi output pada ESP 32. Sedangkan bagian void loop() akan melakukan code loop code yang terdapat di dalamnya. Di dalam loop, ada digitalWrite yang berfungsi untuk menyalakan dan mematikan lampu LED ESP32 dan delay yang berfungsi untuk mengatur berapa lama kode berikutnya akan dijalankan. Pada contoh diatas digunakan delay 1000 yang berarti 1000ms / 1 sekon. Sekarang kita akan mencoba beberapa delay yang berbeda.

Delay (300)
Delay (1000)
Delay (3000)

Bisa dilihat terdapat perbedaan waktu kelap-kelip lampu LED pada ESP32. Semakin besar angka yang dijadikan parameter delay, maka akan semakin lama jeda antara lampu nyala dan mati.

— Possible Errors

  1. Pada saat pertama kali mencoba untuk upload code ke dalam ESP32, port yang digunakan untuk menyambungkan ESP awalnya tidak terdeteksi. Hal ini ternyata disebabkan oleh penggunaan kabel USB yang hanya kabel charger dan bukan kabel data. Untuk menyambungkan ESP32 dengan laptop dibutuhkan sebuah kabel data.
  2. Masalah yang kedua yang dapat terjadi adalah saat mengupload code ke dalam ESP akan terdapat error. Hal ini dapat diperbaiki dengan menekan tombol boot pada saat melakukan upload code ke dalam ESP32.

— Closing

Yay kita berhasil menjalankan proyek pertama ini dengan baik! Semoga blog ini berguna buat kalian semua dan sampai berjumpa lagi di blog berikutnya!

— Downloads

  1. https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
  2. https://dl.espressif.com/dl/package_esp32_index.json
  3. https://www.arduino.cc/en/software/

--

--