Sisällysluettelo:
- Vaihe 1: Varustus
- Vaihe 2: Kauko -ohjaimen vakoilu
- Vaihe 3: Lähetä samat tietokehykset
- Vaihe 4: Yhdistä järjestelmään
- Vaihe 5: Optimoi virrankulutus
Video: Hakata autotallin ovi: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
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
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
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
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
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
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:
Paristokäyttöinen katto-ovi- ja lukitusanturi, aurinko, ESP8266, ESP-Now, MQTT: 4 vaihetta (kuvien kanssa)
Paristokäyttöinen suojakatto-ovi- ja lukitusanturi, aurinko, ESP8266, ESP-Now, MQTT: Tässä opastettavassa esittelen sinulle, kuinka tein paristokäyttöisen anturin, joka valvoo pyörävarastoni ovea ja lukituksen tilaa. Minulla on verkkovirta, joten minulla on paristo. Akku ladataan pienellä aurinkopaneelilla
Alexan ohjaama autotallin ovi Arduinolla Esp8266: 6 vaihetta
Alexa -ohjattava autotallin ovi Arduino Esp8266: Tämän projektin idea tuli minulle vanhasta projektista, jonka parissa olin työskennellyt jonkin aikaa sitten. Olin kytkenyt yksinkertaisen painikepiirin, joka sytytti LED -valon, kun autotallin ovi painoi painiketta. Tämä menetelmä osoittautui epäluotettavaksi eikä hyödylliseksi
Autotallin oven tilavalo hakata: 3 vaihetta
Garage Door Status Light Hack: Asun talossa, jossa ei ole helppo nähdä, onko autotallin ovi auki tai kiinni. Meillä on nappi talossa, mutta ovi on poissa näkyvistä. Ajatus jonkinlaisen kytkimen ja virtalähteen suunnittelusta ei ollut toivottavaa korkean
Yksinkertainen autotallin oven hakata: 4 vaihetta (kuvilla)
Yksinkertainen autotallin oven hakkerointi: Kun olin lukittu vahingossa talostani useamman kuin yhden kerran, päätin, että minun oli päästävä parempaan tapaan päästä kotiin, johon ei liittynyt rikkoutumista ja sisäänpääsyä (ja ilman, että piilotin avaimen jonnekin ulkopuolelle). vilkaisen g: tä
Ääniohjatut skootterivalot ja autotallin ovi: 6 vaihetta
Ääniohjatut skootterivalot ja autotallin ovi: Hei kaikille! Ostin äskettäin sähköisen skootterin, mutta siinä ei ollut takavaloa eikä sisäänrakennettua autotallin ovenavaajaa … YLLÄTYS! (ノ ゚ 0 ゚) ノ ~ Joten päätin tehdä oman autotallin oven kaukosäätimen ja takavalot ostamisen sijasta