Sisukord:
- Samm: varustus
- 2. samm: kaugjuhtimispuldi nuhkimine
- Samm: saatke samad andmeraamid
- Samm: ühendage süsteemiga
- Samm: optimeerige energiatarbimist
Video: Häkkige oma garaažiuks: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
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
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
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
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
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
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:
Alexa juhitav garaažiuks koos Arduinoga Esp8266: 6 sammu
Alexa juhitav garaažiuks koos Arduino Esp8266 -ga: selle projekti idee tuli mulle vanast projektist, mille kallal olin mõnda aega tagasi töötanud. Olin ühendanud lihtsa nuppude ahela, mis lülitas LED -i sisse, kui garaažiuks vajutas nuppu. See meetod osutus ebausaldusväärseks ja mitte nii kasulikuks
Häkkige oma autot Wio terminali ja CAN -bussiga: 7 sammu
Häkkige oma autot Wio -terminali ja CAN -bussiga: kui teil on CAN -bussi ja Arduino programmeerimisest arusaamist ja soovite oma autot häkkida, siis see juhend annab teile lahenduse. Miks soovite oma autot häkkida, ei tea, aga see on tõepoolest huvitav asi. See pr
Häkkige pildiraami oma elektrilise värvivalgusti komplektiga: 10 sammu
Pildiraami häkkimine oma elektrilise värvivalgusti komplektiga: Elektriline värvivalgusti komplekt on suurepärane võimalus alustamiseks ja projektide loomiseks Light Up Board ja Electric Paint abil. Aga kui soovite Light Up Boardiga loovust arendada, on see õpetus suurepärane koht alustamiseks! Selles õpetuses
Häkkige oma Halloweeni vidinatega: 9 sammu (piltidega)
Häkkige oma Halloweeni vidinatega: see projekt näitab teile, kuidas saate " häkkida " oma Halloweeni kaunistused ja laske neil käituda täpselt nii, nagu soovite! Halloweeni kaunistusel, millega me töötame, on järgmine vaikefunktsioon: aktiveeritakse viskelülitiga (näidatud
Häkkige oma USB-raketiheitja "automaatselt sihitud automaatreisile!": 6 sammu
Häkkige oma USB-raketiheitja "Auto-targeting Autoturret!": Kuidas panna oma USB-raketiheitja ise sihtima. See juhend õpetab teid pöörama oma USB -raketiheitja autoturretisse, mis leiab ja sihib IR -sihtmärke. (kahjuks ainult IR sihtmärgid)