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. 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.
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);
 }
}