Table des matières:

Protocole d'ingénierie inverse Ritter 8341C pour ESP3866 : 5 étapes
Protocole d'ingénierie inverse Ritter 8341C pour ESP3866 : 5 étapes

Vidéo: Protocole d'ingénierie inverse Ritter 8341C pour ESP3866 : 5 étapes

Vidéo: Protocole d'ingénierie inverse Ritter 8341C pour ESP3866 : 5 étapes
Vidéo: You’re It! JTAGging the Smart Meter 2024, Juillet
Anonim
Protocole d'ingénierie inverse Ritter 8341C pour ESP3866
Protocole d'ingénierie inverse Ritter 8341C pour ESP3866

Salut tout le monde.

Pour ma propre petite domotique, j'utilise des prises primaires contrôlées à 433 MHz. Je possède 3 ensembles avec des commutateurs DIP pour ajuster l'adresse. Ceux-ci fonctionnaient bien. Mais il y a quelque temps (un ou deux ans), j'ai acheté un jeu de douilles chez "ritter". Je n'avais pas lu la description auparavant et, après avoir déballé, je me suis rendu compte qu'il n'y avait pas de commutateurs DIP et que la bibliothèque rcswitch pour ESP ne "parlait" pas le bon protocole. Je les ai donc utilisés uniquement avec la télécommande.

Maintenant, pendant mes vacances, je commence à changer ça… et ici je veux documenter ce projet. J'espère que cela aidera quelqu'un d'autre avec le même problème ou un problème similaire.

Étape 1: Enregistrer les signaux

Enregistrer des signaux
Enregistrer des signaux
Enregistrer des signaux
Enregistrer des signaux

Pour enregistrer les signaux, j'ai connecté un module récepteur 433 MHz à un ESP8266 (seule une alimentation devrait être ok) et j'ai connecté mon oscilloscope Hantek 6022 à la broche de données.

Ensuite, j'ai appuyé sur le bouton de la télécommande et j'ai enregistré le train de signaux.

Étape 2: Mesure d'impulsion/délai

Mesure d'impulsion/délai
Mesure d'impulsion/délai

Après avoir enregistré le signal, j'ai recherché le début et la fin d'une rafale. Normalement une prise télécommande envoie 3 fois la même rafale ou parfois, tant que le bouton est enfoncé.

Maintenant, j'ai mesuré les temps d'impulsion/de retard et l'ai noté. Je l'ai répété pour les six trains de signaux (3 x activé + 3 x désactivé).

Étape 3: Comparez les signaux pour les sockets 1, 2, 3 et trouvez la différence

Comparez les signaux pour les sockets 1, 2, 3 et trouvez la différence
Comparez les signaux pour les sockets 1, 2, 3 et trouvez la différence

Après quelques mesures, j'ai comparé les durées des signaux HIGH et LOW +. Les changements étaient les différentes commandes. Les autres signaux étaient quelque chose comme des codes de protocole/fabricant. De plus, chaque rafale avait une séquence de début et de fin.

Le signal consiste en "START + PAS DE CHANGEMENT DE SÉQUENCE + COMMANDE MARCHE/ARRÊT + ADRESSE DE L'APPAREIL + FIN"

Étape 4: écrivez le code pour les tests

Écrire du code pour les tests
Écrire du code pour les tests

Au bout d'un moment, j'avais toutes les informations (théoriques) dont j'avais besoin. J'ai donc créé un petit test-sketch pour un ESP8266 et un émetteur 433 MHz. En boucle, les trois prises sont allumées/éteintes avec un délai entre les commandes.

Étape 5: Testez le code avec un expéditeur de base

Tester le code avec un expéditeur de base
Tester le code avec un expéditeur de base
Tester le code avec un expéditeur de base
Tester le code avec un expéditeur de base

J'ai connecté une batterie à l'ESP et suis allé dans le salon. 5 des 6 commandes fonctionnaient, et après avoir corrigé une erreur d'écriture dans une séquence de commandes, tous les codes fonctionnaient.

Très bien, je peux maintenant commuter les 12 prises rc (9 avec une adresse DIP + les 3 nouvelles ritter) avec mon contrôleur RC ESP8266.

Vous pouvez trouver le code de démonstration sur GitHub

Conseillé: