Robotik & Hardware, ElrolumNews — Anda sudah pernah mencoba Arduino Uno? Sudah bisa menyalakan LED, membaca sensor? Tapi sekarang Anda ingin naik level—membuat perangkat yang bisa terhubung ke internet. Di sinilah ESP32 berperan.
Artikel ini cocok untuk: Anda yang sudah familiar dengan dasar Arduino dan ingin beralih ke ESP32 untuk proyek IoT pertama Anda.
ESP32 adalah mikrokontroler dengan WiFi dan Bluetooth built-in—sesuatu yang tidak dimiliki Arduino Uno . Bayangkan bisa membuat perangkat yang mengirim data suhu ke internet, atau menyalakan lampu dari jarak jauh lewat smartphone. Itulah yang bisa Anda lakukan dengan ESP32.
Kabar baiknya: jika Anda sudah bisa Arduino, Anda sudah 80% bisa ESP32. Yang perlu ditambahkan hanya setup board di Arduino IDE dan library WiFi. Artikel ini akan memandu Anda dari nol.
ESP32 vs Arduino Uno: Apa yang Berbeda?
Sebelum mulai, mari pahami dulu apa yang membuat ESP32 istimewa.
| Aspek | Arduino Uno | ESP32 |
|---|---|---|
| CPU | 8-bit ATmega328P @ 16 MHz | 32-bit Xtensa dual-core @ 240 MHz |
| SRAM | 2 KB | 520 KB |
| Flash Memory | 32 KB | 4 MB+ |
| WiFi | ❌ Tidak ada | ✅ Built-in |
| Bluetooth | ❌ Tidak ada | ✅ Built-in |
| GPIO | 14 pin | 34+ pin |
| Tegangan | 5V | 3.3V |
Kesimpulan: ESP32 adalah lompatan besar dari Arduino Uno—lebih cepat, lebih banyak memori, dan punya konektivitas nirkabel .
⚠️ Penting: ESP32 beroperasi di 3.3V. Jangan hubungkan sensor 5V langsung ke GPIO—bisa merusak board .
Langkah 1: Install Board ESP32 di Arduino IDE
Arduino IDE secara default tidak mengenal ESP32. Kita perlu menambahkan board support.
1.1 Buka Preferences
Buka Arduino IDE (versi 2.x direkomendasikan)
Masuk ke File > Preferences (Windows/Linux) atau Arduino > Preferences (macOS)
1.2 Tambahkan Board Manager URL
Di kolom “Additional Board Manager URLs”, tambahkan:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Jika sudah ada URL lain, jangan dihapus—tambahkan di baris baru . Klik OK.
1.3 Install Board Package
Masuk ke Tools > Board > Boards Manager
Cari “esp32”
Cari “esp32 by Espressif Systems”
Klik Install
Tunggu beberapa menit—proses ini mengunduh compiler dan tools
💡 Tips Pro: Untuk pengguna di Indonesia, unduhan mungkin lambat. Sabar—ini proses satu kali. Setelah terinstall, board ESP32 akan muncul di menu Tools > Board .
Langkah 2: Pilih Board dan Port
2.1 Hubungkan ESP32 ke Komputer
Gunakan kabel USB data—bukan kabel charge-only. Kabel yang hanya bisa mengisi daya tidak akan mengirim data .
2.2 Pilih Board
Masuk ke Tools > Board > ESP32 Arduino
Pilih ESP32 Dev Module (untuk board generik)
Jika board Anda tipe tertentu (ESP32-S3, ESP32-C3), pilih yang sesuai.
2.3 Pilih Port
Masuk ke Tools > Port
Pilih port COM yang muncul (contoh: COM3, COM4, atau /dev/ttyUSB0)
Jika port tidak muncul, Anda mungkin perlu install driver USB-to-UART (CP210x atau CH340) .
Langkah 3: Program Pertama — “Hello ESP32”
Mari verifikasi bahwa semuanya bekerja dengan program sederhana.
Kode Test
void setup() { Serial.begin(115200); delay(1000); Serial.println("ESP32 setup is working."); } void loop() { Serial.println("Hello from ESP32!"); delay(1000); }
Upload
Klik tombol Verify (centang) untuk compile
Klik tombol Upload (panah)
Jika upload gagal, tekan dan tahan tombol BOOT di board saat muncul “Connecting…”, lalu lepas
Buka Tools > Serial Monitor
Set baud rate ke 115200
Jika Anda melihat “Hello from ESP32!” muncul setiap detik, berarti setup berhasil!
Langkah 4: Membaca Sensor DHT22
Sekarang kita akan membaca sensor suhu dan kelembapan.
4.1 Rangkaian
| Sensor DHT22 | ESP32 |
|---|---|
| VCC | 3.3V |
| DATA | GPIO 4 |
| GND | GND |
Jika menggunakan sensor tanpa modul, tambahkan resistor pull-up 10kΩ antara VCC dan DATA .
4.2 Install Library
Masuk ke Tools > Manage Libraries
Cari dan install:
DHT sensor library by Adafruit
Adafruit Unified Sensor
4.3 Kode
#include <DHT.h> #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(115200); dht.begin(); } void loop() { float suhu = dht.readTemperature(); float kelembapan = dht.readHumidity(); if (isnan(suhu) || isnan(kelembapan)) { Serial.println("Gagal membaca sensor!"); delay(2000); return; } Serial.print("Suhu: "); Serial.print(suhu); Serial.println(" °C"); Serial.print("Kelembapan: "); Serial.print(kelembapan); Serial.println(" %"); delay(2000); }
Langkah 5: Menghubungkan ESP32 ke WiFi
Ini bagian yang membuat ESP32 istimewa—kemampuan terhubung ke internet.
Kode Koneksi WiFi
#include <WiFi.h> const char* ssid = "NAMA_WIFI_ANDA"; const char* password = "PASSWORD_WIFI_ANDA"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); Serial.print("Menghubungkan ke WiFi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi terhubung!"); Serial.print("IP Address: "); Serial.println(WiFi.localIP()); } void loop() { // Kode utama di sini }
Ganti NAMA_WIFI_ANDA dan PASSWORD_WIFI_ANDA dengan kredensial WiFi Anda .
⚠️ Peringatan Keamanan: Jangan bagikan kode yang berisi SSID dan password WiFi ke publik .
Langkah 6: Membuat Web Server Sederhana
Sekarang kita gabungkan semuanya: ESP32 membaca sensor dan menampilkan data di web server—yang bisa diakses dari browser HP atau laptop.
Kode Lengkap
#include <WiFi.h> #include <WebServer.h> #include <DHT.h> #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); const char* ssid = "NAMA_WIFI_ANDA"; const char* password = "PASSWORD_WIFI_ANDA"; WebServer server(80); void handleRoot() { float suhu = dht.readTemperature(); float kelembapan = dht.readHumidity(); String html = "<html><head><meta http-equiv='refresh' content='5'></head><body>"; html += "<h1>Monitoring Suhu & Kelembapan</h1>"; html += "<p>Suhu: " + String(suhu) + " °C</p>"; html += "<p>Kelembapan: " + String(kelembapan) + " %</p>"; html += "</body></html>"; server.send(200, "text/html", html); } void setup() { Serial.begin(115200); dht.begin(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi terhubung!"); Serial.print("Buka: http://"); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.begin(); } void loop() { server.handleClient(); }
Cara Mengakses
Upload kode
Buka Serial Monitor—catat IP Address yang muncul
Buka browser di HP/laptop yang terhubung ke WiFi yang sama
Ketik IP tersebut (contoh:
http://192.168.1.100)Anda akan melihat data suhu dan kelembapan—update otomatis setiap 5 detik
💡 Selamat! Anda baru saja membuat perangkat IoT pertama Anda—sensor yang bisa diakses dari internet .
Troubleshooting: Masalah Umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| Board tidak terdeteksi | Driver USB belum terinstall | Install CP210x atau CH340 |
| Upload gagal (timeout) | Board tidak masuk mode flash | Tahan tombol BOOT saat upload |
| Serial Monitor kosong | Baud rate salah | Set ke 115200 |
| WiFi tidak connect | SSID/password salah | Cek kembali kredensial |
| Sensor gagal baca | Wiring salah | Cek VCC, GND, DATA |
Kesalahan Umum dan Cara Menghindarinya
| Kesalahan | Akibat | Solusi |
|---|---|---|
| Pakai kabel charge-only | Board tidak terdeteksi | Gunakan kabel data |
| Hubungkan 5V ke GPIO | Board rusak | ESP32 3.3V—gunakan level shifter |
| Lupa pilih board yang benar | Upload gagal | Pilih ESP32 Dev Module |
| Baud rate salah | Serial Monitor kosong | Set 115200 |
| WiFi credentials di kode publik | Risiko keamanan | Gunakan konfigurasi terpisah |
Kesimpulan
Memprogram ESP32 dengan Arduino IDE tidak sesulit yang dibayangkan. Kuncinya:
Install board ESP32 — tambahkan URL di Preferences
Pilih board & port — ESP32 Dev Module
Test pertama — “Hello ESP32” di Serial Monitor
Baca sensor — DHT22 dengan library Adafruit
Koneksi WiFi —
WiFi.begin()Web server — tampilkan data di browser
Dengan ESP32, Anda bisa membuat perangkat IoT yang benar-benar terhubung—sesuatu yang tidak bisa dilakukan Arduino Uno tanpa modul tambahan .
Ingat: ESP32 adalah langkah alami setelah Arduino Uno. Semua sensor dan peripheral yang sudah Anda pelajari di Arduino tetap berfungsi di ESP32 .
Sudah siap membuat proyek IoT pertama Anda?
💬 Punya proyek ESP32? Bagikan di kolom komentar!
(el)





