Sisukord:

Häkkige oma garaažiuks: 5 sammu
Häkkige oma garaažiuks: 5 sammu

Video: Häkkige oma garaažiuks: 5 sammu

Video: Häkkige oma garaažiuks: 5 sammu
Video: До конца недели получите крупную сумму денег из неожиданного источника, сегодня скажите эти слова 2024, November
Anonim
Häkkige oma garaažiukse
Häkkige oma garaažiukse
Häkkige oma garaažiukse
Häkkige oma garaažiukse
Häkkige oma garaažiukse
Häkkige oma garaažiukse

Kes poleks kunagi unistanud, et läheks koju ainult telefonirakenduse abil või saaks kuulata ja uuesti kopeerida andmetramme? Mul on hea meel, et saan teiega jagada seda, mida ma mõistsin ja kuidas ma edasi läksin. Alustasin seda projekti pärast teist korda, kui unustasin oma võtmed …

Muidugi pole kodeering, modulatsioonitüüp, operaatori sagedus, Bluetooth-ühenduse teave ja andmed, mida ma näites näitan, ei ole originaalid, ma eelistan mitte külastajaid;-).

See rakendus kehtib kõigi objektide kohta, mis on võimelised elektromagnetlainete kaudu digitaalset teavet vastu võtma (garaažiuks, auto, mõned aknaluugid jne). Kogu süsteem koosneb Bluetoothiga telefoniga ühendatud objektist, see objekt saab saata samu kaadreid kui kaugjuhtimispult, mis on seotud sellega, mida me häkkida tahame. Asetasin selle objekti oma garaaži ja saan sellega väljastpoolt ühenduse luua.

Samm: varustus

Varustus
Varustus
Varustus
Varustus

Kasutatavad keeled: C ++, MATLAB, masinakiri, C, html.

Põhiteadmised digitaalelektroonikast ja telekommunikatsioonist/signaalitöötlusest.

Maksumus: vähem kui 35 dollarit.

Riistvara nõuded:

- NooELEC NESDR: andmete jäädvustamiseks. See väga odav moodul teostab digitaalset demodulatsiooni, seega on selle kõrge teisaldatavus. See mudel ühildub MATLAB -iga. (18,95 dollarit)

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

- Wemos Lolin32 lite: see esp32 on odav mikrokontroller, mis on varustatud Wifi ja Bluetoothiga. Me ei kasuta selles rakenduses Wifit, kuid see on suuresti mõeldav. (4,74 dollarit)

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

- CDSENET cc1101: see raadiosaatja annab meile äärmiselt paindlikkuse, alates valitud kandesagedusest kuni modulatsiooni tüübini. (2,63 dollarit)

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

- Juhtmed, päised, keevitusseadmed, 3,7 V lipoaku iseseisvaks kasutamiseks, võib -olla ostsilloskoop ja/või silumiseks loogiline analüsaator ning muide nutitelefon …

Tarkvara nõuded:

- MATLAB/Simulink: andmete jäädvustamiseks. Andmete visualiseerimiseks võib kasutada muid tasuta alternatiivseid tarkvarasid, näiteks Audacity. (litsents)

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

- esp-idf toolchain: seda kasutatakse esp32 programmeerimiseks. Võib kasutada ka Arduino ideed, kuid see ei võimalda nii palju vabadust kui see, mida me kasutame. (tasuta)

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

- TI SmartRF Studio: see aitab meil konfigureerida cc1101 registreid vastavalt meie spetsifikatsioonidele. (tasuta)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: rakenduse loomiseks. Saate teha valiku omarakenduste loomiseks, kuid Ionic võimaldab meil oma rakendust käitada nii Androidi kui ka IOS -i seadmetes, ainsa koodiga. Esinemist meie puhul ei taotleta. (tasuta)

ionicframework.com/

- Sinu lemmikidee…

2. samm: kaugjuhtimispuldi nuhkimine

Kaugjuhtimispuldi nuhkimine
Kaugjuhtimispuldi nuhkimine
Kaugjuhtimispuldi nuhkimine
Kaugjuhtimispuldi nuhkimine
Kaugjuhtimispuldi nuhkimine
Kaugjuhtimispuldi nuhkimine

Alustuseks jälgime andmeid, mida kaugjuhtimispuldi käsud toodavad. Selleks kasutame rtl-sdr donglit ja antenni:

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

Seda linki järgides leiate paketi MATLAB ja tasuta raamatu, mis selgitab kõiki osalejaid nende selgitustega. Kokkuvõtteks, mis meid puudutab, on transiidiandmed IQ-signaali kujul: "I" faasis olevad andmed koos "Q" kvadratuuri andmetega. See meetod hõlbustab telekommunikatsiooni. Oleme huvitatud signaali vastuvõtmisest ainult faasis. Nüüd kogume kaugjuhtimispuldi füüsilist ja digitaalset teavet. Kui leiate selle kohta dokumentatsiooni, on see lihtsam. Ma ei leidnud ühtegi. Signaali ajutiseks jälgimiseks peame kõigepealt teadma, mis on kiirgava signaali sageduskandja. Kasutame pakettdokumentatsiooniga kaasasolevat näidet "Spectral Analysis with RTL-SDR Radio", et täpselt teada, millise sagedusega jälgime käsu saatmisel tippvõimsust. Minu puhul on see 868,22 MHz. Selliste rakenduste "tavalised" sagedused on umbes 868 MHz.

Nende märkide korral saame andmete taastamiseks kirjutada MATLAB -koodi. See on lisatud fotole ja kommenteeritud. Tulemus võimaldab meil leida modulatsiooni tüübi: toormaterjali toomisel ja tulemuse kuvamisel kohe pärast signaali tegeliku osa taastamist võime järeldada, et see on ASK / OOK modulatsioon. Tõepoolest, me täheldame, et sagedus on muutumatu, kuid signaalil on ainult kaks amplituudi: null ja fikseeritud. Ülejäänud kood võimaldab meil taastada vastuvõetud signaali ümbriku, mis on traami tundmiseks hõlpsamini loetav. Pärast kuvamist saame määrata põhiriba modulatsiooni: see on Manchesteri kodeering (vt lisatud fotot). Samuti võime järeldada edastuskiirust (sümbolid sekundis). Kogu selle teabe kogumisel saame andmeraami teada. Minu puhul on leitud baidid: 249, 39, 75, 178, 45, 200 ja kordatud mitu korda, et tagada käsu hea vastuvõtt. Õnneks kood ei veere, andmeraam on alati sama.

Samm: saatke samad andmeraamid

Saada samad andmeraamid
Saada samad andmeraamid
Saada samad andmeraamid
Saada samad andmeraamid
Saada samad andmeraamid
Saada samad andmeraamid

Texas Instruments cc1101 on nii paindlik, et saavutate oma eesmärgi, isegi kui eelmises etapis leitud seaded on minu omadest täiesti erinevad. Tõepoolest, näete dokumentatsiooni lehel 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf), et see võimaldab teostada NRZ, Manchester, FSK, ASK/OOK modulatsiooni sagedused umbes 433 MHz või 868 MHz ja palju muud. Selle mooduliga tutvumiseks soovitan lugeda dokumentatsiooni.

Sellelt lingilt leiate näitena Loborise töö selle mooduli abil ülesannete koostamise kohta:

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

Kirjutame oma esp32 koodi esp-idf tööriistaketiga (vt esimese sammu linke). Saate lingi failid lisada oma projekti komponentide alamkataloogi. Meie cc1101 õigeks konfigureerimiseks peame parandama selle registrid. Texas Instruments pakub meile tarkvara, mis annab meile registrite väärtuse vastavalt meie konfiguratsioonile: SmartRF Studio.

Minu kohta teatan tarkvarale, et soovin Manchesteri kodeerimist, et minu kandesagedus on 868,22 MHz, et minu modulatsioonitüüp on ASK / OOK … Ma luban teil sisestada oma parameetrid. Kui teie põhiriba kodeering pole saadaval, võite kaaluda NRZ -kodeeringut, suurendades korralikult edastuskiirust ja kohandades andmeid.

Kui olete oma väärtused määratlenud, on teil mooduli kasutamise osas mitu valikut: saate kasutada funktsioone, mille olen teiega linginud või mida tegin, ammutades sellest koodist ainult inspiratsiooni, et kõike täpsemalt konfigureerida jõhkral viisil (vt lisatud fotosid) ja kasutage ainult seda, mida vajame.

Kuna cc1101 kiip suhtleb SPI kaudu, leiate näite koodi lingilt päisefaili "spi_master_lobo.h", mis sisaldab rohkem lihtsaid funktsioone SPI kasutamiseks kui siis, kui peaksite seda kasutama ainult tööriistaketiga. Ühinen teiega fotol CC1101 kommunikatsiooni skeemi SPI -s, foto on võetud CC1101 andmelehe lehelt 30. Esitatud neli juhtmest on järgmised: CS (Chip Select või SS: Slave Select või siin CSn), CLK (või SCLK, kell, mille pakub kapten), MISO (või SO, Master In Slave Out) ja MOSI (või SI, Master Out Slave In). Meie puhul on kapten ESP32 ja alam on CC1101. Suhtlemine algab üldiselt siis, kui CS -pin on madal.

Ärge unustage menüü kompilaatori suvandites lubada C ++ erandeid kompileerimiseks.

Samm: ühendage süsteemiga

Ühendage süsteemiga
Ühendage süsteemiga
Ühendage süsteemiga
Ühendage süsteemiga
Ühendage süsteemiga
Ühendage süsteemiga

Kui teie kood töötab, olete teinud olulise. Selles osas keskendume sellele, kuidas luua süsteemiga ühendatud telefonirakendus. Kõige huvitavam lahendus on ühendamine bluetoothiga, sest see võimaldab kasutada väikese energiatarbega protokolli: Bluetooth Low Energy (BLE). Hierarhiaprofiil on näidatud lisatud joonisel: me loeme ja kirjutame käsu teenuse tunnuses. Ja loomulikult on meie esp32 ja nutitelefon varustatud Bluetoothiga.

See samm on jagatud kaheks osaks: esp32 ja rakenduse osa. Lisatud foto näitab ja selgitab koodide peamisi osi.

Saate oma UUID -d genereerida, järgides seda linki:

www.uuidgenerator.net/

Need on identifikaatorid, mis võimaldavad juurdepääsu meie BLE -profiili teenustele ja funktsioonidele.

Esp32 BLE koodi kohta tegi Kolban suurepärast tööd, muutes kõik need kõrgetasemelised C ++ funktsioonid ühilduvaks:

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

Saate need failid paigutada komponentide alamkataloogi. Vastasel juhul vajate rohkem aega, et mõista, kuidas BLE-d kasutada koos tööriistaketiga esp-idf.

Koodis nähtu kokkuvõtteks loome serveri, teenuse ja karakteristiku koos nendega seotud UUID -dega ning lisame uuesti määratletud tagasihelistamisklassi koos sellega seotud kirjutamismeetodiga: kui saame "O" tähemärki, saadame kirjutuskäsklusesse cc1101.

Muidugi ärge unustage Bluetoothi lubamist menüükonfiguratsiooni komponentide konfiguratsioonis.

Rakenduse osa kohta kasutame raamistikku Ionic. Lisateavet selle kohta leiate esimeses etapis esitatud lingilt ja lisateavet BLE ja Ionici kasutamise kohta:

ionicframework.com/docs/native/ble/

Ja näited, mille on kirjutanud Don:

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

Saate muuta näiteks näidet "Ühenda". Me skaneerime seadmeid esimesel lehel ja jõuame teisele lehele, kui valime oma seadme. Seejärel pääseme liidesesse, kuhu saate fotol esitatud meetodiga nupu lisada: see saadab meie käsu "O" koos sobivate UUID -dega. Esimese lehe konstruktorisse saate lisada ka meetodi "lubada", paludes rakenduse alguses aktiveerida bluetooth.

Soovitan teil tungivalt tutvuda veebisaidiga Ionic ja avastada kõik komponendid (nupud, hoiatused, märkeruudud …) oma rakenduse täiustamiseks:

ionicframework.com/docs/components/#overvi…

Samm: optimeerige energiatarbimist

Optimeerige energiatarbimist
Optimeerige energiatarbimist
Optimeerige energiatarbimist
Optimeerige energiatarbimist

Hakkasime töötama väikese tarbimisega, nii et teeme kõik läbi.

Tööriistakett esp-idf võimaldab meil kasutada konfiguratsiooni GUI-d, menuconfig: paljud parameetrid võivad esp32 tarbimist vähendada. Esiteks, kuna me ei vaja Wifit, saame selle komponendi konfiguratsioonis keelata. Samas kaustas, FreeRTOSis, saate valida "Käivita FreeRTOS ainult esimesel tuumal. Seejärel saate ESP-spetsiifilises protsessori sageduse alandada 80 MHz-ni. Kõik funktsioonid töötavad endiselt selle taktsagedusega. Lõpuks saate märkige "Luba üliväikese energiatarbega (ULP) kaasprotsessor. See konfiguratsioon muudab voolutarbimise umbes saja mA -lt umbes kolmekümne mA -ni. Seda on ikka liiga palju…

ESP32 saab hakkama sügava unega. Ainult vähese energiatarbega tuum on sisse lülitatud ja ootab ärkamist.

Lisateabe saamiseks vaadake seda linki allpool:

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

Kahjuks on esp-idf tööriistaketi (3.0) viimases saadaolevas versioonis ainsad saadaval olevad ärkamisviisid taimerite ja GPIO-de häirete tõttu. Õnneks lubab Espressif meile BLE ärkamist järgmises versioonis (3.1).

CC1101 saate lülitada ka unerežiimi, saates SPI -le õige käsu seadme väljalülitamiseks (vt cc1101 andmeleht, SPWD käsk, lehekülg 51). Seadme unerežiimi lülitamiseks või selle äratamiseks võite SPI -tihvtide kiibi valimise tihvti madalale ja kõrgele asetada (rohkem teavet andmelehel).

Need viimased konfiguratsioonid peaksid suutma süsteemi tarbimise ületada alla milliamperi…

Lõpuks, et süsteem võimalikult kaua ilma laadimiseta kestaks või isegi kuu aega autonoomseks jõuaks, valige 3,7 V aku, millel on kõige rohkem milliamperit tunnis. Mõõtes oma süsteemi energiatarvet, näidates generaatorit või amprit, mis on järjestikku ühendatud enne süsteemi + poolust, saate hinnata süsteemi kestvust!

Soovitan: