Go Down

Topic: Funk über 2.4 GHz nRF24L01+ Module (Read 7562 times) previous topic - next topic

Leon333

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?

SkobyMobil

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
die zweite Maus bekommt den Speck...

Leon333

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:
Code: [Select]
void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  delay(3000);
 
  joystick[0] = count;
  joystick[1] = count++;
 
  radio.write( joystick, sizeof(joystick) );

}


Und beim empfangen eben das hier
Code: [Select]
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.


SkobyMobil

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
die zweite Maus bekommt den Speck...

combie

Quote
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

Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Leon333

#5
Jul 24, 2014, 12:59 am Last Edit: Jul 24, 2014, 01:23 am by Leon333 Reason: 1
VIelen Dank SkobyMobil für die Verlinkung meiner Links.... :smiley-roll:

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?

combie

Quote
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.




Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Leon333

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..  :smiley-roll:

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?

combie

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

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

Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Go Up