Funk über 2.4 GHz nRF24L01+ Module

Hallo!

Heute ist der Sack mit nRF24L01+ Modulen angekommen. Entgegen meiner Erwartungen ist das Thema doch gar nicht sooo einfach. Eventuell ist mein vorhaben sogar unmöglich.

Mein Ziel ist es (später) den Funkverkehr einer Fernbedienung die ich hier liegen habe erst "mitzulesen" und dann zu imitieren. Über die Art wie und was die Ferbedienung sendet weiß ich gar nichts. Einziger Anhaltspunkt ist ein 2,4GHz Funksignal.

Es scheitert jedoch schon an den "basics" in denen ich versuche ein Funkmodul im 5 Sekunden-Rythmus etwas zu senden und an an einem anderen Funkmodul dieses gerne über den SeriellenMonitor auslesen würde. Ich bin erst einmal dieser Anleitung hier gefolgt und habe mir die library von maniacbug geladen.

Resultat ist ein nicht endendes X = -1 Y = -1

Ich habe noch ein paar unterschiedliche Codes und Beispiele getestet allerdings ohne Erfolg. Wer hat schon Erfahrung mit diesem Modul und weiß welche librarys gut funktionieren und welche auch gut documentiert ist?

Wird mein Vorhaben machbar sein?

Hallo, "Über die Art wie und was die Ferbedienung sendet weiß ich gar nichts"

Das ist aber eine Grund-Vorraussetzung. Du brauchst das genaue Protokoll dafür. Datenblatt, Dokumentation!

Ist ja schön, das Du den "nRF24L01" benutzt- den hast Du als Sender und auch als Empfänger an zwei Arduino´s angeschlossen? Und dann läßt Du das über einen geheimnisvollen Sketch laufen. Wie wäre es denn mit einer kurzen HardwareBeschreibung? Ein wenig Schaltbild? Einige Zeilen Sketch- wären auch nicht schlecht? Gruß und Spaß Andreas

Hallo SkobyMobil,

ja ich habe jeweils ein Modul an ein Arduino angeschlossen ... die Sketches die ich zum Testen verwendet habe stehen in dem Link. Hier habe ich lediglich beim senden nur diese Zeilen stehen:

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  delay(3000);
  
  joystick[0] = count;
  joystick[1] = count++;
  
  radio.write( joystick, sizeof(joystick) );

}

Und beim empfangen eben das hier

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  if ( radio.available() )
  {
    // Read the data payload until we've received everything
    bool done = false;
    while (!done)
    {
      // Fetch the data payload
      done = radio.read( joystick, sizeof(joystick) );
      if (!joystick[0]) 
      {
        done = false;
      }
      else
      {
      Serial.print("X = ");
      Serial.print(joystick[0]);
      Serial.print(" Y = ");      
      Serial.println(joystick[1]);
      }
    }
  }
  else
  {    
      Serial.println("No radio available");
  }

}

Zur Documentation kann ich leider nur so etwas liefern: Link

Das was ich selbst steuern möchte ist das hier: EasyBulb bzw MiLight oder auch LimitlessLED - alles die selben Produkte unter verschiedenen Namen.

Hallo, "ich kann mir nicht helfen, aber bei Deinen Sketch fehlt hinten und vorne einfach alles" Probiere das doch einmal:

https://github.com/maniacbug/RF24 http://arduino-info.wikispaces.com/nRF24L01-RF24-Examples

damit solltest Du auf alle Fälle einen Einstieg bekommen. Gruß und Spaß Andreas

Mein Ziel ist es (später) den Funkverkehr einer Fernbedienung die ich hier liegen habe erst “mitzulesen” und dann zu imitieren.
Über die Art wie und was die Ferbedienung sendet weiß ich gar nichts. Einziger Anhaltspunkt ist ein 2,4GHz Funksignal.

Die nRF24L01+ Dinger haben ihr eigenes Protokoll im Bauch.
Nichts anderes, sie können. (frei nach Joda)

Wenn also in deiner Fernbedienung auch ein nRF24L01+ versteckt ist, dann hast du eine Chance.
Ansonsten sehe ich recht schwarz.

Preiswerte Analyse Werkzeuge für 2,4GHz sind mir nicht bekannt.
Dieses reicht da fast ran: http://sdr.osmocom.org/trac/wiki/rtl-sdr

VIelen Dank SkobyMobil für die Verlinkung meiner Links.... :roll_eyes:

an combie: Also wenn das Sendeprotokoll direkt mit dem Sendemodul heraus zu bekommen ist, dann werde ich mal die Fernbedienung zerlegen... vielleicht gibt die ja aufschluss...

EDIT:

Also auf dem Sendeteil sind außer Widerständen und Kondensatoren 5 Bausteine:

1: PL1167 335k29

2: 12.000 MHZ

3 , 4 und 5 sind ICs ohne Namen/Kennzeichnung

Der PL1167 ist das eigentliche Sendemodul... Datenblatt gibt es hier: Link kann ich mit meinen Modulen damit Kommunizieren?

kann ich mit meinen Modulen damit Kommunizieren?

Vielleicht mal die Datenblätter der beiden Bausteine nebeneinander legen. Kenne deinen PL1167 nicht.

Vielleicht kannste den ja käuflich erwerben.... An den Adruino wirste ihn dran bekommen.

Aha!

Das Problem lag nicht an der Programmierung und auch nicht an der Verkabelung. Ich habe 3 Arduino Unos.. Kandidat 1: Kann nur senden - nicht empfangen Kandidat 2: Kann nur empfangen, wenn er vorher mal im SendeModus war Kandidat 3: Kann senden und empfangen

Natürlich habe ich mal wieder Murphys law bewiesen und Kandidat 1 und 2 beim Versuchsaufbau gehabt.. :roll_eyes:

Die Module habe ich hin und her getausch, Verkabelung x-mal komplett ab und wieder dran gemacht. Kabel getauscht etc pp. Es ist definitiv so, dass das Fehlverhalten an den Arduinos liegt.

Wie kann ich das beheben und die Teile stabil betreiben? Nen Kondensator zwischen GND und 3.3V verbauen? Welche Größenordnung? 1µF? 1000µF?

Irgendwelche anderen Ideen?

An meinen nRF24L01+ habe ich 10µF dran.
An manchen auch 100µF.
Ist scheinbar egal.

Einen kleinen (100nF?) haben sie schon “on Board”.