HC-05 vs nRF24L01 vs ESP8266

For my project I need communication between two arduino nano (Two arduinos will remain in the same room). But I can't decide which module should I use. My options are HC-05, nRF24L01 and ESP8266. I have looked into inter communication between two ESP8266 and I found it complicated. I plan to connect one of the arduino to phone or PC in future. It is not necessary right now, but it would be great to have that functionality. Also, I will be using 2S LIPO battery to power up the arduino. Can you suggest which communication system will be good for my project?

Describe the project.

Whats the real objective, why are you moving data from one Arduino to another ?
How much data ?

How often ?

I am making a mini ECG, one arduino will collect data from AD8232 and another will receive the data and store it in a sd card and display the heart rate in a display.

You´re working with 3 different ways of transmitting data (Wi-fi, Bluetooth, and Radiofrequency). I haven´t worked yet with the first nor the last one, but regarding Bluetooth, I would use 2 ESP32 rather than 2 nanos + 2 HC-05, because the ESPs already have integrated Bluetooth.

Worth to say that AD8232 works with 3.3V which also fits to the ESPs32.

Not such a great explanation of why you need two Arduinos. It sounds within the capabilities of one. Further, since you are already talking about connecting to the phone, the NRF24 is already a dead end, and you might as well start thinking more properly about the real job now rather than waste time and money doing it later.

Bluetooth would seem the most obvious choice. particularly as you are talking one-to-one. It is also cheap, simple, and has the range.

Maybe, I can use one esp32, but I will need atleast one arduino to process the ecg data (calculating heart rate). I don't want an external server or router for connection. It would be better if the device is self sufficient.

One Arduino is for collecting analog data (the Arduino will be a part of a wearable device, placed on chest area), then it would send the data to another Arduino. I know, one arduino can do the job, but I want a display to show the heart rate, display under the shirt is not usable. I think, for that display I would need the other arduino. Is it possible to operate a tft display remotely?

I saw some posts, where it says that NRF24L01 can send data to phone. https://os.mbed.com/users/hudakz/code/BLE_nRF24L01/wiki/Homepage
That's why I was considering it.

The ESP32 is not a module, it´s a microcontroller itself, with Bluetooth and Wi-fi capabilities within. So, I´m wondering why you couldn´t use it to process the ecg data...

I understand it now, I underestimated the capability of ESP32. I was concerned that if I don't use arduino, I am limiting my ability of further modification of data.

Similarly, you do not add an ESP8266 to an Arduino, that only makes things difficult. The ESP replaces the Arduino.

The ESP (either) is vastly more capable than the Arduino. :sunglasses:

Since WiFi, Blueteeth, and NRF all run on 2.4GHz, it may be possible but it would make more sense to conclude they are lying. More to the point, I submit that you would be well-advised to question WHY anybody would want to do such a thing. The only vaguely comprehensible answer is that you want to re-invent the wheel, and have a few under-employed NRFs lying around. Besides, this is an exercise in BLE. HC-05 is not BLE, but what it may well be is a communications module more suitable for your purpose.