Komunikasi Antar ESP32

ESP32 adalah microcontroller yang sudah dilengkapi WiFi, Bluetooth, dan fitur komunikasi cepat lainnya. Karena itu, ESP32 sangat sering digunakan untuk membangun sistem IoT yang membutuhkan komunikasi antar modul, seperti:

  • Sistem sensor nirkabel
  • Smart farming
  • Monitoring suhu & kelembapan
  • Robotik berbasis wireless
  • Gateway IoT

Metode komunikasi antar ESP32 diantaranya adalah:

⭐ 1. Komunikasi via WiFi TCP/IP (Client–Server)

WiFi adalah metode paling umum karena:

✔ Bisa jarak jauh
✔ Bisa lewat internet / hotspot
✔ Bisa kirim data besar
✔ Mudah diintegrasikan ke dashboard (misal Blynk, MQTT, webserver)

🔧 Cara Kerja

  • ESP32 A bertindak sebagai Server
  • ESP32 B sebagai Client
  • Client mengirim data ke Server melalui IP Address

Server (ESP32 A)

#include <WiFi.h>
WiFiServer server(80);

const char* ssid = "ESP32_TEST";
const char* pass = "12345678";

void setup() {
  Serial.begin(115200);
  WiFi.softAP(ssid, pass);
  server.begin();
}

void loop() {
  WiFiClient client = server.available();
  if (client) {
    Serial.println(client.readStringUntil('\n'));
  }
}

Client (ESP32 B)

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.begin("ESP32_TEST", "12345678");
  while (WiFi.status() != WL_CONNECTED) delay(10);
}

void loop() {
  WiFiClient client;
  if (client.connect("192.168.4.1", 80)) {
    client.println("Halo dari ESP32 B!");
    client.stop();
  }
  delay(1000);
}

⭐ 2. Komunikasi via ESP-NOW

ESP-NOW adalah fitur komunikasi cepat buatan ESPRESSIF.

🎯 Kelebihan:

  • Jarak 10–50 meter
  • Tidak perlu WiFi
  • Sangat cepat (<10 ms)
  • Hemat daya

❌ Kekurangan:

  • Perlu pairing MAC Address
  • Tidak cocok untuk file besar

🧪 Contoh Implementasi

Sender

#include <esp_now.h>
#include <WiFi.h>

uint8_t peer[] = {0x24, 0x6F, 0x28, 0xAA, 0xBB, 0xCC};

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();

  esp_now_peer_info_t p;
  memcpy(p.peer_addr, peer, 6);
  p.channel = 0;
  p.encrypt = false;
  esp_now_add_peer(&p);
}

void loop() {
  String msg = "Halo ESP32!";
  esp_now_send(peer, (uint8_t*)msg.c_str(), msg.length());
  delay(1000);
}

Receiver

#include <esp_now.h>
#include <WiFi.h>

void onReceive(const uint8_t *mac, const uint8_t *data, int len) {
  Serial.println(String((char*)data));
}

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
  esp_now_register_recv_cb(onReceive);
}

void loop() {}

🧪 Cara Kerja

  • Menggunakan protokol mirip WiFi tetapi mode direct
  • Perlu pairing MAC Address antar perangkat

⭐ 3. Komunikasi via Serial (UART)

Metode paling sederhana.

✔ Paling stabil
✔ Tidak butuh WiFi
✔ Jarak dekat (pakai kabel)

🔧 Cara Hubung

  • TX (ESP32 A) → RX (ESP32 B)
  • RX (ESP32 A) → TX (ESP32 B)
  • GND → GND

⭐ 4. Komunikasi via Bluetooth (BLE)

BLE cocok untuk:

  • ESP32 ↔ smartphone
  • Mengirim data kecil
  • Konsumsi daya rendah

Contoh implementasi:

  • BLE UART Service
  • BLE Sensor Beacon
  • BLE Mesh Network

⭐ 5. Komunikasi via MQTT (WiFi + Broker)

Jika ingin data dikirim via internet:
✔ Bisa jarak ribuan kilometer
✔ Bisa multi-node (puluhan ESP32)
✔ Sangat stabil

MQTT membutuhkan:

  • Broker (public atau lokal)
  • Client ESP32

📊 Perbandingan Semua Metode

MetodeKecepatanJarakKelebihanKekurangan
ESP-NOW⚡ Sangat cepat10–50mTanpa WiFi, low-powerPerlu MAC
WiFi TCP/IPCepat50–100mData besar, serverBoros daya
Serial UART⚡ Sangat cepat<1mSimple, stabilPakai kabel
BLERendah<10mCocok HPTidak untuk data besar
MQTTStabilTidak terbatasInternet-readyPerlu broker

🏭 Contoh Aplikasi di Dunia Nyata

AplikasiMetode
Sensor jarak jauh di kebunESP-NOW
Sistem maggot + monitoring suhu + gatewayMQTT
Robot antar modulWiFi TCP/IP
Modul controller berdampinganUART
ESP32 + Android AppBLE

🧾 Kesimpulan

ESP32 menawarkan banyak pilihan komunikasi yang fleksibel. Kamu dapat memilih metode paling sesuai dengan kebutuhan proyek, mulai dari koneksi cepat seperti ESP-NOW, jaringan luas via WiFi, hingga integrasi internet menggunakan MQTT.

Semakin kompleks sistem, semakin besar kemungkinan kamu membutuhkan kombinasi beberapa protokol sekaligus.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *