Spisu treści:

Reverse Engineering Ritter 8341C Protokół dla ESP3866: 5 kroków
Reverse Engineering Ritter 8341C Protokół dla ESP3866: 5 kroków

Wideo: Reverse Engineering Ritter 8341C Protokół dla ESP3866: 5 kroków

Wideo: Reverse Engineering Ritter 8341C Protokół dla ESP3866: 5 kroków
Wideo: What Happens if Russia Reverse-Engineering The Leopard Tank? 2024, Lipiec
Anonim
Reverse Engineering Ritter 8341C Protokół dla ESP3866
Reverse Engineering Ritter 8341C Protokół dla ESP3866

Cześć wszystkim.

Do własnej małej automatyki domowej używam podstawowych gniazd sterowanych 433 MHz. Posiadam 3 zestawy z przełącznikami DIP do regulacji adresu. Działały dobrze. Ale jakiś czas (rok lub dwa lata) kupiłem komplet gniazd od "rittera". Nie czytałem wcześniej opisu, a po rozpakowaniu zdałem sobie sprawę, że nie ma przełączników DIP, a biblioteka rcswitch dla ESP nie "mówiła" poprawnego protokołu. Więc używałem ich tylko z pilotem.

Teraz, na wakacjach, zacząłem to zmieniać… i tutaj chcę udokumentować ten projekt. Mam nadzieję, że pomoże to komuś innemu z tym samym lub podobnym problemem.

Krok 1: Nagraj sygnały

Nagrywaj sygnały
Nagrywaj sygnały
Nagrywaj sygnały
Nagrywaj sygnały

Aby zarejestrować sygnały podłączyłem moduł odbiornika 433 MHz do ESP8266 (tylko zasilacz powinien być w porządku) i podłączyłem oscyloskop Hantek 6022 do pinu danych.

Następnie nacisnąłem przycisk na pilocie i nagrałem sygnał.

Krok 2: Pomiar pulsu/opóźnienia

Pomiar pulsu/opóźnienia
Pomiar pulsu/opóźnienia

Po nagraniu sygnału szukałem początku i końca jednej serii. Zwykle pilot z gniazdem wysyła 3 razy tę samą serię lub czasami tak długo, jak długo przycisk jest wciśnięty.

Teraz zmierzyłem czasy impulsów/opóźnień i zapisałem. Powtórzyłem to dla wszystkich sześciu pociągów sygnalizacyjnych (3 x włączony + 3 x wyłączony).

Krok 3: Porównaj sygnały dla gniazda 1, 2, 3 i znajdź różnicę

Porównaj sygnały dla gniazda 1, 2, 3 i znajdź różnicę
Porównaj sygnały dla gniazda 1, 2, 3 i znajdź różnicę

Po wykonaniu kilku pomiarów porównałem czasy trwania sygnału WYSOKI i NISKI +. Zmiany dotyczyły różnych poleceń. Pozostałe sygnały przypominały kody protokołu/producenta. Również każda seria miała sekwencję początkową i końcową.

Sygnał składa się z „START + NIE ZMIENIA SEKWENCJI + POLECENIE WŁĄCZ/WYŁĄCZ + ADRES URZĄDZENIA + KONIEC”

Krok 4: Napisz kod do testowania

Napisz kod do testowania
Napisz kod do testowania

Po jakimś czasie miałem już wszystkie (teoretyczne) informacje, których potrzebowałem. Stworzyłem więc krótki szkic testowy dla ESP8266 i nadajnika 433 MHz. W pętli wszystkie trzy gniazda są włączane/wyłączane z opóźnieniem między poleceniami.

Krok 5: Przetestuj kod za pomocą podstawowego nadawcy

Przetestuj kod za pomocą podstawowego nadawcy
Przetestuj kod za pomocą podstawowego nadawcy
Przetestuj kod za pomocą podstawowego nadawcy
Przetestuj kod za pomocą podstawowego nadawcy

Podłączyłem akumulator do ESP i poszedłem do salonu. Działało 5 z 6 poleceń, a po naprawieniu błędu zapisu w sekwencji poleceń działały wszystkie kody.

W porządku, teraz mogę przełączać wszystkie 12 gniazd rc (9 z adresem DIP + 3 nowe ritter) za pomocą mojego kontrolera RC ESP8266.

Kod demo znajdziesz na GitHub

Zalecana: