Good evening, i've been trying to make wireless communication between ESP32 and Arduino Nano, it works fine with one node, but when I use the same node address the second Nano didn't receive anything, so I change the address still no luck, I already solder a 10uF to each NRF module but still the same. can someone help me?
Here's the code for ESP32/Trasmitter/Master
//=== Blynk Config ===//
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <BlynkSimpleEsp32_SSL.h>
BlynkTimer timer;
//=== NRF24L01 Config ===//
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
RF24 radio(17, 5);
RF24Network network(radio);
const uint16_t this_node = 00;
const uint16_t node01 = 01;
//=====================//
#define DEBUG_SW 0
int MODE = 0;
// ================= CONNECT TO WIFI ================ //
char auth[] = "*******";
char ssid[] = "*******";
char pass[] = "*******";
int switch_ON_Flag1_previous_I = 0;
#define LED1 2 //ONLINE
#define LED2 4 //OFFLINE
#define LED3 12
#define S1 13
//MISO 19 // VSPI MISO
//MOSI 23 // VSPI MOSI
//SCK 18 // VSPI CLK
//CE 17 // GPIO17
//CSN 5 // VSPI SS
void setup() {
pinMode(S1, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
SPI.begin();
radio.begin();
network.begin(90, this_node);
radio.setDataRate(RF24_2MBPS);
WiFi.begin(ssid, pass);
timer.setInterval(2000L, checkBlynk); // check if connected to Blynk server every 3 seconds
Blynk.config(auth);//ssid, pass);
}
BLYNK_WRITE(V0)
{
int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
digitalWrite(LED3, pinValue);
}
void with_internet()
{
if (digitalRead(S1) == LOW)
{
if (switch_ON_Flag1_previous_I == 0 )
{
digitalWrite(LED3, LOW);
if (DEBUG_SW) Serial.println("Relay1- ON");
Blynk.virtualWrite(V0, 0);
switch_ON_Flag1_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch1 -ON");
}
if (digitalRead(S1) == HIGH )
{
if (switch_ON_Flag1_previous_I == 1)
{
digitalWrite(LED3, HIGH);
if (DEBUG_SW) Serial.println("Relay1 OFF");
Blynk.virtualWrite(V0, 1);
switch_ON_Flag1_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch1 OFF");
}
}
void without_internet()
{
digitalWrite(S1, digitalRead(LED3));
}
void checkBlynk() { // called every 2 seconds by SimpleTimer
bool isconnected = Blynk.connected();
if (isconnected == false) {
MODE = 1;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
Blynk.connect();
}
if (isconnected == true) {
MODE = 0;
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
Blynk.run();
}
}
void loop()
{
network.update();{
unsigned long buttonState = digitalRead(LED3);
RF24NetworkHeader header(node01);
bool ok = network.write(header, &buttonState, sizeof(buttonState));
}
if (WiFi.status() != WL_CONNECTED)
{
if (DEBUG_SW)
Serial.println("Not Connected");
WiFi.reconnect();
}
else
{
if (DEBUG_SW)
Serial.println(" Connected");
}
timer.run(); // Initiates SimpleTimer
if (MODE == 0)
with_internet();
else
without_internet();
}
and here's fore the slaves/other nodes
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#define led_pin 3
// MISO 12 //
// MOSI 11 //
// SCK 13 //
// CE 9 //
// CSN 10 //
RF24 radio(9, 10);
RF24Network network(radio);
const uint16_t this_node = 01;
void setup() {
Serial.begin(9600);
pinMode(led_pin, OUTPUT);
SPI.begin();
radio.begin();
network.begin(90, this_node);
radio.setDataRate(RF24_2MBPS);
}
void loop(void)
{
network.update();
while (network.available() ){
RF24NetworkHeader header;
unsigned long buttonState;
network.read(header, &buttonState, sizeof(buttonState));
if (buttonState == HIGH)
{
digitalWrite(led_pin, HIGH);
}
else
if (buttonState == LOW)
{
digitalWrite(led_pin, LOW);
}
}
}