Blog de Ger Koper

Les porte-clés de télécommande sont généralement utilisés pour les portes de garage et autres. Les systèmes d’ouverture de porte de voiture les utilisent également. Le protocole de ces appareils semble relativement standard. En appuyant sur l’un des boutons, des séries d’impulsions de radiofréquence (rf) sont envoyées qui sont ensuite reçues par l’équipement d’ouverture de porte. Ceux-ci comparent la séquence de codes reçue avec le code stocké en interne et, à égalité, ouvrent ou ferment la porte. Ce principe est également utilisé pour contrôler l’éclairage, transmettre des informations de station météorologique, etc.

Ce petit rapport est sur les soi-disant porte-clés comme indiqué ci-dessus. Ceux-ci sont actuellement abondamment disponibles sur le web. Ils ont l’avantage d’avoir un mécanisme par lequel ils peuvent être programmés à partir d’un autre porte-clés. La procédure est relativement simple mais nécessite une certaine persistance: finalement, cela fonctionnera:

  • Appuyez simultanément sur les boutons A et B. La LED s’allume et après un certain temps, elle commence à clignoter rapidement. Cela indique que le porte-clés est effacé et que les boutons peuvent être relâchés.
  • Maintenant, en appuyant sur l’un des boutons, la LED ne clignote qu’une fois très courte. Cela indique qu’aucun code n’est transmis.
  • Appelons ce porte-clés « vide » numéro 1. Le porte-clés à partir duquel nous souhaitons copier est le numéro 2.
  • Nous allons maintenant copier le code du bouton X, soit A, B, C ou D, du porte-clés 2 sur le bouton Y du porte-clés 1 (A, B, C ou D).
  • Bouton poussoir X sur le porte-clés 2, sa LED brûle en continu pour indiquer qu’elle transmet les séquences de code.
  • Bouton poussoir Y sur le porte-clés 1, sa LED émet un bref clignotement initial puis reste éteinte.
  • Amenez les deux porte-clés, tout en maintenant les boutons poussés, ensemble, généralement d’avant en avant, mais d’autres positions peuvent également fonctionner, jusqu’à ce que la LED de la touche 1 commence à clignoter. Ensuite, les boutons peuvent être relâchés.
  • Appuyez maintenant sur le bouton Y du porte-clés 1 et la LED doit briller en continu pour indiquer qu’elle transmet un code. Si tout s’est bien passé, ce code active également la porte contrôlée par le porte-clés 2.
  • Ceci peut être répété pour les quatre boutons. Des codes identiques pour deux boutons différents peuvent également être programmés, la clé ne se plaindra pas.

Il est important de noter que les porte-clés d’apparence similaire peuvent avoir des protocoles différents, bien que similaires. Suivez les instructions du vendeur si nécessaire.

On peut également acheter une unité de commande contenant deux relais pouvant être commandés à partir de deux boutons d’un porte-clés décrit ci-dessus. Ces unités doivent également être programmées, bien qu’elles soient livrées avec des porte-clés préprogrammés. L’unité dispose d’un sélecteur DIP qui définit le mode de contrôle. Ici, nous utilisons qu’un seul bouton s’allume et s’éteint. L’unité a deux LED qui sont à côté des relais et indiquent l’état du relais: on ou off. Près du bouton de commande, il y a une autre LED. Il clignote à la réception d’un signal rf codé d’un porte-clés.

Si l’on souhaite fonctionner avec des codes différents de ceux codés en usine, on procède comme suit

  • Les codes sont effacés en appuyant sur le bouton jusqu’à ce que la LED se mette à clignoter.
  • Maintenant, les touches ne peuvent plus commuter les relais bien que la LED puisse clignoter pour indiquer qu’un code a été reçu.
  • En appuyant sur le bouton de l’appareil une fois que l’appareil est en mode de programmation, la LED s’allume.
  • Appuyez d’abord sur le porte-clés le bouton qui commande le relais A. La LED clignote pour indiquer la réception. Relâchez le bouton. La LED reste allumée.
  • Appuyez maintenant sur le porte-clés le bouton qui commande le relais B. La LED clignote pour indiquer la réception et s’éteint.
  • L’appareil est maintenant programmé. Appuyer sur les deux boutons activera maintenant les relais A et B.
  • Notez qu’appuyer deux fois sur le même bouton ne programmera que le relais A !

Il peut être intéressant d’utiliser un code complètement différent avec les porte-clés et l’appareil. Tel est décrit pour un Raspberry Pi par un instructable écrit par george7378. Ci-dessous un exemple de trace d’un code de bouton.

Le signal rf est allumé pendant le temps « élevé », typiquement environ 0,5 ms, et éteint pendant le signal « bas », environ 1 ms. Ces séquences sont répétées avec un intervalle d’environ 10 ms de sorte que des centaines de séquences de code sont envoyées en appuyant sur le bouton pendant une seconde environ. Le code peut être facilement lu, un haut court suivi d’un bas long est interprété comme un binaire 1 alors qu’un haut long suivi d’un bas court est un binaire 0. La séquence de code binaire est donc constituée de 25 bits, ici 1111 0000 0101 0110 0101 1110 1. Il y a 225 = 33 554 432 codes différents possibles avec ces 25 bits.

Avec le petit programme Python décrit par le instructable mentionné ci-dessus, il est relativement simple d’entrer son propre code. L’utilisation d’une antenne de 17,2 cm sur l’émetteur 433 MHz simplifie considérablement le codage des porte-clés. Surtout si l’on augmente le nombre de répétitions de séquence, c’est-à-dire que l’on change NUM_ATTEMPTS de 10 à 100.

Il y a déjà beaucoup de codes différents possibles avec cette séquence de 25 bits, mais si l’on imagine que le nombre de bits, le temps « haut », le temps « bas » et le temps de répétition peuvent tous varier à volonté, on voit pourquoi il n’y a généralement pas trop d’interférences entre les unités et les porte-clés d’origines diverses. Il y aura des limites sur le calendrier et les codes utilisés, mais il reste beaucoup de variations pour un ensemble donné.

Quelques remarques sur les programmes décrits dans instructable.

  • Il utilise le même port GPIO pour l’envoi et la réception. J’ai trouvé plus facile d’en avoir différents pour que les deux unités puissent être connectées simultanément.
  • Utiliser sur la première ligne le code
    #!/usr/bin/python

    et le rendre exécutable par exemple par

    chmod +x TransmitRF.py

    permet d’appeler plus simplement le programme en tant que

    ./TransmitRF.py a_on

    et de répéter son opération.

  • Plutôt que d’utiliser ReceiveRF.py, le programme pour lire la séquence de code des porte-clés, je préfère utiliser mon analyseur logique Logic 4 Digital + Analog de Saleae. Cela donne beaucoup plus de liberté dans l’analyse des données.

Leave a Reply

Votre adresse e-mail ne sera pas publiée.