[Embedded System, Project 1] Getting Started with ESP 32: LED Blink
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.
— 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:
- ESP 32 DOIT DEVKIT V1 (pastinya!)
- Kabel USB (bisa pakai charger smartphone biasa)
- Laptop/ Komputer yang memiliki 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.
Apabila tidak bisa menginstall langsung dari web, kamu juga bisa langsung mendownloadnya dari Microsoft Store (apabila tersedia di perangkatmu).
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.
- Mari mengunjungi konfigurasi Arduino IDEmu dahulu!
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.
3. Selanjutnya, kita mengubah board pada Arduino IDE.
4. Install ESP32
5. Selesai! Saatnya mengganti board mu! Karena pada project kali ini akan menggunakan DOIT ESP32 DEVKIT V1, maka kita akan menggantinya ke Board tersebut.
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.
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
— 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:
// 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)
— delay 1000
— 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!
- 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~