Spisu treści:

Analizator RF433: 7 kroków
Analizator RF433: 7 kroków

Wideo: Analizator RF433: 7 kroków

Wideo: Analizator RF433: 7 kroków
Wideo: DIY CC1101 tool - RF jammer, replay attack, sniffer - cheap & easy tool for radio pen testing 2024, Lipiec
Anonim
Analizator RF433
Analizator RF433
Analizator RF433
Analizator RF433

Ta instrukcja tworzy instrument pomiarowy, który pomaga analizować transmisje RF 433 MHz, które są powszechnie używane do zdalnej komunikacji o małej mocy w automatyce domowej i czujnikach. Prawdopodobnie można by go łatwo zmodyfikować do obsługi transmisji 315 MHz stosowanych w niektórych krajach. Byłoby to przy użyciu wersji 315 MHz RXB6 zamiast obecnej 433 MHz.

Cel instrumentu jest dwojaki. Po pierwsze, zapewnia miernik siły sygnału (RSSI), który można wykorzystać do zbadania zasięgu wokół nieruchomości i znalezienia czarnych punktów. Po drugie, może przechwytywać czyste dane z nadajników, aby umożliwić łatwiejszą analizę danych i protokołów używanych przez różne urządzenia. Jest to przydatne, jeśli próbujesz zaprojektować zgodne dodatki do istniejących jednostek. Zwykle przechwytywanie danych jest skomplikowane ze względu na szum tła obecny w odbiornikach, powodujący wiele fałszywych przejść i utrudniający wykrycie prawdziwych transmisji.

Urządzenie wykorzystuje odbiornik superhet RXB6. Wykorzystuje układ odbiornika Synoxo-SYN500R, który ma wyjście analogowe RSSI. Jest to faktycznie buforowana wersja sygnału AGC używana do kontrolowania wzmocnienia odbiornika i dająca siłę sygnału w szerokim zakresie.

Odbiornik monitorowany jest przez moduł ESP8266 (ESP-12F) konwertujący sygnał RSSI. Obsługuje również mały lokalny wyświetlacz OLED (SSD1306). Elektronika może również przechwytywać informacje o czasie w przejściach danych.

Przechwytywanie może być wyzwalane lokalnie za pomocą przycisku na urządzeniu. Przechwycone dane są zapisywane w plikach do późniejszej analizy.

Moduł ESP12 uruchamia serwer sieciowy, aby zapewnić dostęp do plików, a przechwytywanie może być również uruchamiane z tego miejsca.

Instrument zasilany jest małym akumulatorem LIPO. Daje to rozsądny czas pracy, a elektronika ma niski prąd spoczynkowy, gdy nie jest używana.

Krok 1: Wymagane komponenty i narzędzia

Ważna uwaga:

Zauważyłem, że niektóre odbiorniki RXB6 433Mhz mają niedziałające wyjście RSSI, mimo że AGC i reszta funkcjonalności są w porządku. Podejrzewam, że może być używany jakiś klon chipów Syn500R. Odkryłem, że odbiorniki oznaczone jako WL301-341 używają układu kompatybilnego z Syn5500R, a RSSI działa. Mają również tę zaletę, że nie używają puszki ekranującej, co ułatwia modyfikację kondensatora AGC. Polecam używanie tych jednostek.

Potrzebne są następujące składniki

Moduł wifi ESP-12F

  • Regulator 3,3 V xc6203
  • Kondensator 220uF 6V
  • 2 diody Schottky'ego
  • Przycisk 6mm
  • n kanał MOSFET np. AO3400
  • p kanał MOSFET np. AO3401
  • rezystory 2x4k7, 3 x 100K, 1 x 470K
  • mały kawałek płytki prototypowej
  • Odbiornik superhet 433 MHz RXB6 lub WL301-341
  • SSD1306 0,96 wyświetlacz OLED (wersja jednokolorowa SPI)
  • Bateria LIPO 802030 400mAh
  • 3 pinowe złącze do ładowania
  • Podłączyć przewód
  • Drut miedziany emaliowany samotopliwy
  • Żywica epoksydowa
  • Taśma dwustronna
  • Obudowa drukowana w 3D

Potrzebne narzędzia

  • Lutownica punktowa
  • Plecionka rozlutowująca
  • Pinceta
  • Szczypce

Krok 2: Schemat

Schematyczny
Schematyczny

Obwód jest dość prosty.

Regulator LDO 3.3V konwertuje LIP na 3.3V wymagane przez moduł ESP-12F.

Zasilanie jest dostarczane zarówno do wyświetlacza, jak i do odbiornika za pomocą dwóch przełączających tranzystorów MOSFET, więc są one wyłączone, gdy moduł ESP śpi.

Przycisk uruchamia system poprzez podanie 3,3V na wejście EN ESP8266. GPIO5 następnie podtrzymuje to, gdy moduł jest aktywny. Przycisk jest również monitorowany za pomocą GPIO12. Po zwolnieniu GPIO5 EN jest usuwany, a urządzenie wyłącza się.

Linia danych z odbiornika jest monitorowana przez GPIO4. Sygnał RSSI jest monitorowany przez AGC poprzez dzielnik potencjału 2:1.

Wyświetlacz SSD1306 jest sterowany za pomocą SPI składającego się z 5 sygnałów GPIO. Możliwe jest użycie wersji I2C, ale będzie to wymagało zmiany używanej biblioteki i ponownego mapowania niektórych GPIO.

Krok 3: Modyfikacja odbiornika

Modyfikacja odbiornika
Modyfikacja odbiornika
Modyfikacja odbiornika
Modyfikacja odbiornika
Modyfikacja odbiornika
Modyfikacja odbiornika

W dostarczonej postaci RXB6 nie udostępnia sygnału RSSI na zewnętrznych pinach danych.

Umożliwia to prosta modyfikacja. Złącze sygnału DER na urządzeniu jest w rzeczywistości tylko powtórzeniem sygnału sygnału danych. Są one połączone razem przez rezystor 0 Ohm oznaczony jako R6. Należy to usunąć za pomocą lutownicy. Komponent oznaczony R7 musi być teraz połączony w poprzek. Górny koniec to tak naprawdę sygnał RSSI, a dolny trafia do złącza DER. Można by użyć rezystora 0 Ohm, ale po prostu połączyłem go kawałkiem drutu. Miejsca te są dostępne poza metalową puszką ekranującą, której nie trzeba usuwać w przypadku tej modyfikacji.

Modyfikację można przetestować podłączając woltomierz pomiędzy DER i GND przy włączonym odbiorniku. Pokaże napięcie od około 0,4V (brak odbieranej mocy) do około 1,8V z lokalnym źródłem 433MHz (np. pilotem).

Druga modyfikacja nie jest absolutnie niezbędna, ale jest całkiem pożądana. W chwili dostawy czas odpowiedzi AGC odbiornika jest dość wolny i zajmuje kilkaset milisekund, aby odpowiedzieć na odebrany sygnał. Zmniejsza to rozdzielczość czasową podczas przechwytywania RSSI, a także sprawia, że korzystanie z RSSI jako wyzwalacza przechwytywania danych jest mniej responsywne.

Jest pojedynczy kondensator, który kontroluje czasy odpowiedzi AGC, ale niestety znajduje się pod metalową puszką ekranującą. Właściwie dość łatwo jest wyjąć puszkę ekranującą, ponieważ jest ona po prostu trzymana za 3 łapy i można ją podważyć, podgrzewając każdy z nich po kolei i podważając małym śrubokrętem. Po wyjęciu można wyczyścić otwory do ponownego montażu za pomocą oplotu rozlutowującego lub ponownego nawiercenia wiertłem około 0,8 mm.

Modyfikacja polega na usunięciu dotychczasowego kondensatora AGC C4 i zastąpienie go kondensatorem 0,22uF. Przyspiesza to odpowiedź AGC około 10 razy. Nie ma to żadnego negatywnego wpływu na działanie odbiornika. Na obrazku pokazuję cięcie ścieżki i łącze do tej ścieżki z kondensatora AGC. Nie jest to konieczne, ale sprawia, że punkt AGC jest dostępny na podkładce poza puszką ekranującą pod kryształem na wypadek, gdyby ktoś chciał z powrotem dodać dodatkową pojemność. Nie musiałem tego robić. Ekran można następnie wymienić.

Jeśli używasz jednostki WL301-341 RX, zdjęcie pokazuje to z podświetlonym kondensatorem AGC. Wyświetlany jest również pin sygnału RSSI. W rzeczywistości nie jest to z niczym połączone. Wystarczy podłączyć cienki przewód bezpośrednio do bolca. Alternatywnie, dwa środkowe styki zworki są połączone ze sobą i oba przenoszą dane wyjściowe. Ścieżka między nimi może zostać odcięta, a następnie RSSI połączony z zapasowym, aby udostępnić sygnał RSSI na wyjściu zworki.

Krok 4: Budowa

Budowa
Budowa
Budowa
Budowa
Budowa
Budowa
Budowa
Budowa

Poza modułem ESP-12 potrzebnych jest około 10 komponentów. Można je zmontować i połączyć na kawałku płytki prototypowej. Użyłem płytki prototypowej specyficznej dla ESP, której użyłem, aby ułatwić montaż regulatora i innych elementów smd. Mocuje się bezpośrednio na górze modułu ESP-12.

Pudełko, którego użyłem, to wydrukowany w 3D projekt z 3 wcięciami w podstawie na odbiornik, wyświetlacz i moduł esp. Posiada wycięcie na wyświetlacz oraz otwory na punkt ładowania i przycisk, który należy włożyć i zabezpieczyć niewielką ilością żywicy poxy.

Użyłem przewodu podłączeniowego do wykonania połączeń między 3 modułami, punktem ładowania i przyciskami. a następnie zabezpiecz je na miejscu za pomocą taśmy dwustronnej do ESP i odbiornika oraz małych kropli żywicy epoksydowej, aby utrzymać boki wyświetlacza na miejscu. Akumulator jest podłączony do punktu ładowania i montowany na górze odbiornika za pomocą taśmy dwustronnej.

Krok 5: Oprogramowanie i konfiguracja

Oprogramowanie zbudowane jest w środowisku Arduino.

Kod źródłowy do tego znajduje się na https://github.com/roberttidey/RF433Analyser Kod może mieć pewne stałe dla haseł zmienionych ze względów bezpieczeństwa przed skompilowaniem i flashowaniem do urządzenia ES8266.

  • WM_PASSWORD definiuje hasło używane przez wifiManager podczas konfigurowania urządzenia w lokalnej sieci wifi
  • update_password definiuje hasło używane do umożliwienia aktualizacji oprogramowania układowego.

Przy pierwszym użyciu urządzenie przechodzi w tryb konfiguracji Wi-Fi. Użyj telefonu lub tabletu, aby połączyć się z punktem dostępu skonfigurowanym przez urządzenie, a następnie przejdź do 192.168.4.1. Stąd możesz wybrać lokalną sieć Wi-Fi i wprowadzić jej hasło. Wystarczy to zrobić tylko raz lub w przypadku zmiany sieci Wi-Fi lub haseł.

Gdy urządzenie połączy się z siecią lokalną, będzie nasłuchiwać poleceń. Zakładając, że jego adres IP to 192.168.0.100, najpierw użyj 192.168.0.100:AP_PORT/upload, aby przesłać pliki z folderu danych. Dzięki temu 192.168.0.100/edit będzie mógł przeglądać i przesyłać dalsze pliki, a 192.168.0.100 ma dostęp do interfejsu użytkownika.

Punkty, na które należy zwrócić uwagę w oprogramowaniu:

  • ADC w ESP8266 można skalibrować, aby poprawić jego dokładność. Ciąg w pliku konfiguracyjnym ustawia uzyskane wartości surowe dla dwóch napięć wejściowych. Nie jest to szczególnie ważne, ponieważ RSSI jest dość względnym sygnałem zależnym od anteny itp.
  • Napięcie RSSI do db jest dość liniowe, ale krzywe w skrajnych przypadkach. Oprogramowanie ma dopasowanie sześcienne, aby poprawić dokładność.
  • Większość arytmetyki jest wykonywana przy użyciu skalowanych liczb całkowitych, więc wartości RSSI są w rzeczywistości 100 razy większe od rzeczywistych. Wartości zapisane do plików lub wyświetlane są konwertowane z powrotem.
  • Oprogramowanie wykorzystuje prostą maszynę stanów do kontrolowania przechwytywania RSSI i przesyłania danych.
  • Przejścia danych są monitorowane za pomocą procedury obsługi przerwań. Normalne przetwarzanie pętli Arduino jest zawieszane podczas przechwytywania danych, a watchdog jest utrzymywany lokalnie. Ma to na celu poprawę opóźnienia przerwań, aby pomiary czasu były jak najbardziej wierne.

Konfiguracja

Jest to przechowywane w pliku esp433Config.txt.

W przypadku przechwytywania RSSI można ustawić interwał próbkowania i czas trwania.

W przypadku przechwytywania danych można ustawić poziom wyzwalania RSSI, liczbę przejść i maksymalny czas trwania. Odpowiedni poziom wyzwalania to około +20dB na tle braku sygnału. Ciąg pulseWidths umożliwia również prostą kategoryzację szerokości impulsów, aby ułatwić analizę. Każda zalogowana linia ma pulseLevel, szerokość w mikrosekundach oraz kod będący indeksem w ciągu pulseWidths, który jest większy niż zmierzona szerokość.

CalString może poprawić dokładność ADC.

idleTimeout kontroluje liczbę milisekund bezczynności (brak przechwytywania), zanim urządzenie automatycznie się wyłączy. Ustawienie go na 0 oznacza, że nie przekroczy limitu czasu.

Trzy ustawienia przycisków sterują tym, co odróżnia krótkie, średnie i długie naciśnięcia przycisku.

displayUpdate podaje interwał odświeżania lokalnego wyświetlacza.

Krok 6: Użycie

Urządzenie włącza się przez krótkie naciśnięcie przycisku.

Wyświetlacz początkowo wyświetli lokalny adres IP przez kilka sekund, zanim zacznie wyświetlać poziom RSSI w czasie rzeczywistym.

Krótkie naciśnięcie przycisku zainicjuje przechwytywanie RSSI do pliku. Zwykle kończy się to po zakończeniu okresu RSSI, ale kolejne krótkie naciśnięcie przycisku również kończy przechwytywanie.

Średnie naciśnięcie przycisku zainicjuje przechwytywanie przejścia danych. Na ekranie pojawi się oczekiwanie na wyzwolenie. Gdy RSSI przekroczy poziom wyzwalania, rozpocznie przechwytywanie czasowych przejść danych dla określonej liczby przejść.

Przytrzymanie przycisku dłużej niż przez dłuższy czas spowoduje wyłączenie urządzenia.

Polecenia przechwytywania można również inicjować z interfejsu internetowego.

Krok 7: Interfejs sieciowy

Interfejs sieciowy
Interfejs sieciowy
Interfejs sieciowy
Interfejs sieciowy

Dostęp do urządzenia poprzez jego adres IP pokazuje interfejs sieciowy z 3 zakładkami; Przechwytuje, status i konfiguracja.

Ekran przechwytywania pokazuje aktualnie przechwycone pliki. Zawartość pliku można wyświetlić klikając na jego nazwę. Dla każdego pliku znajdują się również przyciski usuwania i pobierania.

Istnieją również przyciski przechwytywania RSSI i przechwytywania danych, których można użyć do zainicjowania przechwytywania. Jeśli podano nazwę pliku, zostanie ona użyta, w przeciwnym razie zostanie wygenerowana nazwa domyślna.

Zakładka config pokazuje bieżącą konfigurację i pozwala na zmianę i zapisywanie wartości.

Interfejs sieciowy obsługuje następujące połączenia

/edit - dostęp do zbioru danych urządzenia; może służyć do pobierania plików miar

  • /status - zwraca ciąg znaków zawierający szczegóły statusu
  • /loadconfig – zwraca ciąg znaków zawierający szczegóły konfiguracji
  • /saveconfig - wyślij i zapisz ciąg, aby zaktualizować konfigurację
  • /loadcapture - zwraca ciąg zawierający miary z pliku
  • /setmeasureindex - zmień indeks, który będzie używany w następnym takcie
  • /getcapturefiles - pobierz ciąg z listą dostępnych plików miar
  • /capture - wyzwala przechwytywanie RSSI lub danych
  • /firmware - zainicjuj aktualizację oprogramowania

Zalecana: