Electronic – arduino – controlling Arduino Uno with nRF24L01

arduinoledwifi

I'm a beginner, I'm working on a new project to light up LED with my phone (through WIFI). I'm using Arduino Uno, nRF24L01, LED, breadboard and jumpers.

I don't understand how can I program the Arduino to only turn on and off the light when I press a button in my application, and also I don't know which application supports nRF24L01 since every guide I'm looking at shows that I need TWO board – Tx and Rx. I thought nRF24L01 could enable me to control the Arduino board through WIFI, why can't I only use it as a Transmitter?

Which application can help me control the nRF24L01 (like Blynk for ESP8266)?
Can I use only the code for Tx to operate the board?

Thank you

Best Answer

In practical terms you cannot really communicate from a smartphone to an nRF24L01. You'll need to use an BLE or WiFi MCU instead.


In "impractical" terms, it's true that the actual radio modulation used by the nRF24 series and by BLE is the same, as Nordic Semiconductor was involved in writing the BLE spec. But BLE is a much more complicated protocol and not only does some things in contrasting ways that require quite a bit of software pre-juggling, it also tends to use packets larger than will fit the nRF24 chip's packet buffer.

There's relatively straightforward code out there which you can find with a search engine which uses an nRF24 to transmit short packets which can be received by the BLE capability of a phone. But that's not really the direction you want (and the packets have to be shorter than those of the iBeacon scheme often used for unidirectional transmissions).

I think some of the reflash-toy-drones projects have looked at trying to receive carefully tailored BLE packets with various nRF24 competitors like the XN297, and while you can look those up to see if they ultimately had any success, the reality is that it's not remotely an introductory level project - and they're not targeting an nRF24 chip anyway.

If you want to reasonably get somewhere with the project, replace your Arduino Uno with an nRF51 or nRF52 series BLE MCU with corresponding Arduino BSP, or an ESP8266 or ESP32 with that corresponding Arduino BSP.