#YukBelajarESP32 Project 1 : LED Blink

Edwin Stanic
7 min readJan 31, 2021

--

Halo! Selamat datang pada bagian pertama dari #YukBelajarESP32. Tulisan ini merupakan awal perjalanan dalam menambah pengetahuan kita tentang microcontroller. Sesuai dengan tagar #YukBelajarESP32, pembahasan akan difokuskan untuk mempelajari ESP32 lebih mendalam. Mari kita mulai perjalanan #YukBelajarESP32!

Apa sih microcontroller itu?

Microcontroller adalah sebuah komputer berukuran kecil yang dikemas dalam sebuah chip berupa Integrated Circuit (IC) yang dilengkapi dengan CPU, Memory, dan perangkat Input Output.

Dengan demikian, secara sederhana kita dapat menyebut microcontroller sebagai sebuah komputer karena memiliki komponen-komponen elektronik layaknya sebuah komputer. Namun, terdapat suatu perbedaan antara microcontroller dengan komputer pada umumnya, yaitu microcontroller dirancang untuk menjalankan suatu fungsi khusus.

Jika kamu pernah mendengar istilah sistem embedded, microcontroller adalah komponen utama sistem tersebut yang sangat penting. Microcontroller berfungsi untuk menerima berbagai macam bentuk input yang kemudian akan diproses dan menghasilkan respon yang disebut sebagai output. Sekarang ini, terdapat banyak sekali contoh microcontroller dengan konfigurasi yang berbeda-beda. Microcontroller yang cukup terkenal adalah Arduino, ESP8266, dan juga ESP32.

Sekian penjelasan singkat mengenai microcontroller, semoga kita sekarang sudah mengerti apa sih microntroller itu. Selanjutnya sesuai dengan tagar #YukBelajarESP32, kita akan mulai belajar tentang ESP32.

ESP32

sumber : https://randomnerdtutorials.com/getting-started-with-esp32/

Seperti yang dapat dilihat pada gambar di atas, terdapat banyak sekali jenis ESP32 mulai dari ESP32 DOIT DevKit V1, ESP32 DevKit, ESP-32S NodeMCU, ESP32 Thing, WEMOS LOLIN32, “WeMos” OLED, HUZZAH32, dan masih banyak lagi. Jenis ESP32 yang beragam tersebut dapat dibedakan berdasarkan jumlah pin, ketersediaan interface USB-to-UART, ketersediaan rangkaian regulator tegangan, tombol “Boot” dan “Reset”, penghubung baterai, dan fitur-fitur yang dimilikinya seperti layar OLED, kamera, atau fitur lainnya.

Dalam perjalanan #YukBelajarESP32 kita akan bersama-bersama mempelajari satu jenis ESP32 yang paling sering ditemui, yaitu ESP32 DOIT DevKit V1. Terdapat 2 jenis ESP32 DOIT DevKit V1, yaitu board dengan 30 atau 36 GPIO (general-purpose input output) pin. Kedua jenis tersebut pada dasarnya memiliki fungsi yang sama, hanya saja jenis 36 GPIO pin memiliki jumlah pin yang lebih banyak.

ESP32 DOIT DevKit V1 sudah dilengkapi dengan tombol reset yang bertuliskan “EN” dan tombol boot yang bertuliskan “BOOT”. Microcontroller ini juga memiliki interface USB-to-UART sehingga dapat diprogram dengan programming environment seperti Arduino IDE.

Tombol “EN” dan “BOOT” pada ESP32

Selain itu, rangkaian regulator tegangan hadir untuk memberikan kemudahan agar ESP32 dapat dicatu dengan konektor microUSB. Kebetulan ESP32 yang akan digunakan dalam beberapa tulisan #YukBelajarESP32 adalah ESP32 DOIT DevKit V1 dengan 30 GPIO pin.

Hands-on

Wah, sepertinya sudah cukup banyak penjelasan tentang microcontroller dan ESP32. Sekarang adalah waktunya kita langsung belajar bagaimana cara menggunakan ESP32 dengan melakukan proyek pertama yang cukup sederhana. Proyek #YukBelajarESP32 pertama ini akan mencoba untuk menyalakan lampu LED pada board ESP32 agar berkedip dalam interval waktu tertentu.

Persiapan

Berikut adalah beberapa hal yang harus kita disiapkan untuk melakukan proyek pertama:

  1. PC / Laptop,
  2. Development Board berupa ESP32 DOIT DevKit V1 dengan 30 atau 36 GPIO pin,
  3. Breadboard (opsional) sebagai tempat untuk meletakkan ESP32,
  4. Aplikasi Arduino IDE yang berfungsi sebagai programming environment,
  5. Kabel USP type A to microUSB yang berfungsi sebagai jalur komunikasi antara komputer dan ESP32 sebagai sumber catu daya ESP32.

Setelah kamu menyiapkan peralatan di atas, langkah persiapan selanjutnya yang harus kamu lakukan adalah:

  1. Download Arduino IDE sesuai dengan sistem operasi komputer disini,
  2. Install Arduino IDE,
  3. Menambahkan board ESP32 pada Arduino IDE. Jika kamu adalah pengguna windows, kamu dapat mengikuti cara yang tertera disini, atau bagi pengguna macOS disini.
  4. Mengatur communication port dengan melakukan instalasi driver USB to UART sesuai dengan sistem operasi komputer yang dapat diunduh disini.
  5. Menghubungkan ESP32 dengan komputer melalui sebuah kabel USB type A to microUSB,
ESP32 dipasang kabel microUSB (ilustrasi: circuito.io)
Ilustrasi ESP32 yang dihubungkan dengan laptop

6. Memilih port dengan mengakses menu Tools ➝ Port dan memilih “COM4” (Windows) atau “/dev/cu.SLAB_USBtoUART’ (macOS)

Sesudah melakukan semua langkah di atas, sekarang kita siap untuk menyalakan LED pada board ESP32.

Eksperimen

Setelah mempersiapkan perangkat komputer dan ESP32, kita dapat menyalakan LED pada board ESP32 dengan cara:

Disclaimer: eskperimen dilakukan dengan laptop yang mempunyai sistem operasi macOS

LANGKAH PERTAMA

Menyalin kode di bawah ini ke Arduino IDE

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

atau kamu juga dapat mengakses kode ini dengan menekan tombol File ➝ Examples ➝ 01.Basics ➝ Blink

LANGKAH KEDUA

Melakukan verifikasi code dengan menekan tombol bersimbol ✓ untuk memastikan bahwa code sudah benar dan dapat berjalan

Menekan tombol verify
Verify berhasil dilakukan (Done compiling)

LANGKAH KETIGA

Melakukan upload program ke board ESP32 dengan menekan tombol bersimbol ➡️

Menekan tombol upload
Upload berhasil dilakukan (Done uploading)

LANGKAH KEEMPAT

Selamat, kamu telah berhasil menyalakan lampu LED yang ada pada ESP32!

LED menyala selama 1 detik dan mati selama 1 detik secara bergantian
Video demonstrasi eksperimen proyek pertama #YukBelajarESP32

Analisis dan Hasil

Setelah melakukan langkah-langkah percobaan yang sudah dijabarkan pada bagian eksperimen, saya berhasil untuk menyalakan lampu LED pada board ESP32. Adapun kode yang disalin ke Arduino IDE memiliki penjelasan sebagai berikut:

// Fungsi "setup" akan berjalan sesudah kamu menekan tombol "EN" pada boardvoid setup() {
// Mengalokasikan digital pin LED_BUILTIN (LED yang sudah pada board ESP32) sebagai output
pinMode(LED_BUILTIN, OUTPUT);
}
// Fungsi "loop" akan membuat program berjalan secara terus menerus
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Menyalakan LED dengan mengatur level voltase menjadi HIGH
delay(1000); // Menyalakan LED selama 1 detik (1s = 1000ms)
digitalWrite(LED_BUILTIN, LOW); // Mematikan LED dengan mengatur level voltase menjadi LOW
delay(1000); // Mematikan LED selama 1 detik
}

Dalam melakukan percobaan, terdapat 2 permasalahan yang saya hadapi, yaitu tidak dapat melakukan verifikasi code dan tidak dapat meng-upload code ke ESP32. Langkah-langkah troubleshoot terhadap permasalahan tersebut akan dijelaskan pada bagian Common Error.

Common Error

Exit Status 255

Jika kamu adalah seorang pengguna komputer dengan sistem operasi macOS versi 11.0+ (Big Sur) umumnya kamu akan menghadapi masalah seperti pada gambar di atas, begitu pun dengan saya. Hal ini terjadi karena tidak dapat ditemukannya ESPTool oleh Arduino IDE. ESPTool merupakan file yang ada pada pyserial sehingga dapat dikatakan bahwa masalah ini terjadi karena komputer Mac kamu belum ter-install pyserial.

Akan tetapi, kamu tidak perlu untuk install pyserial. Kamu dapat mengganti peran pyserial dengan hanya mengganti source file yang biasa digunakan oleh Arduino IDE.

  1. Temukan lokasi Library Arduino untuk mengakses file preferences.txt

Informasi ini kamu dapat kamu akses dengan menekan Arduino ➝ Preferences dan menekan tulisan yang sudah diberi kotak seperti di bawah ini

Lokasi file preferences.txt

2. Buka folder packages/esp32/hardware/esp32/1.x.x dan buka file platform.txt

3. Pada baris ke-7 ubah tools.esptool_py.cmd=esptool menjadi tools.esptool_py.cmd=esptool.py dan save

Ubah tulisan pada baris ke-7

4. Buka folder packages/esp32/hardware/esp32/1.x.x/tools

5. Copy file esptool.py dan paste pada packages/esp32/tools/esptool_py/2.x.x

Copy file esptool.py
Paste file esptool.py pada folder ini

6. Buka terminal dan salin code berikut untuk memberikan akses file esptool.py kepada Arduino IDE

chmod +x /Users/XXXXX/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py

Jangan lupa untuk mengganti bagian XXXXX dengan nama user pada Mac kamu. Contohnya

chdmod +x /Users/edwinstanic/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py

7. Quit aplikasi Arduino IDE dan ulangi langkah upload

Selamat, kamu telah berhasil mengatasi masalah ini dan Arduino IDE sudah siap digunakan!

Timed Out

Jenis error ini biasanya terjadi ketika proses upload ke ESP32 gagal dilakukan. Error terjadi karena aplikasi Arduino IDE gagal membaca ESP32. Akan tetapi, kita dapat mengatasinya dengan menekan tombol “BOOT” ketika proses upload menampilkan tulisan “Connecting

Status connecting pada proses upload

Jika cara tersebut masih belum berhasil seperti yang saya lakukan, kamu dapat menekan tombol “EN” sebelum menekan tombol upload dan melepasnya ketika tulisan “Connecting” muncul. Setelah itu, kamu harus segera menekan tombol “BOOT” hingga aplikasi berhasil mendeteksi board ESP32. Apabila proses sudah berhasil, tulisan akan berubah menjadi seperti di bawah ini.

Proses upload yang berhasil

Setelah itu kamu hanya perlu menekan tombol “EN” sekali untuk melakukan reset pada ESP32 dan voila!, program sudah berhasil dijalankan oleh ESP32.

Akhir Kata

Sekian saja perjalanan pertama #YukESP32 yang dimulai dengan mempelajari bagaimana caranya menyalakan lampu LED yang tertanam pada board ESP32. Mudah dan seru bukan? Proyek sederhana yang membuat kita memahami dasar microcontroller dan ESP32. Jangan lupa untuk terus mengikuti proyek-proyek berikutnya, sampai jumpa pada episode lain dari #YukESP32!

Sumber :

  1. https://randomnerdtutorials.com/getting-started-with-esp32/
  2. https://github.com/espressif/arduino-esp32/issues/4408

--

--

No responses yet