Panduan · 10 mnt baca

Arduino vs ESP32: Perbedaan Utama dan Mana yang Harus Dipilih

Perbandingan Arduino vs ESP32: kecepatan, RAM, Wi-Fi, logika 5 V vs 3,3 V, ADC, pin, dan daya tahan baterai, plus perbandingan dengan Pico, kode yang sama, dan panduan per jenis proyek.

Arduino atau ESP32? Jawaban singkatnya: kalau proyekmu butuh Wi-Fi, Bluetooth, internet, atau daya olah yang besar, pilih ESP32; kalau kamu sedang belajar dasar elektronika, ingin memakai sensor dan modul 5 V tanpa repot, dan ingin mengikuti setiap tutorial persis seperti aslinya, pilih Arduino Uno. Kedua board diprogram di Arduino IDE dengan perintah digitalWrite, analogRead, dan Serial yang sama. Perbedaan sebenarnya ada di hardware: kecepatan, memori, tegangan kerja, pin, dan konektivitas nirkabel.

Di panduan ini kita membandingkan Arduino Uno R3 dengan board ESP32 yang paling umum, ESP32 DevKit (dengan modul ESP-WROOM-32), memakai angka nyata: apa arti perbedaan CPU dan memori dalam praktik, modul mana yang terpengaruh oleh 5 V dan 3,3 V, bagaimana input analog dan PWM berubah, dan berapa jam masing-masing bertahan dengan baterai? Setelah itu kita jalankan sketch yang sama di kedua board, melihat sekilas Raspberry Pi Pico, dan merangkum dalam tabel board mana yang dipilih untuk tiap jenis proyek.

Board pengembangan Arduino Uno R3
Arduino Uno R3: board 5 V dengan ATmega328P 8-bit yang paling banyak dipakai pemula.

Jawaban singkat: pilih yang mana, dan kapan?

SituasimuBoard yang disarankanKenapa?
Kamu baru mengenal elektronikaArduino Uno5 V, pin yang tangguh, contoh dan pelajaran paling banyak
Kamu butuh Wi-Fi atau internetESP32Wi-Fi sudah ada di dalamnya, tanpa modul tambahan
Koneksi Bluetooth ke ponselESP32Bluetooth Classic dan BLE sudah tertanam
Kamu akan memakai modul dan shield 5 VArduino UnoTidak perlu level shifter
Layar, banyak LED, data besarESP32RAM 520 KB (Uno hanya 2 KB)
Sensor yang berjalan berbulan-bulan dengan bateraiESP32 (board hemat daya)Sekitar 10 µA dalam deep sleep
Memprogram dengan PythonRaspberry Pi PicoDukungan MicroPython yang sangat matang
Anggaran paling minimESP32 atau PicoFitur jauh lebih banyak dengan harga setara klon Uno

Apa itu Arduino Uno dan ESP32?

Arduino Uno R3 adalah board paling terkenal dari platform Arduino yang dikembangkan di Italia. Jantungnya adalah mikrokontroler 8-bit ATmega328P yang berjalan di 16 MHz. Board ini bekerja di 5 V dan susunan pinnya tidak berubah selama bertahun-tahun, sehingga ratusan shield (board tambahan yang dipasang di atasnya), buku, dan kursus kompatibel dengannya. Desainnya yang sederhana membuatmu bisa melihat persis apa yang terjadi: ketika kamu menulis HIGH ke sebuah pin, di pin itu memang ada 5 V. Uno R4 yang lebih baru hadir dengan prosesor Arm 32-bit 48 MHz dan RAM 32 KB, dan versi R4 WiFi menambahkan ESP32-S3 di board-nya untuk konektivitas nirkabel; di artikel ini, “Uno” berarti R3, yang masih paling umum. Untuk mengenal platformnya lebih jauh, baca Apa Itu Arduino?.

Board pengembangan ESP32 DevKit (ESP-WROOM-32)
ESP32 DevKit: modul ESP-WROOM-32 berpelindung logam berisi prosesor dua inti, Wi-Fi, dan Bluetooth; board ini memakai logika 3,3 V.

Sementara itu, ESP32 adalah system-on-chip (SoC) 32-bit yang dirilis Espressif pada 2016 dengan Wi-Fi dan Bluetooth di chip yang sama. Board yang kamu pegang adalah board pengembangan yang membawa chip ini: ada konverter USB ke serial, regulator 3,3 V, serta tombol EN dan BOOT. Satu detail penting: ESP32 bukan Arduino, tetapi berkat core Arduino buatan Espressif, ESP32 diprogram di Arduino IDE persis seperti Arduino. Untuk pengaturan dan proyek pertama, Apa Itu ESP32? adalah titik awal yang bagus.

Tabel perbandingan besar: Arduino Uno, ESP32, dan Raspberry Pi Pico

FiturArduino Uno R3ESP32 DevKit (WROOM-32)Raspberry Pi Pico
ProsesorATmega328P, AVR 8-bitXtensa LX6, 32-bit, dua intiRP2040, Arm Cortex-M0+ 32-bit, dua inti
Kecepatan clock16 MHzSampai 240 MHz133 MHz
RAM (SRAM)2 KB520 KB264 KB
Memori program (flash)32 KB (0,5 KB dipakai bootloader)Biasanya 4 MB2 MB
EEPROM1 KBTidak ada (diemulasikan di flash)Tidak ada (sistem file di flash)
Tegangan logika5 V3,3 V (tidak tahan 5 V)3,3 V (tidak tahan 5 V)
Catu dayaUSB 5 V atau 7–12 V (jack/VIN)USB 5 V atau 5 V di VINUSB 5 V atau 1,8–5,5 V di VSYS
GPIO yang bisa dipakai20 (14 digital + 6 analog)Sekitar 25 (tanpa pin yang dibatasi)26
Input analog (ADC)6 kanal, 10-bit18 kanal, 12-bit (hanya ADC1 ketika Wi-Fi menyala)3 kanal, 12-bit
Output analog (DAC)Tidak ada2 kanal, 8-bitTidak ada
PWM6 pin, 8-bit, 490/980 Hz16 kanal, frekuensi bisa diatur, di hampir semua pin16 kanal, di semua GPIO
Wi-FiTidak ada802.11 b/g/n, 2,4 GHzTidak ada (Pico W punya)
BluetoothTidak adaBluetooth 4.2: Classic + BLETidak ada (Pico W punya)
UART / I2C / SPI1 / 1 / 13 / 2 / 2 (yang tersedia untuk pengguna)2 / 2 / 2
Arus per pinDisarankan 20 mA (maks. 40 mA)Disarankan sekitar 20 mA4 mA secara bawaan (bisa diatur sampai 12 mA)
Arus board yang umumSekitar 45 mARata-rata 50–130 mA dengan Wi-Fi, puncak 240 mASekitar 25 mA
Sleep terendahChip di bawah 1 µA, board sekitar 30 mAChip sekitar 10 µA dalam deep sleepBoard sekitar 1 mA dalam mode dormant
PemrogramanArduino C/C++Arduino C/C++, ESP-IDF, MicroPythonMicroPython, C/C++ SDK, Arduino
Perkiraan hargaOriginal $25–30, klon $5–10DevKit klon $4–8$4 (Pico W $6)

CPU dan memori: apa arti angka-angka ini dalam praktik?

Prosesor Uno menjalankan sekitar 16 juta instruksi per detik dan mengolah angka 8-bit sekaligus; satu operasi long atau float 32-bit butuh puluhan instruksi, dan tidak ada unit floating point (FPU) di hardware. ESP32 berjalan di 240 MHz dengan angka 32-bit dan punya FPU presisi tunggal. Karena itu, dalam perhitungan yang banyak memakai float, ESP32 bisa puluhan bahkan ratusan kali lebih cepat daripada Uno. Kamu tidak akan merasakan bedanya ketika mengedipkan LED atau membaca sensor beberapa kali per detik, tetapi perbedaan ini menentukan untuk filter, pengolahan audio, enkripsi, atau menghitung animasi untuk ratusan LED. Tips kecil: FPU ESP32 hanya menangani float; operasi double dijalankan lewat software dan jelas lebih lambat.

Perbedaan memori akan jauh lebih sering kamu temui. RAM 2 KB di Uno dibagi antara variabelmu, buffer Serial, dan ruang yang dipesan library. Ketika RAM habis, compiler biasanya tidak memberi peringatan; program macet secara acak atau berperilaku aneh. Situasi umum ketika RAM Uno cepat habis:

  • Layar OLED: frame buffer layar SSD1306 128×64 saja sudah memakan 1 KB, setengah dari RAM (lihat Cara Memakai Layar OLED).
  • LED addressable: setiap LED WS2812B memakan 3 byte, jadi strip 300 LED butuh 900 byte (lihat WS2812B NeoPixel).
  • Data dari internet: JSON yang dikirim layanan cuaca bisa beberapa KB; tidak muat di Uno, tetapi mudah ditangani di ESP32.
  • Menggabungkan String: objek String yang terus membesar di dalam loop memecah-mecah RAM yang kecil dan bisa menyebabkan crash berjam-jam kemudian.
  • Kartu SD: library SD memesan buffer sektor 512 byte; bersama library layar dan sensor, batasnya cepat tercapai.

Perbedaan tegangan: 5 V vs 3,3 V

Inilah perbedaan yang paling sering diabaikan. Pin Uno memakai logika 5 V: output HIGH bernilai 5 V, dan input di atas 3 V dianggap HIGH. Pin ESP32 memakai logika 3,3 V dan tidak tahan 5 V. Memberi 5 V ke sebuah pin mungkin tidak langsung mematikan ESP32, tetapi membebani dioda pelindung di dalamnya dan bisa merusak chip pelan-pelan atau seketika. Arah sebaliknya lebih jarang bermasalah: sinyal HIGH 3,3 V dari ESP32 hanya sedikit melewati ambang 3 V di Uno, jadi biasanya terbaca HIGH, tetapi itu juga tidak terhitung desain yang aman. Begini perilaku modul-modul umum di tiap board:

ModulDengan Arduino UnoDengan ESP32Catatan
Sensor jarak HC-SR04LangsungPembagi tegangan di jalur ECHOPin ECHO mengeluarkan 5 V
Modul relay 5 VLangsungSebagian besar jalan, sebagian tidak mau matiDi modul active-low, HIGH 3,3 V mungkin tidak melepas relay sepenuhnya
Servo SG90LangsungSinyal langsung, daya dari 5 VJangan beri daya servo dari pin 3V3 board
DHT11 / DHT22LangsungLangsung di 3,3 VBekerja di kedua tegangan
LCD I2C (16x2)LangsungCatu 5 V, level shifter disarankanResistor pull-up modul menarik jalur ke 5 V
OLED SSD1306LangsungLangsung (3V3)Ada regulator di board-nya
Strip WS2812BLangsungBiasanya jalanUntuk hasil yang pasti, pakai level shifter seperti 74AHCT125
MPU6050 (GY-521)LangsungLangsung (3V3)Ada regulator 3,3 V di board-nya
Kalau kamu menghubungkan modul yang mengeluarkan sinyal 5 V ke ESP32, pasang pembagi tegangan atau level shifter di antaranya. Misalnya, dengan 1 kΩ seri di jalur sinyal dan 2 kΩ di antara pin ESP32 dan GND, 5 V turun menjadi 5 × 2 / (1 + 2) = 3,33 V. Di ESP32, selalu hubungkan sumber analog seperti potensiometer ke pin 3V3, jangan pernah ke pin 5V.

Pin, input analog, dan PWM

Di Uno, ke-20 pin berperilaku kurang lebih sama: masing-masing bisa jadi input atau output, dengan nyaman memberikan sampai 20 mA, dan tidak memengaruhi proses boot. ESP32 DevKit punya lebih banyak pin di atas kertas, tetapi tidak semuanya setara: GPIO 6–11 tersambung ke flash internal dan tidak bisa dipakai, GPIO 34–39 hanya untuk input, dan GPIO 0, 2, 5, 12, serta 15 harus berada di level tertentu ketika boot. Dalam praktiknya, sekitar 20–25 pin bisa kamu pakai dengan nyaman. Peta pin board-mu bisa dilihat di alat Pinout.

Untuk input analog, ADC 10-bit di Uno membagi rentang 0–5 V menjadi 1024 langkah; setiap langkah sekitar 4,9 mV dan bacaannya cukup linear. ADC 12-bit di ESP32 memberi 4096 langkah, tetapi dengan pengaturan bawaan tidak bisa membedakan nilai di bawah sekitar 0,15 V atau di atas 3,1 V, bacaannya berisik, dan pin ADC2 sama sekali tidak bekerja selama Wi-Fi menyala. Kalau butuh tegangan yang akurat di ESP32, pakai analogReadMilliVolts() dan hubungkan sensor ke pin ADC1 (GPIO 32–39). Untuk PWM, ESP32 lebih unggul: Uno hanya menawarkan PWM 8-bit di 6 pin dengan 490 atau 980 Hz, sedangkan ESP32 bisa mengarahkan 16 kanal dengan frekuensi dan resolusi yang bisa diatur ke hampir semua pin output. ESP32 juga punya 2 DAC (GPIO 25 dan 26) yang menghasilkan tegangan analog sungguhan. Untuk dasar-dasar PWM, baca Apa Itu PWM?.

Sketch yang sama di kedua board: apa yang berubah?

Kabar baiknya: semua yang kamu pelajari di Arduino juga berlaku di ESP32. Sketch di bawah membaca potensiometer, mencetak tegangannya ke Serial Monitor, dan menyalakan LED bawaan ketika nilainya melewati titik tengah. Baris #if defined(ESP32) mendeteksi board mana yang menjadi target kompilasi dan hanya mengubah nomor pin, tegangan referensi, dan resolusi ADC. Hubungkan kaki luar potensiometer ke 5V dan GND di Uno, atau ke 3V3 dan GND di ESP32; hubungkan kaki tengahnya ke A0 di Uno atau ke GPIO 34 di ESP32, lalu buka Serial Monitor di 115200 baud. Perbedaan utama di luar kode ada di tabel.

C++ (Arduino IDE)
1// Aynı kod Uno ve ESP32'de çalışır / The same sketch runs on Uno and ESP32
2#if defined(ESP32)
3const int LED_PIN = 2;        // DevKit dahili LED / DevKit onboard LED
4const int POT_PIN = 34;       // ADC1 pini, Wi-Fi ile de çalışır / ADC1 pin, works with Wi-Fi too
5const float VREF = 3.3;       // ESP32 pinleri 3,3 V / ESP32 pins are 3.3 V
6const int ADC_MAX = 4095;     // 12 bit
7#else
8const int LED_PIN = 13;       // Uno dahili LED / Uno onboard LED
9const int POT_PIN = A0;
10const float VREF = 5.0;       // Uno referansı 5 V / Uno reference is 5 V
11const int ADC_MAX = 1023;     // 10 bit
12#endif
13
14void setup() {
15  Serial.begin(115200);
16  pinMode(LED_PIN, OUTPUT);
17}
18
19void loop() {
20  int raw = analogRead(POT_PIN);
21  float volts = raw * VREF / ADC_MAX;
22  Serial.print("Ham / raw: ");
23  Serial.print(raw);
24  Serial.print("  Gerilim / voltage: ");
25  Serial.println(volts, 2);
26  digitalWrite(LED_PIN, raw > ADC_MAX / 2 ? HIGH : LOW);   // yarıdan fazlaysa LED yanar / LED on above half
27  delay(250);
28}
TopikArduino UnoESP32
LED bawaanPin 13GPIO 2 di kebanyakan DevKit klon (tidak ada di DevKitC buatan Espressif)
Rentang analogRead0–1023 (10-bit)0–4095 (12-bit)
Interupsi eksternal (attachInterrupt)Hanya pin 2 dan 3Hampir semua pin (tambahkan IRAM_ATTR ke fungsi interupsinya)
Port serial keduaButuh SoftwareSerialSerial2 hardware (GPIO 16 dan 17)
EEPROMEEPROM sungguhan, 1 KBDi flash; EEPROM.commit() atau Preferences
UploadSekali klikBeberapa board perlu tombol BOOT ditekan
Waktu kompilasiBeberapa detikKompilasi pertama bisa makan waktu sekitar satu menit

Wi-Fi, Bluetooth, dan internet

Yang benar-benar membedakan ESP32 adalah konektivitas nirkabel. Board ini bisa bergabung ke jaringan Wi-Fi 2,4 GHz, membuat access point sendiri, menjalankan web server, mengirim data ke sistem rumah pintar lewat MQTT, mengambil waktu dari internet lewat NTP, dan memperbarui firmware-nya secara nirkabel (OTA). Di sisi Bluetooth, Bluetooth Classic (Serial Port Profile) dan BLE hemat energi sama-sama didukung, dan dengan ESP-NOW beberapa ESP32 bisa saling berbicara tanpa router. Semua ini tidak ada di Uno: untuk Bluetooth kamu butuh modul seperti HC-05, dan untuk Wi-Fi butuh chip terpisah seperti ESP-01 plus perintah AT. Sketch di bawah membaca potensiometer yang sama, kali ini lewat Wi-Fi: buka alamat yang muncul di Serial Monitor di browser ponsel yang tersambung ke jaringan yang sama, dan kamu akan melihat tegangannya dalam milivolt, dengan halaman yang menyegarkan dirinya sendiri setiap dua detik.

C++ (Arduino IDE)
1#include <WiFi.h>
2#include <WebServer.h>
3
4const char* ssid = "AgAdi";          // Wi-Fi adın / your Wi-Fi name
5const char* password = "Sifre123";   // Wi-Fi şifren / your Wi-Fi password
6const int POT_PIN = 34;              // ADC1 pini / ADC1 pin
7
8WebServer server(80);
9
10void handleRoot() {
11  uint32_t mv = analogReadMilliVolts(POT_PIN);   // kalibre edilmiş mV / calibrated mV
12  String html = "<meta name='viewport' content='width=device-width'>"
13                "<meta http-equiv='refresh' content='2'>"
14                "<h1>ESP32</h1><p>Pot: ";
15  html += mv;
16  html += " mV</p>";
17  server.send(200, "text/html", html);
18}
19
20void setup() {
21  Serial.begin(115200);
22  WiFi.begin(ssid, password);
23  while (WiFi.status() != WL_CONNECTED) delay(500);
24  Serial.print("Telefonda aç / open on your phone: http://");
25  Serial.println(WiFi.localIP());
26  server.on("/", handleRoot);
27  server.begin();
28}
29
30void loop() {
31  server.handleClient();
32}

Konsumsi daya dan berjalan dengan baterai

Di atas kertas, ESP32 adalah board yang paling boros sekaligus paling hemat. Ketika mengirim data lewat Wi-Fi, ESP32 menarik puncak arus sampai 240 mA, karena itu board ini restart dengan error “Brownout detector was triggered” di port USB yang lemah. Sebaliknya, dalam deep sleep chip-nya hanya memakai sekitar 10 µA. Board Uno menarik sekitar 45 mA bahkan ketika tidak melakukan apa-apa; walaupun ATmega328P sedang sleep, chip USB ke serial, regulator, dan LED power tetap memakai sekitar 30 mA. Mari hitung contohnya: baterai 2000 mAh menghidupi Uno yang berjalan terus-menerus selama sekitar 2000 / 45 ≈ 44 jam. ESP32 dengan Wi-Fi selalu menyala (rata-rata 100 mA) bertahan sekitar 20 jam. Tetapi kalau ESP32 bangun setiap 10 menit selama 3 detik, mengirim satu bacaan dengan 120 mA, lalu sleep dengan 10 µA selama 597 detik sisanya, arus rata-ratanya (3 × 120 + 597 × 0,01) / 600 ≈ 0,61 mA, dan baterai yang sama secara teori bertahan lebih dari 3000 jam, atau lebih dari empat bulan. Hasil itu butuh board hemat daya atau modul polos; regulator dan chip USB di DevKit standar menarik beberapa mA bahkan ketika sleep. Skenariomu sendiri bisa kamu hitung dengan alat daya tahan baterai.

Di mana posisi Raspberry Pi Pico?

Pilihan kuat ketiga adalah Raspberry Pi Pico. Chip RP2040-nya punya dua inti Cortex-M0+ 133 MHz, RAM 264 KB, dan flash 2 MB, dengan harga sekitar $4. Seperti ESP32, Pico bekerja di 3,3 V dan menawarkan 26 GPIO, tetapi hanya punya 3 input analog. Kekuatan terbesarnya adalah dukungan MicroPython yang sangat matang, pemasangan firmware yang mudah karena Pico muncul di komputer seperti flashdisk USB, dan unit bernama PIO yang menghasilkan protokol dengan timing presisi tanpa membebani prosesor. Kalau ingin nirkabel, pilih Pico W (Wi-Fi dan Bluetooth); untuk tenaga lebih, Pico 2 dengan chip RP2350. Detailnya ada di Apa Itu Raspberry Pi Pico?. Pembacaan potensiometer yang sama terlihat seperti ini di Pico dengan MicroPython (kaki tengah ke GP26, kaki luar ke 3V3 dan GND):

MicroPython
1from machine import ADC, Pin
2import time
3
4pot = ADC(26)                  # GP26 = ADC0, potansiyometre orta ucu / pot wiper
5led = Pin("LED", Pin.OUT)      # dahili LED (Pico ve Pico W) / onboard LED (Pico and Pico W)
6
7while True:
8    raw = pot.read_u16()                   # 0–65535 (12 bit ölçüm ölçeklenir / 12-bit reading, scaled)
9    volts = raw * 3.3 / 65535
10    print("Ham / raw:", raw, " Gerilim / voltage: {:.2f}".format(volts))
11    led.value(raw > 32767)                 # yarıdan fazlaysa yanar / on above half
12    time.sleep(0.25)

Harga dan kemudahan belajar

Harga saja jarang menjadi penentu. Uno R3 original harganya sekitar $25–30, sedangkan klon dengan chip USB CH340 dijual $5–10; DevKit ESP32 klon $4–8 dan Pico $4. Jadi hampir tidak ada selisih harga antara ESP32 dan klon Uno; biaya sebenarnya muncul di tambahan: memakai modul 5 V dengan ESP32 butuh beberapa resistor atau level shifter seharga $1–2, dan menambahkan Wi-Fi ke Uno butuh modul terpisah. Dari sisi belajar, Uno lebih unggul: kamu memilih board lalu klik Upload, pesan error dan contohnya tidak berubah selama bertahun-tahun, dan tidak ada ketidakcocokan tegangan dengan modul 5 V. Di ESP32, kamu harus menginstal paket board Espressif lebih dulu dan, kalau perlu, driver untuk chip USB-nya (CP2102 atau CH340), memilih model board yang benar, dan di beberapa board menahan tombol BOOT ketika upload; selain itu, beberapa contoh di internet ditulis untuk versi core lama dan mungkin tidak bisa dikompilasi (di core 3.x, misalnya, ledcAttach menggantikan ledcSetup). Hambatan ini butuh beberapa jam untuk dilewati, tetapi kalau kamu baru pertama kali merakit rangkaian, di Uno lebih mudah mengetahui apakah masalah datang dari kode atau dari pengkabelan.

Board mana untuk proyek apa?

ProyekBoard terbaikKenapa?
Pelajaran pertama dengan LED, tombol, dan buzzerArduino UnoPemaaf, 5 V, contohnya banyak
Mobil robot (L298N, HC-SR04)Arduino UnoLangsung bekerja dengan modul 5 V
Stasiun cuaca Wi-FiESP32Mengirim data ke ponselmu dan ke internet
Otomasi rumah pintar dengan relayESP32Integrasi web, MQTT, dan asisten suara
Remote Bluetooth dari ponselESP32BLE dan Bluetooth Classic sudah tertanam
Sensor jarak jauh bertenaga bateraiESP32 (board hemat daya)Deep sleep dan Wi-Fi yang menyala sebentar
Belajar PythonRaspberry Pi PicoMicroPython adalah warga kelas satu
Ratusan LED addressableESP32 atau PicoRAM melimpah, prosesor cepat
Streaming gambar dari kameraESP32-CAMKamera dan slot microSD di board
Shield motor dan shield 5 VArduino UnoShield dibuat untuk susunan pin Uno

Kesalahan dan salah paham yang umum

  • “ESP32 selalu lebih baik”: memang lebih bertenaga, tetapi pin 3,3 V, pin yang sensitif ketika boot, tombol BOOT, dan penurunan daya bisa membuat pemula kelelahan. Untuk belajar dasar, Uno lebih sedikit kejutannya.
  • Menghubungkan sensor 5 V langsung ke ESP32: menyambungkan sinyal 5 V seperti output ECHO HC-SR04 tanpa pembagi bisa merusak pin.
  • Membaca pin ADC2 ketika Wi-Fi menyala: GPIO 0, 2, 4, 12–15, dan 25–27 tidak membaca nilai analog selama Wi-Fi berjalan; pindahkan sensor ke GPIO 32–39.
  • Melupakan RAM Uno: kalau kode bisa dikompilasi tetapi board macet secara acak, mungkin RAM-nya habis; taruh teks tetap di dalam F("...") dan hindari menggabungkan String di dalam loop.
  • Memberi daya ESP32 dari USB yang lemah: kalau board restart ketika Wi-Fi mulai, pakai kabel data yang bagus dan adaptor yang memberikan minimal 1 A.
  • Tertukar antara Pico dan Pico W: Pico biasa tidak punya Wi-Fi; untuk proyek nirkabel, beli model dengan huruf W di namanya.
Jalan terbaik sering kali adalah mencoba keduanya: pelajari dasarnya dengan Uno (atau adiknya yang lebih kecil, Nano), lalu pindah ke ESP32 untuk proyek pertama yang butuh Wi-Fi. Sebagian besar kodemu bisa dipakai tanpa perubahan; yang berubah terutama nomor pin dan tegangan. DevKit ESP32 sering kali harganya hampir sama dengan klon Uno, jadi menambahkannya ke starter kit-mu adalah langkah yang masuk akal.

Singkatnya, Arduino Uno adalah board untuk belajar, ESP32 board untuk terhubung, dan Raspberry Pi Pico board untuk bereksperimen dengan Python. Kalau kamu penasaran model mana di keluarga Arduino yang cocok untukmu, lihat Arduino Mana yang Sebaiknya Kubeli?. Di aplikasi BlueGrays ada puluhan proyek untuk Arduino, ESP32, dan Pico, dari LED berkedip sampai web server Wi-Fi dan dari jam NTP sampai layar cuaca, masing-masing dengan skema rangkaian dan kode langkah demi langkah.

Pertanyaan umum

Apakah ESP32 lebih baik daripada Arduino?

Dari segi tenaga mentah, memori, dan konektivitas nirkabel, ya: ESP32 berjalan di 240 MHz dan punya RAM 520 KB, Wi-Fi, dan Bluetooth. Tetapi karena pin 3,3 V, GPIO yang dibatasi, dan proses boot yang lebih rumit, Arduino Uno lebih sedikit memberi kejutan bagi pemula. Mana yang lebih baik tergantung kebutuhan proyekmu.

Bisakah ESP32 diprogram dengan Arduino IDE?

Bisa. Setelah menambahkan paket board esp32 dari Espressif ke Arduino IDE, kamu bisa memprogram ESP32 dengan perintah Arduino. Fungsi seperti pinMode, digitalWrite, analogRead, Serial, dan Wire bekerja dengan cara yang sama; yang berubah kebanyakan hanya nomor pin dan level tegangan.

Apakah kode Arduino bisa jalan di ESP32?

Sebagian besar kode bisa jalan dengan sedikit perubahan. Kamu perlu menyesuaikan nomor pin untuk ESP32, memperhitungkan bahwa analogRead mengembalikan 0–4095, dan mengganti kode yang mengakses register khusus AVR atau library seperti SoftwareSerial dengan padanannya di ESP32.

Bisakah Wi-Fi ditambahkan ke Arduino Uno?

Bisa: modul seperti ESP-01 (ESP8266) dapat dipakai lewat port serial dengan perintah AT, atau kamu bisa membeli Uno R4 WiFi. Namun ESP-01 butuh catu 3,3 V dan penyesuaian level tegangan, dan RAM 2 KB di Uno kewalahan menangani tugas web. Karena itu, memakai ESP32 langsung lebih sederhana dan lebih murah dalam kebanyakan kasus.

Arduino atau Raspberry Pi Pico?

Untuk tetap di ekosistem Arduino dengan C/C++, bekerja dengan modul 5 V, dan menemukan contoh paling banyak, Arduino Uno lebih cocok; untuk memprogram dengan Python, harga murah, dan timing presisi dengan PIO, pilih Raspberry Pi Pico. Karena Pico bekerja di 3,3 V, kamu harus berhati-hati dengan sinyal 5 V, sama seperti di ESP32.

Bisakah ESP32 dipakai dengan sensor 5 V?

Kalau sensornya juga bisa bekerja di 3,3 V, solusi termudah adalah memberi dayanya dari pin 3V3. Untuk sensor yang hanya berjalan di 5 V dan mengeluarkan 5 V, pasang pembagi tegangan atau level shifter di jalur output-nya. Memberi 5 V langsung ke pin ESP32 bisa merusak chip-nya.

Lihat semua proyek
LED Berkedip
#1Pemula

LED Berkedip

"Halo" pertama di dunia elektronika: menyalakan dan mematikan satu LED. Arduino menyalakan dan mematikan LED dengan jeda singkat, sehingga cahayanya berkedip cepat. Kamu melihat dengan cara paling sed

4.6(188)
1127
LED Berkedip dengan ESP32
#103Pemula

LED Berkedip dengan ESP32

Mengajarkan penggunaan output GPIO dasar dengan ESP32. Kita membuat efek berkedip dengan menyalakan dan mematikan LED dari pin digital. Versi ESP32 dari proyek blink klasik di Arduino UNO; perintah blink dasar di lingkungan Arduino sama, tetapi susunan pin ESP32 dan level GPIO 3,3 V-nya berbeda dengan Arduino UNO.

4.7(37)
99
Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W)
#147Pemula

Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W)

Proyek pembuka seri Raspberry Pi Pico! Kita mengedipkan LED hijau bawaan untuk memastikan board bekerja; percobaan "Hello World" klasik. TANPA komponen eksternal, hanya Pico dan kabel USB. Kodenya ditulis dalam MicroPython (bahasa resmi dari Raspberry Pi Foundation). Pelajari kelas machine.Pin, mode Pin.OUT, metode led.on()/off(), dan time.sleep() di Thonny IDE, dan ikuti setiap perubahan di output Serial (REPL). Juga pas untuk menguji firmware MicroPython.

5.0(1)
10
Suhu dan Kelembapan dengan DHT11
#55Menengah

Suhu dan Kelembapan dengan DHT11

Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

4.7(47)
73
Kendali Kecerahan LED dengan Potensiometer ESP32 (Analog → PWM)
#115Menengah
Premium

Kendali Kecerahan LED dengan Potensiometer ESP32 (Analog → PWM)

Di proyek ini, kita mengendalikan kecerahan LED secara analog memakai potensiometer. Pin ADC ESP32 membaca tegangan 0-3,3V dari potensiometer, lalu nilai ini diubah menjadi sinyal PWM (Pulse Width Modulation) dan dikirim ke LED. Hasilnya, ketika kamu memutar potensiometer, LED perlahan menerang dan meredup. Dengan Arduino Core 3.0+, analogWrite() bisa langsung dipakai; di ESP32-S2/S3, resolusi ADC tetap 12-bit.

4.5(19)
32
Koneksi Wi-Fi STA ESP32 (dengan Layar LCD)
#127Mahir

Koneksi Wi-Fi STA ESP32 (dengan Layar LCD)

Di proyek ini, kita menyambungkan ESP32 ke jaringan Wi-Fi rumah dalam mode Station (STA) dengan cara yang aman dan tahan gangguan. Kita menyimpan SSID dan kata sandi di file secrets.h terpisah agar tidak bocor ke Git, menyiapkan mekanisme sambung ulang otomatis, dan menampilkan tingkat sinyal RSSI dan alamat IP di layar LCD I2C. LED bawaan bekerja sebagai indikator status. Ini adalah pengelola koneksi kelas produksi.

4.4(21)
34
Web Server Asinkron ESP32 (dengan Tampilan IP di LCD)
#129Mahir

Web Server Asinkron ESP32 (dengan Tampilan IP di LCD)

Di proyek ini, kita mengubah ESP32 menjadi web server asinkron yang bisa kamu kendalikan dari ponsel atau komputer di jaringan Wi-Fi yang sama. Berkat library ESPAsyncWebServer, server bisa memproses beberapa permintaan bersamaan (berbeda dengan WebServer.h klasik, yang memblokir pada satu permintaan). Kamu bisa membuka alamat IP ESP32 di browser dan mengklik tombol ON/OFF (rute /on dan /off) untuk menyalakan dan mematikan LED yang tersambung ke GPIO 5.

4.8(16)
26
HTTPClient + API Cuaca ESP32 (dengan Layar LCD)
#133Mahir
Premium

HTTPClient + API Cuaca ESP32 (dengan Layar LCD)

Di proyek ini, kita memakai ESP32 untuk melakukan panggilan REST API ke API cuaca (wttr.in) lewat internet dengan HTTPClient.h. Kita mengurai respons JSON yang diterima dengan ArduinoJson v7 dan menampilkan kota, suhu, kelembapan, cuaca, dan informasi angin di layar LCD I2C dalam bahasa Turki dan Inggris. wttr.in gratis dan tidak butuh kunci API; kamu cukup memasukkan nama kota apa pun untuk mengambil kondisi cuaca terkini kota itu. Data diperbarui otomatis setiap 30 menit.

4.7(13)
20