Waveshare ESP32-S3-Relay-1CH: Pinout, Wiring & Program Arduino Lengkap

Spesifikasi, wiring, dan contoh program Arduino

Waveshare ESP32-S3-Relay-1CH adalah modul relay 1 kanal berbasis ESP32-S3 yang dapat Anda kendalikan lewat WiFi, Bluetooth, sekaligus RS485, dan tetap rapi saat Anda pasang di panel listrik berkat casing DIN rail. Modul ini menggabungkan mikrokontroler ESP32-S3, satu kanal relay 10A, dan antarmuka RS485 terisolasi dalam satu perangkat yang kokoh. Cocok untuk otomasi rumah, kontrol pompa, lampu gedung, hingga proyek Industrial IoT (IIoT).

Di artikel ini kita akan membahas spesifikasi Waveshare ESP32-S3-Relay-1CH, anatomi terminal, pinout GPIO, wiring beban AC dan DC, cara setup Arduino IDE, hingga contoh program untuk mengendalikan relay lewat WiFi dan RS485.

Waveshare ESP32-S3-Relay-1CH modul relay WiFi, Bluetooth dan RS485 dengan casing DIN rail

Apa Itu Waveshare ESP32-S3-Relay-1CH?

ESP32-S3-Relay-1CH adalah modul relay 1 kanal berbasis chip ESP32-S3 (prosesor dual-core Xtensa LX7 hingga 240 MHz) dengan konektivitas WiFi 2.4 GHz dan Bluetooth 5 (LE). Jika masih menimbang antara Arduino dan ESP32, baca dulu perbandingan Arduino vs ESP32 untuk project IoT. Yang membuatnya berbeda dari modul relay ESP32 biasa adalah desainnya yang berorientasi industri:

  • Casing plastik untuk pemasangan di rel DIN 35 mm, jadi bisa langsung masuk panel.
  • Antarmuka RS485 terisolasi dengan proteksi dioda TVS, siap terhubung ke PLC, HMI, atau perangkat Modbus.
  • Relay dengan isolasi optocoupler, serta isolasi daya dan isolasi digital untuk melindungi mikrokontroler dari gangguan.
  • Semua terminal berupa screw terminal (terminal baut), lebih aman dan rapi dibanding kabel jumper.

Spesifikasi Waveshare ESP32-S3-Relay-1CH

ParameterKeterangan
MikrokontrolerESP32-S3 (default ESP32-S3R8), dual-core Xtensa 32-bit LX7, hingga 240 MHz
WirelessWiFi 2.4 GHz 802.11 b/g/n dan Bluetooth 5 (LE)
Relay1 kanal, kontak NO (Normally Open), maks. 10A 250VAC / 10A 30VDC
Komunikasi industriRS485 terisolasi, proteksi TVS, resistor terminasi 120Ω via jumper
Catu daya5V DC melalui USB Type-C atau terminal baut
EkspansiKonektor SH1.0 4-pin: GND, 3V3, GPIO2, GPIO1
GPIO pentingRelay: GPIO47 · RS485 TX: GPIO17 · RS485 RX: GPIO18 · RS485 EN: GPIO21
Indikator LEDPWR (merah), Relay, RS485 (hijau saat kirim / biru saat terima)
CasingRail-mount DIN 35 mm
Dimensi91,6 × 23,3 × 58,7 mm

Anatomi Terminal dan Konektor

Mengacu pada gambar di atas, berikut fungsi setiap terminal pada modul:

1. Terminal Daya 5V (GND – VCC)

Terletak di sisi atas modul. Hubungkan ke power supply 5V DC (misalnya PSU DIN rail 5V). Perhatikan polaritas: GND ke negatif, VCC ke positif. Jangan memberi tegangan 12V atau 24V langsung ke terminal ini.

2. Port USB Type-C

Berfungsi ganda sebagai sumber daya dan jalur upload program ke ESP32-S3. Saat pengembangan di meja kerja, cukup gunakan kabel Type-C tanpa power supply tambahan.

3. Konektor SH1.0 (GND, 3V3, IO2, IO1)

Konektor kecil 4-pin untuk ekspansi. Anda dapat memakai dua pin GPIO (GPIO1 dan GPIO2) untuk sensor sederhana, tombol, atau komunikasi tambahan seperti I2C. Pin 3V3 dapat menyuplai sensor berdaya rendah.

4. Terminal Relay (NO – COM)

Terletak di sisi bawah modul. Relay bekerja sebagai saklar: saat relay aktif, COM terhubung ke NO dan beban menyala. Kapasitas maksimum 10A pada 250VAC atau 30VDC.

5. Terminal RS485 (B- – A+)

Untuk komunikasi serial industri. Hubungkan A+ ke A/D+ dan B- ke B/D- pada perangkat lain (PLC, USB-to-RS485, HMI, dsb.). Jika modul berada di ujung jaringan RS485, aktifkan resistor terminasi 120Ω melalui jumper.

Pinout dan Alokasi GPIO ESP32-S3-Relay-1CH

Di dalam casing, board ESP32-S3-Relay-1CH memiliki header pin yang memetakan GPIO ESP32-S3. Namun untuk pemakaian sehari-hari, Anda perlu mengetahui GPIO yang sudah menjalankan fungsi bawaan modul:

Pinout dan alokasi GPIO Waveshare ESP32-S3-Relay-1CH: GPIO47 relay, GPIO17 RS485 TX, GPIO18 RS485 RX, GPIO21 RS485 EN
Pinout header internal dan alokasi GPIO ESP32-S3-Relay-1CH (sumber: Waveshare).
GPIOFungsiKeterangan
GPIO47Kontrol relayHIGH = relay aktif (COM–NO terhubung), LOW = relay mati
GPIO17RS485 TXData keluar ke transceiver RS485
GPIO18RS485 RXData masuk dari transceiver RS485
GPIO21RS485 ENPengatur arah kirim/terima (half-duplex)
GPIO1Konektor SH1.0Bebas untuk sensor, tombol, I2C, dsb.
GPIO2Konektor SH1.0Bebas untuk sensor, tombol, I2C, dsb.
GPIO43 / GPIO44TXD / RXD (UART0)Serial debug di header internal
GPIO19 / GPIO20USB D- / D+Milik port USB Type-C, hindari untuk I/O

Header internal juga mengeluarkan IO3–IO14 serta pin 3V3, 5V, dan GND. Namun, Anda hanya bisa mengakses pin-pin ini dengan membuka casing. Oleh karena itu, untuk pemasangan di panel sebaiknya gunakan GPIO1 dan GPIO2 pada konektor SH1.0.

Wiring ESP32-S3-Relay-1CH: Beban AC 220V dan DC 30V

Diagram wiring ESP32-S3-Relay-1CH untuk beban AC 220V (lampu) dan DC 30V (solenoid valve)
Contoh wiring beban AC 220V (kiri) dan DC 30V (kanan) (sumber: Waveshare).

Pada kedua skema, modul relay selalu mendapat catu daya terpisah 5V DC di terminal atas (GND dan VCC). Relay mengendalikan beban melalui terminal COM dan NO di bagian bawah, yang berfungsi seperti saklar dan memutus kabel positif atau fasa.

A. Beban AC 220V (contoh: lampu)

  1. Pertama, hubungkan power supply 5V DC ke terminal GND (–) dan VCC (+) modul.
  2. Kemudian, sambungkan kabel fasa (L) dari sumber AC 220V ke terminal COM.
  3. Setelah itu, sambungkan terminal NO ke salah satu kaki lampu.
  4. Selanjutnya, sambungkan kaki lampu yang lain langsung ke kabel netral (N).
  5. Akhirnya, saat GPIO47 = HIGH, relay menutup COM–NO dan lampu menyala.

B. Beban DC hingga 30V (contoh: solenoid valve)

  1. Pertama, hubungkan power supply 5V DC ke terminal GND dan VCC modul.
  2. Kemudian, sambungkan kutub (+) power supply beban (maks. 30VDC) ke terminal COM.
  3. Setelah itu, sambungkan terminal NO ke kabel positif solenoid valve.
  4. Selanjutnya, sambungkan kabel negatif solenoid valve langsung ke kutub (–) power supply beban.
  5. Selain itu, untuk beban induktif DC seperti solenoid atau coil, pasang dioda flyback (misalnya 1N4007) paralel dengan beban untuk meredam lonjakan tegangan.

C. Wiring RS485

  • Terminal A+ ke A/D+ perangkat lain, terminal B- ke B/D- perangkat lain.
  • Selain itu, gunakan kabel twisted pair. Untuk jarak jauh, gunakan kabel ber-shield.
  • Jika komunikasi tidak stabil atau gagal, pindahkan jumper ke posisi 120R untuk mengaktifkan resistor terminasi.

⚠️ Peringatan keselamatan: lakukan pekerjaan tegangan 220VAC hanya dalam kondisi MCB OFF, menggunakan kabel sesuai standar, dan sebaiknya oleh orang yang memahami instalasi listrik. Untuk beban induktif besar (motor, pompa, kompresor), gunakan relay sebagai pengendali coil kontaktor, bukan untuk menyambung beban secara langsung.

Cara Setup Arduino IDE untuk ESP32-S3-Relay-1CH

Anda dapat memprogram modul ini menggunakan Arduino IDE maupun ESP-IDF. Berikut langkah setup Arduino IDE sesuai panduan Wiki Waveshare. Jika baru mengenal Arduino IDE, mulailah dari panduan Belajar Arduino dari Nol, dan temukan tutorial lainnya di halaman Tutorial ESP32.

Langkah 1 – Install Arduino IDE

Unduh Arduino IDE dari situs resmi Arduino sesuai sistem operasi Anda, lalu install dengan pengaturan default.

Langkah 2 – Install Board ESP32

  1. Pertama, buka File → Preferences, lalu pada kolom Additional Boards Manager URLs tambahkan:
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. Kemudian, buka Tools → Board → Boards Manager, cari esp32.
  3. Setelah itu, install esp32 by Espressif Systems versi 3.0.x (versi rekomendasi Waveshare).

Langkah 3 – Install Library Pendukung

Melalui Tools → Manage Libraries, install library berikut (program demo Waveshare membutuhkannya):

LibraryVersiFungsi
ArduinoJson6.21.4Pengolahan data JSON
PubSubClient2.8.0Komunikasi MQTT (publish/subscribe)
NTPClient3.2.1Sinkronisasi waktu via internet

Langkah 4 – Pengaturan Board

  1. Pertama, hubungkan modul ke komputer menggunakan kabel USB Type-C.
  2. Kemudian, pilih Tools → Board → esp32 → ESP32S3 Dev Module.
  3. Setelah itu, pilih port COM yang muncul di Tools → Port.
  4. Selain itu, aktifkan USB CDC On Boot: Enabled agar Serial Monitor bisa membaca output melalui port USB Type-C.
  5. Sementara itu, pengaturan lain (Flash Size, Partition, PSRAM) cukup biarkan default, kecuali program Anda membutuhkan memori lebih besar.

Langkah 5 – Upload Program

  1. Pertama, klik Verify untuk compile, lalu Upload. Compile pertama biasanya lama, ini normal.
  2. Jika upload gagal atau port tidak terdeteksi, masuk ke download mode: tekan dan tahan BOOT, tekan RESET, lepas RESET, lalu lepas BOOT. Setelah itu upload ulang.
  3. Terakhir, setelah upload berhasil, tekan RESET agar program berjalan.

Program Demo Resmi Waveshare

Waveshare menyediakan empat program demo yang dapat Anda unduh dari Wiki:

DemoModeYang perlu diubah
01_MAIN_WIFI_APESP32-S3 menjadi Access Point. Kontrol via Web, Bluetooth, dan RS485.Tidak ada, bisa langsung di-upload.
02_MAIN_WIFI_STAESP32-S3 terhubung ke router WiFi. Web dapat diakses dari jaringan yang sama.SSID dan password WiFi.
03_MAIN_WIFI_MQTTKontrol jarak jauh melalui MQTT cloud.SSID, password, dan data broker MQTT.
04_MAIN_ALLGabungan semua metode kontrol.SSID, password, dan data broker MQTT.

Catatan: Waveshare sudah tidak lagi mengelola Waveshare Cloud yang menjadi tujuan demo MQTT. Oleh karena itu, gunakan broker MQTT lain, misalnya Mosquitto lokal, HiveMQ, atau EMQX.

Kontrol via Web

  • Mode AP (demo 01): sambungkan HP atau laptop ke WiFi milik modul, lalu buka alamat IP modul di browser (lihat di Serial Monitor).
  • Mode STA (demo 02): HP/laptop harus berada di jaringan WiFi yang sama dengan modul. Alamat IP modul tampil di Serial Monitor.

Kontrol via Bluetooth

Gunakan aplikasi nRF Connect di HP. Hubungkan ke perangkat, lalu kirim data dalam format hex. Contoh: 06 01 untuk toggle relay CH1.

Kontrol via RS485

Hubungkan modul ke PC melalui konverter USB-to-RS485 (A+ ke A+, B- ke B-). Buka software serial terminal (misalnya SSCOM atau Docklight) dengan baud rate 9600, lalu kirim perintah hex berikut:

Perintah (hex)Fungsi
06 01Toggle relay CH1 (ON ↔ OFF)
06 09Semua relay ON
06 0ASemua relay OFF

Jika modul tidak merespons perintah, periksa kembali polaritas A+/B- dan pindahkan jumper ke posisi 120R.

Contoh Program 1: Kontrol Relay Lewat Web Browser

Jika ingin membuat program sendiri, berikut contoh sederhana. ESP32-S3 akan menjadi WiFi Access Point. Sambungkan HP ke WiFi BisaIoT-Relay, lalu buka 192.168.4.1 di browser untuk menyalakan dan mematikan relay.

#include <WiFi.h>
#include <WebServer.h>

#define RELAY_PIN 47   // GPIO kontrol relay ESP32-S3-Relay-1CH

const char* ssid     = "BisaIoT-Relay";
const char* password = "12345678";

WebServer server(80);
bool relayOn = false;

String halaman() {
  String s = "<html><head><meta name='viewport' content='width=device-width'></head>";
  s += "<body style='font-family:sans-serif;text-align:center'>";
  s += "<h2>ESP32-S3 Relay 1CH</h2>";
  s += "<p>Status: <b>" + String(relayOn ? "ON" : "OFF") + "</b></p>";
  s += "<a href='/on'><button>ON</button></a> ";
  s += "<a href='/off'><button>OFF</button></a>";
  s += "</body></html>";
  return s;
}

void setRelay(bool on) {
  relayOn = on;
  digitalWrite(RELAY_PIN, on ? HIGH : LOW);
  server.send(200, "text/html", halaman());
}

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);   // relay OFF saat start

  WiFi.softAP(ssid, password);
  Serial.print("IP Access Point: ");
  Serial.println(WiFi.softAPIP());

  server.on("/",    []() { server.send(200, "text/html", halaman()); });
  server.on("/on",  []() { setRelay(true);  });
  server.on("/off", []() { setRelay(false); });
  server.begin();
}

void loop() {
  server.handleClient();
}

Contoh Program 2: Kontrol Relay Lewat RS485

Program berikut membaca perintah teks dari RS485 (baud rate 9600). Kirim ON atau OFF dari PC melalui konverter USB-to-RS485, dan modul akan membalas status relay. Driver UART mengatur pin EN (GPIO21) secara otomatis dalam mode RS485 half-duplex.

#define RELAY_PIN   47
#define RS485_TX    17
#define RS485_RX    18
#define RS485_EN    21

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);

  Serial1.begin(9600, SERIAL_8N1, RS485_RX, RS485_TX);
  Serial1.setPins(RS485_RX, RS485_TX, -1, RS485_EN);   // RTS = pin EN
  Serial1.setMode(UART_MODE_RS485_HALF_DUPLEX);
}

void loop() {
  if (Serial1.available()) {
    String cmd = Serial1.readStringUntil('\n');
    cmd.trim();
    cmd.toUpperCase();

    if (cmd == "ON") {
      digitalWrite(RELAY_PIN, HIGH);
      Serial1.println("RELAY:ON");
    } else if (cmd == "OFF") {
      digitalWrite(RELAY_PIN, LOW);
      Serial1.println("RELAY:OFF");
    } else {
      Serial1.println("ERR: kirim ON atau OFF");
    }
  }
}

Untuk aplikasi industri, Anda dapat mengembangkan program ini menjadi Modbus RTU slave (misalnya dengan library modbus-esp8266 atau eModbus), sehingga PLC atau HMI bisa langsung membaca dan menulis relay sebagai coil. Selain itu, pelajari contoh penerapan Modbus RTU melalui RS485 pada PLC di artikel Modbus RTU dari Schneider M241.

Ide Aplikasi

  • Smart building: kontrol lampu koridor atau papan reklame terjadwal lewat WiFi.
  • Pompa air otomatis: mengendalikan coil kontaktor pompa berdasarkan data sensor level.
  • Remote I/O untuk PLC: PLC mengendalikan relay tambahan melalui RS485/Modbus.
  • Gateway IIoT: menjembatani perangkat RS485 lama ke cloud melalui MQTT.
  • Home automation: integrasi dengan Home Assistant, Node-RED, atau n8n.

Kelebihan dan Kekurangan ESP32-S3-Relay-1CH

Kelebihan:

  • Tiga jalur kontrol dalam satu modul: WiFi, Bluetooth, dan RS485.
  • Casing DIN rail dan terminal baut, siap pakai di panel.
  • Proteksi berlapis: optocoupler, isolasi daya, isolasi digital, dan TVS.
  • Mendukung Arduino IDE dengan empat program demo resmi (WiFi AP, WiFi STA, MQTT, dan gabungan).

Kekurangan:

  • Hanya tersedia kontak NO (tidak ada NC).
  • Catu daya harus 5V DC; sistem panel 24V memerlukan konverter DC-DC.
  • Hanya 1 kanal. Untuk kebutuhan lebih banyak, pertimbangkan varian ESP32-S3-Relay-6CH.

FAQ Seputar Waveshare ESP32-S3-Relay-1CH

GPIO berapa yang mengontrol relay pada Waveshare ESP32-S3-Relay-1CH?

GPIO47 mengontrol relay. Logika HIGH mengaktifkan relay (COM terhubung ke NO), sedangkan LOW mematikan relay.

Berapa tegangan catu daya ESP32-S3-Relay-1CH?

Modul membutuhkan 5V DC, bisa melalui port USB Type-C atau terminal baut GND–VCC. Namun, untuk panel 24V, gunakan konverter DC-DC 24V ke 5V.

Berapa beban maksimum relay ESP32-S3-Relay-1CH?

Kontak relay tipe NO dengan rating maksimum 10A 250VAC atau 10A 30VDC. Oleh karena itu, untuk motor atau pompa berdaya besar, gunakan relay untuk mengendalikan coil kontaktor.

Apakah ESP32-S3-Relay-1CH bisa dipakai sebagai Modbus RTU slave?

Bisa, dengan firmware buatan sendiri. Antarmuka RS485 terhubung ke GPIO17 (TX), GPIO18 (RX), dan GPIO21 (EN), sehingga Anda dapat memakainya dengan library Modbus RTU untuk ESP32.

Kenapa ESP32-S3-Relay-1CH gagal upload atau tidak terdeteksi?

Masuk ke download mode dengan menahan tombol BOOT lalu menekan RESET. Selain itu, pastikan Anda memakai kabel USB data (bukan kabel charge saja) dan aktifkan opsi USB CDC On Boot.

Apa beda ESP32-S3-Relay-1CH dengan ESP32-S3-Relay-6CH?

Perbedaan utamanya pada jumlah kanal relay: 1CH memiliki satu relay dalam casing ramping, sedangkan 6CH memiliki enam relay untuk kebutuhan kontrol yang lebih banyak.

Kesimpulan

Waveshare ESP32-S3-Relay-1CH adalah pilihan tepat untuk siapa saja yang ingin membawa proyek ESP32 dari breadboard ke panel listrik sungguhan. Kombinasi WiFi, Bluetooth, RS485 terisolasi, dan casing DIN rail menjadikannya jembatan ideal antara dunia maker dan dunia otomasi industri.

Ingin belajar lebih dalam tentang ESP32, RS485, Modbus, dan IIoT? Dapatkan hardware pilihan di Toko bisaioti.com dan ikuti Kursus IoT bisaioti.com yang praktis. Beli hardware, dapat e-course gratis!

Referensi: Waveshare Wiki ESP32-S3-Relay-1CH dan halaman produk Waveshare.

Related Articles

Chat Langsung dengan Kami
Staff bisaioti 1 — +62 823-3306-4821 E-Course, Offline Course, Hardware & Teknis IoT/OT Staff bisaioti 2 — +62 823-3306-4821 Training Korporat & Toko Hardware