My #1 Project with ESP32: LED Blink
⚠️Untuk setiap minggu dalam 3 bulan ke depan akan terus ada publikasi blog terkait projek ESP32. Jadi, pantau terus yaa!
Blog ini hadir karena ada tugas mingguan dari mata kuliah II2260 Sistem Embedded (kalau gak pasti gak nge-blog✌️). Di mata kuliah ini, kita belajar “sedikit” tentang informatika dan “sedikit” tentang elektro.
By the way, ESP32 itu apa sih? ESP32 adalah sebuah mikrokontroller hemat energi yang dikembangkan oleh Espressif Systems. Singkatnya, ya komputer mini. Di dalamnya juga ada WiFi dan Bluetooth. Menarik kan?
— What will we do?
Pada projek #1, kita akan membuat “komputer” kita berkedip atau blink.
— Tools
1. ESP32, aku pakai ESP32 DOIT DEVKIT V1
2. Kabel USB (pakai kabel data ya, jangan kabel charger biasa)
3. Arduino IDE (software)
4. Laptop/komputer
5. Pikiran, hati, dan rasa semangat
— Steps
Installation
Sudah install Arduino IDE? Kalau sudah, skip aja section ini. Kalau belum, skip juga😈 (canda)
Arduino IDE bisa diinstall melalui link ini (tenang, bukan scamming yang apk WhatsApp kok). Pilih yang sesuai sistem operasi laptopmu ya. Jangan sampai salah!
Kalau sudah, kita harus setup dulu Arduino IDE-nya karena pada dasarnya Arduino IDE dibuat untuk Arduino Board. Jadi, kita harus mengintegrasikan ESP32 ke IDE-nya.
- Pilih menu File > Preferences pada Arduino IDE.
2. Tambahkan package ESP32 dengan memasukkan https://dl.espressif.com/dl/package_esp32_index.json ke Additional Boards Manager URLs. Lalu, klik OK.
3. Pilih Tools > Board > Boards Manager. Lalu, install modul ESP32.
4. Pilih DOIT ESP32 DEVKIT V1 pada Tools > Board > ESP32.
5. Pilih port sesuai dengan ESP32-mu. Jika belum ada, gws __/\__ karena ESP32 menggunakan komunikasi UART. Tenang, kehidupan kita tidak akan berakhir sampai sini karena kita bisa meng-install driver eksternal untuk konversi USB ke UART dengan menekan link ini.
6. Pilih port Anda pada Tools > Port.
7. Let’s go ke projek!
— Project
- Hubungkan ESP32 ke device Anda.
2. Masukkan kode ini.
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for 500 ms
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage low
delay(500); // wait for 500 ms
}
3. Klik tombol verify.
4. Klik tombol upload sambil menekan BOOT pada ESP32 hingga muncul pesan Done uploading.
5. Tekan tombol EN pada ESP32 untuk mereset board dan…
6. SELESAIIIIIIIII!!!!!!!!!
— Hasil
— Break the Code!
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
}
Potongan kode ini hanya dijalankan satu kali oleh sistem untuk menginisiasi pin mana yang digunakan untuk menerima output program. Di projek ini, kita menggunakan LED internal ESP32, yaitu LED_BUILTIN sebagai output.
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for 500 ms
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage
delay(500); // wait for 500 ms
}
Potongan kode ini dijalankan berulang kali oleh sistem. Fungsi digitalWrite()
menerima input pin dan nilai HIGH (lampu menyala) atau LOW (lampu padam). Fungsi delay()
berfungsi untuk mengatur jeda lampu menyala dan padam.
— Weird Error
Error yang kuhadapi sangat aneh. Pas aku download converter driver USB ke UART, kan bentuknya dalam format .zip ya. Setelah diesktrak, portnya masih aja belum muncul. Aku coba re-download lagi dan masih aja belum bisa. Lalu, aku putuskan buat bertanya sama teman. Teman menyuruh re-download lagi dan malah jadi bisa. Agak aneh aja tapi ya sudah yang penting bisa dulu haha :D
— Bonus
Ketika kita menjalankan program tadi, secara otomatis kode program itu tersimpan di ESP32 sehingga kalau kita cabut dan menghubungkan kembali ESP32 ke listrik, maka ESP32 akan menjalankan program itu secara otomatis. Gimana biar program itu terhapus? Kita bisa meng-upload kode ini (kode kosong).
void setup() {
}
void loop() {
}
dann yeayyy selesaiii sudahhhhh~
— Resources