ms476
November 17, 2023, 2:08pm
1
Hallo,
ich wollte mal den Einstieg wagen und mit einem ESP32-WROOM32 und einem 433MHz Modul (CC1101) das Signal eines Tasters empfangen.
Ich habe mir dazu ein Beispiel von SmartRC-CC1101-Driver-Lib rausgesucht und die Verkabelung wie folgt durchgeführt (links ESP32, rechts CC1101):
D2 -- GDO00
D4 -- GDO02
D5 -- CSN
D18 -- SCK
D19 -- MISO
D23 -- MOSI
3v3 -- VCC
GND -- GND
Leider wird nichts empfangen, nicht das Signal des Tasters oder auch die Signale der Wetterstation werden nicht ausgegeben.
Senden mit Hilfes des Beispiels von SmartRC-CC1101-Driver-Lib funktioniert und wird mir bei meiner Sonoff Bridge angezeigt.
Hat jemand einen guten Rat für mich?
Vielen Dank vorab.
Ja, ganz einfach:
Ohne deine Sketche (Sender und Empfänger) können wir nichts sehen, also auch nicht helfen.
ms476
November 17, 2023, 2:22pm
3
Die Sketche hatte ich nur verlinkt, hier das Empfangen
#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>
int pin; // int for Receive pin.
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
pin = 4; // for esp32! Receiver on GPIO pin 4.
if (ELECHOUSE_cc1101.getCC1101()){
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}
ELECHOUSE_cc1101.Init();
ELECHOUSE_cc1101.setMHZ(433.92);
mySwitch.enableReceive(pin);
ELECHOUSE_cc1101.SetRx();
}
void loop() {
if (mySwitch.available()){
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
mySwitch.resetAvailable();
}
}
Die Meldung "Connection OK" wird mir in der Console ausgegeben.
Hier das Senden:
#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>
int pin;
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
pin = 2; // for esp32! Transmit on GPIO pin 2.
if (ELECHOUSE_cc1101.getCC1101()){
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}
ELECHOUSE_cc1101.Init();
ELECHOUSE_cc1101.setMHZ(433.92);
mySwitch.enableTransmit(pin);
ELECHOUSE_cc1101.SetTx();
}
void loop() {
/* See Example: TypeA_WithDIPSwitches */
mySwitch.switchOn("11111", "00010");
delay(1000);
mySwitch.switchOff("11111", "00010");
delay(1000);
/* Same switch as above, but using decimal code */
mySwitch.send(5393, 24);
delay(1000);
mySwitch.send(5396, 24);
delay(1000);
/* Same switch as above, but using binary code */
mySwitch.send("000000000001010100010001");
delay(1000);
mySwitch.send("000000000001010100010100");
delay(1000);
/* Same switch as above, but tri-state code */
mySwitch.sendTriState("00000FFF0F0F");
delay(1000);
mySwitch.sendTriState("00000FFF0FF0");
delay(1000);
delay(20000);
}
ms476
November 17, 2023, 3:05pm
4
Au man, da probiere ich das immer wieder aus, nichts geht.
Dann stelle ich die Frage in dem Forum und versuche es anschließend mit folgender Zeile nach dem setzen der MHZ und dann klappt es
ELECHOUSE_cc1101.setModulation(2); // ASK
Das ist die Aura des Forums
Ne im Ernst, es ist doch gut wenn man den Fehler selbst findet. Das zeigt, man hat sein Projekt im Griff.