Alvoria Neura


Komunikasi Serial Master Slave Tx Rx Esp8266 Nodemcu V3

Tutorial: Komunikasi Antara Dua Modul ESP8266 NodeMCU V3 Menggunakan Pin TX dan RX sebagai Master dan Slave

Penjelasan Dasar Tentang Komunikasi Serial (TX dan RX)

Komunikasi serial adalah cara mengirimkan data bit demi bit melalui satu jalur transmisi. Di ESP8266, komunikasi serial ini menggunakan pin TX (untuk pengiriman data) dan RX (untuk penerimaan data). Pin TX di satu modul akan mengirimkan data ke pin RX modul lainnya, yang memungkinkan kedua modul berkomunikasi satu sama lain.

Komunikasi antara dua modul ESP8266 NodeMCU V3 dapat dilakukan menggunakan berbagai metode, seperti Wi-Fi, I2C, SPI, dan serial. Pada tutorial ini, kita akan membahas cara komunikasi antar dua modul ESP8266 NodeMCU V3 menggunakan komunikasi serial melalui pin TX dan RX. Modul pertama akan berperan sebagai master, dan modul kedua sebagai slave. Kedua modul akan berkomunikasi menggunakan UART (Universal Asynchronous Receiver-Transmitter), yang memanfaatkan pin TX (Transmitter) dan RX (Receiver) untuk mengirim dan menerima data.

Tujuan:

  • Master: Mengirimkan data ke slave.
  • Slave: Menerima data dari master dan memberikan respons balik.

1. Komponen yang Dibutuhkan:

Sebelum kita mulai, pastikan Anda memiliki:

  • 2 buah ESP8266 NodeMCU V3
  • Kabel jumper (untuk menghubungkan pin TX dan RX antar ESP8266)
  • Komputer dengan Arduino IDE untuk memprogram kedua modul ESP8266
  • Kabel USB untuk menghubungkan ESP8266 ke komputer

2. Wiring (Diagram / Skema Koneksi)

Koneksi antara kedua modul ESP8266 adalah sebagai berikut:

ESP8266 (Master) ESP8266 (Slave)
TX D1 RX D2
RX D2 TX D1
GND GND

3. Instalasi dan Persiapan

Sebelum menulis kode, pastikan Anda sudah:

  1. Menginstal Arduino IDE: Pastikan Anda sudah menginstal Arduino IDE terbaru di komputer Anda. Anda bisa mendownloadnya di sini.
  2. Instalasi ESP8266 Board pada Arduino IDE:

    • Buka Arduino IDE.
    • Pilih File > Preferences dan tambahkan URL berikut ke dalam "Additional Boards Manager URLs":
    • http://arduino.esp8266.com/stable/package_esp8266com_index.json

    • Pilih Tools > Board > Boards Manager....
    • Cari "ESP8266" dan klik "Install".
  3. Pilih Board ESP8266:

    • Pilih Tools > Board > NodeMCU 1.0 (ESP-12E Module).

4. Kode untuk Master (ESP8266 NodeMCU V3)

Pada kode master, ESP8266 akan mengirimkan data menggunakan komunikasi serial. Kami akan menggunakan Serial.write() untuk mengirim data ke slave dan menunggu respons.


#include <;SoftwareSerial.h>

// Inisialisasi komunikasi serial di pin D1 (TX) dan D2 (RX)
SoftwareSerial mySerial(D1, D2);  // RX, TX

void setup() {
    // Memulai komunikasi serial
    Serial.begin(9600);  // Serial Monitor
    mySerial.begin(9600); // Komunikasi serial dengan slave

    Serial.println("ESP8266 Master is ready...");
}

void loop() {
    // Mengirim data dari master ke slave
    Serial.println("Sending data to slave...");
    mySerial.println("Hello, Slave!");  // Mengirim pesan ke slave
    
    // Menunggu respon dari slave
    if (mySerial.available()) {
    String received = mySerial.readString();  // Membaca data yang diterima
    Serial.print("Received from Slave: ");
    Serial.println(received);  // Menampilkan data dari slave
    }

    delay(1000);  // Delay untuk pengiriman selanjutnya
}

Penjelasan Kode Master:

  1. MSoftwareSerial: Digunakan untuk membuat komunikasi serial di pin selain pin UART default (D0 dan D1). Di sini kita menggunakan pin D1 untuk TX dan pin D2 untuk RX.
  2. Serial.begin(9600): Memulai komunikasi serial dengan kecepatan 9600 bps untuk monitor serial di komputer.
  3. mySerial.begin(9600): Memulai komunikasi serial dengan slave menggunakan baudrate yang sama.
  4. mySerial.println("Hello, Slave!"): Mengirimkan data ke slave.
  5. mySerial.available(): Mengecek apakah ada data yang diterima dari slave.
  6. mySerial.readString(): Membaca data yang diterima dari slave dan mengubahnya menjadi string.

5. Kode untuk Slave (ESP8266 NodeMCU V3)

Pada kode slave, ESP8266 akan menerima data dari master dan mengirimkan respons balik. Kami akan menggunakan Serial.read() untuk membaca data yang diterima dan Serial.write() untuk mengirimkan respons kembali ke master.


#include <SoftwareSerial.h>

// Inisialisasi komunikasi serial di pin D1 (TX) dan D2 (RX)
SoftwareSerial mySerial(D1, D2);  // RX, TX

void setup() {
    // Memulai komunikasi serial
    Serial.begin(9600);  // Serial Monitor
    mySerial.begin(9600); // Komunikasi serial dengan master

    Serial.println("ESP8266 Slave is ready...");
}

void loop() {
    // Jika ada data yang diterima dari master
    if (mySerial.available()) {
    String received = mySerial.readString();  // Membaca data yang diterima
    Serial.print("Received from Master: ");
    Serial.println(received);  // Menampilkan data yang diterima dari master

    // Mengirimkan respons kembali ke master
    mySerial.println("Hello, Master!");  // Mengirimkan respons ke master
    }

    delay(500);  // Delay untuk mencegah terlalu cepat membaca data
}

Penjelasan Kode Slave:

  1. SoftwareSerial: Sama seperti di master, SoftwareSerial digunakan untuk komunikasi dengan master melalui pin D1 dan D2.
  2. mySerial.begin(9600): Memulai komunikasi dengan master.
  3. Serial.begin(9600): Memulai komunikasi serial dengan komputer untuk debugging.
  4. mySerial.available(): Mengecek apakah ada data yang tersedia untuk dibaca dari master.
  5. mySerial.readString(): Membaca data yang diterima dan menyimpannya sebagai string.
  6. mySerial.println("Hello, Master!"): Mengirimkan respons kembali ke master setelah menerima pesan.

6. Menghubungkan ESP8266

Berikut adalah langkah-langkah untuk menghubungkan kedua modul ESP8266 NodeMCU V3:

  1. Master TX (D1) ke Slave RX (D2).
  2. Master RX (D2) ke Slave TX (D1).
  3. Koneksi GND Master ke GND Slave.

Pastikan untuk menggunakan kabel jumper yang sesuai untuk menghubungkan kedua modul.

7. Meng-upload Kode ke ESP8266

  1. Sambungkan ESP8266 Master dan Slave ke komputer Anda melalui kabel USB.
  2. Pilih port yang sesuai di Tools > Port.
  3. Pilih board ESP8266 yang sesuai di Tools > Board.
  4. Upload kode untuk Master ke ESP8266 pertama dan Slave ke ESP8266 kedua.

8. Verifikasi Hasil

  1. Setelah meng-upload kode, buka Serial Monitor pada Arduino IDE.
  2. Setel baud rate Serial Monitor ke 9600.
  3. Anda akan melihat output dari kedua modul:
    • Master akan mengirimkan pesan seperti "Sending data to slave..." dan menunggu respons.
    • Slave akan menerima data dari master dan mengirimkan respons "Hello, Master!".

Kesimpulan

Pada tutorial ini, kita telah berhasil membuat dua modul ESP8266 NodeMCU V3 berkomunikasi satu sama lain melalui komunikasi serial menggunakan pin TX dan RX. Modul pertama bertindak sebagai master, mengirimkan data, dan modul kedua bertindak sebagai slave, menerima dan membalas data tersebut.


Dengan menggunakan kode ini, Anda dapat mengembangkan berbagai proyek berbasis komunikasi antar perangkat menggunakan ESP8266, seperti sistem monitoring, sensor, atau aplikasi IoT lainnya.