#1 Kenalan dengan ESP32 : LED Blink
Hallo guys! Balik lagi nih setelah sekian lama vacuum. Untuk beberapa bulan, gw bakal rutin upload tulisan. Gw bakal nulis terkait System Embedded. Mungkin dari kalian ada yang masih asing dengan istilah ini, simpelnya system embedded itu sistem yang punya tujuan khusus dan komponen-komponen penyusunnya dimasukkin menjadi satu dalam suatu device. Gak afdal kalau bicara system embedded tanpa membahas microcontroller. Apa itu, sejenis microwave? Bukan dong. Microcontroller ini bisa dibilang otak dari suatu system embedded. Microcontroller mirip kayak microprocessor yang ada di komputer umum. Salah satu perbedaannya yaitu penggunaan daya listrik yang rendah di microcontroller dibandingkan dengan microprocessor. Dikarenakan low-power devices, sumber listrik microcontroller bisa menggunakan baterai. Selain itu, kehebatan dari microcontroller ini yaitu harganya murah, ada yang pakai dual core, dan juga bisa tersambung dengan wifi. Keren kan? Microcontroller banyak jenisnya, kalian bisa pakai yang mana pun asalkan sesuai kebutuhan. Di artikel ini, gw bakal pakai ESP32 DOIT DEVKIT (informasi jenis ESP32 lainnya, bakalan gw kasih gambarnya)
Goals
Nah, kita sudah tau apa itu system embedded dan ESP32. Sekarang kita bakal mencoba bagaimana caranya menyalakan ESP32 ini. Ada yang bilang, bagian menyalakan itu bagian yang paling susah loh, jadi simak baik baik ya. Nanti bakal ada 2 goals kita, yaitu :
- LED internal berkedip (goals utama)
- LED external berkedip (optional)
Tools Required
Utama
Hal-hal yang dibutuhkan buat goals 1 :
- Board ESP32 DOIT DEVKIT
- Breadboard (sebenarnya, gak dipakai juga gak apa)
- Micro USB (bisa pakai kabel charger HP)
- Laptop atau komputer yang sudah ter-install Arduino IDE
Opsional
Hal-hal yang dibutuhkan buat goals 2, selain yang sudah disebutin di Utama:
- 2 buah resistor 330 Ohm
- LED 5MM & 3MM (warnanya dibebasin, kalau gw pake warna putih dan biru)
- 4 buah Jumper Wires Male to Male
Preparing the ESP32 Board in the Arduino IDE
Sebelum kita mengoprek-oprek ESP32 lebih lanjut, ada hal penting yang gak bisa di-skip, yaitu mempersiapkan ESP32 board supaya bisa digunakan. Sebenarnya, ESP32 bisa diprogram di programming environment lain. Akan tetapi, untuk kali ini dan kedepannya kita bakal pakai Arduino IDE.
Arduino IDE dapat di-download pada link berikut. Tampilan web-nya akan seperti gambar di bawah ini. Perlu diingat, Arduino IDE yang di-install setiap orang akan berbeda, menyesuaikan spesifikasi laptop/komputer yang digunakan. Kali ini gw pakai Windows 11, bagi kalian yang pakai spesifikasi laptop/komputer yang sama kayak gw, kalian bisa memilih opsi “Windows 7 and newer” yang di-stabilo warna merah. Tapi, mungkin para pembaca gw masih banyak yang memakai Windows 10. Kalau iya, kalian bisa pilih opsi “Win 8.1 or 10” yang di-stabilo warna kuning.
“Gw udah selesai download nih, sudah bisa dipakai?” Tentu belum. Ada beberapa setup yang perlu dilakukan dan bakal cukup ribet, so simak baik baik ya.
- Buka Arduino IDE yang sudah di-download. Tampilan awal akan seperti ini
2. Konfigurasi Arduino IDE.
3. Tambahkan Package ESP32. Copy URL ini https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json dan paste pada kolom Additional Boards Manager URLs. Abaikan setting-an lain.
4. Install ESP32. Akan ada tulisan “INSTALLED” jika sudah menginstalasinya.
5. Ubah board Arduino menjadi DOIT ESP32 DEVKIT V1
6. Lakukan pengujian. Untuk memastikan apakah konfigurasi kita sudah berhasil atau belum, perlu dilakukan pengujian. Bagaimana caranya?
- Pilih Port yang sesuai dengan ESP32. Di kebanyakan kasus, Port yang diinginkan belum tersedia.
- Download driver pada link berikut.
- Setelah ter-install, kalian bisa pilih Port kembali yang sesuai dengan ESP32 kalian. Jangan lupa untuk menghubungkan laptop/komputer kalian dengan ESP32.
Project
Yeay! Akhirnya bisa mulai mengerjakan project, setelah bersusah payah men-set up Arduino IDE.
Rangkaian
Sebelum menyalakan LED, kita harus membuat rangkain supaya LED-nya bisa menyala. Nah, di bawah ini rangkaian yang bakal kita gunakan.
- Rangkain untuk goals 1: Blink LED internal
- Rangkaian untuk goals 2 : Blink LED external
Program
- Goals 1 : Blink LED internal
Akan direct ke program Blink yang berisi kode seperti berikut.
Setelah itu, hubungkan ESP32 dengan laptop/komputer menggunakan kabel micro usb. Klik tombol verify yang disimbolkan dengan check list yang berfungsi untuk meng-compile kode kita. Setelah selesai ter-compile, klik tombol upload yang disimbolkan dengan tanda panah arah kanan. Hal ini berfungsi untuk membuat kode bisa dipakai di ESP32. Jika sudah hasilnya akan seperti ini.
- Goals 2 : Blink LED external
Bisa menggunakan file program Blink atau membuat program baru. Di sini, gw buat program baru yang namanya Main. Berikut kode yang digunakan.
Ulangi langkah terakhir seperti goals 1 , hasilnya akan seperti ini.
Analysis
Gimana, seru bukan? Begitulah kira kira bentuk pengerjaan, mudah atau sulit menurut kalian? Nah, mungkin dari kalian masih ada yang penasaran terkait kode yang dibuat, kenapa begitu? Bagaimana kode bisa memberi instruksi kepada ESP32? Kita bakal kupas tuntas terkait hal itu.
Untuk membuat blink pada ESP32, kita memerlukan minimal 2 fungsi yang akan diberikan kepada ESP32, yaitu void setup()
dan void loop()
. Kedua fungsi tersebut merupakan fungsi “default” yang harus ada disetiap kita membuat kode program.
Fungsi void setup()
berfungsi untuk menginisialisasi atau mendefinisikan pin mana yang akan menjadi output program. Di kode yang sudah dibuat, LED_BUILTIN
yang menjadi output, sehingga kode yang masuk ke dalam scope fungsi void setup()
yaitu pinmode(LED_BUILTIN, OUTPUT)
. Di sisi lain, fungsi void loop()
yang seperti namanya fungsi ini berfungsi untuk mengulangi instruksi untuk dijalankan oleh ESP32.
Selain hal yang sudah disebutkan di atas, terdapat instruksi lain seperti delayWrite()
, delay()
, HIGH
, dan LOW
. Fungsi delayWrite()
berfungsi untuk memberi nilai HIGH
atau LOW
(parameter yang membuat LED ON/OFF). Sedangkan, fungsi delay()
berfungsi untuk mengatur jeda antar satu perintah dengan perintah lainnya. Berikut ini hasil dari analisisnya.
delay 100 ms
delay 2000 ms
Sesuai dengan dugaan kita, delay lah yang mengatur durasi antar tiap blink, sehingga semakin tinggi angkanya maka semakin lama pula durasi LED berkedip, begitu pula sebaliknya!
Oh iya, terdapat satu intruksi yang terlewatkan, yaitu const in ledPin = 23
. const in
merupakan konstanta. Konstanta adalah nilai suatu besaran yang tidak berubah besarnya atau memiliki nilai yang tetap. Apa maksudnya? Artinya variabel ledPin
adalah sebuah konstanta bilangan bulat integer yang memiliki nilai tetap yaitu 23. Nilai ini hanya bisa dibaca dan tidak dapat diubah selama program dijalankan.
Error
Perjalanan memang gak semulus yang kita kira, begitu juga dalam pengerjaan project ini, cukup banyak rintangan. Berikut ini errors yang gw alami selama pengerjaan, semoga bisa jadi bahan pelajaran.
- Port tetap tidak muncul padahal sudah download CP210x USB to UART Bridge VCP Drivers. Solusinya pastiin kalian sudah menghubungkan ESP32 dengan perangkatmu ya!
- Lampu LED external tidak mau menyala. Mengapa? Dikarenakan kurangnya pengetahuan gw terkait cara kerja LED dan rangkain ESP32. Solusinya perhatikan arah arus listrik di rangkaian, jika sudah paham peletakkan kaki pendek LED diletakkan pada arus yang mengalir.
Closing
Gak nyangka udah ada di penghujung aja. Kira-kira begitulah proses-proses yang perlu dilewati untuk dapat membuat ESP32 berkedip, memang tidak mudah, butuh pemahaman. Tapi, gw pengen nanya, seru bukan? Serulah, pasti bakal timbul rasa pengen coba lagi deh. Semoga hal yang gw tulis ini bisa bermanfaat untuk kalian. Selamat mencoba.
Rerefences
- Getting Started with the ESP32 Development Board | Random Nerd Tutorials
- TUTORIAL: Quickly getting started with ESP32 / ESP32S in 5–10 minutes! Beginner Friendly! Arduino! — YouTube
- How to Install Arduino Software IDE on Windows 11 — YouTube
- [Embedded System, Project 1] Getting Started with ESP 32: LED Blink | by Graciella Valeska Liander | Medium