[II2260 Embedded System] Project 1: Pengenalan ESP32 dengan Program LED Blink

Raden Dizi Assyafadi Putra
6 min readFeb 1, 2023

--

Minggu ini aku diberikan sebuah assignment (huek tapi gapapah aku suka Sistem Embedded 🫶) mengenai LED pada ESP32. Tapi sebelum itu, teman-teman udah tau belum sih Apa itu Sistem Embedded? Nah singkatnya, Sistem Embedded adalah sebuah sistem komputer dengan tujuan khusus dan umumnya merupakan integrasi antara software dan hardware. Salah satu komponen utama Sistem Embedded adalah Microcontroller.

Microcontroller adalah sebuah perangkat tanam terintegrasi yang digunakan untuk mengendalikan perangkat elektronik lain dan diperuntukkan untuk satu kebutuhan spesifik. Keuntungan dari Microcontroller adalah sifatnya yang low-power consumption dan low-cost juga sehingga banyak sekali perangkat elektronik yang menggunakan microcontroller. Pada project ini, aku akan menggunakan the man, the myth, the legend : ESP32 dengan versi ESP32 DOIT DEVKIT V1.

ESP32 dengan WiFi dan Bluetooth. Source: https://www.makerfocus.com/products/esp-dev-kit-32s

SO LET'S GET STARTED!

+ What is the project about?

Project pertama ini adalah kita akan belajar bagaimana cara membuat komputer aka “MIKROKONTROLER” kita berkedip (hence the title LED Blink :3 ).

ESP32 LED Blink. Source: Dokumentasi Pribadi

+ What tools do you need?

Untuk mengerjakan project ini, kita akan membutuhkan beberapa bumbu yang bisa meng-spice up projek kita.

Si paling argentina. Source: Giphy

— Things you need

  1. ESP32 Module, aku disini pakai variasi ESP32 DOIT DEVKIT V1
  2. Kabel USB versi Micro USB (ini penting karena Kabel USB type B arduino gabisa dipake :< )
  3. Arduino IDE atau Visual Studio Code (tapi disini aku pake Arduino IDE)
  4. Laptop/Komputer jelas ( + Dengerin Yohan Kim biar J A Z Z) :D
Components 101 + Yohan Kim’s Jazz ❤. Source: Dokumentasi Pribadi

+ What are the steps?

Installation

Okay, now let’s start small. Agar kita bisa menggunakan komponen kita, kita harus terlebih dahulu menginstall aplikasi dan driver yang diperlukan.

Pertama-tama, mari kita install Arduino IDE (yang pake VS Code, kita ga fren). Tapi kalo udah install duluan (entah karena kamu URO atau dulu SMA pernah robotik) silahkan skip bagian ini karena kemungkinan besar kamu imba.

Arduino IDE bisa didownload melalui link ini (tuh kurang baik apa sih aku :>). Pastikan kamu memilih versi yang sesuai dengan Operating System kamu ya. Untuk Windows download windows, Linux juga sesuaikan dengan Distro kamu, dan untuk mac…yah sakarep mu lah.

Tampilan Download Page Arduino. Source: https://www.arduino.cc/en/software

Setelah install arduino, kita harus setup dulu arduinonya nih. Soalnya Arduino IDE itu awalnya hanya untuk Arduino Board. Untuk ESP32 kita harus mengintegrasikan terlebih dahulu.

  1. Jadi pertama, buka menu Preferences di Arduino IDE

2. Lalu tambahkan package ESP32 dengan cara menuliskan https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json ke bagian Additional Boards Manager URLs.

Tampilan Preferences

3. Selanjutnya, pilih Boards Manager lalu cari esp32 by Espressif System dan Install.

4. Yey selesai! Kamu sudah berhasil menginstall ESP32 di Arduino IDE. Selanjutnya pilih Board seperti gambar dibawah ini.

5. Pilih port yang sesuai dengan ESP32 mu. Apabila port belum tersedia, kamu bisa menginstall Drivernya pada link ini.

Website UART Driver

6. Yak, selesai sudah setup Arduino IDE geming.

LED Blink

Project LED Blink ini akan mengedipkan LED Internal dari ESP32. Langkah-langkah cukup mudah yaitu

  1. Pastikan ESP32 sudah terhubung ke Komputer.
  2. Pilih Blink pada bagian Examples. Kamu akan melihat banyak sekali examples yang bisa dilakukan dengan ESP32 ini tapi untuk sekarang cukup Blink aja dulu ya ges.

3. Setelah itu kamu akan melihat kode ini.

/*
Blink

Turns an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products

modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman

This example code is in the public domain.

https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Langkah selanjutnya adalah Compiling dan Upload. Caranya adalah dengan menekan tombol dengan tanda checkmark dan tanda panah ke kanan di kiri layar. Ini akan mencompile program untuk memastikan tidak ada error dan program layak diupload. Selalu Compile sebelum upload untuk berjaga-jaga bilamana kode yang diupload masih buggy dan menyebabkan problem di ESP32.

Compile
Upload
Selesai Compiling

Setelah, baru upload deh kode kita. Dan tadda!!!! Blink kita sudah menyala :D

Selesai Uploading

+ Code Breakdown!!!

Mari mulai dari bagian pertama

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

Pada Arduino, bagian ini adalah bagian yang akan dijalankan hanya satu kali selama microcontroller dijalankan. pinMode disini adalah fungsi untuk menentukan pin apa pada microcontroller yang diakses(LED_BUILTIN) dan Mode dari pin tersebut(OUTPUT).

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Bagian ini adalah bagian yang akan dijalan berulang-ulang selama sistem dijalankan. Function digitalWrite disini menerima input pin dan fase program. Saat fasenya HIGH maka LED akan dialiri listrik (lampu menyala) dan saat fasenya LOW maka listriknya akan diputus (lampu mati). Function delay disini berfungsi untuk memberikan jeda pada pergantian fase tersebut (kalau tidak ada delay, maka perubahannya tidak akan terlihat). Kita bisa bermain dengan delay ini.

— 100ms

— 500ms

— 1000ms

+ Summary

Project ini akhirnya sudah selesai karena Blink kita menyala yeyy. This is a start of something bigger jadi stay tune yaa dalam blog ku yang selanjutnya. Muchas gracias aficiĂłn, esto es para vosotros Siuuu!

+ References

  1. https://www.allaboutcircuits.com/technical-articles/what-is-a-microcontroller-introduction-component-characteristics-component/

2. https://www.arduino.cc/en/software

--

--