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
| Istilah | Definisi Sederhana | Analogi |
| 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 Pins | Pin 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 Display WiFi & 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 (D0s/dD8) BERBEDA TOTAL dengan Nomor GPIO di Kode C++!
| Label Papan (NodeMCU) | Nomor GPIO C++ | Mode Bawaan & Penggunaan Terbaik | Catatan Khusus Booting |
| D0 | GPIO 16 | Deep Sleep Wakeup Pin | Terhubung ke RST untuk Bangun Tidur. |
| D1 | GPIO 5 | ๐ข Sangat Aman (I2C SCL) | Pilihan terbaik untuk I2C Clock / Sensor. |
| D2 | GPIO 4 | ๐ข Sangat Aman (I2C SDA) | Pilihan terbaik untuk I2C Data / Output. |
| D3 | GPIO 0 | ๐ Strapping Pin | Harus HIGH saat booting (Terhubung Tombol Flash). |
| D4 | GPIO 2 | ๐ LED Onboard | Harus HIGH saat booting. Terhubung LED internal. |
| D5 | GPIO 14 | ๐ข Sangat Aman (SPI SCLK) | Sangat baik untuk Digital I/O & SPI. |
| D6 | GPIO 12 | ๐ข Sangat Aman (SPI MISO) | Sangat baik untuk Digital I/O & SPI. |
| D7 | GPIO 13 | ๐ข Sangat Aman (SPI MOSI) | Sangat baik untuk Digital I/O & SPI. |
| D8 | GPIO 15 | ๐ Strapping Pin | WAJIB LOW saat booting. Pakai Pull-down resistor. |
| A0 | ADC 0 | ๐ก Input Analog 10-bit | Menerima tegangan maks 1.0 Volt (0 - 1023). |
๐ TABEL PANDUAN KEAMANAN PIN GPIO ESP32
| Pin GPIO | Boleh Dipakai? | Catatan Khusus & Penggunaan Terbaik |
| GPIO 16, 17, 18, 19, 21, 22, 23 | ๐ข Sangat Aman | Terbaik untuk Digital Output, Relay, SPI, I2C. |
| GPIO 32, 33 | ๐ข Sangat Aman | Sangat baik untuk ADC Analog dan Touch Pin. |
| GPIO 34, 35, 36 (VP), 39 (VN) | ๐ก Khusus Input | HANYA BISA INPUT! Tidak bisa Output/Relay. Sangat baik untuk Sensor. |
| GPIO 0, 2, 4, 12, 15 | ๐ Strapping Pins | Menentukan 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
0atau4095terus 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)?
Apakah Anda siap lanjut ke Modul 03: Embedded Systems & Real-Time Operating Concepts (FreeRTOS)?