Chapter 1: Pengenalan ESP32
Apa itu ESP32?
ESP32 adalah microcontroller dengan built-in WiFi dan Bluetooth yang dikembangkan oleh Espressif Systems. ESP32 sangat populer untuk project IoT (Internet of Things) karena harganya murah dan fiturnya lengkap.
Spesifikasi ESP32
Processor
- CPU: Dual-core Xtensa LX6 (hingga 240 MHz)
- RAM: 520 KB SRAM
- ROM: 448 KB
Konektivitas
- WiFi: 802.11 b/g/n (2.4 GHz)
- Bluetooth: v4.2 BR/EDR dan BLE
- Range: Hingga 100m (outdoor)
GPIO & Peripheral
- GPIO pins: 34 pins (beberapa input only)
- ADC: 18 channel 12-bit
- DAC: 2 channel 8-bit
- PWM: 16 channel
- Touch sensor: 10 pins
- SPI: 4 sets
- I2C: 2 sets
- UART: 3 sets
Perbandingan ESP32 vs Arduino Uno
| Fitur | ESP32 | Arduino Uno |
|---|---|---|
| Processor | Dual-core 240MHz | Single-core 16MHz |
| RAM | 520KB | 2KB |
| WiFi | ✅ Built-in | ❌ Perlu shield |
| Bluetooth | ✅ Built-in | ❌ Perlu shield |
| Harga | ~$3-5 | ~$20-25 |
| GPIO | 34 pins | 14 pins |
Kenapa Pilih ESP32?
Kelebihan
✅ Murah - Harga lebih terjangkau dengan fitur lebih banyak ✅ WiFi & Bluetooth - Built-in, tidak perlu module tambahan ✅ Powerful - Dual-core processor dengan clock speed tinggi ✅ Banyak GPIO - Cocok untuk project yang butuh banyak sensor ✅ Low Power - Ada deep sleep mode untuk battery powered project ✅ Community - Dokumentasi dan library yang lengkap
Kekurangan
❌ Kompleks - Lebih susah dipelajari untuk pemula dibanding Arduino Uno ❌ Pin Voltage - GPIO hanya 3.3V (Arduino Uno 5V) ❌ Dokumentasi - Beberapa fitur advanced kurang dokumentasi
ESP32 Development Boards
Ada banyak varian ESP32 board:
1. NodeMCU-32S (Recommended untuk pemula)
- Layout pin yang jelas
- Integrated USB to Serial (CH340)
- Harga murah (~$3)
2. ESP32 DevKit V1
- Board original dari Espressif
- 30 pins
- Build quality bagus
3. ESP32-CAM
- Built-in camera module
- MicroSD card slot
- Cocok untuk computer vision project
Pinout ESP32
Berikut adalah pinout umum untuk ESP32 DevKit:
+-----------------+
| ESP32 |
3.3V --> |EN D23 |
GND --> |VP D22 | <-- I2C SCL
D36 --> |VN TX0 |
D39 --> |D34 RX0 |
D35 --> |D35 D21 | <-- I2C SDA
D32 --> |D32 GND |
D33 --> |D33 D19 | <-- MISO
D25 --> |D25 D18 | <-- SCK
D26 --> |D26 D5 | <-- CS
D27 --> |D27 D17 |
D14 --> |D14 D16 |
D12 --> |D12 D4 |
GND --> |GND D0 |
D13 --> |D13 D2 | <-- Built-in LED
D9 --> |SD2 D15 |
D10 --> |SD3 GND |
CMD --> |CMD 5V | <-- Power input
5V --> |5V GND |
+-----------------+
Important Notes
⚠️ Voltage Warning: GPIO ESP32 hanya support 3.3V! Jangan input 5V langsung atau bisa rusak.
⚠️ Boot Mode Pins: Pin GPIO0, GPIO2, GPIO12, GPIO15 digunakan untuk boot mode. Hindari menggunakannya jika tidak yakin.
⚠️ Input Only Pins: GPIO34, GPIO35, GPIO36, GPIO39 hanya bisa digunakan sebagai input, tidak ada internal pull-up/pull-down.
Kesimpulan
ESP32 adalah pilihan tepat untuk belajar embedded systems dan IoT karena:
- Murah dan powerful
- Built-in WiFi & Bluetooth
- Banyak library dan community support
- Cocok untuk project dari yang simple sampai kompleks
Di chapter selanjutnya, kita akan setup development environment dan install tools yang diperlukan.