HILFE!!! ESP8266/nRF24L01

Hallo zusammen,
Die Werte sollen von einem Arduino Mega2560 per nRF24L01 auf den Memos D1 Mini (ESP8266) geschickt werden. es kommt aber immer nur eine Null anstatt des richtigen Wertes an. :cry: Den Code habe ich auch schon auf dem Nano und dem Uno als Receiver ausprobiert. Daran liegt es also nicht. Dem, der mir da helfen könnte wäre ich sehr dankbar. :wink:

LG

Philip

Transmitter:

#include <Wire.h>
#include <Seeed_BME280.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

BME280 bme280;

RF24 radio(7,8); 

const byte address[6] = "00001";

float lD;
float temp;
float feuchtigkeit;

String test="Esel";

float tempTrans=0.9;

void setup() {
  
Serial.begin(115200);

radio.begin();
  radio.openWritingPipe(address);
  
  radio.stopListening();

  
  



if(!bme280.init())

  {
  Serial.println("Fehler, kein Sensor gefunden. Bitte Kabel überprüfen oder neu starten");
  } 
}

void regenAuslesen(){
int regenEins = analogRead(A1);
 
   
int regenZwei = analogRead(A2);

int regenDrei = analogRead(A3);

if(regenEins<300 && regenZwei<300 && regenDrei<300){
  Serial.println("Starker Regen");
 }
  else
  {
  if(regenEins<500 && regenZwei>500 && regenDrei<500){
    Serial.println("Leichter Regen");
  }
    else{
   if(regenEins<800 && regenZwei<800 && regenDrei<800){
    Serial.println("Minimaler Regen");
  }
    else{
      Serial.println("Kein Regen");
    }
   }
    }
  }



void tempDruckFeuchtigkeitAuslesen(){
  float Druck;
  float hPa;
  
  
 
 Serial.print("Temperatur: ");
  Serial.print(bme280.getTemperature());
  temp=bme280.getTemperature();
  Serial.println("C");
  
  

  Serial.print("Luftdruck: ");
  Druck = bme280.getPressure();
  hPa= Druck/100;
  Serial.print(hPa);
  Serial.println("hPa");
  lD =bme280.getPressure();

 
  
  Serial.print("Luftfeuchtigkeit: ");
  Serial.print(bme280.getHumidity());
  feuchtigkeit = bme280.getHumidity();
  Serial.println("%");

  Serial.println("");

  delay(2000);
  
}
void senden(){

Serial.println(temp);
temp = tempTrans;;
radio.write(&tempTrans, sizeof(tempTrans));
Serial.println("Temperatur gesendet");

Serial.println(lD);
radio.write(&lD, sizeof(lD));
Serial.println("Luftdruck gesendet");

Serial.println(feuchtigkeit);
radio.write(&feuchtigkeit, sizeof(feuchtigkeit));
Serial.println("Luftfeuchtigkeit gesendet");




delay(5000);


}



void loop(){

regenAuslesen();
tempDruckFeuchtigkeitAuslesen();
senden();
}

Receiver:

//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

//create an RF24 object
RF24 radio(2, 4);  // CE, CSN

//address through which two modules communicate.
const byte address[6] = "00001";

    float lD;
    float tempTrans;
    float feuchtigkeit;

    


void setup()
{
  Serial.begin(115200);
  delay(2000);

  radio.begin();

  //set the address
  radio.openReadingPipe(0, address);

  //Set module as receiver
  radio.startListening();

  
}

void loop()
{
  //Read the data if available in buffer
  if (radio.available())
  {
    

    Serial.print("Temperatur: ");
    radio.read(&tempTrans, sizeof(tempTrans));
    Serial.print(tempTrans);
    Serial.println(" *C");

   
    
    Serial.print("Luftdruck: ");
    radio.read(&lD,sizeof(lD));
    Serial.print(lD);
    Serial.println(" hPa");
    
    Serial.print("Luftfeuchtigkeit: ");
    radio.read(&feuchtigkeit, sizeof(feuchtigkeit));
    Serial.print(feuchtigkeit);
    Serial.println(" %");

    

    Serial.println("");

    delay(3000);
  }
}

Hier

Und warum beantwortest du nicht erst mal die Fragen im vorherigen Thread ?
Oder ist das nur deine Art uns zu beschäftigen ?

Mein Tipp, wenn du komplexe Sketche mit Funkverbindungen aufbaust, teste die Funkverbindung vorher mit einem einfachen Sketch, an dem du verschiedene Daten oder Texte selbst eingibst.
Meist sind solche Beispiele in der Library enthalten.

Dann kannst du sicher sein, das es später auch funktioniert.