[Embedded System, Project 1] Getting Started with ESP 32: LED Blink

Graciella Valeska Liander
6 min readJan 31, 2021

--

Sistem embedded atau dapat disebut dengan sistem benam adalah sistem komputer yang memiliki tujuan khusus dengan seluruh bagian yang diperlukan dimasukkan menjadi satu dalam perangkat tersebut. Berbicara tentang embedded, sistem ini identik dengan salah satu perangkat bernama Microcontroller. Microcontroller adalah perangkat yang tertanam dalam suatu device yang dapat mengatur sebuah fitur/ action device tersebut dan hanya didedikasikan untuk melakukan satu program yang spesifik. Karena ini, microcontroller umumnya merupakan low-power devices sehingga dapat dioperasikan dengan baterai. Selain itu, microcontroller juga umumnya memiliki display input-output yang kecil, low-cost dan bisa jadi bekerja pada environment yang ‘kasar’ seperti pada mobil. Salah satu microcontrollers yang umum (dan tentunya akan dibahas pada blog kali ini) adalah ESP32 DOIT DEVKIT V1.

Contoh board ESP32. Source: https://randomnerdtutorials.com/getting-started-with-esp32/

— Introduction

Pada project pertama kali ini, kita akan membahas bagaimana cara membuat ‘komputer’ kita ini melakukan blink atau berkedip.

— Tools

Untuk mengerjakan project ini, ada beberapa tools yang perlu disiapkan, yaitu:

  1. ESP 32 DOIT DEVKIT V1 (pastinya!)
  2. Kabel USB (bisa pakai charger smartphone biasa)
  3. Laptop/ Komputer yang memiliki Arduino IDE
ESP 32 | Kabel USB | Laptop yang terhubung Arduino IDE

— Steps

Pre-project

Sebelum mulai mengerjakan project ini, pastikan Laptop/ Komputermu sudah memiliki Arduino IDE yang terinstall didalamnya. Apabila sudah terinstall, section ini boleh di skip dan langsung ke section project!

Arduino IDE dapat langsung diinstall melalui link berikut. Tampilan pada web akan seperti gambar dibawah, kamu perlu menyesuaikan Arduino IDE yang kamu download dengan spesifikasi laptop/ komputermu. Karena aku menggunakan Windows 10, maka aku harus memilih download options Windows App Win 8.1 or 10. Selanjutnya, kamu hanya perlu mengikuti instruksi penginstallan.

Tampilan layar pada web Arduino IDE

Apabila tidak bisa menginstall langsung dari web, kamu juga bisa langsung mendownloadnya dari Microsoft Store (apabila tersedia di perangkatmu).

Arduino IDE pada Microsoft Store

Setelah Arduino IDE berhasil terpasang, ada beberapa setup yang perlu dilakukan terlebih dahulu. Setup ini perlu dilakukan karna pada dasarnya Arduino IDE diciptakan untuk Arduino, bukan ESP32 sehingga kita harus menambahkan ESP32 kedalam Arduino IDE terlebih dahulu.

  1. Mari mengunjungi konfigurasi Arduino IDEmu dahulu!
File > Preferences (Cheatsheet: Ctrl + ,)

2. Menambahkan Package ESP32 dengan memasukkan https://dl.espressif.com/dl/package_esp32_index.json kedalam boc Additional Boards Manager URLs. Settingan lain tidak perlu diganti.

Tampilan Preferences untuk menambah Boards Manager URLs

3. Selanjutnya, kita mengubah board pada Arduino IDE.

Tools > Board > Boards Manager

4. Install ESP32

Menginstall ESP32 pada Board Arduino IDE

5. Selesai! Saatnya mengganti board mu! Karena pada project kali ini akan menggunakan DOIT ESP32 DEVKIT V1, maka kita akan menggantinya ke Board tersebut.

Mengganti Board pada Arduino IDE menjadi DOIT ESP32 DEVKIT V1

6. Untuk memastikan konfigurasi ini telah berjalan dengan baik, kita perlu melakukan pengujian. Langkah pengujiannya adalah memilih port yang sesuai dengan ESP32 mu. Apabila port belum tersedia, kamu bisa mendownloadnya pada link ini. Untuk penginstallan, kamu perlu menyesuaikan dengan spesifikasi perangkat yang kamu gunakan.

Tampilan apabila Port belum tersedia
Pilihan CP210x USB to UART Bridge VCP Drivers

Setelah menginstall, kamu tinggal menyesuaikan Port yang dipilih dengan ESP32 mu.

Hooray! Kita telah berhasil menambahkan ESP32 sepenuhnya kedalam Arduino IDE mu, sekarang saatnya mengerjakan Project #1. Apabila kamu masih penasaran dengan satu dan lain hal, kamu bisa mengunjungi web ini untuk mendapatkan informasi yang lebih detail.

Project

Setelah melalui pre-project yang lumayan panjang~~ Saatnya kita melakukan project yang sebenarnya sangat simple!

— Illustration

Berikut adalah ilustrasi rangkaian yang akan kita buat pada project ini

Ilustrasi rancangan ESP32 untuk melakukan Project #1 Blink. Ilustrasi dibuat menggunakan circuit.io

— Program details

Fungsi pada project kali ini cukup sederhana. Sebenarnya, fungsi tersebut bisa didapatkan dari fungsinya example yang diberikan oleh Arduino IDE lhoo. Kalau kamu penasaran, kamu juga bisa mencoba fungsi example lainnya lho! Tapi, di project kali ini kita main-main dengan Blink dulu saja ya!

Kode program yang kita terima akan berbentuk seperti pada gambar dan baris kode dibawah ini:

Kode yang digunakan
// fungsi setup awal yang otomatis dijalankan ketika menghidupkan board
void setup() {
// menginisiasi digital pin LED_BUILTIN sebagai output.
pinMode(LED_BUILTIN, OUTPUT);
}
// fungsi loop yang membuat kode akan selalu dijalankan sampai ada interrupt
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Menghidupkan LED (parameter HIGH menunjukkan voltage levelnya)
delay(1000); // Menunggu sebelum menjalankan perintah selanjutnya
digitalWrite(LED_BUILTIN, LOW); // Mematikan LED (parameter LOW menunjukkan voltage levelnya)
delay(1000); // Menunggu sebelum menjalankan perintah selanjutnya
}

— Analysis

Setelah berhasil membuat ESP32 kita melakukan Blink, tentunya ada rasa-rasa penasaran terkait bagaimana bisa ESP32 melakukan Blink? Kita akan melakukan analisis pada kode program pada program details.

Untuk memberikan perintah kepada ESP32, kita harus memiliki minimal 2 fungsi utama, yaitu void setup() dan void loop(). Kedua fungsi ini merupakan fungsi ‘default’ sehingga harus ada di setiap kode yang dibuat.

Fungsi void setup() berfungsi untuk menginisiasi pin mana yang akan menerima output yang diberikan oleh program. Pada Project kali ini, kita akan menggunakan LED_BUILTIN sebagai output sehingga kode yang dimasukkan adalah pinMode(LED_BUILTIN, OUTPUT). Selanjutnya, fungsi void loop() berfungsi untuk mengulang perintah yang dijalankan agar ESP32 terus bekerja.

Pada fungsi loop() , ada beberapa keyword seperti digitalWrite, delay, HIGH dan LOW. Fungsi digitalWrite berfungsi untuk memberi nilai HIGH atau LOW (parameter yang membuat LED menyala/ padam). Sedangkan, fungsi delay berfungsi untuk mengatur jeda antar satu perintah dengan perintah lainnya. Disini, kita akan coba menganalisis apabila delay yang diberikan diubah angkanya.

delay(100)

Blink dengan delay 100

delay 1000

Blink dengan delay 1000

delay 2000

Blink dengan delay 2000

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! Ohiya, delay dalam satuan milisekon yaa, jadi delay(1000) = delay 1000 milisekon = delay 1 sekon.

— Possible Error

Ketika aku mengerjakan project kemarin, tentunya tidak mulus sampai akhir HAHA, jadi ada beberapa error yang aku alami dan semoga kalian tidak kebingungan lagi dengan error yang sama!

  1. Port tetap tidak muncul padahal sudah download CP210x USB to UART Bridge VCP Drivers. Solusinya pastiin kamu sudah menghubungkan ESP32 dengan perangkatmu ya! Saat aku pertama kali mencoba dan menunggu installan pada pre-project, ESP32ku menjadi panas (mungkin terlalu lama terhubung dengan aliran listrik?) jadi aku cabut sementara, tapi saat akan menguji port, aku lupa menyambungkannya lagi hehe.

— Closing

Karena kita sudah berhasil membuat ESP32 melakukan Blink, maka project kali ini telah selesai! Horee! Sampai jumpa di Project selanjutnya yang pastinya gak kalah seru juga! See you~

— Resources

  1. https://randomnerdtutorials.com/getting-started-with-esp32/
  2. https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
  3. https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

--

--

Graciella Valeska Liander
Graciella Valeska Liander

Written by Graciella Valeska Liander

Exploring life through random activities

No responses yet