Sisällysluettelo:

Hakata autotallin ovi: 5 vaihetta
Hakata autotallin ovi: 5 vaihetta

Video: Hakata autotallin ovi: 5 vaihetta

Video: Hakata autotallin ovi: 5 vaihetta
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, Marraskuu
Anonim
Hakata autotallin ovi
Hakata autotallin ovi
Hakata autotallin ovi
Hakata autotallin ovi
Hakata autotallin ovi
Hakata autotallin ovi

Kukapa ei olisi koskaan haaveillut kotiin menemisestä pelkästään puhelinsovelluksen avulla tai siitä, että hän voisi kuunnella ja kopioida dataraitiovaunuja? Olen iloinen voidessani kertoa teille, mitä olen ymmärtänyt ja miten olen edennyt. Aloitin tämän projektin toisen kerran kun unohdin avaimet…

Tietenkin koodaus, modulaatiotyyppi, operaattorin taajuus, Bluetooth-yhteystiedot ja tiedot, jotka aion näyttää esimerkkinä, eivät ole alkuperäisiä, en halua olla vierailijoita;-).

Tämä sovellus koskee kaikkia kohteita, jotka pystyvät vastaanottamaan digitaalista tietoa sähkömagneettisten aaltojen avulla (autotallin ovi, auto, jotkut ikkunaluukut …). Koko järjestelmä koostuu objektista, joka on yhdistetty Bluetoothilla puhelimeen, ja tämä objekti pystyy lähettämään samat kehykset kuin kauko -ohjain, joka liittyy hakkerointiin. Laitoin tämän esineen autotalliini ja voin muodostaa yhteyden siihen ulkopuolelta.

Vaihe 1: Varustus

Varusteet
Varusteet
Varusteet
Varusteet

Käytetyt kielet: C ++, MATLAB, Typescript, C, html.

Digitaalisen elektroniikan ja tietoliikenteen/signaalinkäsittelyn perustiedot.

Hinta: alle 35 dollaria.

Laitteistovaatimukset:

- NooELEC NESDR: tietojen tallentamiseen. Tämä erittäin halpa moduuli suorittaa digitaalisen demodulaation, joten sen korkea siirrettävyys. Tämä malli on yhteensopiva MATLABin kanssa. (18,95 dollaria)

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

- Wemos Lolin32 lite: tämä esp32 on halpa mikrokontrolleri, jossa on Wifi ja Bluetooth. Emme käytä Wifiä tässä sovelluksessa, mutta tämä on suurelta osin mahdollista. (4,74 dollaria)

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

- CDSENET cc1101: tämä radiolähetin antaa meille äärimmäisen joustavuuden valitusta kantoaaltotaajuudesta modulaatiotyyppiin. (2,63 dollaria)

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

- Johdot, otsikot, hitsauslaitteet, 3,7 V: n lipoparisto autonomiaa varten, mahdollisesti oskilloskooppi ja/tai logiikka -analysaattori virheenkorjausta varten, ja muuten älypuhelin…

Ohjelmistovaatimukset:

- MATLAB/Simulink: tietojen tallentamiseen. Muita ilmaisia vaihtoehtoisia ohjelmistoja voidaan käyttää, kuten Audacity tietojen visualisointiin. (lisenssi)

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

- esp-idf-työkaluketju: tätä käytetään esp32: n ohjelmointiin. Arduino -ideaa voidaan myös käyttää, mutta se ei salli yhtä paljon vapautta kuin mitä käytämme. (vapaa)

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

- TI SmartRF Studio: tämä auttaa meitä määrittämään cc1101 -rekisterit määritysten mukaisesti. (vapaa)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: sovelluksen rakentamiseen. Voit valita, haluatko luoda natiivisovelluksia, mutta Ionicin avulla voimme käyttää sovellustamme sekä Android- että IOS -laitteilla vain koodilla. Esitystä ei haluta meidän tapauksessamme. (vapaa)

ionicframework.com/

- suosikkiideasi…

Vaihe 2: Kauko -ohjaimen vakoilu

Kauko -ohjaimen vakoilu
Kauko -ohjaimen vakoilu
Kauko -ohjaimen vakoilu
Kauko -ohjaimen vakoilu
Kauko -ohjaimen vakoilu
Kauko -ohjaimen vakoilu

Aloitamme tarkkailemalla tietoja, joita kauko -ohjaimen komennot tuottavat. Tätä varten käytämme rtl-sdr-sovitinta ja antennia:

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

Tämän linkin kautta löydät MATLAB -paketin sekä ilmaisen kirjan, jossa selitetään kaikki lupaukset ja niiden selitykset. Yhteenvetona siitä, mikä meitä koskee, kauttakulkutiedot ovat IQ-signaalin muodossa: "I" -vaihedata, yhdistettynä "Q"-kvadratuuritietoon. Tämä menetelmä helpottaa tietoliikennettä. Olemme kiinnostuneita vastaanottamaan signaalin vain vaiheessa. Nyt keräämme fyysiset ja digitaaliset tiedot kauko -ohjaimesta, jos löydät siitä asiakirjoja, se on helpompaa. En löytänyt yhtään. Voidaksemme tarkkailla signaalia ajallisesti meidän on ensin tiedettävä, mikä on lähetetyn signaalin taajuuskantaja. Käytämme paketin asiakirjojen mukana toimitettua esimerkkiä "Spectral Analysis with RTL-SDR Radio" tietääksemme tarkasti, millä taajuudella havaitsemme huipputehon lähettäessämme komennon. Minun tapauksessani se on 868,22 MHz. Tällaisten sovellusten "normaalit" taajuudet ovat noin 868 MHz.

Näiden merkkien avulla voimme kirjoittaa MATLAB -koodin tietojen palauttamiseksi. Tämä on liitetty valokuvaan ja kommentoitu. Tuloksen avulla voimme löytää modulaatiotyypin: hakemalla raakatiedot ja näyttämällä tuloksen heti sen jälkeen, kun signaalin todellinen osa on palautettu, voimme päätellä, että se on ASK / OOK modulaatio. Itse asiassa havaitsemme, että taajuus on invariantti, mutta signaalilla on vain kaksi amplitudia: nolla ja kiinteä. Loput koodista antavat meille mahdollisuuden palauttaa vastaanotetun signaalin kirjekuori, mikä helpottaa lukemista trauman tuntemiseksi. Kun näyttö on näkyvissä, voimme määrittää kantataajuuden modulaation: tämä on Manchester -koodaus (katso liitteenä oleva kuva). Voimme myös päätellä baudinopeuden (symbolit sekunnissa). Kaikki tämä tieto kerätään, voimme tietää tietokehyksen. Minun tapauksessani löydetyt tavut ovat: 249, 39, 75, 178, 45, 200 ja toistetaan useita kertoja, jotta komento otetaan hyvin vastaan. Onneksi koodi ei pyöri, tietokehys on aina sama.

Vaihe 3: Lähetä samat tietokehykset

Lähetä samat datakehykset
Lähetä samat datakehykset
Lähetä samat datakehykset
Lähetä samat datakehykset
Lähetä samat datakehykset
Lähetä samat datakehykset

Texas Instruments cc1101 on niin joustava, että saavutat tavoitteesi, vaikka edellisessä vaiheessa löytämäsi asetukset olisivat täysin erilaisia kuin minun. Itse asiassa näet asiakirjojen sivulta 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf), että se mahdollistaa NRZ-, Manchester-, FSK-, ASK/OOK -modulaation suorittamisen taajuudet noin 433 MHz tai 868 MHz ja monet muut asiat. Suosittelen, että luet dokumentaation tutustuaksesi tähän moduuliin.

Tästä linkistä löydät esimerkkinä Loborisin työn tämän moduulin toimintojen rakentamisesta:

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

Kirjoitamme esp32-koodimme esp-idf-työkaluketjun avulla (katso ensimmäisen vaiheen linkit). Voit lisätä linkin tiedostot projektisi komponenttien alihakemistoon. Jotta voimme määrittää cc1101: n oikein, meidän on korjattava sen rekisterit. Texas Instruments tarjoaa meille ohjelmiston, joka antaa meille rekisterien arvon kokoonpanomme mukaan: SmartRF Studio.

Mitä tulee minuun, ilmoitan ohjelmistolle, että toivon Manchester -koodausta, että kantoaaltotaajuuteni on 868,22 MHz, että modulaatiotyyppini on ASK / OOK … Annan sinun syöttää parametrit. Jos kantataajuuskoodauksesi ei ole käytettävissä, voit harkita NRZ -koodausta lisäämällä baudinopeutta oikein ja mukauttamalla tietoja.

Kun olet määrittänyt arvosi, sinulla on useita vaihtoehtoja moduulin käytön suhteen: voit käyttää toimintoja, jotka olen linkittänyt sinuun tai mitä tein, vain saada inspiraatiota tästä koodista, jotta voit määrittää kaiken paremmin raa'alla tavalla (katso liitteenä olevat kuvat) ja käytä vain sitä, mitä tarvitsemme.

Koska cc1101 -siru kommunikoi SPI: n kautta, löydät esimerkkikoodin linkistä "spi_master_lobo.h" -otsikkotiedoston, joka sisältää helpompia toimintoja SPI: n käyttämiseen kuin jos sinun olisi käytettävä sitä vain työkaluketjun kanssa. Liityn kuvaan CC1101 -viestinnän kaavasta SPI: ssä, kuva CC1101 -lomakkeen sivulta 30. Esitetyt neljä johtoa ovat: CS (Chip Select tai SS: Slave Select tai tässä CSn), CLK (tai SCLK, isännän tarjoama kello), MISO (tai SO, Master In Slave Out) ja MOSI (tai SI, Master Out Slave In). Meidän tapauksessamme isäntä on ESP32 ja orja CC1101. Viestintä alkaa yleensä, kun CS -nasta on alhainen.

Älä unohda ottaa valikon kääntäjävaihtoehdoissa käyttöön C ++ -poikkeuksia kääntämistä varten.

Vaihe 4: Yhdistä järjestelmään

Yhdistä järjestelmään
Yhdistä järjestelmään
Yhdistä järjestelmään
Yhdistä järjestelmään
Yhdistä järjestelmään
Yhdistä järjestelmään

Jos koodisi toimii, olet tehnyt olennaisen. Tässä osassa keskitymme järjestelmään yhdistetyn puhelinsovelluksen luomiseen. Mielenkiintoisin ratkaisu on muodostaa yhteys bluetoothilla, koska se mahdollistaa pienitehoisen protokollan käytön: Bluetooth Low Energy (BLE). Hierarkiaprofiili näkyy liitteenä olevassa piirustuksessa: luemme ja kirjoitamme komennon palvelun ominaispiirteenä. Ja tietysti esp32 ja älypuhelimemme on varustettu bluetoothilla.

Tämä vaihe on jaettu kahteen osaan: esp32 -osa ja sovellusosa. Liitteenä oleva kuva näyttää ja selittää koodien pääosat.

Voit luoda UUID -tunnuksesi tämän linkin kautta:

www.uuidgenerator.net/

Nämä ovat tunnisteita, jotka tarjoavat pääsyn BLE -profiilimme palveluihin ja ominaisuuksiin.

Tietoja esp32 -BLE -koodista Kolban teki hienoa työtä saadakseen kaikki nämä korkean tason C ++ -toiminnot yhteensopiviksi:

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

Voit laittaa nämä tiedostot komponenttien alihakemistoon. Muussa tapauksessa tarvitset enemmän aikaa ymmärtääksesi BLE: n käytön esp-idf-työkaluketjun kanssa.

Yhteenvetona siitä, mitä koodissa näet, luomme palvelimen, palvelun ja ominaisuuden sekä niihin liittyvät UUID -tunnukset ja lisäämme uudelleen määritellyn takaisinsoittoluokan ja siihen liittyvän kirjoitusmenetelmän: kun saamme "O" merkki, lähetämme kirjoituskomennon cc1101.

Tietenkin, älä unohda ottaa Bluetooth käyttöön Menuconfigin Komponenttimäärityksissä.

Sovellusosasta käytämme Framework Ionicia. Löydät lisätietoja siitä ensimmäisessä vaiheessa esitetystä linkistä ja lisätietoja BLE: n käytöstä Ionicin kanssa:

ionicframework.com/docs/native/ble/

Ja esimerkkejä, kirjoittanut don:

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

Voit muokata esimerkiksi esimerkkiä "Yhdistä". Skannaamme laitteita ensimmäiselle sivulle ja pääsemme toiselle sivulle, jos valitsemme laitteemme. Siirrymme sitten käyttöliittymään, johon voit lisätä painikkeen kuvassa esitetyllä menetelmällä: se lähettää komennomme "O" asianmukaisten UUID -tunnusten kanssa. Voit myös lisätä ensimmäisen sivun rakentajaan menetelmän "käyttöönotto", jossa pyydetään aktivoimaan bluetooth sovelluksen alussa.

Suosittelen sinua tutustumaan Ionic -verkkosivustoon ja löytämään kaikki komponentit (painikkeet, hälytykset, valintaruudut …) sovelluksesi parantamiseksi:

ionicframework.com/docs/components/#overvi…

Vaihe 5: Optimoi virrankulutus

Optimoi virrankulutus
Optimoi virrankulutus
Optimoi virrankulutus
Optimoi virrankulutus

Aloimme työskennellä pienellä kulutuksella, joten jatketaan.

Esp-idf-työkaluketjun avulla voimme käyttää määritysgrafiikkaa, menuconfig: monet parametrit voivat pienentää esp32-kulutusta. Ensinnäkin, koska emme tarvitse Wifiä, voimme poistaa sen käytöstä komponenttikokoonpanossa. Samassa kansiossa, FreeRTOSissa, voit valita "Suorita FreeRTOS vain ensimmäisellä ytimellä. Sitten voit ESP-spesifisessä tapauksessa laskea suorittimen taajuuden 80 MHz: iin. Kaikki toiminnot toimivat edelleen tällä kellotaajuudella. Lopuksi voit valitse "Ota käyttöön Ultra Low Power (ULP) -prosessori. Tämä kokoonpano saa virrankulutuksen nousemaan noin sadasta mA: sta noin kolmekymmentä mA: aan. Tämä on vielä liikaa…

ESP32 kestää syvän unen. Vain vähäenerginen ydin on päällä ja odottaa heräämistä.

Katso lisätietoja alla olevasta linkistä:

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

Valitettavasti esp-idf-työkaluketjun (3.0) viimeisessä saatavilla olevassa versiossa ainoat käytettävissä olevat herätykset ovat ajastimien ja GPIO-häiriöiden vuoksi. Onneksi Espressif lupaa meille BLE -herätyksen seuraavassa versiossa (3.1).

Voit myös laittaa CC1101 -laitteen lepotilaan lähettämällä SPI: lle oikean komennon laitteen sammuttamiseksi (katso cc1101 -lomake, SPWD -komento, sivu 51). Jos haluat asettaa laitteen lepotilaan tai herättää sen, voit laittaa SPI -nastojen Chip Select -tapin matalalle ja korkealle (lisätietoja infolomakkeessa).

Näiden viimeisten kokoonpanojen pitäisi pystyä saamaan järjestelmän kulutus alle milliampeerin…

Lopuksi, jotta järjestelmä kestää mahdollisimman pitkään ilman latausta tai saavuttaa jopa kuukauden itsenäisyyden, valitse 3,7 V: n akku, jolla on eniten milliampeereja tunnissa. Mittaamalla järjestelmän virrankulutuksen, kun generaattorin tai ampeerimittarin näyttö on kytketty sarjaan ennen järjestelmän + napaa, voit arvioida järjestelmän keston!

Suositeltava: