ESP32 Challenge #1: Blinking the on-board LED, very easy!
Congratulations! Anda adalah orang yang beruntung karena berkesempatan untuk menikmati keseruan bersama dengan ESP32. Ikuti terus postingan ini sampai akhir untuk bermain dan bersenang-senang bersama!
Apa yang muncul di benak kalian kalau mendengar kata komputer?
Mungkin yang langsung terpikir adalah gambar itu, ya? Komputer gak selalu berupa PC atau laptop, lho! Mikrokontroler (MCU) juga merupakan sebuah komputer mini dalam sebuah chip, sehingga terdapat CPU, RAM, dan lain-lain. Saat ini, kita akan mengenal salah satu jenis mikrokontroler, yaitu ESP32.
ESP32 adalah System on Chip (SoC) mikrokontroler. Mikrokontroler yang dibuat oleh Espressif System ini merupakan penerus dari ESP8266 yang sudah dual-core serta dilengkapi fitur WiFi dan Bluetooth. Keren banget gak, sih?
Nah, setelah kenalan sama ESP32, sesuai dengan judulnya, kalian akan diberikan challenge main bareng ESP32!
Pada challenge pertama ini, kalian ditantang bikin ESP32 on-board LED jadi bisa ngeblink, eh tapi bukan blink mata yang jadi keliatan genit gitu yaa! Program LED blink ini sejenis kayak program “Hello World” jadi dijamin gampang bangettt. Tenang aja, aku juga bakalan ikutan challenge ini, jadi kalian gak bakal sendiri kok! :p
Oke, jadi harus mulai dari mana?
Pertama-tama, siapkan komponen dan perangkat berikut:
1. ESP32 Development Board
ESP32 yang banyak dijual di Indonesia umumnya DOIT DEVKIT V1 dan ESP-32S NodeMCU. Perbedaan DOIT DEVKIT V1 dengan ESP-32S NodeMCU adalah jumlah kaki pada DOIT DEVKIT V1 biasanya 30/36 pin, sementara jumlah kaki ESP-32S NodeMCU adalah 38 pin. ESP32 Development Board terdiri atas ESP-WROOM-32, ESP32-WROVER option space, USB-UART Bridge, Boot, EN, Micro USB Port, Power on LED, I/O (berbentuk kaki).
2. Breadboard
Breadboard terdiri atas titik-titik yang saling memiliki keterhubungan. Bagian pinggir sebelah kiri dan sebelah kanan breadboard biasanya digunakan untuk power/baterai, di mana kutub positif berwarna merah dan kutub negatif berwarna biru. Rangkaian biasanya disisipkan pada bagian tengah breadboard. Pada gambar berikut digunakan breadboard dengan 830 titik.
3. Micro USB Cable
Gunakan kabel USB dengan jenis micro, jangan sampai salah jenis, ya!
4. Laptop/komputer yang terdapat Aplikasi Arduino IDE (sudah terinstall package board ESP32).
Kalau belum memiliki aplikasi Arduino IDE yang sudah terinstall package board ESP32, ikuti langkah-langkah di bawah ini ya:
1. Silahkan download dan install Arduino IDE pada link berikut: https://www.arduino.cc/en/software/
2. Buka aplikasi Arduino IDE dan pilih File > Preferences
3. Pada bagian Additional Boards Manager URLs silahkan masukan https://dl.espressif.com/dl/package_esp32_index.json, lalu pilih OK.
4. Pilih Tools > Board > Boards Manager
5. Lakukan instalasi Package Board ESP32 dengan cara mengetik ESP32 pada kolom yang tersedia. Apabila sudah terinstall, akan muncul tulisan INSTALLED seperti pada gambar berikut.
6. Pilih Tools > Board > ESP32 Arduino > DOIT ESP32 DEVKIT V1
7. Silahkan install driver USB to UART yang terdapat pada link berikut: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
8. Hubungkan ESP32 Development Board dengan menggunakan kabel micro USB ke komputer/laptop.
9. Jika driver USB to UART sudah terinstall, pilih Tools > Port maka akan tersedia port dan silahkan pilih port yang ada. Contoh: port COM5 pada Windows.
Okee, kita langsung ke langkah-langkah yang paling penting dan ditunggu-tunggu!
- Hubungkan ESP32 Development Board ke laptop/komputer kalian dengan menggunakan kabel micro USB.
ESP32 Development Board dipasang di bagian tengah breadboard. Hati-hati, jangan memasang ESP32 Development Board pada bagian pinggir/power karena dapat terjadi korslet! Oh iya, saat menggunakan ESP32, jangan lupa gunakan alas kaki supaya tidak terkena listrik statis dari badan kita. Kabel micro USB dipasang pada bagian Micro USB Port di ESP32 Development Board yang terhubung dengan komputer/laptop.
Lampu warna merah pada ESP32 akan menyala, seperti gambar berikut:
2. Buka aplikasi Arduino IDE dan pilih File > Examples > 01.Basics > Blink
Jangan lupa pastikan sekali lagi bahwa port sudah tersedia (contoh: COM5) dan board yang digunakan adalah DOIT ESP32 DEVKIT V1 dengan cara mengeceknya pada bagian Tools.
3. Akan muncul kode program sebagai berikut:
Nah, mungkin pada bingung maksud dari kode programnya apa, sih? Oke, kita sekalian belajar ya, guys!
Jadi, dasar yang digunakan program ini menggunakan bahasa C. Dalam memprogram menggunakan Arduino dan ESP32, terdapat 2 fungsi utama:
- Setup
- Fungsi ini hanya dijalankan ketika program pertama kali di run, setelah itu dilakukan fungsi loop.
- Penulisan komentar menggunakan “//” sama seperti bahasa C.
- Pada fungsi setup, hanya terdapat satu instruksi yaitu pinMode. PinMode adalah instruksi untuk menentukan I/O mana yang digunakan sebagai input atau output. I/O biasanya berada pada kaki-kaki ESP32 di mana setiap kaki diberi nomor. PinMode memiliki 2 argumen, yaitu argumen pertama (kiri) adalah keterangan nomor kaki yang digunakan, dan argumen kedua (kanan) sebagai keterangan kaki tersebut digunakan sebagai input atau output. Karena kita masih menggunakan LED yang berada di dalam ESP32, bukan nomor kaki yang ditulis, tetapi ditulis sebagai LED_BUILTIN, sebenarnya LED_BUILTIN terhubung ke kaki 13. Jadi, jika ingin menulis pinMode (13, OUTPUT) juga akan tetap menyalakan LED_BUILTIN. Karena ESP32 hendak mengirimkan suatu instruksi/sinyal untuk menyalakan LED sehingga dapat dikatakan bahwa pin tersebut sebagai output/keluaran.
2. Loop
Pada fungsi loop di kode program ini, terdapat 4 baris program.
- Pada baris pertama,
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite berfungsi mengirimkan sinyal digital ke pin (dalam hal ini LED_BUILTIN) dan keterangan sinyal HIGH yang berarti diberikan tegangan tinggi (3V) atau secara mudahnya sinyal HIGH menyatakan LED bakal dinyalakan.
- Pada baris kedua,
delay(1000);
Artinya akan dinyalakan LED selama 1000 ms atau sama dengan 1 s.
- Pada baris ketiga,
digitalWrite(LED_BUILTIN, LOW);
Nah, sama seperti baris pertama, tetapi perbedaannya terdapat pada keterangan sinyal LOW, artinya LED akan dimatikan.
- Pada baris keempat,
delay(1000);
Artinya akan dimatikan LED selama 1000 ms atau sama dengan 1 s.
Sesuai dengan nama fungsinya, program ini akan dilakukan secara terus menerus. Kalian bisa mengubah angka delaynya sesuai keinginan jika ingin bereksperimen!
Yuk, lanjut ke langkah berikutnya!
4. Pilih bagian tanda centang atau verify. Tunggu hingga selesai compiling.
5. Pilih bagian tanda panah atau upload. Tunggu hingga selesai compiling. Lampu warna biru akan berkedap-kedip.
Kalian bisa melewati langkah ke-4, karena sebenarnya pada langkah ke-5 juga melakukan compile.
Atau kalian bisa melihat cara dan demonya pada video berikut, selamat menonton!
Selamat akhirnya kamu berhasil menyelesaikan challenge pertama ini! Gampang banget, kan?
Hasilnya lampu LED warna biru pada ESP32 akan berkedap-kedip sesuai dengan delay yang telah ditentukan. Semakin besar angka delay, semakin lama selang waktu LED menyala dan mati. Nah, mungkin dalam eksekusinya ada beberapa masalah yang bisa terjadi.
Masalah yang pernah aku rasakan:
1. Pilihan port tidak tersedia. Udah sempat otak-atik driver port di Device Manager, cari cara solve di youtube sampe berjam-jam, eh, ternyata yang salah bukan drivernya, tapi kabel USB-nya! Kabel micro USB yang aku pakai tanpa data wires (aku pakai kabel dari powerbank dan kebanyakan kabel powerbank gak ada data wires, cuma berfungsi buat charger aja). Setelah aku ganti kabel, baru deh muncul portnya.
2. Pada saat compile, ada pesan error gitu jadi gak bisa ke compile, dan ternyata kabelnya agak goyang, jadi pastikan kabelnya terhubung dengan baik ya, guys!
Nah, kalau ada masalah-masalah lain, kalian bisa lihat troubleshooting guide pada link berikut https://randomnerdtutorials.com/esp32-troubleshooting-guide/.
Please don’t hesitate to leave a comment if you have any questions! Kalian bisa share ke teman atau keluarga kalian kalau pengen nantang mereka di challenge ini juga! Sampai jumpa di challenge berikutnya!