In this article, we are going to control an Arduino’s built in LED on pin 13 with another Arduino using a 2.4 Ghz NRF2401 wireless transceiver
What you’ll need to carry out this project;
Hardware
- 2 x Arduino UNO microcontroller board, buy it here
- 2 x 2.4 Ghz NRF2401 wireless transceiver, get them here
Software
- The latest Arduino IDE (download here)
Introducing the 2.4 Ghz NRF2401 transceiver module.
The 2.4 Ghz NRF2401Â Â is used where wireless communication or control between systems is needed. The 2.4 Ghz NRF2401Â is a transceiver meaning it can transmit and receive data. The module is very cheap and can be interfaced with any micro-controller.
Technical specifications:
- Antenna range > 1km
- Frequency  = 2.4 Ghz
- Range of operating input voltage = 1.9v -3.6v
Note: Special arrangements must be made when working with 5v circuits,
The 2.4 Ghz NRF2401 transciever
IMPLEMENTATION
Let us proceed to interfacing the Arduino UNO with the 2.4 Ghz NRF2401 transceiver.
STEP 1: CIRCUIT CONNECTION
Make sure the two Arduino/NRF2401 are connected like this.
NOTE: OPERATING VOLTAGE RANGE IS 1.9V TO 3.6V. DO NOT EXCEED THE MAXIMUM VOLTAGE.
STEP 2: INSTALL REQUIRED LIBRARIES
The NRF2401 transceiver requires a library to be installed and used for the project to work.
- Get the library RF24-master
- Make sure your Arduino IDE is closed.
- Once the zip is downloaded, extract the folders to the libraries folder of your Arduino
- You’ve installed the RF24 library successfully.
STEP 3: CODE
Since there will be a master Arduino which will send messages to the slave Arduino. Upload this code to your selected master Arduino
Master Arduino Code
#include <SPI.h> #include <RH_NRF24.h> // Create an instance of the radio driver RH_NRF24 nrf24; // RH_NRF24 nrf24(8, 7); // use this to be electrically compatible with Mirf // RH_NRF24 nrf24(8, 10);// For Leonardo, need explicit SS pin // RH_NRF24 nrf24(8, 7); // For RFM73 on Arduino Mini void setup() {  Serial.begin(9600);  while (!Serial)   ; // wait for serial port to connect. Needed for Leonardo only  if (!nrf24.init())   Serial.println("init failed");  // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm  if (!nrf24.setChannel(1))   Serial.println("setChannel failed");  if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))   Serial.println("setRF failed");   } void loop() {  if (nrf24.available())  {   // Should be a message for us now    uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];   uint8_t len = sizeof(buf);   if (nrf24.recv(buf, &len))   { //    NRF24::printBuffer("request: ", buf, len);    Serial.print("got request: ");    Serial.println((char*)buf);       // Send a reply    uint8_t data[] = "And hello back to you";    nrf24.send(data, sizeof(data));    nrf24.waitPacketSent();    Serial.println("Sent a reply");   }   else   {    Serial.println("recv failed");   }  } }
Slave Arduino Code
#include <SPI.h> #include <RH_NRF24.h> // Singleton instance of the radio driver RH_NRF24 nrf24; // RH_NRF24 nrf24(8, 7); // use this to be electrically compatible with Mirf // RH_NRF24 nrf24(8, 10);// For Leonardo, need explicit SS pin // RH_NRF24 nrf24(8, 7); // For RFM73 on Anarduino Mini void setup() {  Serial.begin(9600);  while (!Serial)   ; // wait for serial port to connect. Needed for Leonardo only  if (!nrf24.init())   Serial.println("init failed");  // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm  if (!nrf24.setChannel(1))   Serial.println("setChannel failed");  if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))   Serial.println("setRF failed");   } void loop() {  Serial.println("Sending to nrf24_server");  // Send a message to nrf24_server  uint8_t data[] = "Hello World!";  nrf24.send(data, sizeof(data));   nrf24.waitPacketSent();  // Now wait for a reply  uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];  uint8_t len = sizeof(buf);  if (nrf24.waitAvailableTimeout(500))  {   // Should be a reply message for us now    if (nrf24.recv(buf, &len))   {    Serial.print("got reply: ");    Serial.println((char*)buf);   }   else   {    Serial.println("recv failed");   }  }  else  {   Serial.println("No reply, is nrf24_server running?");  }  delay(400); }
STEP 4: RESULTS
- Open up the Serial monitor of master Arduino code
- Using any terminal of your choice, i am using Tera Term. Download it here
I hope you enjoyed building this project
Wanna do more?
Build a wireless temperature monitoring system using the following parts
How about Two Arduino Talk to Each Other.. Wirelessly? – Nerdshed
akwqrkdtef
[url=http://www.g89oj71b8us099u0qts8td5shy20r892s.org/]ukwqrkdtef[/url]
kwqrkdtef http://www.g89oj71b8us099u0qts8td5shy20r892s.org/
KP1075XWPA
Ice Maker
KP1070QWPA
KP1075XVPA
KP1059AWPA
Freeze Dryer
Ice Machine
Refrigeration Accessories
KP1054AVPA
Industrial Freezer
thanhnhat.vn