Bonjour @psfox2001,
Avec un flipper zéro.
Pour info, cet appareil n'est pas interdit à l'utilisation cependant pour rester dans le cadre de la loi et c'est bien normal par exemple, il ne faut pas hacker la sonnette sans fil de son voisin et lui créer un préjudice en la faisant sonner de manière intempestive.
Je rencontre actuellement des difficultés pour la reproduction du signal avec un module CC1101 + ESP32, la librairie RadioLib.h
et avec une modulation OOK. Je pense que ma configuration n'est pas bonne :
#include <RadioLib.h>
#define TE 476
#define GT (TE * 31)
#define FREQ 433.92
// Broches ESP32 et CC1101
#define CC1101_CS 2
#define CC1101_GDO0 4
CC1101 radio = new Module(CC1101_CS, CC1101_GDO0, RADIOLIB_NC);
// Clé Princeton 24 bits sous forme binaire
const char* code = "010111101010110100100010";
// Envoi d'un seul bit 0 ou 1 en OOK avec les bons timings
void sendOOKBit(char bit) {
if (bit == '1') {
radio.transmitDirect();
delayMicroseconds(3 * TE);
radio.standby();
delayMicroseconds(TE);
} else {
radio.transmitDirect();
delayMicroseconds(TE);
radio.standby();
delayMicroseconds(3 * TE);
}
}
// Envoi d'une trame complète
void envoiSignal() {
Serial.println("Envoi de la trame 24 bits");
for (int repeat = 0; repeat < 10; repeat++) {
Serial.print("Trame ");
Serial.println(repeat + 1);
// Temps de Garde avant la trame
delayMicroseconds(GT);
// Envoi des 24 bits
for (int i = 0; i < 24; i++) {
sendOOKBit(code[i]);
Serial.print(code[i]);
}
Serial.println("FIN");
// Pause de fin de trame
delayMicroseconds(TE);
// Temps de Garde après la trame
delayMicroseconds(GT);
}
Serial.println("Trame envoyée");
}
void setup() {
Serial.begin(115200);
Serial.println("Initialisation du CC1101");
radio.setOOK(true);
radio.setOutputPower(5);
//int state = radio.begin(FREQ, 4.8, 0.0, 500.0, 10, 32);
//int state = radio.begin(FREQ, 4.8, 0.0, 135.0, 10, 16);
int state = radio.begin(FREQ, 2.4, 0.0, 135.0, 10, 16);
if (state == RADIOLIB_ERR_NONE) {
Serial.println("CC1101 initialisé");
} else {
Serial.print("Erreur CC1101: ");
Serial.println(state);
while (1);
}
}
void loop() {
Serial.println("Envoi de la trame Princeton 24 bits");
envoiSignal();
}
Je pense sans en être certain que le problème vient de cette ligne de code :
int state = radio.begin(FREQ, 2.4, 0.0, 135.0, 10, 16);
Je ne maîtrise pas tout malheureusement.
Pourtant le module est parfaitement reconnu et envoi une trame mais elle ne correspond pas à ce qui est attendu :
1407 -486 475 -1438 1423 -488 445 -1432
1431 -486 1411 -468 479 -1452 1431 -454
479 -1446 465 -1440 1403 -486 473 -1438
459 -1438 479 -1416 1447 -472 483 -1422
475
-14746
481 -1438 1409 -500 447 -1452 1429 -486 --> 0101
1409 -478 1413 -486 1431 -470 477 -1448 --> 1110
1399 -484 481 -1422 1421 -480 469 -1440 --> 1010
1437 -482 1397 -494 479 -1436 1401 -484 --> 1101
483 -1416 479 -1430 1451 -446 487 -1416 --> 0010
477 -1446 467 -1440 1437 -450 473 -1436 --> 0010
473
-14740
509 -1406 1449 -482 449 -1448 1409 -482
1421 -488 1431 -488 1407 -486 481 -1414
1439 -484 463 -1444 1411 -470 483 -1440
1407 -484 1441 -464 483 -1428 1411 -478
487 -1416 479 -1448 1425 -476 473 -1410
479 -1424 473 -1434 1433 -480 455 -1440
479
-14756
475 -1426 1431 -472 477 -1452 1405 -482
1415 -484 1435 -480 1409 -486 471 -1438
1439 -450 471 -1448 1407 -510 451 -1442
1405 -484 1443 -460 483 -1430 1427 -478
475 -1414 491 -1440 1407 -486 487 -1406
471 -1440 459 -1436 1435 -478 487 -1400
481
-14762
...
Voilà pour l'instant où j'en suis.
Bonne journée.
PS : Sinon vous avez cette méthode :
https://wiki.jelectronique.com/doku.php?id=transmission_433mhz
Il vous faudra investir dans du matériel également mais le prix sera moins élevé.