Modul 1 – Memulai dengan ESP32 (1/4)

Mengenal ESP32

Mikrokontroler Serbaguna untuk Proyek IoT dan Otomasi

ESP32 adalah papan mikrokontroler murah dan hemat listrik buatan Espressif. Mikrokontroler ini sudah dilengkapi dengan koneksi WiFi dan Bluetooth, serta memiliki dua inti prosesor yang membuatnya cepat. Jika kamu pernah memakai ESP8266, maka ESP32 adalah versi lanjutannya dengan fitur yang lebih lengkap dan lebih canggih.

🔍

Artikel ini akan membahas:

  • Apa itu ESP32 dan mengapa sangat populer
  • Fitur dan spesifikasi utama ESP32
  • Perbedaan antara ESP32 dan ESP8266
  • Pengenalan development board ESP32
  • Cara memilih board ESP32 yang tepat
  • Panduan pinout ESP32
  • Cara memprogram ESP32

1
Apa itu ESP32?

ESP32 adalah seri mikrokontroler yang dikembangkan oleh Espressif Systems. Dibangun di atas kesuksesan ESP8266, ESP32 menawarkan kombinasi WiFi dan Bluetooth dalam satu chip, menjadikannya pilihan ideal untuk berbagai aplikasi IoT (Internet of Things).

ESP32 hadir dengan prosesor dual-core yang powerfull, beragam peripheral I/O, dan fitur hemat daya, semua dalam paket yang kompak dan terjangkau.

ESP32 chip yang dikembangkan oleh Espressif Systems (sumber)

Mengapa ESP32 Sangat Populer?

ESP32 telah menjadi sangat populer di kalangan maker, penghobi elektronik, dan profesional IoT karena beberapa alasan utama:

💰
Biaya Rendah

ESP32 tersedia mulai dari $6, menjadikannya sangat terjangkau dan mudah diakses oleh masyarakat umum.


Daya Rendah

ESP32 mengonsumsi daya sangat sedikit dibandingkan mikrokontroler lain, dan mendukung mode deep sleep untuk menghemat daya.

📡
Kemampuan WiFi

ESP32 dapat terhubung ke jaringan WiFi (mode station) atau menciptakan jaringan sendiri (mode access point), esensial untuk proyek IoT.

🔷
Bluetooth

ESP32 mendukung Bluetooth klasik dan Bluetooth Low Energy (BLE), membuka banyak kemungkinan aplikasi IoT.

⚙️
Dual-core

Kebanyakan ESP32 memiliki dua prosesor Xtensa 32-bit LX6: core 0 dan core 1, memungkinkan pemrosesan parallel.

🔌
GPIO yang Kaya

ESP32 mendukung berbagai peripheral I/O seperti touch capacitive, ADCs, DACs, UART, SPI, I2C, PWM, dan banyak lagi.

2
Spesifikasi ESP32

Mari kita lihat spesifikasi teknis lengkap dari ESP32:

Spesifikasi Teknis ESP32

Fitur Spesifikasi
Konektivitas Wireless WiFi: 150.0 Mbps data rate dengan HT40
Bluetooth: BLE (Bluetooth Low Energy) dan Bluetooth Classic
Prosesor Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor, berjalan pada 160 atau 240 MHz
Memori ROM: 448 KB (untuk booting dan fungsi inti)
SRAM: 520 KB (untuk data dan instruksi)
RTC fast SRAM: 8 KB
RTC slow SRAM: 8KB
eFuse: 1 Kbit
Flash terintegrasi: 0 MiB, 2 MiB, atau 4 MiB (tergantung chip)
Mode Daya Rendah Mendukung konversi ADC saat deep sleep
Peripheral Input/Output Touch capacitive
ADCs (Analog-to-Digital Converter)
DACs (Digital-to-Analog Converter)
I²C (Inter-Integrated Circuit)
UART (Universal Asynchronous Receiver/Transmitter)
SPI (Serial Peripheral Interface)
I²S (Integrated Interchip Sound)
RMII (Reduced Media-Independent Interface)
PWM (Pulse-Width Modulation)
Security: hardware accelerators for AES and SSL/TLS

Sumber: http://esp32.net/. Untuk detail lebih lanjut, silakan cek datasheet resmi.

3
Perbedaan Utama Antara ESP32 dan ESP8266

Sebelumnya, kami menyebutkan bahwa ESP32 adalah penerus ESP8266. Apa perbedaan utama antara kedua board ini?

Perbandingan fisik antara ESP32 (kiri) dan ESP8266 (kanan) (sumber)

ESP32 menambahkan fitur-fitur berikut dibanding ESP8266:

  • Core CPU tambahan (dual-core vs single-core)
  • WiFi yang lebih cepat
  • Lebih banyak GPIO
  • Dukungan Bluetooth 4.2 dan Bluetooth Low Energy
  • Pin sensitif sentuh yang dapat digunakan untuk membangunkan ESP32 dari deep sleep
  • Sensor efek Hall bawaan

Perbandingan Singkat:

  • ESP32 lebih cepat daripada ESP8266
  • ESP32 dilengkapi dengan lebih banyak GPIO dengan berbagai fungsi
  • ESP32 mendukung pengukuran analog pada 18 channel vs hanya satu pin ADC 10-bit pada ESP8266
  • ESP32 mendukung Bluetooth sementara ESP8266 tidak
  • ESP32 adalah dual-core (sebagian besar model), dan ESP8266 adalah single core
  • ESP32 sedikit lebih mahal dari ESP8266 (berkisar $6-$12 vs $4-$6)

Untuk penjelasan lebih detail tentang perbedaan antara ESP32 dan ESP8266, Anda dapat membaca artikel: ESP32 vs ESP8266 – Pros and Cons

4
Development Board ESP32

“ESP32” merujuk pada chip ESP32 murni. Namun, istilah “ESP32” juga sering digunakan untuk merujuk pada development board ESP32. Menggunakan chip ESP32 secara langsung tidaklah mudah atau praktis, terutama saat belajar, menguji, dan membuat prototype. Sebagian besar waktu, Anda akan ingin menggunakan development board ESP32.

Berbagai jenis development board ESP32 (sumber)

Development board ini dilengkapi dengan semua rangkaian yang diperlukan untuk mentenagai dan memprogram chip, menghubungkannya ke komputer Anda, pin untuk menghubungkan peripheral, LED daya dan kontrol bawaan, antena untuk sinyal Wi-Fi, dan fitur berguna lainnya. Yang lain bahkan dilengkapi dengan hardware tambahan seperti sensor atau modul tertentu, display, atau kamera pada kasus ESP32-CAM.

💡

Cara Memilih Development Board ESP32

Saat mencari board ESP32, ada beberapa aspek yang perlu Anda pertimbangkan:

  1. Antarmuka USB-to-UART dan rangkaian regulator tegangan – Penting untuk dengan mudah menghubungkan ESP32 ke komputer dan memberikan daya
  2. Tombol BOOT dan RESET/EN – Untuk masuk ke mode flashing atau me-reset board
  3. Konfigurasi pin dan jumlah pin – Pastikan Anda memiliki akses ke pinout board
  4. Konektor antena – Beberapa board dilengkapi dengan konektor antena untuk antena eksternal opsional
  5. Konektor baterai – Jika ingin mentenagai ESP32 dengan baterai
  6. Fitur hardware tambahan – Beberapa board datang dengan display OLED, modul LoRa, dll.

5
Board ESP32 Terbaik untuk Pemula

Untuk pemula, kami merekomendasikan board ESP32 dengan beragam GPIO yang tersedia, dan tanpa fitur hardware tambahan. Penting juga board tersebut dilengkapi dengan regulator tegangan dan input USB untuk daya dan upload kode.

ESP32 DEVKIT DOIT Board

ESP32 DevKitC v4

Di sebagian besar proyek ESP32 kami, kami menggunakan board ESP32 DevKitC v4, dan itulah yang kami rekomendasikan untuk pemula. Ada berbagai versi board ini dengan jumlah pin yang berbeda-beda (30, 36, dan 38) — semua board bekerja dengan cara yang sama.

Anda dapat memeriksa tautan berikut untuk menemukan board ESP32 DevKitC v4 di berbagai toko:

ESP32 DEVKIT DOIT Board

Board serupa lainnya dengan fitur yang disebutkan sebelumnya juga bisa menjadi pilihan yang baik seperti Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S, Wemos LoLin32, dll.

ESP32 DevKitC v4

Sepanjang tutorial ini, kami akan menggunakan board ESP32 DevKitC v4 sebagai referensi. Jika Anda memiliki board yang berbeda, jangan khawatir. Informasi di tutorial ini kompatibel dengan sebagian besar development board ESP32.

ESP32 DEVKIT V1 DOIT Board

ESP32 DevKitC v4 board, versi dengan 38 pin GPIO

Spesifikasi – ESP32 DevKitC v4

Fitur Spesifikasi
Jumlah core 2 (dual-core Xtensa® 32-bit LX6)
Wi-Fi 2.4 GHz IEEE 802.11 b/g/n, kecepatan hingga 150 Mbit/s
Bluetooth Bluetooth v4.2 (BLE + Classic Bluetooth)
Arsitektur 32 bit
Frekuensi clock Hingga 240 MHz
RAM 512 KB
Pin 30, 36, atau 38 tergantung pada model board
Peripheral Capacitive touch, ADC, DAC, I2C, UART, CAN 2.0, SPI, I2S, RMII, PWM

6
Panduan Pinout GPIO ESP32

Chip ESP32 dilengkapi dengan 48 pin dengan berbagai fungsi. Tidak semua pin terekspos di semua development board ESP32, dan beberapa pin sebaiknya tidak digunakan. Board ESP32 DevKitC v4 biasanya dilengkapi dengan 38 GPIO yang terekspos yang dapat Anda gunakan untuk menghubungkan peripheral. Namun, Anda akan menemukan bahwa model yang berbeda akan bervariasi dalam jumlah GPIO yang terekspos.

Pin Daya

Biasanya, semua board dilengkapi dengan pin daya: 3V3, GND, dan VIN. Anda dapat menggunakan pin ini untuk mentenagai board (jika Anda tidak menyediakan daya melalui port USB), atau untuk mendapatkan daya untuk peripheral lainnya (jika Anda mentenagai board menggunakan port USB).

Pin Input Output Tujuan Umum (GPIO)

Pin GPIO di ESP32 diberi nomor, dan saat menulis program, kita menggunakan nomor itu untuk mengatur fungsi pin tersebut—seperti menyalakan LED atau membaca sensor.

Dengan ESP32, Anda dapat memutuskan pin mana yang menjadi UART, I2C, atau SPI – Anda hanya perlu mengaturnya pada kode (Anda akan mempelajari lebih lanjut tentang ini nanti). Ini dimungkinkan karena fitur multiplexing chip ESP32 yang memungkinkan untuk menetapkan beberapa fungsi ke pin yang sama.

Pin Layout ESP32 DevKitC v4 (sumber)

Catatan: Untuk mempelajari lebih lanjut tentang GPIO ESP32, kami merekomendasikan untuk melihat bagian Panduan untuk GPIO ESP32 di akhir eBook. Anda dapat memeriksa pin yang sesuai untuk proyek Anda dan pin mana yang harus Anda hindari menggunakan.

Kami merekomendasikan mencetak pinout ini untuk referensi di masa mendatang. Anda dapat mengunduh pinout dalam file .pdf atau .png:

7
Cara Memprogram ESP32

ESP32 dapat diprogram menggunakan berbagai firmware dan bahasa pemrograman. Anda dapat menggunakan:

Arduino

Arduino C/C++

Menggunakan Arduino core untuk ESP32

Espressif IDF

Espressif IDF

IoT Development Framework

MicroPython

MicroPython

Python untuk mikrokontroler

JavaScript

JavaScript

Dengan framework seperti Espruino

LUA

LUA

Dengan framework NodeMCU

Catatan: Tutorial ini berfokus secara eksklusif pada pemrograman ESP32 dengan C/C++ “bahasa pemrograman Arduino”.

Jika Anda ingin mempelajari cara memprogram board ESP32 menggunakan firmware MicroPython, kami memiliki eBook khusus untuk subjek tersebut: MicroPython Programming with ESP32 and ESP8266 eBook

Selanjutnya

Pergi ke bagian berikutnya untuk mempelajari cara menyiapkan ESP32 di Arduino IDE.

Lanjut ke Unit 2: Menginstal ESP32 di Arduino IDE →

👥

Komunitas & Dukungan

Jika Anda memiliki pertanyaan atau mengalami kesulitan dengan materi ini, silakan tinggalkan komentar di bawah dan bila perlu jangan ragu untuk bertanya pada grup telegram https://t.me/kodingindonesia. Selamat belajar dan bereksperimen dengan ESP32!

 

Anton Prafanto

Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda

all author posts