Tutorial ESP32 Komunikasi Antar ESP32 Dengan Serial

Komunikasi Serial merupakan salah satu metode yang sering digunakan dalam penerapan perangkat keras yang ingin di hubungkan satu sama lain, misalnya program komunikasi serial antar perangkat printer dengan laptop, arduino dengan laptop, esp32 dengan arduino, esp32 dengan esp32. Untuk itu artikel kali ini akan membahas tentang Tutorial ESP32 Komunikasi Antar ESP32 Dengan Serial.

Tutorial ESP32 Komunikasi Antar ESP32 Dengan Serial

Penerapan Aplikasi Komunikasi Serial ESP32 Dengan Arduino

Jika pada suatu kebutuhan memerlukan fitur yang ada di arduino, dan tidak ada pada ESP32, maka kita bisa menggunakan metode komunikasi serial untuk menghubungkan antara ESP32 dan Arduino.

Baca Juga :  ESP32, Cara Mengakses TelegramBot Kontrol Relay / Led

Contoh kasusnya seperti ini.

Saya ingin membuat alat monitoring dan kontrol dimana memerlukan sejumlah 6 buah pin analog dan 6 buah pin digital output. Rata-rata sensor dan driver aktuator yang ada di pasaran memerlukan tegangan referensi 5 volt, untuk itu mikrokontroler yang cocok adalah arduino.

Namun saya juga membutuhkan fitur Wifi dan bluetooth yang ingin diterapkan pada alat yang akan saya kembangkan, sehingga jenis mikrokontroler yang saya butuhkan adalah ESP32.

Maka saya akan menggunakan keduanya, dengan cara membuat komunikasi antar ESP32 dan juga Arduino.

Kelebihan Komunikasi Serial dibanding I2C pada ESP32

Karena kemarin saya pernah melakukan komunikasi I2C antar ESP32, sehingga saya ingin mencoba membandingkan metode keduanya.

Komunikasi serial antar esp32 lebih lancar dilakukan dibanding I2C, data yang di kirim dapat diterima dengan baik, selain itu juga kita tidak memerlukan alamat yang harusnya ada pada komunikasi I2C.

Baca Juga :  Tutorial ESP32 Komunikasi Antar ESP32 dengan I2C

Kekurangan Komunikasi Serial Pada ESP32

Karena tidak ada pengaturan alamat untuk slave nya, maka komunikasi serial memerlukan masing masing kabel untuk menerapkan komunikasi.

Langkah Tutorial Komunikasi Serial Antar ESP32

  1. Siapkan dua buah modul ESP32 Beli Disini
  2. Siapkan Kabel Pelangi Secukupnya
  3. Buat Rangkaian Komunikasi Serial (Lihat Gambar Di atas)
  4. Buat Program Untuk Pengirim Data
  5. Buat Program Untuk Penerima Data
  6. Upload Masing-Masing Program
  7. Amati Respon Pada Kedua Serial Monitor

Program Dasar Komunikasi Serial ESP32

//GPIO17 itu tx2
//GPIO16 itu rx2

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial2.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
if(Serial2.available())
Serial.write(Serial2.read());
if(Serial.available())
Serial2.write(Serial.read());
}

Program di atas jika diterapkan dan diupload ke esp32 kemudian dirangkai tx2 dan rx2 nya sudah bisa saling kirim data, dan berikut saya buat programnya supaya lebih mudah di modifikasi untuk dikelola data nya.

Baca Juga :  Tutorial ESP32 Mengakses RFID PN532

Program Komunikasi Serial ESP32 Untuk Pengirim Data

//GPIO17 itu tx2
//GPIO16 itu rx2

String data;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial2.begin(9600);
}

void loop() {
// berikut data yang dibaca dari serial monitor sendiri, kemudian dikirim ke perangkat lain
  while(Serial.available() > 0){
  delay(10);
  char d = Serial.read();
  data += d;
}
if (data.length() > 0){
  Serial2.print(data);
  data = "";
}

// berikut code untuk membaca data dari perangkat lain
while(Serial2.available() > 0){
  delay(10);
  char d = Serial2.read();
  data += d;
}
if (data.length() > 0){
  Serial.println(data);
  data = "";
}


}

Program Komunikasi Serial ESP32 Untuk Penerima Data

//GPIO17 itu tx2
//GPIO16 itu rx2

String data;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial2.begin(9600);
}

void loop() {
// berikut data yang dibaca dari serial monitor sendiri, kemudian dikirim ke perangkat lain
  while(Serial.available() > 0){
  delay(10);
  char d = Serial.read();
  data += d;
}
if (data.length() > 0){
  Serial2.print(data);
  data = "";
}

// berikut code untuk membaca data dari perangkat lain
while(Serial2.available() > 0){
  delay(10);
  char d = Serial2.read();
  data += d;
}
if (data.length() > 0){
  Serial.println(data);
  data = "";
}
}

Program komunikasi Serial antar penerima dan pengirim semuanya sama sih, karena keduanya saya jadikan sebagai penerima dan juga pengirim. maka dari itu saya kurang setuju dengan penamaan master slave pada komunikasi serial, karena keduanya tidak ada unsur yang membedakan.

Hasil Program Serial Komunikasi Antar ESP32 dan ESP32