ESP32

Panduan Lengkap ESP32-C3 Super Mini: Fitur, Pinout, WiFi, dan Deep Sleep

ESP32-C3 Super Mini adalah development board berukuran compact yang berbasis chip Espressif ESP32-C3, bagian dari keluarga ESP32. Keunggulan utamanya dibandingkan board ESP32 lainnya adalah ukurannya yang kecil serta konsumsi daya yang rendah saat berada dalam mode deep sleep.

Dalam panduan ini, kita akan mengenal ESP32-C3 Super Mini, membahas fitur dan pinout-nya, menunjukkan cara memprogramnya menggunakan Arduino IDE, serta menjalankan beberapa contoh program untuk menguji board ini.

Introducing the ESP32-C3 Super Mini

ESP32-C3 Super Mini adalah development board berukuran compact yang menggunakan chip ESP32-C3 dengan Wi-Fi dan Bluetooth bawaan. Berbeda dengan beberapa model ESP32 lainnya, board ini menggunakan single-core processor. Ukurannya sangat kecil dan dioptimalkan untuk konsumsi daya rendah, dengan arus sekitar 43µA saat berada dalam mode deep sleep berdasarkan datasheet.

Board ini memiliki total 16 pin, dengan 11 GPIO yang bisa diprogram dan mendukung berbagai fungsi seperti ADC, PWM, UART, I2C, dan SPI.

Tersedia dua tombol fisik yaitu RST (reset) dan BOOT. Tombol BOOT digunakan untuk masuk ke mode bootloader saat ingin meng-upload kode, sedangkan tombol RST berfungsi untuk mereset board—berguna saat ingin me-restart dan langsung menjalankan program yang baru di-upload.

Board ini juga sudah dilengkapi dengan interface USB-C yang bisa digunakan untuk memberi daya, meng-upload kode, maupun komunikasi serial. Alternatifnya, board dapat diberi daya dari sumber eksternal 5V melalui pin 5V dan GND. Tapi jangan gunakan USB-C dan sumber daya eksternal secara bersamaan kecuali memang ingin bereksperimen dengan asap elektronik.

Seperti kebanyakan board ESP32 lainnya, tersedia juga onboard LED. Bedanya, pada board ini LED terhubung ke GPIO 8 (bukan GPIO 2 seperti di sebagian besar board ESP32 lain).

ESP32-C3 Super Mini Technical Specifications

Berikut ringkasan spesifikasi teknis ESP32-C3 Super Mini. Si kecil ini memang mungil, tapi isinya tidak main-main.

Microcontroller (processor)Espressif ESP32-C3 (32-RISC-V single-core, up to 160 MHz)
Flash Memory4 MB (onboard SPI flash)
SRAM400 KB
ROM384 KB
Wi-Fi802.11 b/g/n, 2.4 GHz, up to 150 Mbps
BluetoothBluetooth 5.0 LE
GPIO Pins11 accessible GPIOs
Analog Inputs (ADC)2 × 12-bit SAR ADCs, up to 6 channels
PWM Channels6 channels
SPI3 × SPI interfaces (SPI0, SPI1 reserved)
I2C1 × I2C interface
UART2 × UART interfaces
I2S1 × I2S interface
USB InterfaceUSB-C, supports USB CDC
Power Supply5V via USB-C or 3.3V–6V via VIN (5V) pin; onboard 3.3V regulator (up to 500 mA)
Operating Voltage3.3V (logic level for GPIOs)
Deep Sleep Mode43uA
Buttons1 × Reset button, 1 × Boot button (GPIO9)
LED1 × onboard LED (on GPIO8, active low)
ProgrammingArduino IDE, ESP-IDF, MicroPython, PlatformIO/pioarduino

ESP32-C3 Super Mini Peripheral Interface

ESP32-C3 Super Mini memiliki total 16 pin, dan 11 di antaranya adalah GPIO yang dapat diprogram untuk mengontrol berbagai peripheral maupun membaca data dari sensor. Jadi meskipun ukurannya kecil, tetap cukup fleksibel untuk banyak kebutuhan project.

Board ini mendukung beberapa interface peripheral berikut: Digital I/O,PWM,ADC,UART,I2C dan SPI

ESP32-C3 Super Mini Pinout

Gambar di atas menunjukkan pinout dari board ESP32-C3 Super Mini. Perlu diingat, pinout bisa sedikit berbeda tergantung produsennya. Jadi jangan langsung percaya satu gambar di internet lalu menyalahkan board ketika tidak jalan.

Pastikan kamu mengecek kembali mapping pin sesuai dengan tulisan (silkscreen) yang tercetak langsung di board milikmu. Itu sumber kebenaran paling dekat sebelum kamu mulai menyalahkan kabel, library, atau takdir.

Tabel berikut menjelaskan pemetaan pin (pin mapping) beserta fungsi masing-masing pin.

PinFunction
3V33.3V output/input (mengeluarkan tegangan 3.3V dari regulator onboard, atau bisa digunakan sebagai input untuk sumber daya eksternal 3.3V)
5V5V input/output (terhubung ke 5V dari USB-C atau ke sumber daya eksternal 5V)
GNDGND pin
GPIO 0General-purpose I/O, ADC1, PWM
GPIO 1General-purpose I/O, ADC1, PWM
GPIO 2General-purpose I/O ADC1, Strapping Pin (Boot Mode) (avoid for general use)
GPIO 3General-purpose I/O, PWM
GPIO 4General-purpose I/O, PWM, default SPI SCK pin
GPIO 5General-purpose I/O, PWM, default SPI MISO pin
GPIO 6General-purpose I/O, PWM, default SPI MOSI pin
GPIO 7General-purpose I/O, PWM, default SPI SS pin
GPIO 8Terhubung ke onboard LED (active low); merupakan strapping pin (sebaiknya dihindari untuk penggunaan umum); default pin I2C SDA.
GPIO 9Terhubung ke tombol BOOT (LOW untuk masuk ke mode bootloader), merupakan strapping pin (sebaiknya dihindari untuk penggunaan umum), dan secara default berfungsi sebagai pin I2C SCL.
GPIO 10General-purpose I/O, PWM
GPIO 20General-purpose I/O, PWM, default UART RX Pin
GPIO 21General-purpose I/O, PWM, default UART TX Pin

Strapping Pins

Beberapa GPIO pada ESP32-C3 Super Mini berfungsi sebagai strapping pins, yaitu pin yang dibaca saat proses boot untuk menentukan mode awal chip. Jadi ini bukan sekadar GPIO biasa yang bisa diperlakukan seenaknya.

  • GPIO 2: digunakan sebagai strapping untuk masuk ke bootloader mode – sebaiknya dihindari untuk penggunaan umum.
  • GPIO 8: terhubung ke onboard blue LED (logika terbalik / active LOW); juga merupakan strapping pin.
  • GPIO 9: terhubung ke tombol BOOT – sebaiknya dihindari untuk penggunaan umum.

Secara teknis, strapping pins tetap bisa digunakan dalam project. Namun, kamu harus memperhitungkan kemungkinan perubahan atau fluktuasi status pin tersebut saat ESP32 melakukan reset atau masuk ke bootloader mode.

Kalau tidak diperhatikan, hasilnya bisa berupa board yang tiba-tiba gagal boot, LED menyala sendiri saat startup, atau program yang berperilaku aneh beberapa milidetik pertama.

Power Pins

Untuk urusan power, board ini menyediakan satu pin 5V, satu pin 3V3, dan satu pin GND. Sederhana, tidak dramatis, tapi kalau salah sambung tetap bisa jadi tragedi kecil.

  • Pin 3V3 menyediakan tegangan 3.3V dari regulator onboard, atau bisa juga menerima suplai 3.3V dari sumber eksternal.
  • Pin 5V bisa digunakan sebagai input untuk memberi daya ke board, atau mengeluarkan 5V yang berasal dari catu daya USB.

Intinya, kedua pin ini bisa berperan sebagai input maupun output tergantung cara kamu memberi daya. Tapi jangan suplai dari USB dan 5V eksternal secara bersamaan. 

PWM

Semua GPIO general-purpose dapat menghasilkan sinyal PWM.

Pin Analog (ADC)

GPIO 0, 1, 2, 3, 4, dan 5 mendukung pembacaan analog:

GPIO 0: ADC1_CH0
GPIO 1: ADC1_CH1
GPIO 2: ADC1_CH2
GPIO 3: ADC1_CH3
GPIO 4: ADC1_CH4
GPIO 5: ADC1_CH5

UART, I2C, dan SPI

Berkat fitur multiplexing pada ESP32, interface UART, SPI, dan I2C dapat dipetakan ke hampir semua GPIO.

Namun, jika menggunakan Arduino IDE dan memilih board ESP32-C3 di menu Boards, maka pin default yang digunakan adalah sebagai berikut:

UART: default ke GPIO 20 (RX) dan GPIO 21 (TX)
SPI: default ke GPIO 6 (MISO), GPIO 7 (MOSI), GPIO 10 (SCK), dan GPIO 5 (SS)
I2C: default ke GPIO 8 (SDA) dan GPIO 9 (SCL)

Board Datasheet

Untuk informasi lebih lengkap mengenai board ini, kamu bisa melihat datasheet-nya melalui link di bawah ini

ESP32-C3 Datasheet

Memprogram ESP32 C3 Super Mini dengan Arduino IDE

Komponen yang dibutuhkan :

  1. ESP32-C3 Super Mini
  2. Kabel USB type C
  3. Software Arduino IDE

Kamu bisa memprogram Esp32-C3 Super Mini menggunakan Arduino IDE seperti kamu memprogram ESP32 biasa. Untuk melakukannya, kamu bisa mengikuti langkah-langkah berikut ini :

  1. Install Arduino IDE di PC/laptop mu 
  2. Install ESP32 Board pada Arduino IDE

Buka board manager, Tools > Board > Board Manager, atau kamu bisa klik icon board manager di sisi kiri seperti yang ditunjukan gambar berikut

Ketik ESP32 dan klik install pada esp32 by Espressif System version 3.x, tunggu proses install selesai

  1. Ubah ESP32-C3 Super Mini ke mode Bootloader

Hubungkan ESP32-C3 Super Mini ke komputer dalam Bootloader Mode (siap untuk upload kode melalui USB). Biasanya ini perlu dilakukan saat pertama kali board disambungkan ke komputer. 

Untuk beberapa kasus, ada yang harus terus melakukannya setiap kali akan upload kode baru, ada juga yang hanya perlu 1 kali

Ikuti langkah berikut:

  • Tekan dan tahan tombol BOOT.
  • Tekan lalu lepaskan tombol RESET (masih sambil menahan BOOT).
  • Setelah itu, lepaskan tombol BOOT.
  1. Upload program ke ESP32-C3 Super Mini

Salin kode berikut ke Arduino IDE kamu. Kode ini hanya akan membuat onboard LED (terhubung ke GPIO 8) berkedip dan menampilkan status GPIO tersebut di Serial Monitor.

// ESP32 C3 Super Mini on-board LED (works with inverted logic)
const int ledPin = 8; 

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH); 
  Serial.println("LED OFF");
  delay(1000);                     
  digitalWrite(ledPin, LOW); 
  Serial.println("LED ON");  
  delay(5000);                     
}

Sekarang pilih board dan COM Port. Klik menu drop-down di bagian atas, lalu pilih ESP32C3 Dev Module. Setelah itu, pilih COM port yang sesuai dengan board kamu.

Lalu, aktifkan opsi berikut di menu Tools > USB CDC on Boot. Lalu klik upload dengan cara klik icon tanda panah

Tekan tombol RST pada board agar mulai menjalankan kode yang baru saja di-upload.

Onboard LED akan berkedip setiap satu detik.

Pada waktu yang bersamaan, bukalah serial monitor dan set baud rate di 115200. Disana akan muncul output kondisi led saat ini seperti pada gambar berikut 

Testing Wifi pada ESP32-C3 Super Mini (Web Server)

Untuk menguji fitur Wi-Fi pada ESP32-C3 Super Mini, kami telah menyiapkan sebuah web server yang dapat mengontrol onboard LED.

  1. Copy kode program berikut ini pada Arduino IDE
    klik disini untuk akses programnya
  2. Masukan jaringan WiFi yang akan kamu gunakan 
const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";
  1. Upload kode ke board
  2. Buka Serial Monitor dengan baud rate 115200.
  3. Tekan tombol RST pada board.
  4. Alamat IP akan ditampilkan di Serial Monitor.
  1. Buka browser di jaringan lokal yang sama, lalu tempelkan alamat IP tersebut. Kamu akan masuk ke web server. Klik tombol yang tersedia untuk mengontrol onboard LED.

ESP32-C3 Super Mini – Deep Sleep dengan Timer Wake-Up

Contoh berikut adalah kode sederhana yang membuat ESP32 masuk ke mode deep sleep selama satu menit.

Setelah setiap satu menit, board akan bangun dan menyalakan LED yang terhubung ke GPIO 8 (berkedip sebentar), lalu kembali masuk ke deep sleep.

Untuk membuat ESP32 masuk ke mode deep sleep dan membangunkannya dengan timer, panggil fungsi esp_sleep_enable_timer_wakeup() lalu masukkan jumlah waktu tidur dalam satuan mikrodetik sebagai argumennya.

esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);

Setelah mengatur wake-up source, kamu bisa memasukkan ESP32 ke mode deep sleep dengan menggunakan fungsi esp_deep_sleep_start().

esp_deep_sleep_start();

Untuk menguji kode ini, pastikan kamu menghubungkan LED ke GPIO 8 atau gunakan onboard LED yang sudah tersedia.

Penting: setelah meng-upload kode deep sleep ke board, untuk memprogram ulang board kamu harus memasukkannya kembali ke bootloader mode dengan urutan tombol berikut:Tahan tombol BOOT.
Tekan dan lepaskan tombol RESET (masih sambil menahan BOOT).
Lalu lepaskan tombol BOOT.

Wrapping Up

Semoga panduan memulai dengan ESP32-C3 Super Mini ini bermanfaat untuk kamu. Setelah terbiasa dengan board dan pinout-nya, kamu bisa menggunakan berbagai proyek ESP32 lainnya dengan board ini—cukup sesuaikan kembali assignment pin jika diperlukan. Karena pada akhirnya, hampir semua masalah di ESP32 itu soal pin yang salah pilih.

Credit: 

Translated from Random Nerd Tutorials 

ESP32-C3 Super Mini Datahseet
Apa itu esp32?
Cara install board esp32
Project IoT memakai esp32
Tutorial esp32

Tinggalkan Balasan