I think you should start with using Wifi modules and you use an esp-01 too instead of NodeMCU. Once you are familiar with esp-01's, you will find them as good as NodeMCU. Esp-01's only lack multiple pins when compared to NodeMCU.
And for communication between arduino and esp-01, use serial ports- 0 and 1.
Here is example code-
For Master Arduino
int temp;
int hum;
void setup(){
Serial.begin(115200);
delay(2000);
}
void loop() {
temp = random(0,100);
hum = random(100,200);
Serial.print(temp);
Serial.println('t');
delay(2000);
Serial.print(hum);
Serial.println('h');
delay(2000);
Serial.flush();
}
For Slave Esp or any other slave arduino -
String inString = ""; // string to hold input
float temp = 0,hum = 0;
boolean newtemp=false, newhum=false;
void setup() {
Serial.begin(115200);
Serial.println("ESP 8266 - 01 Module is ready to receive codes from Master Arduino");
}
void loop() {
// Read serial input:
while (Serial.available() > 0) {
int inChar = Serial.read();
if (inChar != '\n') {
if (inChar == 't')
newtemp = true;
if (inChar == 'h')
newhum = true;
inString += (char)inChar;
}
else {
Serial.print("Input string: ");
Serial.println(inString);
if ( newtemp == true ) {
temp = inString.toFloat();
Serial.print("Received Temperature:");
Serial.println(temp);
newtemp = false;
}
if ( newhum == true ) {
hum = inString.toFloat();
Serial.print("Received Humidity:");
Serial.println(hum);
newhum = false;
}
inString = "";
}
}
}
Pin connections -
Master Arduino TX -- Slave board RX