Récupération de code télécommande et piloter module relais pour volets roulants

bonjour à tous,
je débute sur Arduino j’ai un projet de pilotage a distance de commande de volets roulant avec des module chinois 433mhz JW-T02 , ces modules sont pilotés par une télécommande avec un système d’appairage sans code tournant je pense.


Avant de poster , j’ai d’abord suivi un tuto pour récuperer les codes émannant de la télécommande 3 boutons (monter /stop/descente).

J’ai réalisé un montage avec un recepteur 433mhz piloté par un arduino UNO et le squetch RCswitch , j’ai pu récupérer les codes de chaque commande en décimal et binaire, mais j’ai plusieurs codes pour la même commande (3 pour monter / 2 pour stopper / et 3 pour descendre )

certains code sont communs pour les 3, c’est la que je ne comprends pas.
J’ai obtenu les codes # en appuyant en gros 15 fois sur le bouton monter / descente /arret .

Monter_Volet = 10645736;
Monter_Volet = 10645504;
Monter_Volet = 10616832;

Descendre_Volet = 10645730;
Descendre_Volet = 10645504;
Descendre_Volet = 10616832;

Stopper_Volet = 10645732;
Stopper_Volet = 10645504;

je pensai pouvoir appairer mon emetteur 433mhz avec le module en emettant un des codes mais le module ne réagit pas, je pense qu’il y a une astuce , j’ai utilisé le squetch RCswitch myswitchsend

Voila le programme , j’ai pris les codes qui n’étaient pas communs entre eux pour tenter d’appairer.

#include <RCSwitch.h>
 
RCSwitch mySwitch = RCSwitch();
 
unsigned long monter_volet_roulant = 10645736;
unsigned long descendre_volet_roulant  = 10645730;
unsigned long stopper_volet = 10645732;
 
 
void setup() {
  Serial.begin(9600);
  // Emetteur connecté au pin #10 de l'Arduino  
  mySwitch.enableTransmit(10);
  Serial.println("init " );
}
 
void loop() {
  Serial.print("monter volet roulant " );
  mySwitch.send(monter_volet_roulant, 24);
  delay(1000);  
  Serial.println("stop volet roulant " );
  mySwitch.send(stopper_volet, 24);
  delay(1000);  
  Serial.println("descendre volet roulant " );
  mySwitch.send(descendre_volet_roulant, 24);
  delay(1000);  
   
  delay(5000);
}

J’ai quand même vérifier avec un autre arduino et un recepteur pour verifier que mon emetteur etait pas defectueux, mais la transmission s’effectue correctement et dans le moniteur j’ai mes codes qui apparaissent bien.

j’ai un bouton d’appairage et la led du module clignote et devient fixe l’appairage étant effectué.

Peux être y a t’il une astuce avec un autre programme qui utilise un autre protocole où alors est ce un probleme de puissance d’emetteur?

Merci pour votre aide. :slight_smile:

Voila les codes que j'ai reçu de la télécommande:

Bouton monter
Decimal: 10616832 (24Bit) Binary: 101000100000000000000000 Tri-State: not applicable PulseLength: 313 microseconds Protocol: 1
Raw data: 264,740,108,416,696,304,456,324,104,240,308,384,236,2156,148,100,224,536,84,444,2408,180,644,96,168,64,144,60,140,256,92,828,484,580,560,996,48,456,416,428,100,356,428,104,632,848,564,100,1408,

Decimal: 10645736 (24Bit) Binary: 101000100111000011101000 Tri-State: not applicable PulseLength: 323 microseconds Protocol: 1
Raw data: 10024,1016,348,324,980,1060,260,352,960,348,988,332,968,1036,312,336,972,336,968,1048,308,1016,356,988,348,308,1016,284,1008,292,1008,312,1008,980,340,988,400,952,388,304,976,988,380,284,1040,276,1024,308,964,

Decimal: 10645504 (24Bit) Binary: 101000100111000000000000 Tri-State: not applicable PulseLength: 323 microseconds Protocol: 1
Raw data: 9992,1040,336,344,956,1008,320,324,996,324,980,348,972,992,328,356,968,316,968,1008,332,992,372,980,384,320,1024,312,968,320,968,336,992,980,372,976,332,968,360,300,1032,972,376,256,1040,272,1052,264,1036,

bouton descendre

Decimal: 10645730 (24Bit) Binary: 101000100111000011100010 Tri-State: not applicable PulseLength: 316 microseconds Protocol: 1
Raw data: 9796,1012,272,308,996,952,324,336,2684,156,188,96,260,220,128,104,252,220,168,308,224,72,216,124,536,360,100,208,108,68,676,348,420,236,152,1584,44,300,68,72,312,56,80,276,124,228,24,188,520,

Decimal: 10645504 (24Bit) Binary: 101000100111000000000000 Tri-State: not applicable PulseLength: 314 microseconds Protocol: 1
Raw data: 192,72,216,264,72,904,288,196,348,456,64,52,1224,92,164,72,1144,36,88,392,764,56,228,420,84,1156,140,2504,1068,232,820,428,908,136,196,228,48,216,88,148,280,484,252,72,300,244,124,124,56,

Decimal: 10616832 (24Bit) Binary: 101000100000000000000000 Tri-State: not applicable PulseLength: 322 microseconds Protocol: 1
Raw data: 10012,1024,316,344,952,1068,336,328,980,360,920,392,932,1040,292,336,972,324,1044,932,380,988,304,1056,360,248,1008,348,992,316,968,324,1028,956,432,940,336,1016,352,296,996,288,1040,268,1024,976,372,284,1016,

Bouton arreter

Decimal: 10645732 (24Bit) Binary: 101000100111000011100100 Tri-State: not applicable PulseLength: 317 microseconds Protocol: 1
Raw data: 856,144,792,936,260,828,332,140,596,480,244,1080,376,260,584,1228,164,192,288,128,128,136,216,104,312,332,128,124,128,628,460,72,284,324,184,476,216,52,420,84,404,448,112,60,492,648,1072,852,88,

Decimal: 10645504 (24Bit) Binary: 101000100111000000000000 Tri-State: not applicable PulseLength: 324 microseconds Protocol: 1
Raw data: 9996,1076,280,364,968,1004,336,384,928,388,964,356,1040,952,328,320,1012,328,948,1024,364,1004,368,992,368,292,1008,300,1004,312,980,376,972,1000,372,992,352,1000,368,284,1036,288,1000,964,376,304,1032,296,1004,

Bonjour,
ce n'est pas une question de puissance de l'émetteur.
Il y a un code de sécurité entre l'émetteur et le volet, normale non!
Ma porte garage a le même système avec appareillage, il faut trouver le code du codage utiliser et là c'est pas gagné.

merci pour ta réponse,
le relais pilotable est un vulgaire ensemble chinois sans grosse protection que j'ai acheté il y a peu, je pense qu'il y a une astuce car j'ai des telecommandes de ce type

et elles s'appairent facilement sur les modules , je précisent que ces modules ne sont pas livrés avec les volets, actuellement les volets sont pilotés par un bouton poussoir filaire manuel.
Je vais regarder ce que mes autres télécommandes fournissent comme signal.

Bonjour,
celle qui est sur la photo il n’y a pas trop de problème pour la faire fonctionner avec un module 433 basic et un arduino

bonjour,
j’ai justement ce matin récupéré les codes de cette télécommande, et j’ai essayé avec un emetteur de communiquer avec le relais piloté mais ça ne marche pas. je ne comprends pas je dois passer à cote de quelque chose.
voila les codes que j’ai pour un seul bouton (celui de gauche) , j’ai le plus souvent le code 5592512 et de temps à autre le code 5570560 et 5592320

Decimal: 5592512 (24Bit) Binary: 010101010101010111000000 Tri-State: FFFFFFFF1000 PulseLength: 146 microseconds Protocol: 1
Raw data: 5520,96,188,88,412,212,2332,328,420,188,924,204,432,212,1428,632,476,156,2328,96,160,468,188,1048,704,2676,564,680,924,188,428,208,296,84,156,188,88,212,164,196,436,336,508,852,308,176,1216,52,328,

Decimal: 5570560 (24Bit) Binary: 010101010000000000000000 Tri-State: FFFF00000000 PulseLength: 146 microseconds Protocol: 1
Raw data: 6284,96,2808,76,180,56,700,436,424,428,1312,72,524,240,128,228,296,664,216,64,244,408,416,192,192,944,52,2668,192,192,432,84,464,72,344,888,544,464,180,700,192,180,144,208,176,204,892,640,272,

Decimal: 5592320 (24Bit) Binary: 010101010101010100000000 Tri-State: FFFFFFFF0000 PulseLength: 147 microseconds Protocol: 1
Raw data: 4548,228,376,508,68,216,384,520,56,216,396,508,68,204,416,492,84,200,412,488,304,100,1304,3164,700,72,3444,372,240,68,200,188,304,576,452,424,348,384,828,668,92,48,208,316,168,228,76,320,172,

J’ai donc fait un programme avec un emetteur pour tenter de communiquer avec le module mais il ne se passe rien.
voici le programme , j’ai ajouté une led pour verifier qu’il tournait bien:

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();
 
unsigned long relaisON  =5592512;
unsigned long relaisOFF =5592368;
const int led1=3;


 
void setup() {
  Serial.begin(9600);
  // Emetteur connecté au pin #2 de l'Arduino  
  mySwitch.enableTransmit(2);
  Serial.println("init ");
   digitalWrite(led1, LOW);
   pinMode(led1, OUTPUT);
}
 
void loop() {
   Serial.print("led1 on  ");
  digitalWrite(led1, HIGH);
  delay(1000);
    Serial.print("relaisON  ");
  mySwitch.send(relaisON,24);
  delay(1500);  
   Serial.print("relaisOFF  ");
  mySwitch.send(relaisOFF,24);
  delay(1500);
   Serial.print("led1 off  ");
   digitalWrite(led1, LOW);
  delay(1000); 
   
  delay(2000); 
   
  }

Met ton code entre les balises, c’est plus lisible (onglet </>) en haut a gauche.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch(); 

const int Bouton1 = 8; // un bouton sur la broche 8
const int Bouton2 = 9; // un bouton sur la broche 9
int etat1 = 0;        
int etat2 = 0;         




void setup()
{
   
  mySwitch.enableTransmit(10);  // Using Pin #10  
  // on met le bouton en entrée
    pinMode(Bouton1, INPUT);
    pinMode(Bouton2, INPUT);
    // on active la résistance de pull-up en mettant la broche à l'état bas
  
    digitalWrite(Bouton1, LOW);
    digitalWrite(Bouton2, LOW);
}

void loop() {
   //Serial.begin(9600); // Initialisation du port série  
    etat1 = digitalRead(Bouton1);
    etat2 = digitalRead(Bouton2);

    if (etat1 == HIGH) mySwitch.send(1234567, 24);// code telecommande
    if (etat2 == HIGH) mySwitch.send(1234567, 24);//code telecommanade
    
}

c'est fait désolé .
sinon j'ai commandé un arduino mega et je vais tester avec rflink si ça marche mieux pour décoder le signal et émettre car il y a beaucoup plus de protocoles reconnu.