Inhoudsopgave:

Reverse Engineering Ritter 8341C-protocol voor ESP3866 - Ajarnpa
Reverse Engineering Ritter 8341C-protocol voor ESP3866 - Ajarnpa

Video: Reverse Engineering Ritter 8341C-protocol voor ESP3866 - Ajarnpa

Video: Reverse Engineering Ritter 8341C-protocol voor ESP3866 - Ajarnpa
Video: What Happens if Russia Reverse-Engineering The Leopard Tank? 2024, November
Anonim
Reverse Engineering Ritter 8341C-protocol voor ESP3866
Reverse Engineering Ritter 8341C-protocol voor ESP3866

Hallo allemaal.

Voor mijn eigen kleine domotica gebruik ik primaire 433 MHz gestuurde stopcontacten. Ik heb 3 sets met DIP-schakelaars om het adres aan te passen. Deze werkten prima. Maar enige tijd (een of twee jaar) geleden kocht ik een set stopcontacten van "ritter". Ik had de beschrijving niet eerder gelezen en na het uitpakken realiseerde ik me dat er geen DIP-switches waren en ook de rcswitch-bibliotheek voor ESP "sprak" niet het juiste protocol. Dus ik gebruikte ze alleen met de afstandsbediening.

Nu, in mijn vakantie, begon ik dit te veranderen … en hier wil ik dit project documenteren. Ik hoop dat het iemand anders met hetzelfde of een soortgelijk probleem kan helpen.

Stap 1: Signalen opnemen

Opnamesignalen
Opnamesignalen
Signalen opnemen
Signalen opnemen

Om de signalen op te nemen heb ik een 433 MHz ontvangermodule aangesloten op een ESP8266 (alleen een voeding moet in orde zijn) en mijn Hantek 6022 oscilloscoop op de datapin aangesloten.

Toen drukte ik op de knop op de afstandsbediening en nam de seintrein op.

Stap 2: Puls-/vertragingsmeting

Puls-/vertragingsmeting
Puls-/vertragingsmeting

Nadat ik het signaal had opgenomen, zocht ik naar het begin en het einde van een burst. Normaal gesproken zendt een socket-afstandsbediening 3 keer dezelfde burst uit of soms, zolang de knop wordt ingedrukt.

Nu heb ik de puls/vertragingstijden gemeten en opgeschreven. Dit herhaalde ik voor alle zes de seintreinen (3 x aan + 3 x uit).

Stap 3: Vergelijk signalen voor aansluiting 1, 2, 3 en zoek het verschil

Vergelijk signalen voor socket 1, 2, 3 en zoek het verschil
Vergelijk signalen voor socket 1, 2, 3 en zoek het verschil

Na wat metingen heb ik de HIGH's en LOW's + signaalduur vergeleken. De veranderingen waren de verschillende commando's. De andere signalen waren zoiets als protocol-/fabrikantcodes. Ook had elke burst een begin- en eindsequentie.

Het signaal bestaat uit "START + NIET WIJZIGENDE SEQUENTIE + AAN/UIT COMMANDO + APPARAATADRES + EINDE"

Stap 4: Schrijf code om te testen

Code schrijven om te testen
Code schrijven om te testen

Na een tijdje had ik alle (theoretische) informatie die ik nodig had. Dus maakte ik een korte test-schets voor een ESP8266 en een 433 MHz zender. In lus worden alle drie de sockets in- en uitgeschakeld met een vertraging tussen de commando's.

Stap 5: Test de code met een standaard afzender

Test de code met een standaard afzender
Test de code met een standaard afzender
Test de code met een standaard afzender
Test de code met een standaard afzender

Ik heb een accu aangesloten op de ESP en ben de woonkamer in gegaan. 5 van de 6 commando's werkten, en na het herstellen van een schrijffout in een commandoreeks, werkten alle codes.

Prima, nu kan ik alle 12 rc-sockets (9 met een DIP-adres + de 3 nieuwe ritter) schakelen met mijn ESP8266 RC-controller.

Je kunt demo-code vinden op GitHub

Aanbevolen: