Pengenalan ESP32

Apa itu ESP32? Memahami Lebih Lanjut
Jika Anda sudah familiar dengan Arduino, Anda akan merasa cukup familiar dengan ESP32 karena keduanya dapat diprogram menggunakan bahasa dan lingkungan pengembangan yang serupa (Arduino IDE). Perbedaan utama terletak pada kemampuan nirkabel ESP32. Sementara Arduino pada dasarnya adalah mikrokontroler sederhana untuk proyek elektronik dasar, ESP32 hadir dengan fitur Wi-Fi dan Bluetooth terintegrasi. Ini membuka pintu untuk proyek-proyek IoT (Internet of Things) yang lebih kompleks dan terhubung ke internet, seperti smart home, sensor nirkabel, dan perangkat yang dapat dikontrol dari jarak jauh.

Bayangkan ESP32 sebagai "Arduino yang sudah dilengkapi Wi-Fi dan Bluetooth". Anda masih akan berurusan dengan pin digital dan analog, tetapi sekarang Anda dapat dengan mudah menghubungkan perangkat Anda ke jaringan Wi-Fi rumah atau berkomunikasi dengan perangkat lain melalui Bluetooth. Ini berarti Anda dapat membuat proyek yang mengirim data ke cloud, mengontrol perangkat dari aplikasi smartphone, atau bahkan membuat server web kecil.
Untuk memulai dengan ESP32, Anda tetap dapat menggunakan Arduino IDE dengan menambahkan dukungan untuk board ESP32. Banyak konsep dasar Arduino seperti fungsi setup() dan loop(), serta penggunaan library, juga berlaku untuk ESP32. Jadi, transisi dari Arduino ke ESP32 seharusnya cukup mulus dan akan memungkinkan Anda untuk mengembangkan proyek yang lebih canggih dan terhubung
Apa Sih ESP32 ?
ESP32 adalah serangkaian chip mikrokontroler yang dikembangkan oleh Espressif.
.
Mengapa begitu populer? Terutama karena fitur-fitur berikut ini:
-
Murah: Anda bisa mendapatkan ESP32 mulai dari Rp. 45.000, sehingga mudah diakses oleh masyarakat umum.
-
Daya rendah: ESP32 mengkonsumsi daya yang sangat kecil dibandingkan dengan mikrokontroler lainnya, dan mendukung status mode daya rendah deep sleep untuk menghemat daya.
-
Wi-Fi: ESP32 dapat dengan mudah terhubung ke jaringan Wi-Fi untuk terhubung ke internet (station mode), atau membuat jaringan nirkabel Wi-Fi sendiri (access point mode) sehingga perangkat lain dapat terhubung ke sana-ini sangat penting untuk proyek IoT dan Otomasi Rumah-Anda dapat memiliki beberapa perangkat yang berkomunikasi satu sama lain menggunakan kemampuan Wi-Fi.
-
Bluetooth: ESP32 mendukung Bluetooth klasik dan Bluetooth Low Energy (BLE) - yang berguna untuk berbagai macam aplikasi IoT.
-
Dual-core: sebagian besar ESP32 adalah dual-core - yang dilengkapi dengan 2 mikroprosesor Xtensa 32-bit LX6: inti 0 dan inti 1.
-
Kaya akan Antarmuka input / output periferal ESP32 mendukung berbagai macam input (membaca data dari dunia luar) dan output (untuk mengirim perintah / sinyal ke dunia luar) periferal seperti capacitive touch, ADC, DAC, UART, SPI, SPI, I2C, PWM, dan banyak lagi.
-
Kompatibel dengan “bahasa pemrograman” Arduino: bagi Anda yang sudah terbiasa dengan pemrograman papan Arduino, Anda akan senang mengetahui bahwa Anda dapat memprogram ESP32 dengan gaya Arduino.
-
Kompatibel dengan MicroPython: Anda dapat memprogram ESP32 dengan firmware MicroPython, yang merupakan implementasi ulang Python 3 yang ditargetkan untuk mikrokontroler dan sistem tertanam.
Spesifikasi ESP32
Jika ingin mengetahui lebih banyak hal yang lebih teknis dan spesifikasi detail ESP32 pada link berikut ini esp32.net atau download dataset berikut ini dataset :
![]() | |
|---|---|
| Module Esp32 | Esp32 Devkit |
-
Konektivitas nirkabel WiFi: Kecepatan data 150,0 Mbps dengan HT40
- Bluetooth: BLE (Bluetooth Low Energi) dan Bluetooth Classic
- Prosesor: Mikroprosesor Tensilica Xtensa Dual-Core 32-bit LX6, berjalan pada 160 atau 240 MHz
-
Memory
- ROM: 448 KB (untuk booting dan fungsi inti)
- SRAM: 520 KB (untuk data dan instruksi)
- SRAM cepat RTC: 8 KB (untuk penyimpanan data dan CPU utama selama boot RTC dari mode tidur nyenyak)
- RTC slow SRAM: 8KB (untuk akses co-prosesor selama mode deep-sleep)
- eFuse: 1 Kbit (256 bit di antaranya digunakan untuk sistem (alamat MAC dan konfigurasi chip) dan 768 bit sisanya dicadangkan untuk aplikasi pelanggan, termasuk Enkripsi Flash dan Chip-ID)
- Flash tertanam: flash yang terhubung secara internal melalui IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 dan SD_DATA_1 pada ESP32-D2WD dan ESP32-PICO-D4.
- 0 MiB (chip ESP32-D0WDQ6, ESP32-D0WD, dan ESP32-S0WD)
- 2 MiB (chip ESP32-D2WD)
- 4 MiB (modul SiP ESP32-PICO-D4)
-
Low Power Daya Rendh memastikan bahwa masih dapat menggunakan konversi ADC, misalnya, deep sleep mode.
-
Input/Output Periferal:
- Antarmuka periferal dengan DMA yang menyertakan sentuhan kapasitif
- ADC (Konverter Analog-ke-Digital)
- DAC (Konverter Digital-ke-Analog)
- I²C (Sirkuit Inter-Integrasi)
- UART (Penerima/Pemancar Asinkron Universal)
- SPI (Antarmuka Periferal Serial)
- I²S (Suara Interchip Terpadu)
- RMII (Antarmuka Independen Media yang Diperkecil)
- PWM (Modulasi Lebar Pulsa)
-
Keamanan: akselerator perangkat keras untuk AES dan SSL/TLS
ESP32 Development Boards
ESP32 merujuk pada chip ESP32 polosan. Namun, istilah “ESP32” juga digunakan untuk merujuk pada board pengembangan ESP32. Menggunakan chip kosong ESP32 tidaklah mudah atau praktis, terutama ketika belajar, testing, atau membuat prototipe.
Board pengembangan ini dilengkapi dengan semua sirkuit yang diperlukan untuk menyalakan dan memprogram chip, menghubungkannya ke komputer, pin untuk menghubungkan periferal, LED daya dan kontrol internal, antena untuk sinyal wi-fi, dan fitur yang berguna lainnya. Beberapa board lainya dilengkapi dengan perangkat keras tambahan seperti sensor atau modul tertentu seperti layar, atau kamera seperti ESP32-CAM.
Bagaimana Cara Memilih Boards ESP32 Yang Sesuai
Ketika mencari board ESP32 secara online, Akan menemukan berbagai macam board dari vendor yang berbeda. Meskipun semuanya bekerja dengan cara yang sama, beberapa board mungkin lebih cocok untuk beberapa project tertentu. Saat mencari board ESP32, ada beberapa aspek yang perlu Anda pertimbangkan:
-
Antarmuka USB-to-UART dan rangkaian pengatur tegangan. Sebagian besar papan pengembangan dengan fitur lengkap memiliki dua fitur ini. Hal ini penting untuk menghubungkan ESP32 ke komputer dengan mudah untuk meng-upload kode dan memberikan daya.
-
Tombol BOOT dan RESET/EN untuk menempatkan papan dalam mode berkedip atau mengatur ulang (restart) papan. Beberapa papan tidak memiliki tombol BOOT. Biasanya, papan-papan ini masuk ke mode flashing secara otomatis.
-
Konfigurasi pin dan jumlah pin. Untuk menggunakan ESP32 dengan benar dalam sebuah proyek, Board harus memiliki akses ke pinout (seperti peta yang menunjukkan pin mana yang sesuai dengan GPIO dan fitur-fiturnya). Jadi, pastikan board memiliki akses ke pinout. Jika tidak, mungkin akan kesulitan menentukan pinout.
-
Konektor antena. Sebagian besar papan dilengkapi dengan antena onboard untuk sinyal Wi-Fi. Beberapa papan dilengkapi dengan konektor antena untuk menyambungkan antena eksternal secara opsional. Menambahkan antena eksternal akan meningkatkan jangkauan Wi-Fi Anda.
-
Konektor baterai. Jika ingin menyalakan ESP32 menggunakan baterai, ada papan pengembangan yang dilengkapi dengan konektor untuk baterai LiPo-ini bisa lebih praktis. Cara lain untuk menyalakan ESP32 “biasa” dengan baterai melalui pin daya.
-
Fitur perangkat keras tambahan. Ada board pengembangan ESP32 dengan fitur perangkat keras tambahan. Sebagai contoh, beberapa board mungkin dilengkapi dengan layar OLED internal, modul LoRa, modul SIM800 (untuk GSM dan GPRS), tempat baterai, kamera, dll.
Best ESP32 development board for beginners?
Rekomendasi board ESP32 untuk pemula pilih lah yang di lengkapi dengan banyak pilihan GPIO seperti ESP32 DEVKIT DOIT, dan tanpa fitur perangkat keras tambahan. Yang juga penting adalah papan ini dilengkapi dengan input tegangan reguler dan USB untuk power dan upload code.
.
Board serupa lainnya dengan fitur yang disebutkan sebelumnya juga dapat menjadi pilihan yang baik seperti Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S, Wemos LoLin32, dll.
.
ESP32 DEVKIT DOIT
Spesifikasi – ESP32 DEVKIT V1 DOIT Tabel berikut ini menunjukkan ringkasan fitur dan spesifikasi papan ESP32 DEVKIT V1 DOIT:
| Component | Description |
|---|---|
| Number of cores | 2 (dual core) |
| Wi-Fi | 2.4 GHz up to 150 Mbits/s |
| Bluetooth | BLE (Bluetooth Low Energy) and legacy Bluetooth |
| Architecture | 32 bits |
| Clock frequency | Up to 240 MHz |
| RAM | 512 KB |
| Pins | 30, 36, or 38 (depending on the model) |
| Peripherals | Capacitive touch, ADC (analog to digital converter), DAC (digital to analog converter), I2C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface), I2S (Integrated Inter-IC Sound), RMII (Reduced Media-Independent Interface), PWM (pulse width modulation), and more. |
| Built-in buttons | RESET and BOOT buttons |
| Built-in LEDs | built-in blue LED connected to GPIO2; built-in red LED that shows the board is being powered |
| USB to UART bridge | CP2102 |
Board ESP32 khusus ini dilengkapi dengan 36 pin, 18 di setiap sisi. Jumlah GPIO yang tersedia tergantung pada model board. Board ini dilengkapi dengan antarmuka microUSB yang dapat gunakan untuk menghubungkan board ke komputer untuk mengupload kode atau power.
Papan ini menggunakan chip CP2102 (USB ke UART) untuk berkomunikasi dengan komputer melalui port COM menggunakan antarmuka serial. Chip lain yang populer adalah CH340. Periksa konverter chip USB ke UART pada board harus menginstal driver yang diperlukan agar komputer dapat berkomunikasi dengan papan (informasi lebih lanjut tentang hal ini nanti dalam panduan ini).
Board ini juga dilengkapi dengan tombol RESET (mungkin berlabel EN) untuk me-restart papan dan tombol BOOT untuk menempatkan papan dalam mode berkedip (tersedia untuk menerima kode). Perhatikan bahwa beberapa board mungkin tidak memiliki tombol BOOT.
Board ini juga dilengkapi dengan LED biru internal yang terhubung secara internal ke GPIO 2. LED ini berguna untuk debugging untuk memberikan semacam output fisik visual. Ada juga LED merah yang menyala ketika memberikan daya ke board.

ESP32 GPIOs Pinout Guide
Chip ESP32 dilengkapi dengan 48 pin dengan berbagai fungsi. Tidak semua pin terbuka atau dapat di pakai pada semua board pengembangan ESP32, dan beberapa pin tidak boleh digunakan. Board ESP32 DEVKIT V1 DOIT biasanya dilengkapi dengan 36 GPIO yang dapat gunakan untuk menghubungkan periferal.
-
Pin Daya Biasanya, semua board dilengkapi dengan pin daya/power: 3V3, GND, dan VIN. Pin-pin ini dapat di gunakan untuk menyalakan board (jika tidak menyediakan daya melalui port USB), atau untuk mendapatkan power untuk periferal lain (jika menyalakan board menggunakan port USB).
-
Pin Input Output Serba Guna (GPIO)
Hampir semua GPIO memiliki nomor yang ditetapkan dan begitulah cara merujuknya - dengan nomornya.
Dengan ESP32, dapat menentukan pin mana yang merupakan UART, I2C, atau SPI - hanya perlu mengaturnya pada kode. Hal ini dimungkinkan karena fitur multiplexing chip ESP32 yang memungkinkan untuk menetapkan beberapa fungsi ke pin yang sama.
Jika tidak mengaturnya pada kode, pin akan dikonfigurasi secara default seperti yang ditunjukkan pada gambar di bawah ini (lokasi pin dapat berubah tergantung pada produsen). Selain itu, ada pin dengan fitur spesifik yang membuatnya cocok atau tidak untuk proyek tertentu.

Penempatan GPIO mungkin berbeda tergantung pada model board. Namun, biasanya, setiap GPIO tertentu bekerja dengan cara yang sama terlepas dari papan pengembangan yang di gunakan (dengan beberapa pengecualian). Sebagai contoh, terlepas dari papan pengembangan, biasanya GPIO5 selalu merupakan pin VSPI CS0, GPIO 23 selalu berhubungan dengan VSPI MOSI untuk komunikasi SPI, dll.
Bagaimana Cara Memprogram ESP32?
ESP32 dapat diprogram menggunakan firmware dan bahasa pemrograman yang berbeda. Seperti bahasa berikut ini:
- Arduino C/C++ menggunakan inti Arduino untuk ESP32
- Espressif IDF (IoT Development Framework)
- Micropython
- JavaScript
- LUA
Lalu untuk menulis program pada ESP32 dapat menggunakan beberapa aplikais berikut ini : Software Pemrograman untuk Memprogram ESP32
- IDE Arduino
- PlatformIO
- Development Framework IoT Espressif (ESP-IDF)
- Plugin Eclipse ESP-IDF
- Ekstensi Kode Visual Studio ESP-IDF
Pada tutorial yang akan di bahasa kali ini, untuk memprogram ESP32 dengan “bahasa pemrograman Arduino” C/C++.
ESP32 vs Arduino: Mana yang Lebih Baik?
Baik ESP32 maupun Arduino merupakan papan pengembangan berbasis mikrokontroler yang telah memberikan dampak signifikan pada dunia sistem tertanam(embeded) dan proyek DIY. ESP32, yang dikembangkan oleh Espressif Systems, dikenal dengan performa tinggi dan integrasi kemampuan Wi-Fi dan Bluetooth. Arduino, di sisi lain, telah menjadi identik dengan kemudahan penggunaan dan komunitas pengguna yang luas, menjadikannya pilihan populer di kalangan penggemar dan pendidik.
Ketika memutuskan antara ESP32 dan Arduino, jawabannya sangat bergantung pada kebutuhan dan batasan spesifik proyek. Berikut adalah beberapa faktor yang perlu dipertimbangkan:
-
Konsumsi Daya
ESP32: ESP32 dirancang dengan beberapa mode daya untuk mengoptimalkan konsumsi energi, termasuk mode tidur nyenyak yang hanya mengkonsumsi beberapa mikroamp. Hal ini membuatnya ideal untuk aplikasi IoT bertenaga baterai di mana penghematan daya sangat penting.
Arduino: Sebagian besar papan Arduino tidak memiliki fitur manajemen daya yang canggih. Meskipun ada beberapa papan Arduino berdaya rendah yang tersedia, konsumsi daya tipikal umumnya lebih tinggi dibandingkan dengan ESP32.
-
Opsi Konektivitas
ESP32: Menawarkan Wi-Fi dan Bluetooth internal (termasuk BLE), yang membuatnya sangat cocok untuk komunikasi nirkabel dan proyek IoT tanpa memerlukan modul tambahan.
Arduino: Papan Arduino standar tidak memiliki Wi-Fi dan Bluetooth internal. Menambahkan konektivitas nirkabel memerlukan pelindung atau modul eksternal, yang dapat meningkatkan kompleksitas dan biaya proyek.
-
Konversi Analog ke Digital (ADC)
ESP32: Menampilkan beberapa saluran ADC dengan resolusi hingga 12 bit, memberikan pembacaan analog yang lebih tepat dan memungkinkan pemantauan input analog secara simultan.
Arduino: Arduino Uno, misalnya, memiliki ADC 10-bit dengan saluran yang lebih sedikit, sehingga menawarkan lebih sedikit presisi dan lebih sedikit pilihan untuk pembacaan sinyal analog secara simultan.
-
Konversi Digital ke Analog (DAC)
ESP32: Dilengkapi dengan dua saluran DAC internal, yang memungkinkan pembuatan sinyal analog langsung dari nilai digital, berguna untuk aplikasi audio dan kontrol keluaran variabel.
Arduino: Sebagian besar papan Arduino standar, seperti Arduino Uno, tidak memiliki kemampuan DAC internal dan memerlukan komponen tambahan untuk menghasilkan keluaran analog dari sinyal digital.
-
Memori dan Penyimpanan
ESP32: Dilengkapi dengan SRAM dalam jumlah yang signifikan (520KB) dan penyimpanan flash SPI tambahan, yang memungkinkan program yang lebih besar dan lebih kompleks.
Arduino: Arduino Uno, misalnya, hanya memiliki SRAM 2KB dan memori flash 32KB, yang membatasi ukuran dan kompleksitas program yang dapat dijalankan.
-
Tegangan Operasional
ESP32: Beroperasi pada 3,3V, yang umum dalam elektronik modern dan memerlukan perubahan level untuk berinteraksi dengan sensor dan periferal 5V.
Arduino: Banyak papan Arduino, seperti Arduino Uno, beroperasi pada 5V, yang kompatibel dengan berbagai sensor dan komponen lama tanpa perlu mengubah level.
-
Kemampuan Multiprosesing
ESP32: Dilengkapi prosesor inti ganda, yang memungkinkan eksekusi tugas paralel yang sesungguhnya dan multitugas yang lebih efisien.
Arduino: Sebagian besar papan Arduino, seperti Uno, memiliki prosesor inti tunggal, yang hanya dapat menangani satu tugas dalam satu waktu, sehingga membuat multitugas menjadi kurang efisien dan lebih rumit.
-
Pin GPIO (Input/Output Serba Guna)
ESP32: Menyediakan lebih banyak pin GPIO, yang banyak di antaranya multifungsi dan dapat dikonfigurasi untuk berbagai penggunaan, termasuk penginderaan sentuh, PWM perangkat keras, dan banyak lagi.
Arduino: Biasanya memiliki lebih sedikit pin GPIO, dan meskipun serbaguna, sering kali tidak memiliki kemampuan multifungsi yang ditemukan pada pin ESP32.
ESP32 vs Arduino: Kelebihan dan Kekurangan
| Feature | ESP32 | Arduino |
|---|---|---|
| Processing Power | High (dual-core processor) | Moderate (single-core) |
| Power Management | Advanced (deep sleep mode) | Limited |
| Connectivity | Wi-Fi and Bluetooth built-in | External modules required |
| Programming | Complexity Moderate to Advanced | Beginner-friendly |
| Community Support | 512 KB | Growing |
| Price | Slightly higher | Affordable entry-level boards |
Software Capabilities and Programming: ESP32 vs Arduino
Pemrograman ESP32 Ekosistem perangkat lunak ESP32 mendukung berbagai bahasa pemrograman seperti C, C++, dan Python. Rangkaian alat dan SDK yang disediakan menawarkan fleksibilitas dalam pengembangan.
Memprogram ESP32 mungkin memerlukan kurva pembelajaran yang lebih curam dibandingkan dengan Arduino, tetapi menawarkan kontrol dan efisiensi yang lebih besar, terutama untuk aplikasi yang kompleks.
Memprogram Arduino Untuk memprogram mikrokontroler Arduino, Arduino IDE dikenal dengan kesederhanaannya, mendukung C dan C++. Berbagai macam perpustakaan dan dukungan komunitas membuatnya mudah digunakan oleh para pendatang baru. Arduino juga kompatibel dengan microPython.
Pengkodean di Arduino berfokus pada aksesibilitas, dengan daftar ekstensif contoh kode dan tutorial yang tersedia. Hal ini telah membantu menumbuhkan komunitas yang besar dan suportif di sekitar platform.
ESP32 vs Arduino: Use Cases and Practical Applications
ESP32 ESP32 cocok untuk proyek-proyek tingkat lanjut yang membutuhkan kemampuan pemrosesan dan konektivitas yang lebih tinggi, seperti perangkat IoT, aplikasi rumah pintar, dan otomasi industri.
Arduino Kesederhanaan Arduino membuatnya menjadi pilihan utama untuk tujuan pendidikan, instalasi seni, dan proyek-proyek penghobi.
Semua hal dipertimbangkan, pilihan antara ESP32 dan Arduino sangat bergantung pada persyaratan proyek. Untuk aplikasi yang kompleks dan terhubung, ESP32 adalah pilihannya, sedangkan untuk kesederhanaan dan pembelajaran, Arduino lebih banyak di gunakan.
Referensi
- https://randomnerdtutorials.com/getting-started-with-esp32/
- https://www.elprocus.com/difference-between-esp32-vs-arduino/
- https://acebott.com/stem-blogs/esp32-vs-arduino-what-is-different/?srsltid=AfmBOoooGi6XAns9Nrr2-I9uCCbrYAGaRQolmnVtOJyl4cX6aPIO7Af8
- https://www.flux.ai/p/blog/esp32-vs-arduino-why-choose-one-over-the-other-in-2023
