Mikrokontroller
Kirim Pesan “HelloWorld” dengan Multiple Node NRF24L01

Kirim Pesan “HelloWorld” dengan Multiple Node NRF24L01

Pinout pada NRF24L01

Untuk melakukan projek ini dibutuhkan 3 buah NRF24L01 dengan 3 buah mikrokontroler. Mikrokontroler bisa berupa Arduino dan jika ingin langsung kedalam jaringan maka diperlukan NodeMCU sebegai penerima untuk diteruskan kejaringan. Projek ini dapat dikembangkan sesuai kebutuhan kalian.

Pada projek kali ini saya menggunakan 2 buah Arduino Nano sebagai pengirim dan satu buah ESP32 sebagai penerima. Langkah pertama pada projek ini menghubungkan pin-pin dan mendownload library library yang diperlukan.


Menghubungkan Pin NRF24L01 dengan Arduino

NRF24L01 VCC dihubungkan ke 3.3V ESP32
NRF24L01 CNS dihubungkan ke D5 ESP32
NRF24L01 MOSI dihubungkan ke D23 ESP32
NRF24L01 GND dihubungkan ke GND ESP32
NRF24L01 CE dihubungkan ke D4 ESP32
NRF24L01 SCK dihubungkan ke D18 ESP32
NRF24L01 MISO dihubungkan ke D19 ESP32


Menghubungkan Pin NRF24L01 dengan ESP32

NRF24L01 VCC dihubungkan ke 3.3V Arduino Nano
NRF24L01 CNS dihubungkan ke D8 
Arduino Nano
NRF24L01 MOSI dihubungkan ke D11 
Arduino Nano
NRF24L01 GND dihubungkan ke GND 
Arduino Nano
NRF24L01 CE dihubungkan ke D7 
Arduino Nano
NRF24L01 SCK dihubungkan ke D13 
Arduino Nano
NRF24L01 MISO dihubungkan ke D12 
Arduino Nano


Kode Program Pada Arduino Node1

#include <SPI.h>
#include <RF24.h>
#include <RF24Network.h>

RF24 radio(7, 8); //(CE, CSN)
RF24Network network(radio); 


const uint16_t node = 01; //Node
const uint16_t master = 00;

String pesan;

void setup() {
  SPI.begin();
  radio.begin();
  network.begin(90, node);
  radio.setDataRate(RF24_2MBPS);
}

void loop() {
  pesan = "HelloWorld, Aku Node 1";
  char text[50];
  pesan.toCharArray(text, 50);
  network.update();

  RF24NetworkHeader header(master);
  bool ok= network.write(header, &text, sizeof(text));
  delay(1000);
}

Kode Program Pada Arduino Node2

#include <SPI.h>
#include <RF24.h>
#include <RF24Network.h>

RF24 radio(7, 8); //(CE, CSN)
RF24Network network(radio); 


const uint16_t node = 02; //Node
const uint16_t master = 00;

String pesan;

void setup() {
  SPI.begin();
  radio.begin();
  network.begin(90, node);
  radio.setDataRate(RF24_2MBPS);
}

void loop() {
  pesan = "HelloWorld, Aku Node 2";
  char text[50];
  pesan.toCharArray(text, 50);
  network.update();

  RF24NetworkHeader header(master);
  bool ok= network.write(header, &text, sizeof(text));
  delay(1000);
}

Kode Program Pada ESP32

#include <SPI.h>
#include <RF24.h>
#include <RF24Network.h>

RF24 radio(7, 8); //(CE, CSN)
RF24Network network(radio); 
const uint16_t master = 00;

String trans1, trans2;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  radio.begin();
  network.begin(90, master);
  radio.setDataRate(RF24_2MBPS);
}

void loop() {
  char text[32]="";
  network.update();
  while (network.available()){
    RF24NetworkHeader header;
    network.read(header, &text, sizeof(text));
    if (header.from_node == 1){
     trans1= String (text);
     Serial.println(trans1);      
    }
    if (header.from_node == 2){
     trans2= String (text);     
     Serial.println(trans2); 
    }
  }
}
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x