INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NRF24L01
08.11.2016, 18:49
Beitrag #1
NRF24L01
Hey Leute, es geht um die NRF24L01 Sender/Empfängermodule.

Erstmal als Info die Module funktionieren Hardwaretechnisch und auch div. Codes haben bereits funktioniert. Auch der code zum senden / empfangen der Temperatur ging.

Aufbau:

1.) Arduino Pro Mini + DHT11 + NRF24L01

2.) Arduino Pro Mini + Pushbutton + Led + NRF24L01

Man betätigt den Pushbutton es wird ein Paket gesendet der andere Teilnehmer empfängt das Paket liest die Nummer aus falls diese Nummer passt sendet er 1 x die Temperatur an den ersten Arduino zurück.

Es geht soweit das der Arduino mit dem DHT11 Sensor das Paket empfängt und die Zahl scheint auch zu stimmen. Allerdings steht trotzdem beim Arduino der die Temperatur empfangen soll immer nur 0,0 da also werden die aktuellen Werte nicht übergeben.

Ich wollte diesen Test machen um später mehrere Arduinos anzusprechen also alle empfangen das Telegramm und nur der mit der entsprechenden Nummer antwortet dann mit der Temperatur oder anderen Dingen.

hier der sendercode :

Code:
// Sendertest_3,3v
//

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>

int pin = 2;
DHT11 dht11(pin);

float temperature[2];

double Fahrenheit(double celsius) {
return ((double)(9 / 5) * celsius) + 32;
}

double Kelvin(double celsius) {
return celsius + 273.15;
}

RF24 myRadio (7, 8);
byte addresses[][6] = {"0"};


int msg[1];


void setup(void) {

  Serial.begin(9600);
  myRadio.begin();  
  myRadio.setChannel(115);                        
  myRadio.setPALevel(RF24_PA_MIN);                
  myRadio.setDataRate( RF24_250KBPS ) ;          
  myRadio.openWritingPipe(addresses[0]);        
  myRadio.openReadingPipe(1,addresses[0]);      
  myRadio.startListening();
  


  


}

void loop(void)
{



if ( myRadio.available())
  {
    while (myRadio.available())
    {
      myRadio.read(msg, 1);


   if  ((msg[0]) == 5 ) {

      myRadio.stopListening();                      


      Serial.println("Masteranfrage an Node 12345 !");

      delay(100);

      float temp, humi;
      dht11.read(humi, temp);
      temperature[0] = temp;
      temperature[1] = humi;
      myRadio.write(temperature, sizeof(temperature));
      Serial.println(temperature[0]);

      delay(1000);

      myRadio.startListening();

      

      


   }   else {


     }
    }
   }

  

}


Hier der Empfängercode:

Code:
// Empfängertest


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

int msg[1];


float temperature[2];

RF24 myRadio (7, 8);
byte addresses[][6] = {"0"};


const int push = 3;    
int buttonState = 0;        

int state = 2;



void setup(void) {

  
Serial.begin(9600);

  pinMode(push, INPUT);
  pinMode(state, OUTPUT);




  myRadio.begin();
  myRadio.setChannel(115);                    
  myRadio.setPALevel(RF24_PA_MIN);            
  myRadio.setDataRate( RF24_250KBPS ) ;        
  myRadio.openWritingPipe(addresses[0]);      
  myRadio.openReadingPipe(1,addresses[0]);    
  myRadio.startListening();


}

void loop(void) {

     buttonState = digitalRead(push);


if (buttonState == HIGH) {
      

    myRadio.stopListening();                      

    msg[0] = 5;

    myRadio.write(msg, 1);
    digitalWrite(state, HIGH);


    myRadio.startListening();


    
    
  } else {
    
    digitalWrite(state, LOW);
    

  }


if ( myRadio.available())
  {
    while (myRadio.available())
    {
myRadio.read(temperature, sizeof(temperature));


Serial.println("Temperatur");
Serial.println("Luftfeuchte");
Serial.println(temperature[0]);
Serial.println(" C");
Serial.println(temperature[1]);
Serial.println(" %");

    }

delay(100);



    }
}



Noch eine Frage könnte mir jemand das mit den Pipes erklären:

Code:
radio.openWritingPipe(addresses[1]);
    radio.openReadingPipe(1,addresses[0]);

Was hat es mit dem addresses[0] / addresses[1] auf sich ?
Und was bedeutet die 1, davor ??

Und was bedeutet: byte addresses[][6] = {"0"}; / was die 6 ? 6 Kanäle? Und die 0 = Kanal 0 ?

Gruß Marc Rolleyes

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2017, 19:28
Beitrag #2
RE: NRF24L01
Hallo,

ändere im Empfänger mal folgende Zeile:

myRadio.read(temperature, sizeof(temperature));

in

myRadio.read(temperature, 2);

ggf. musst du aus

float temperature

byte temperatur machen (Sender und Empfänger)

https://www.arduinoforum.de/arduino-Thre...t=nRF24l01

Da hat einer das gleiche Problem Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Garagentorüberwachung mit nRF24L01+PA+LNA hat sehr geringe Reichweite SwissDarky 25 1.719 13.10.2019 21:33
Letzter Beitrag: hotsystems
Question Mega2560 / Nano mit nRF24L01 verbinden R_M 1 429 08.10.2019 18:47
Letzter Beitrag: Tommy56
  Float array über NRF24L01 senden und empfangen Flo3107 6 778 04.09.2019 21:55
Letzter Beitrag: Tommy56
  nrf24l01 Fragen audis3stage4 9 1.753 08.05.2019 21:46
Letzter Beitrag: hotsystems
  drei Tasterfunktionen mit nRF24L01 Thor Wallhall 8 1.552 10.10.2018 15:55
Letzter Beitrag: Tommy56
  Arduino mit nrf24l01 GeLaue 68 17.510 10.05.2018 11:54
Letzter Beitrag: GeLaue
  nRF24l01 empfängt Daten nicht techniclover 1 2.055 09.01.2017 19:20
Letzter Beitrag: celle
  Welche Library für das Funkmodul nRF24L01? alpenpower 1 1.396 25.12.2016 18:50
Letzter Beitrag: ardu_arne
  NRF24L01 Packet / Msg Frage Marc2014 5 2.088 07.11.2016 18:08
Letzter Beitrag: hotsystems
  DHT + NRF24L01 Marc2014 6 2.723 07.11.2016 17:22
Letzter Beitrag: Marc2014

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste