ESP-NOW Sender ESP32-S3 — ESP32-S3 simulation

ESP-NOW sender project for ESP32-S3.

An interactive ESP32-S3 circuit simulation you can run free in your browser on Velxio, by itsmebenn.

Sketch code

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

// Fungsi ini akan dieksekusi otomatis SAAT ADA PESAN MASUK
void OnDataRecv(const esp_now_recv_info *recv_info, const uint8_t *incomingData, int len) {
  // Buat wadah sementara +1 untuk penutup String (\0) agar tidak error/sampah
  char pesanMasuk[len + 1];
  memcpy(pesanMasuk, incomingData, len);
  pesanMasuk[len] = '\0'; // Kunci akhir string
  
  Serial.print("Pesan masuk dari MAC: ");
  
  // PERBAIKAN: Gunakan src_addr (Alamat Sumber/Pengirim)
  for (int i = 0; i < 6; i++) {
    if (recv_info->src_addr[i] < 0x10) Serial.print("0");
    Serial.print(recv_info->src_addr[i], HEX);
    if (i < 5) Serial.print(":");
  }
  Serial.println();
  
  Serial.print(" -> Isi: ");
  Serial.println(pesanMasuk);
}

void setup() {
  Serial.begin(115200);

  // Set WiFi ke mode Station
  WiFi.mode(WIFI_STA);
  
  // PERBAIKAN: Wajib ditambahkan agar radio WiFi aktif mendengarkan tanpa router!
  WiFi.disconnect(); 

  // Inisialisasi ESP-NOW
  if (esp_now_init() != ESP_OK) {
    Serial.println("Error menginisialisasi ESP-NOW");
    return;
  }
  
  // Daftarkan fungsi pendengar pesan masuk
  esp_now_register_recv_cb(OnDataRecv);
  
  Serial.println("Menunggu pesan...");
  Serial.println(WiFi.macAddress());
}

void loop() {
  // Kosong! Board ini tidak melakukan apa-apa di loop utamanya.
  // Semua di-handle secara background oleh fungsi OnDataRecv.
  delay(1000); 
}

More projects by itsmebenn