Obsah:

Hackněte si garážová vrata: 5 kroků
Hackněte si garážová vrata: 5 kroků

Video: Hackněte si garážová vrata: 5 kroků

Video: Hackněte si garážová vrata: 5 kroků
Video: Jak odemknout fabii bez klíčů rukama za 2 vteřiny 2024, Listopad
Anonim
Rozbijte garážová vrata
Rozbijte garážová vrata
Nabourejte garážová vrata
Nabourejte garážová vrata
Rozbijte garážová vrata
Rozbijte garážová vrata

Kdo by nikdy nesnil o tom, že by šel domů jen s aplikací v telefonu nebo mohl poslouchat a kopírovat datové tramvaje? Jsem rád, že se s vámi mohu podělit o to, co jsem si uvědomil a jak jsem postupoval. Začal jsem s tímto projektem poté, co jsem podruhé zapomněl klíče …

Kódování, typ modulace, frekvence nosiče, informace o připojení bluetooth a data, která ukážu na příkladu, samozřejmě nejsou originály, návštěvníky raději nemám;-).

Tato aplikace se vztahuje na jakýkoli objekt schopný přijímat digitální informace elektromagnetickými vlnami (garážová vrata, auto, některé okenice …). Celý systém se skládá z objektu připojeného přes bluetooth k telefonu, přičemž tento objekt je schopen odesílat stejné rámečky jako dálkové ovládání spojené s tím, co chceme hacknout. Tento objekt jsem umístil do své garáže a mohu se k němu připojit zvenčí.

Krok 1: Vybavení

Vybavení
Vybavení
Vybavení
Vybavení

Použité jazyky: C ++, MATLAB, Strojopis, C, html.

Základní znalosti z digitální elektroniky a telekomunikací/zpracování signálu.

Cena: méně než 35 $.

Hardwarové požadavky:

- NooELEC NESDR: pro sběr dat. Tento velmi levný modul provádí digitální demodulaci, a proto má vysokou přenositelnost. Tento model je kompatibilní s MATLAB. (18,95 $)

www.nooelec.com/store/sdr/sdr-receivers/nes…

- Wemos Lolin32 lite: tento esp32 je levný mikrokontrolér vybavený Wifi a Bluetooth. Wifi v této aplikaci používat nebudeme, ale to je do značné míry myslitelné. (4,74 $)

wiki.wemos.cc/products:lolin32:lolin32_lit…

- CDSENET cc1101: tento rádiový vysílač nám poskytuje extrémní flexibilitu, od zvolené nosné frekvence až po typ modulace. (2,63 $)

www.aliexpress.com/item/2PC-Lot-E07-868MS1…

- Dráty, hlavičky, svařovací zařízení, 3,7V lipo baterie pro autonomii, případně osciloskop a/nebo logický analyzátor pro ladění a mimochodem smartphone…

Softwarové požadavky:

- MATLAB/Simulink: pro zachycení dat. Lze použít i jiný bezplatný alternativní software, například Audacity pro vizualizaci dat. (licence)

fr.mathworks.com/products.html?s_tid=gn_ps

- esp-idf toolchain: toto bude použito k programování esp32. Lze použít i Arduino ide, ale neumožňuje tolik svobody, jako to, co použijeme. (volný, uvolnit)

esp-idf.readthedocs.io/en/latest/get-starte…

- TI SmartRF Studio: to nám pomůže konfigurovat registry cc1101 podle našich specifikací. (volný, uvolnit)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: pro vytvoření aplikace. Můžete si vybrat budování nativních aplikací, ale Ionic nám umožňuje spouštět naši aplikaci na zařízeních Android i IOS pouze s kódem. Výkon se v našem případě nevyhledává. (volný, uvolnit)

ionicframework.com/

- Váš oblíbený nápad …

Krok 2: Sledování dálkového ovladače

Sledování dálkového ovladače
Sledování dálkového ovladače
Sledování dálkového ovladače
Sledování dálkového ovladače
Sledování dálkového ovladače
Sledování dálkového ovladače

Začneme pozorováním dat, která produkují příkazy dálkového ovladače. K tomu použijeme dongle rtl-sdr a anténu:

fr.mathworks.com/hardware-support/rtl-sdr….

Pomocí tohoto odkazu najdete balíček MATLAB a také bezplatnou knihu, která s vysvětlením vysvětluje všechny ceny. Abychom shrnuli, co se nás týká, jsou tranzitní data ve formě signálu IQ: fázová data „I“v kombinaci s kvadraturními daty „Q“. Tato metoda usnadňuje telekomunikace. Nás bude zajímat pouze příjem signálu ve fázi. Nyní budeme shromažďovat fyzické a digitální informace o dálkovém ovládání. Pokud k němu najdete nějakou dokumentaci, bude to snazší. Žádné jsem nenašel. Abychom mohli signál dočasně pozorovat, musíme nejprve vědět, jaká je nosná frekvence vysílaného signálu. Použijeme příklad poskytnutý v dokumentaci k balíčku „Spektrální analýza s rádiem RTL-SDR“, abychom přesně věděli, na jaké frekvenci pozorujeme špičkový výkon při odesílání příkazu. V mém případě je to 868,22 MHz. „Standardní“frekvence pro tento druh aplikací se pohybují kolem 868 MHz.

S těmito indikacemi budeme schopni napsat kód MATLAB pro obnovu dat. Tento je připojen k fotografii a komentován. Výsledek nám umožňuje najít typ modulace: načtením nezpracovaných informací a zobrazením výsledku těsně po obnovení skutečné části signálu můžeme odvodit, že se jedná o ASK / OOK modulace. Skutečně pozorujeme, že frekvence je invariantní, ale signál má pouze dvě amplitudy: null a fixed. Zbytek kódu nám umožňuje obnovit obálku přijatého signálu, což usnadňuje čtení, abychom poznali trame. Po zobrazení můžeme určit modulaci základního pásma: jedná se o Manchesterské kódování (viz přiložená fotografie). Můžeme také odvodit přenosovou rychlost (symboly za sekundu). Když jsou všechny tyto informace shromážděny, můžeme znát datový rámec. V mém případě jsou nalezené bajty: 249, 39, 75, 178, 45, 200 a několikrát opakovány, aby byl příkaz dobře přijat. Naštěstí se kód neválcuje, datový rámec je vždy stejný.

Krok 3: Odeslání stejných datových rámců

Odeslat stejné datové rámce
Odeslat stejné datové rámce
Odeslat stejné datové rámce
Odeslat stejné datové rámce
Odeslat stejné datové rámce
Odeslat stejné datové rámce

Texas Instruments cc1101 je tak flexibilní, že stále dosáhnete svého cíle, i když nastavení, která jste našli v předchozím kroku, jsou úplně jiná než ta moje. V dokumentaci na stránce 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) skutečně uvidíte, že umožňuje provádět modulaci NRZ, Manchester, FSK, ASK/OOK a dosáhnout frekvence kolem 433 MHz nebo 868 MHz a mnoho dalších věcí. Doporučuji vám přečíst si dokumentaci, abyste se s tímto modulem seznámili.

Na tomto odkazu najdete jako příklad práci Loborise týkající se konstrukce funkcí pomocí tohoto modulu:

github.com/loboris/ESP32_CC1101/tree/maste…

Chystáme se napsat náš kód pro náš esp32 pomocí řetězce nástrojů esp-idf (viz odkazy v prvním kroku). Soubory odkazu můžete přidat do podadresáře komponent vašeho projektu. Pro správnou konfiguraci našeho cc1101 budeme muset opravit jeho registry. Společnost Texas Instruments nám poskytuje software, který nám dává hodnotu registrů podle naší konfigurace: SmartRF Studio.

Pokud jde o mě, softwaru naznačuji, že si přeji Manchesterské kódování, že moje nosná frekvence je 868,22 MHz, že můj typ modulace je ASK / OOK … Nechal jsem vás zadat vaše parametry. V případě, že kódování vašeho základního pásma není k dispozici, můžete zvážit kódování NRZ správným zvýšením přenosové rychlosti a přizpůsobením dat.

Jakmile definujete své hodnoty, máte několik možností týkajících se používání modulu: můžete použít funkce, které jsem vám propojil, nebo to, co jsem udělal, pouze se inspirovat tímto kódem, abyste mohli vše konfigurovat více brutálním způsobem (viz přiložené fotografie) a používejte pouze to, co potřebujeme.

Protože čip cc1101 komunikuje prostřednictvím SPI, najdete v odkazu na ukázkový kód soubor záhlaví „spi_master_lobo.h“, který obsahuje jednodušší funkce pro použití SPI, než kdybyste jej museli používat pouze s řetězcem nástrojů. Připojuji se k fotografii schématu komunikace CC1101 ve SPI, fotografie převzata ze strany 30 datového listu CC1101. Uvedené čtyři dráty jsou: CS (Chip Select, nebo SS: Slave Select, nebo zde CSn), CLK (nebo SCLK, hodiny, které poskytuje master), MISO (nebo SO, Master In Slave Out) a MOSI (nebo SI, Master Out Slave In). V našem případě je master ESP32 a slave CC1101. Komunikace začíná, když je pin CS obecně nízký.

Nezapomeňte povolit v možnostech kompilátoru menuconfig výjimky C ++ pro kompilaci.

Krok 4: Připojte se k systému

Připojte se k systému
Připojte se k systému
Připojte se k systému
Připojte se k systému
Připojte se k systému
Připojte se k systému

Pokud váš kód funguje, udělali jste to podstatné. V této části se zaměříme na to, jak vytvořit aplikaci pro telefon připojenou k systému. Nejzajímavějším řešením je připojení pomocí bluetooth, protože umožňuje použití protokolu o nízké spotřebě: Bluetooth Low Energy (BLE). Profil hierarchie je uveden na přiloženém výkresu: příkaz přečteme a napíšeme do Charakteristiky služby. A samozřejmě naše esp32 a náš smartphone jsou vybaveny bluetooth.

Tento krok je rozdělen na dvě části: část esp32 a část aplikace. Přiložená fotografie ukazuje a vysvětluje hlavní části kódů.

Vaše UUID můžete vygenerovat pomocí tohoto odkazu:

www.uuidgenerator.net/

Toto jsou identifikátory, které budou poskytovat přístup ke službám a funkcím našeho profilu BLE.

O kódu BLE esp32 odvedl Kolban skvělou práci, díky níž byly všechny tyto funkce na vysoké úrovni C ++ kompatibilní:

github.com/nkolban/esp32-snippets/tree/mas…

Tyto soubory můžete vložit do podadresáře komponent. V opačném případě budete potřebovat více času na pochopení toho, jak používat BLE s řetězcem nástrojů esp-idf.

V souhrnu toho, co uvidíte v kódu, vytvoříme server, službu a charakteristiku s přidruženými UUID a přidáme předefinovanou třídu zpětného volání s přidruženou metodou při zápisu: když obdržíme „O“znak, odešleme na cc1101 příkaz pro zápis.

Samozřejmě nezapomeňte povolit Bluetooth v konfiguraci komponent v Menuconfig.

O části aplikace použijeme Framework Ionic. Další informace o tom najdete v odkazu uvedeném v prvním kroku a další podrobnosti o tom, jak používat BLE s Ionic:

ionicframework.com/docs/native/ble/

A příklady napsané donem:

github.com/don/ionic-ble-examples/tree/mas…

Můžete například upravit příklad „Připojit“. Naskenujeme zařízení na první stránce a dostaneme se na druhou stránku, pokud vybereme naše zařízení. Poté přistoupíme k rozhraní, kde můžete přidat tlačítko metodou uvedenou na fotografii: odešle náš příkaz „O“s příslušnými UUID. Můžete také přidat do konstruktoru první stránky metodu „povolit“a požádat o aktivaci bluetooth na začátku aplikace.

Důrazně vám doporučujeme prozkoumat web Ionic a objevit všechny komponenty (tlačítka, upozornění, zaškrtávací políčka …), abyste vylepšili svou aplikaci:

ionicframework.com/docs/components/#overvi…

Krok 5: Optimalizace spotřeby energie

Optimalizujte spotřebu energie
Optimalizujte spotřebu energie
Optimalizujte spotřebu energie
Optimalizujte spotřebu energie

Začali jsme pracovat na nízké spotřebě, takže pojďme projít.

Řetězec nástrojů esp-idf nám umožňuje použít konfigurační GUI, menuconfig: spotřebu esp32 může snížit mnoho parametrů. Za prvé, protože nepotřebujeme Wifi, můžeme jej deaktivovat v konfiguraci komponent. Ve stejné složce, ve FreeRTOS, můžete vybrat „Spustit FreeRTOS pouze na prvním jádře. Poté, ve specifických pro ESP, můžete snížit frekvenci CPU na 80 MHz. Všechny funkce stále fungují při této hodinové rychlosti. Nakonec můžete zaškrtněte „Povolit koprocesor s ultra nízkým výkonem (ULP). Tato konfigurace umožňuje odběr proudu od přibližně stovky mA do přibližně třiceti mA. To je ještě moc…

ESP32 zvládne hluboký spánek. Pouze nízkoenergetické jádro je zapnuté a čeká na probuzení.

Další podrobnosti naleznete na tomto odkazu níže:

esp-idf.readthedocs.io/en/latest/api-refere…

V poslední dostupné verzi řetězce nástrojů esp-idf (3.0) jsou bohužel k dispozici pouze probuzení podle časovačů a narušení GPIO. Naštěstí nám Espressif slibuje BLE probuzení v další verzi (3.1).

CC1101 můžete také přepnout do režimu spánku zasláním správného příkazu k vypnutí zařízení ve SPI (viz datový list cc1101, příkaz SPWD, strana 51). Chcete -li zařízení přepnout do režimu spánku nebo jej probudit, můžete umístit nízko potom vysoko pin Chip Select pinů SPI (více informací v datovém listu).

Tyto poslední konfigurace by měly umožnit, aby spotřeba systému klesla pod miliampéry…

Konečně, aby systém vydržel co nejdéle bez dobíjení, nebo dokonce dosáhl měsíce autonomie, zvolte baterii 3,7 V s největším počtem ampér za hodinu. Měřením spotřeby energie vašeho systému se zobrazením generátoru nebo ampérmetru zapojených do série před + pól vašeho systému můžete odhadnout dobu, po kterou váš systém vydrží!

Doporučuje: