Komunikasi Modbus RTU ESP32 ke Modbus Poll Menggunakan Converter TTL to RS485

Pendahuluan
Modbus RTU adalah protokol komunikasi industri yang banyak digunakan untuk menghubungkan perangkat seperti PLC, sensor, dan mikrokontroler dalam sistem otomasi. ESP32, sebagai mikrokontroler yang mendukung berbagai protokol komunikasi, dapat digunakan sebagai slave atau master dalam sistem Modbus RTU.
Dalam panduan ini, kita akan membahas cara menghubungkan ESP32 ke software Modbus poll/slave menggunakan converter TTL to RS485. Modbus Poll adalah software yang sering digunakan untuk menguji komunikasi Modbus dengan perangkat slave.sedangkan modbus slave digunakan untuk menguji komunikasi modbus dengan master
No | Materi | Tanggal | Waktu | Harga | Lokasi | View | Action |
---|---|---|---|---|---|---|---|
1 | IOT PLC SCADA Siemens | 7-8 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
2 | IOT PLC SCADA Omron | 14 - 15 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
3 | IOT PLC SCADA Schneider | 21-22 Juni 2025 | 08.00 -16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
4 | IOT PLC SCADA Allen Bradley | 28-29 Juni 2025 | 08.00-16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
Peralatan yang Dibutuhkan
Sebelum memulai, pastikan Anda memiliki perangkat berikut:
- ESP32 (sebagai perangkat Modbus RTU slave atau master)
- Converter TTL to RS485 (untuk mengubah sinyal ESP32 ke RS485)
- USB to RS485 Adapter (untuk menghubungkan ke komputer)
- Modbus Poll/Slave Software (untuk menguji komunikasi)
- Resistor 120Ω (opsional, jika diperlukan untuk terminasi)
- Jumper wire (untuk koneksi antara ESP32 dan converter TTL to RS485)
Diagram Koneksi ESP32 ke Converter TTL to RS485

Berikut adalah koneksi dasar antara ESP32 dan converter TTL to RS485:
- ESP32 RX (GPIO 16) → TX pada Converter TTL to RS485
- ESP32 TX (GPIO 17) → RX pada Converter TTL to RS485
- ESP32 DE/RE (GPIO 4) → DE/RE pada Converter TTL to RS485
- GND ESP32 → GND Converter TTL to RS485
Koneksi antara USB to RS485 Adapter ke converter TTL to RS485:

- A (USB to RS485 Adapter) → A (Converter TTL to RS485)
- B (USB to RS485 Adapter) → B (Converter TTL to RS485)
Instalasi Modbus Poll dan Pengaturan Komunikasi
- Unduh dan instal Modbus Poll dari website resminya.
- Hubungkan USB to RS485 Adapter ke komputer.
- Cek nomor COM Port yang digunakan dengan membuka Device Manager di Windows.
- Buka Modbus Poll/Slave dan buat koneksi baru dengan parameter berikut:
- Protocol: Modbus RTU
- Port: (Pilih COM yang sesuai)
- Baudrate: 9600 (atau sesuaikan dengan kode ESP32)
- Data Bits: 8
- Parity: None
- Stop Bits: 1
Kode Program ESP32 untuk Komunikasi Modbus RTU
1. Instalasi Library ModbusRTU
Sebelum memulai coding, pastikan Anda menginstal library ModbusRTU di Arduino IDE:
- Buka Arduino IDE
- Pergi ke Library Manager (Ctrl + Shift + I)
- Cari “ModbusRTU” dan instal
2. Kode Program ESP32 sebagai Modbus RTU as slave
ESP32 Sebagai Master
#include "DFRobot_RTU.h" #include <HardwareSerial.h> #define RX_PIN 17  // RX ke RS485 #define TX_PIN 16  // TX ke RS485 #define SLAVE_ID 1 // ID dari Slave (sesuaikan dengan device atau software yang digunakan) // Gunakan UART1 untuk komunikasi RS485 HardwareSerial mySerial(1); DFRobot_RTU modbus(&mySerial); void setup() {   Serial.begin(115200);   mySerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);  // Sesuaikan baudrate dengan Slave   Serial.println("Modbus RTU Master Initialized."); } void loop() {   uint16_t data[2];  // Buffer untuk menyimpan nilai dari register slave   // Membaca Holding Register dari Slave   uint8_t status = modbus.readInputRegister(SLAVE_ID, 8, data, 2);     if (status == 0) {  // Jika pembacaan berhasil     int data1 = data[0];  // data dari modbus slave     int data2 = data[1];  // data dari modbus slave     Serial.print("Data1 : ");     Serial.println(data1);     Serial.print("Data2 : ");     Serial.println(data2);   } else {     Serial.println("Failed to read from Slave");   }   delay(2000);  // Jeda sebelum pembacaan berikutnya }
ESP32 sebagai Slave
#include <ModbusRTUSlave.h>
#include <HardwareSerial.h> #define RX_PIN 17  // RX ke RS485 #define TX_PIN 16  // TX ke RS485 #define SLAVE_ID 1 // ID Slave Modbus HardwareSerial mySerial(1); ModbusRTUSlave modbus(mySerial); uint16_t holdingRegs[10]; // Buffer register void setup() {   Serial.begin(115200);   mySerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);  // Sesuaikan baudrate   // Perbaikan: Gunakan 3 parameter untuk fungsi begin()   modbus.begin(SLAVE_ID, 9600, SERIAL_8N1);    modbus.configureHoldingRegisters(holdingRegs, 10); // 10 register   Serial.println("Modbus RTU Slave Initialized."); } void loop() {   modbus.poll();   // Simulasi perubahan data setiap 5 detik   static uint32_t lastUpdate = 0;   if (millis() - lastUpdate > 5000) {     lastUpdate = millis();     holdingRegs[0] = random(20, 30); // Suhu     holdingRegs[1] = random(50, 70); // Kelembaban     Serial.print("Update Data - Temp: ");     Serial.print(holdingRegs[0]);     Serial.print("°C, Hum: ");     Serial.print(holdingRegs[1]);     Serial.println("%");   } }
Â
3. Pengujian dengan Modbus Poll/Slave
- Jalankan Modbus Poll/Slave
- Buka menu “Connection” → “Connect” dan pastikan komunikasi berhasil
- Buka menu “Read/Write Definition” untuk membaca register dari ESP32
- Masukkan parameter berikut:
- Address: 1
- Function: 03 (Read Holding Registers)
- Start Address: 0
- Quantity: 10
- Jika konfigurasi benar, Modbus Poll akan menampilkan data dari ESP32
Troubleshooting
Jika komunikasi gagal, periksa beberapa hal berikut:
- Pastikan baudrate di kode ESP32 dan Modbus Poll/Slave sama
- Cek koneksi kabel, terutama A dan B pada RS485
- Gunakan resistor terminasi 120Ω jika jaringan RS485 panjang
- Gunakan Serial Monitor Arduino IDE untuk mengecek apakah ESP32 berjalan dengan benar
Kesimpulan
Dalam panduan ini, kita telah membahas bagaimana cara menghubungkan ESP32 dengan Modbus Poll/Slave menggunakan komunikasi Modbus RTU melalui RS485. Dengan konfigurasi yang tepat, ESP32 dapat berfungsi sebagai slave Modbus RTU dan berkomunikasi dengan perangkat lain seperti komputer atau PLC.
Panduan ini sangat berguna bagi engineer dan pengembang IoT yang ingin mengimplementasikan komunikasi Modbus RTU dalam proyek industri dan otomasi. Jika Anda memiliki pertanyaan atau kendala, silakan tinggalkan komentar di bawah!