Nfr24L01 + modulo micro sd Risolto leggete bene la soluzione

Tx 
#include <DHT.h>
#include <RF24.h>

#define DHTPIN 13
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
RF24 radio(16, 17);  // CE, CSN

struct SensorData {
  float temperatura;
  float umidita;
};

void setup() {
  radio.begin();
  dht.begin();
}

void loop() {
  delay(2000);
  SensorData data;
  data.temperatura = dht.readTemperature();
  data.umidita = dht.readHumidity();

  radio.openWritingPipe(0xF0F0F0F0E1LL);  // Indirizzo di destinazione
  radio.write(&data, sizeof(SensorData));
}
Rx
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;

#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal_I2C.h>
#include <RF24.h>
#include <SimpleDHT.h>

#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

SimpleDHT11 dhtInternal(9); // Pin 8 for the internal DHT11 sensor
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin, BACKLIGHT_PIN, POSITIVE);
RF24 radio(4, 5); // CE, CSN

struct SensorData {
  float temperatura;
  float umidita;
};

File logfile;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  rtc.begin();
  lcd.begin(16, 2);

  if (!rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  if (!SD.begin(10)) {
    Serial.println("Initialization failed!");
    while (1);
  }

  radio.begin();
  radio.openReadingPipe(1, 0xF0F0F0F0E1LL); // Set the address to match the transmitter
  radio.startListening();

  pinMode(6, OUTPUT);
  lcd.clear();
  lcd.print("Card Logger");
  delay(2000);
  lcd.clear();
}

void loop() {
  if (radio.available()) {
    SensorData data;
    radio.read(&data, sizeof(SensorData));

    DateTime now = rtc.now();
    float internalTemp, internalHum;

    // Read data from internal DHT11 sensor
    dhtInternal.read2(&internalTemp, &internalHum, NULL);

    logdata(now, internalTemp, data.temperatura, internalHum, data.umidita);
  }

  delay(5000); // Wait before checking for new data
}

void logdata(DateTime now, float internalTemp, float externalTemp, float internalHum, float externalHum) {
  String dateTime = String(pad2(now.day())) + "/" +
                    String(pad2(now.month())) + "/" +
                    String(now.year()).substring(2) + " " +
                    String(pad2(now.hour())) + ":" +
                    String(pad2(now.minute())) + ":" +
                    String(pad2(now.second()));

  String tempHumInternal = "Int T: " + String(internalTemp) + "C H: " + String(internalHum) + "%";
  String tempHumExternal = "Ext T: " + String(externalTemp) + "C H: " + String(externalHum) + "%";

  Serial.println(dateTime + " " + tempHumInternal + " | " + tempHumExternal);

  // Concatenate date, time, internal temperature, and humidity on the top line,
  // and external temperature and humidity on the bottom line
  String displayText = tempHumInternal + "\n" + tempHumExternal;

  // Show scrolling text on the LCD
  lcd.clear();
  lcd.print(displayText);

  int len = displayText.length();
  for (int i = 0; i < len + 16; i++) {
    delay(500); // Increased scrolling speed
    lcd.scrollDisplayLeft();
  }

  // Write data to the log file on the SD card
  logfile = SD.open("templog.txt", FILE_WRITE | O_APPEND);
  digitalWrite(6, HIGH);
  if (logfile) {
    logfile.println(dateTime + " " + tempHumInternal + " | " + tempHumExternal);
    logfile.close();
  }
}

String pad2(int n) {
  return (n < 10) ? "0" + String(n) : String(n);
}