Wie sende ich eine beliebige 2,4-GHz-Funkwelle aus?

Ich suche nach einem Mikrocontroller, mit dem ich meine Deckenlampe steuern kann, die über eine 2,4-GHz-Fernbedienung gesteuert wird. Das Endziel ist es, es in Heimautomatisierungstools zu integrieren und die zusätzliche Fernbedienung zu vergessen.

Ich habe SDR-Radio (hackrf one) verwendet, um die Kommunikation besser zu verstehen. Angesichts der Tatsache, dass die Lampe ziemlich billig war, hatte ich nicht erwartet, dass es sich um ein komplexes Protokoll handelt. Ich habe folgende Dinge gefunden:

  • Die Fernbedienung verwendet immer die gleiche Frequenz für die Kommunikation (2,449 GHz)
  • Die Fernbedienungscodes ändern sich im Laufe der Zeit nicht (ich kann die Lampe problemlos von meinem SDR mit meinen Aufzeichnungen ansteuern)
  • Die Fernbedienungscodes / Wellen scheinen ziemlich einfach zu sein (siehe Bilder später).

Und jetzt komme ich zu einem Problem, wie repliziere ich dieses Signal? Was für mich am besten funktioniert, ist, nach welcher Art von Modulen (die idealerweise gut mit ESP/Arduino spielen) sollte ich suchen?

Da ich keine Erfahrung mit drahtloser Kommunikation habe, bin ich fälschlicherweise davon ausgegangen, dass ich zB das nRF24L01 + -Modul an esp32 anschließen und einfach so etwas tun kann delay(16); rf.high(); delay( 16 ); rf.low();. Nachdem ich jedoch über dieses spezielle Funkmodul gelesen hatte, stellte sich heraus, dass es ein festes Kommunikationsprotokoll hat, das für diesen Zweck nicht geeignet ist.

Als Referenz stelle ich eine geschnüffelte Code-Visualisierung ein, die mit GNU Radio aufgenommen und zur Visualisierung in Audacity importiert wurde:

  • die gesamte Signalfolge:die gesamte Signalfolge
  • Erste Reihe von Codes:Erste Reihe von Codes
  • Maximaler Zoom auf "1bit" Signalwelle:Maximaler Zoom auf "1bit" Signalwelle
  • Maximaler Zoom auf "1bit" mit weniger Verstärkung, wie in den Kommentaren angefordert:Geben Sie hier die Bildbeschreibung ein
Ich weiß auch, dass ein Vorschlag darin bestehen könnte, die Fernbedienung, die ich habe, zu opfern und eine Mikrocontrollerrolle zu verwenden, um ihre Tasten anzusteuern - aber ich habe diesen Ansatz verworfen, da er platzsparend ist und ich die Fernbedienung auch gerne als "Backup" im Schrank habe „planen 🙂
Ich wollte auch überprüfen, welcher Mikrocontroller auf der Fernbedienung selbst verwendet wird, aber leider ist er nicht gekennzeichnet und sieht aus wie ein All-in-One-Chip, da außer diesem Chip nicht viel auf dem Board ist imgur.com/Ou6JFMd (es ist ein Single-Side- Board )
Hören Sie auf, Ihre eigene Frage zu kommentieren! Fügen Sie die zusätzlichen Informationen in der Frage hinzu . Es gibt eine Schaltfläche Bearbeiten , um die Frage zu aktualisieren.
Sie müssen wissen, welchen Standard / welches Protokoll diese "2,4-GHz-Fernbedienung + Lampe" verwenden. Wenn es zum Beispiel Zigbee verwendet, benötigen Sie einen Zigbee-Sender, um es zu steuern. Eine MCU und ein "generischer 2,4-GHz-Sender" funktionieren nicht. Ohne ausgefeilte Ausrüstung (z. B. ein HF-Signalanalysator, etwa so: rohde-schwarz.com/us/products/test-and-measment/… können Sie nicht sicher sein, welches Signal verwendet wird. Übrigens kosten diese Analysatoren mehr als ein Auto Billigere Option: Öffnen Sie die Fernbedienung und die Lampe und sehen Sie, welche ICs verwendet werden.
@Bimpelrekkie willst du damit sagen, dass ich die Signalsequenz mit Hackrf One nicht verstehen kann, obwohl ich die Lampe zuverlässig über das aufgezeichnete Signal auslösen kann?
@MarekLewandowski deine Aufnahme ist stark beschnitten. Sie haben viel zu viel Empfängerverstärkung – wenn dies also komplexer ist als kurze Impulse, können Sie es Ihrer Aufnahme nicht entnehmen.
@MarcusMüller hat einen Screenshot hinzugefügt, der beide Signale mit etwas weniger Verstärkung visualisiert (dies sind zwei Befehle Helligkeit hoch und Helligkeit runter)
Ja, ich sage, dass das hackRF nutzlos ist, da es Ihnen keine Details wie Phasenmodulation usw. mitteilt. Zuverlässiges Triggern bedeutet nur, dass Sie erfolgreich festgestellt haben, wann ein Datenpaket übertragen wird. So können Sie sehen, ob der Sender ein- oder ausgeschaltet ist. Es sagt nichts über Bitrate und Modulationstyp aus.

Antworten (1)

Es gibt RF-Protokolle, die OOK-Versionen (On-Off-Keying) von IR-Protokollen sind - das ist wahrscheinlich das, was das ist. Vielleicht finden Sie diese Arduino-Diskussion hilfreich: https://forum.arduino.cc/index.php?topic=532534.0

Danke für den Vorschlag! Obwohl mein Anwendungsfall etwas einfacher ist - es gibt keine Rolling Codes.
Außerdem deutet Ihre vergrößerte Version darauf hin, dass etwas mit der Phase passiert, aber es ist nicht klar - wie gesagt, Ihre Aufnahme ist durch das Beschneiden verzerrt.