Kembali ke Katalog Modul
MODUL 02 DEEP DIVE

Microcontroller & ESP32 Architecture

MODUL 02 (SPESIALIS IOT): MICROCONTROLLER & ESP32 ARCHITECTURE


๐Ÿ“Œ META MODUL & PRASYARAT

  • Bidang Spesialisasi: Embedded Systems & Hardware Architecture.
  • Target Pembaca: Pemula yang sudah menyelesaikan Modul 01 (Elektronika Dasar).
  • Learning Outcome:
  • Memahami perbedaan Microprocessor (CPU biasa) dan Microcontroller (SoC All-in-One).
  • Menguasai arsitektur chip ESP32 (Dual-Core Tensilica Xtensa, WiFi, Bluetooth, Memory).
  • Memahami pemetaan Pinout GPIO ESP32 (Input, Output, ADC, DAC, PWM, Touch Pin).
  • Mampu memilih pin GPIO aman pada ESP32 untuk menghindari boot failure.
  • Estimasi Waktu Belajar: 120 Menit.
  • Tingkat Kesulitan: ๐ŸŸข Pemula - Menengah (Level 2 / 40).
  • Prasyarat: Modul 01 (Elektronika Dasar & Sensor IoT).

๐Ÿ“š GLOSARIUM & DAFTAR ISTILAH BARU

IstilahDefinisi SederhanaAnalogi
Microcontroller (MCU)Chip tunggal yang berisi CPU, RAM, Storage (Flash), dan Pin I/O dalam satu kemasan fisik kecil.Rumah mini serba ada yang sudah lengkap dengan kamar tidur, dapur, dan kamar mandi.
SoC (System on Chip)Chip sirkuit terpadu yang menggabungkan seluruh komponen elektronik sistem dalam satu substrat.Smartphone pintar serba ringkas.
GPIO (General Purpose I/O)Pin serbaguna yang bisa diatur lewat koding sebagai Input atau Output sinyal listrik.Sakelar serbaguna di dinding yang fungsinya bisa diubah-ubah.
ADC (Analog-to-Digital Converter)Sirkuit internal MCU yang merubah sinyal tegangan kontinu (0-3.3V) menjadi nilai biner (0-4095).Penerjemah bahasa representsional ke angka pasti.
PWM (Pulse Width Modulation)Teknik simulasi sinyal analog dari pin digital dengan menyalakan-mematikan sinyal secara sangat cepat.Menghidup-mati keran air dengan cepat untuk menghasilkan semburan sedang.
Strapping PinsPin khusus pada ESP32 yang menentukan mode boot saat perangkat dinyalakan (power on).Sakelar rem darurat kapal.

2. Microcontroller & ESP32 Architecture

๐ŸŽฏ Tujuan Pembelajaran

Setelah menyelesaikan modul ini, Anda akan dapat:
  • Membaca Pinout Diagram ESP32 dengan percaya diri.
  • Memilih pin yang tepat untuk sensor Analog, sensor Digital, dan Aktuator.
  • Menghindari pin berbahaya (Strapping Pins) yang bisa bikin ESP32 gagal booting.
  • Memahami fungsi fitur khusus ESP32: Capacitive Touch Pin, Hall Sensor, dan Internal RTC.

๐Ÿ’ก Kenapa Materi Ini Penting?

Banyak pemula merakit sirkuit ESP32 namun tidak menyala (stuck pada bootloop) atau sensor membaca angka kacau. Penyebab utamanya adalah salah memilih pin GPIO!

ESP32 memiliki 30 hingga 38 pin fisik, tetapi tidak semua pin berprilaku sama. Beberapa pin hanya bisa dijadikan Input, beberapa pin memicu mode pengisian firmware saat boot, dan beberapa pin terhubung dengan memori Flash internal. Memahami arsitektur pin ESP32 akan menghindarkan Anda dari frustrasi hardware debugging.

๐Ÿง  Penjelasan Konsep Utama (Secara Bertahap)

1. Perbedaan Microprocessor vs Microcontroller

+-----------------------------------+     +-----------------------------------+
MICROPROCESSOR (PC/Laptop)MICROCONTROLLER (ESP32)
[ CPU Chip ]+-----------------------------+
โ”‚ (Butuh chip eksternal)CPU Dual-Core (240 MHz)
โ”œโ”€โ”€โ–บ RAM Eksternal (8GB)RAM Internal (520 KB SRAM)
โ”œโ”€โ”€โ–บ SSD/Harddisk (512GB)Flash Memory (4MB - 16MB)
โ””โ”€โ”€โ–บ Chip GPU DisplayWiFi & Bluetooth 4.2 BLE
Perangkat Perifer (ADC/PWM)
Keunggulan: Perhitungan Berat+-----------------------------+
Kelemahan : Boros Listrik (65W+)Keunggulan: Hemat Energi (0.1W)
+-----------------------------------+ +-----------------------------------+

2. Anatomi Spesifikasi Utama ESP32 NodeMCU

ESP32 diproduksi oleh Espressif Systems dan menjadi standar emas papan pengembang (developer board) IoT saat ini:
  • Processor: Tensilica Xtensa Dual-Core 32-bit LX6 (Kecepatan clock 160MHz - 240MHz).
  • Wireless: Wi-Fi 802.11 b/g/n (sampai 150Mbps) + Bluetooth v4.2 BR/EDR & BLE (Bluetooth Low Energy).
  • Memori: 520 KB SRAM internal + 4MB Flash Memory eksternal (tempat simpan program).
  • ADC (Analog): 12-bit ADC (Rentang nilai 0 s/d 4095).
  • DAC (Digital to Analog): 2x 8-bit DAC (Mengeluarkan tegangan analog murni).
  • Touch Sensors: 10x sensor sentuh kapasitif internal (bisa mendeteksi sentuhan jari tanpa tombol mekanis!).

๐ŸŽจ DIAGRAM PINOUT ESP32 & ATURAN PENGGUNAAN PIN

=======================================================================
PANDUAN PEMILIHAN PIN ESP32 DEVKIT V1
=======================================================================

[ USB PORT ]
(3.3V) [ ] [ ] (GND)
(EN ) [ ] [ ] (GPIO23) โ”€โ”€โ–บ SPI MOSI / Digital Output
(VP36) [ ] [ ] (GPIO22) โ”€โ”€โ–บ I2C SCL (Layar OLED/LCD)
(VN39) [ ] [ ] (TX0 ) โ”€โ”€โ–บ UART TX (Jangan dipakai)
(GP34) [ ] [ ] (RX0 ) โ”€โ”€โ–บ UART RX (Jangan dipakai)
(GP35) [ ] [ ] (GPIO21) โ”€โ”€โ–บ I2C SDA (Layar OLED/LCD)
(GP32) [ ] [ ] (GND )
(GP33) [ ] [ ] (GPIO19) โ”€โ”€โ–บ SPI MISO
(GP25) [ ] [ ] (GPIO18) โ”€โ”€โ–บ SPI SCK
(GP26) [ ] [ ] (GPIO5 ) โ”€โ”€โ–บ CS / Strapping (Hati-hati!)
(GP27) [ ] [ ] (GPIO17) โ”€โ”€โ–บ UART2 TX
(GP14) [ ] [ ] (GPIO16) โ”€โ”€โ–บ UART2 RX
(GP12) [ ] [ ] (GPIO4 ) โ”€โ”€โ–บ ADC2 / Touch 0
(GND ) [ ] [ ] (GPIO2 ) โ”€โ”€โ–บ LED Onboard (Strapping Pin)
(5V ) [ ] [ ] (GPIO15) โ”€โ”€โ–บ Strapping Pin

๐ŸŽจ DIAGRAM PINOUT ESP8266 NODEMCU V2/V3 (ALTERNATIVE BOARD)

=======================================================================
PANDUAN PEMILIHAN PIN ESP8266 NODEMCU (AMICA / LOLIN)
=======================================================================

[ MICRO-USB PORT ]
(A0 / ADC0) [ ] [ ] (RSV / Reserved)
(RSV ) [ ] [ ] (RSV / Reserved)
(RSV ) [ ] [ ] (SD3 / GPIO 10) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(SD3 ) [ ] [ ] (SD2 / GPIO 9 ) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(SD2 ) [ ] [ ] (SD1 / GPIO 8 ) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(SD1 ) [ ] [ ] (CMD / GPIO 11) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(CMD ) [ ] [ ] (SD0 / GPIO 7 ) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(SD0 ) [ ] [ ] (CLK / GPIO 6 ) โ”€โ”€โ–บ Flash Memory (DILARANG!)
(CLK ) [ ] [ ] (GND)
(GND ) [ ] [ ] (3.3V)
(3.3V ) [ ] [ ] (EN / CH_PD) โ”€โ”€โ–บ Pull High 3.3V untuk Nyala
(EN ) [ ] [ ] (RST / Reset) โ”€โ”€โ–บ Tombol Reset Manual
(RST ) [ ] [ ] (GND)
(GND ) [ ] [ ] (VIN / 5V In) โ”€โ”€โ–บ Catu Daya Masuk 5V USB
(VIN ) [ ] [ ] (D8 / GPIO 15) โ”€โ”€โ–บ Pull Down LOW saat Boot
(D0 / GP16) [ ] [ ] (D7 / GPIO 13) โ”€โ”€โ–บ SPI MOSI
(D1 / GP5 ) [ ] [ ] (D6 / GPIO 12) โ”€โ”€โ–บ SPI MISO
(D2 / GP4 ) [ ] [ ] (D5 / GPIO 14) โ”€โ”€โ–บ SPI SCLK
(D3 / GP0 ) [ ] [ ] (D4 / GPIO 2 ) โ”€โ”€โ–บ LED Onboard / Boot Mode
(D4 / GP2 ) [ ] [ ] (D3 / GPIO 0 ) โ”€โ”€โ–บ Flash Mode Button / Boot
(3.3V ) [ ] [ ] (D2 / GPIO 4 ) โ”€โ”€โ–บ I2C SDA (Layar OLED/LCD)
(GND ) [ ] [ ] (D1 / GPIO 5 ) โ”€โ”€โ–บ I2C SCL (Layar OLED/LCD)

๐Ÿ“‹ TABEL PETA PIN (PIN MAPPING) ESP8266 NODEMCU

โš ๏ธ PENTING UNTUK PEMULA: Pada ESP8266, Label Sablon pada Papan (D0 s/d D8) BERBEDA TOTAL dengan Nomor GPIO di Kode C++!
Label Papan (NodeMCU)Nomor GPIO C++Mode Bawaan & Penggunaan TerbaikCatatan Khusus Booting
D0GPIO 16Deep Sleep Wakeup PinTerhubung ke RST untuk Bangun Tidur.
D1GPIO 5๐ŸŸข Sangat Aman (I2C SCL)Pilihan terbaik untuk I2C Clock / Sensor.
D2GPIO 4๐ŸŸข Sangat Aman (I2C SDA)Pilihan terbaik untuk I2C Data / Output.
D3GPIO 0๐ŸŸ  Strapping PinHarus HIGH saat booting (Terhubung Tombol Flash).
D4GPIO 2๐ŸŸ  LED OnboardHarus HIGH saat booting. Terhubung LED internal.
D5GPIO 14๐ŸŸข Sangat Aman (SPI SCLK)Sangat baik untuk Digital I/O & SPI.
D6GPIO 12๐ŸŸข Sangat Aman (SPI MISO)Sangat baik untuk Digital I/O & SPI.
D7GPIO 13๐ŸŸข Sangat Aman (SPI MOSI)Sangat baik untuk Digital I/O & SPI.
D8GPIO 15๐ŸŸ  Strapping PinWAJIB LOW saat booting. Pakai Pull-down resistor.
A0ADC 0๐ŸŸก Input Analog 10-bitMenerima tegangan maks 1.0 Volt (0 - 1023).

๐Ÿ“‹ TABEL PANDUAN KEAMANAN PIN GPIO ESP32

Pin GPIOBoleh Dipakai?Catatan Khusus & Penggunaan Terbaik
GPIO 16, 17, 18, 19, 21, 22, 23๐ŸŸข Sangat AmanTerbaik untuk Digital Output, Relay, SPI, I2C.
GPIO 32, 33๐ŸŸข Sangat AmanSangat baik untuk ADC Analog dan Touch Pin.
GPIO 34, 35, 36 (VP), 39 (VN)๐ŸŸก Khusus InputHANYA BISA INPUT! Tidak bisa Output/Relay. Sangat baik untuk Sensor.
GPIO 0, 2, 4, 12, 15๐ŸŸ  Strapping PinsMenentukan mode boot. Jangan ditarik LOW/HIGH saat startup.
GPIO 6, 7, 8, 9, 10, 11๐Ÿ”ด DILARANG!Terhubung ke Flash Memory internal. Jika dipakai ESP32 crash total!

โšก CHEAT SHEET PINOUT ESP32

Pin I2C bawaan    : SDA = GPIO 21, SCL = GPIO 22
Pin SPI bawaan : MOSI = 23, MISO = 19, SCK = 18, CS = 5
Pin ADC1 Terbaik : GPIO 32, 33, 34, 35, 36, 39 (Aman dipakai saat WiFi AKTIF)
Pin ADC2 Caution : GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27 (TIDAK BISA dipake ADC saat WiFi AKTIF!)

Rentang Resolusi ADC ESP32:
0 Volt = 0
3.3 Volt = 4095 (12-bit resolution)

โš ๏ธ KESALAHAN UMUM PEMULA & TROUBLESHOOTING

Kesalahan Utama:

  • Memakai GPIO 6 - 11: ESP32 akan Rebooting Loop dan menampilkan tulisan SPI_FAST_FLASH_BOOT.
  • Menggunakan ADC2 saat WiFi Menyala: Membaca sensor analog di GPIO 4 / GPIO 14 saat terhubung ke WiFi akan menghasilkan angka 0 atau 4095 terus menerus. Gunakan selalu pin ADC1 (GPIO 32 - 39).



Latihan & Quiz Evaluasi Modul

Progres Quiz: 0 / 2 Soal
SOAL #1
Berapakah rentang nilai hasil pembacaan pin ADC 12-bit pada ESP32?
SOAL #2
Manakah pin GPIO ESP32 yang **HANYA BISA dijadikan Input** saja?

Kunci Jawaban & Pembahasan

Kunci Jawaban: 1. c. 0 s/d 4095, 2. c. GPIO 34.


Apakah Anda siap lanjut ke Modul 03: Embedded Systems & Real-Time Operating Concepts (FreeRTOS)?