Tartalomjegyzék:

Feltörni a garázskaput: 5 lépés
Feltörni a garázskaput: 5 lépés

Videó: Feltörni a garázskaput: 5 lépés

Videó: Feltörni a garázskaput: 5 lépés
Videó: Мало кто знает ЭТОТ СЕКРЕТ графитовой ЩЕТКИ! Эксперимент своими руками! 2024, Július
Anonim
Feltörni a garázskaput
Feltörni a garázskaput
Feltörni a garázskaput
Feltörni a garázskaput
Feltörni a garázskaput
Feltörni a garázskaput

Ki ne álmodott volna arról, hogy csak telefonos alkalmazással hazamehet, vagy hallgathat és újraolvashat adat villamosokat? Örülök, hogy megoszthatom veletek, mire jutottam, és hogyan haladtam. Második alkalommal kezdtem el ezt a projektet, amikor elfelejtettem a kulcsomat…

Természetesen a kódolás, a moduláció típusa, a hordozó frekvenciája, a Bluetooth-kapcsolat adatai és az adatok, amelyeket példaként mutatok, nem az eredetiek, inkább nem szeretnék látogatókat;-).

Ez az alkalmazás minden olyan tárgyra vonatkozik, amely képes elektromágneses hullámok által digitális információkat fogadni (garázskapu, autó, néhány redőny…). Az egész rendszer egy objektumból áll, amelyet bluetooth -on keresztül csatlakoztatnak egy telefonhoz, és ez az objektum képes ugyanazokat a képkockákat küldeni, mint a távirányító, amelyhez feltörni szeretnénk. Ezt a tárgyat a garázsomba helyeztem, és kívülről csatlakozhatok hozzá.

1. lépés: Felszerelés

Felszerelés
Felszerelés
Felszerelés
Felszerelés

Használt nyelvek: C ++, MATLAB, Typescript, C, html.

Alapvető ismeretek a digitális elektronikában és a távközlésben/jelfeldolgozásban.

Költség: kevesebb, mint 35 USD.

Hardverkövetelmények:

- NooELEC NESDR: az adatok rögzítéséhez. Ez a nagyon olcsó modul digitális demodulációt végez, ezért nagy hordozhatóságú. Ez a modell kompatibilis a MATLAB -szal. (18,95 USD)

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

- Wemos Lolin32 lite: ez az esp32 egy olcsó mikrokontroller, Wifivel és Bluetooth -al. Ebben az alkalmazásban nem használunk Wifit, de ez nagyrészt elképzelhető. (4,74 dollár)

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

- CDSENET cc1101: ez a rádióadó rendkívüli rugalmasságot biztosít számunkra, a választott vivőfrekvenciától a moduláció típusáig. (2,63 USD)

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

- Vezetékek, fejlécek, hegesztőberendezés, 3,7 V -os lipo akkumulátor az autonómiához, esetleg oszcilloszkóp és/vagy logikai elemző a hibakereséshez, és mellesleg egy okostelefon…

Szoftverkövetelmények:

- MATLAB/Simulink: az adatok rögzítéséhez. Más ingyenes alternatív szoftverek is használhatók, mint például az Audacity az adatok megjelenítéséhez. (engedély)

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

- esp-idf toolchain: ez az esp32 programozására szolgál. Az Arduino ide is használható, de nem enged annyi szabadságot, mint amit használni fogunk. (ingyenes)

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

- TI SmartRF Studio: ez segít a cc1101 regiszterek konfigurálásában a specifikációink szerint. (ingyenes)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: az alkalmazás létrehozásához. Ön dönthet úgy, hogy natív alkalmazásokat készít, de az Ionic lehetővé teszi, hogy alkalmazásunkat Android és IOS eszközökön is futtassuk, egyetlen kóddal. A teljesítményt nem keresik esetünkben. (ingyenes)

ionicframework.com/

- Kedvenc ötleted…

2. lépés: A távirányító kémkedése

A távirányító kémkedése
A távirányító kémkedése
A távirányító kémkedése
A távirányító kémkedése
A távirányító kémkedése
A távirányító kémkedése

Kezdjük azzal, hogy megfigyeljük a távirányító parancsai által előállított adatokat. Ehhez rtl-sdr dongle-t és antennát fogunk használni:

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

Ezt a linket követve megtalálja a MATLAB csomagot, valamint egy ingyenes könyvet, amely minden résztvevőt magyarázattal magyaráz. Összefoglalva, mi foglalkoztat minket, a tranzitadatok IQ jel formájában vannak: "I" fázisú adatok, "Q" kvadratúra adatokkal kombinálva. Ez a módszer megkönnyíti a távközlést. Csak a fázisban leszünk kíváncsiak a jel fogadására. Most összegyűjtjük a fizikai és digitális információkat a távirányítón. Ha talál néhány dokumentációt, akkor könnyebb lesz. Nem találtam egyet sem. Ahhoz, hogy a jelet időben megfigyelhessük, először tudnunk kell, hogy mi a kibocsátott jel frekvenciavivője. A "Spektrális elemzés RTL-SDR rádióval" csomagdokumentációhoz mellékelt példát használjuk, hogy pontosan tudjuk, milyen frekvencián figyeljük meg a csúcsteljesítményt parancs küldésekor. Esetemben 868,22 MHz. Az ilyen típusú alkalmazások "szabványos" frekvenciája 868 MHz körül van.

Ezekkel a jelzésekkel MATLAB kódot írhatunk az adatok helyreállításához. Ezt csatolták a fényképhez, és megjegyzést fűztek hozzá. Az eredmény lehetővé teszi számunkra, hogy megtaláljuk a moduláció típusát: a nyers információk lekérésével, az eredmény megjelenítésével, miután a jel valós részét visszanyertük, arra következtethetünk, hogy ez egy ASK / OOK moduláció. Valóban megfigyeljük, hogy a frekvencia változatlan, azonban a jelnek csak két amplitúdója van: nulla és fix. A kód többi része lehetővé teszi számunkra, hogy helyreállítsuk a kapott jel borítékját, így könnyebben olvasható a trame. A megjelenítés után meghatározhatjuk az alapsáv modulációt: ez egy manchesteri kódolás (lásd a mellékelt fotót). A baud sebességre (szimbólumok másodpercenként) is következtethetünk. Mindezeket az információkat összegyűjtve tudjuk az adatkeretet. Esetemben a talált bájtok a következők: 249, 39, 75, 178, 45, 200, és többször ismétlődnek, hogy biztosítsák a parancs megfelelő fogadását. Szerencsére a kód nem gurul, az adatkeret mindig ugyanaz.

3. lépés: Ugyanazok az adatkeretek küldése

Ugyanazok az adatkeretek küldése
Ugyanazok az adatkeretek küldése
Ugyanazok az adatkeretek küldése
Ugyanazok az adatkeretek küldése
Ugyanazok az adatkeretek küldése
Ugyanazok az adatkeretek küldése

A Texas Instruments cc1101 annyira rugalmas, hogy akkor is eléri célját, még akkor is, ha az előző lépésben talált beállítások teljesen eltérnek az enyémtől. Valóban látni fogja a dokumentáció 2. oldalán (https://www.ti.com/lit/ds/symlink/cc1101.pdf), hogy lehetővé teszi az NRZ, Manchester, FSK, ASK/OOK moduláció végrehajtását. a 433 MHz vagy 868 MHz körüli frekvenciák, és sok más dolog. Javaslom, hogy olvassa el a dokumentációt, hogy megismerkedjen ezzel a modullal.

Ezen a linken példaként megtalálhatja Loboris munkáját a modul használatával létrehozott funkciók létrehozásáról:

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

Meg fogjuk írni az esp32 kódunkat az esp-idf eszköztárral (lásd az első lépés linkjeit). A hivatkozás fájljait hozzáadhatja a projekt összetevői alkönyvtárához. A cc1101 megfelelő konfigurálásához javítanunk kell a regisztereit. A Texas Instruments olyan szoftvert biztosít számunkra, amely konfigurációnk szerint megadja a regiszterek értékét: SmartRF Studio.

Ami engem illet, jelezem a szoftvernek, hogy Manchester -kódolást kívánok, hogy a hordozófrekvenciám 868,22 MHz, hogy a modulációm típusa ASK / OOK … Megengedem, hogy megadja a paramétereit. Abban az esetben, ha az alapsávú kódolás nem érhető el, fontolja meg az NRZ -kódolást az átviteli sebesség megfelelő növelésével és az adatok adaptálásával.

Miután meghatározta értékeit, több választási lehetősége van a modul használatával kapcsolatban: használhatja az Önhöz kapcsolt funkciókat, vagy amit én tettem, csak inspirációt merít ebből a kódból, hogy mindent jobban konfigurálhasson brutális módon (lásd a mellékelt képeket), és csak azt használja, amire szükségünk van.

Mivel a cc1101 chip SPI -vel kommunikál, a példakód linkjében megtalálja a "spi_master_lobo.h" fejlécfájlt, amely egyszerűbb funkciókat tartalmaz az SPI használatához, mintha csak az eszköztárral kellene használnia. Csatlakozom hozzátok a fotón a CC1101 kommunikáció sémája az SPI -ben, a fotó a CC1101 adatlap 30. oldaláról készült. A bemutatott négy vezeték: CS (Chip Select vagy SS: Slave Select, vagy itt CSn), CLK (vagy SCLK, a mester által biztosított óra), MISO (vagy SO, Master In Slave Out) és MOSI (vagy SI, Master Out Slave In). Esetünkben a mester az ESP32, a szolga pedig a CC1101. A kommunikáció általában akkor kezdődik, amikor a CS -pin alacsony.

Ne felejtse el engedélyezni a menü fordítói beállításaiban a C ++ kivételeket a fordításhoz.

4. lépés: Csatlakozás a rendszerhez

Csatlakozzon a rendszerhez
Csatlakozzon a rendszerhez
Csatlakozzon a rendszerhez
Csatlakozzon a rendszerhez
Csatlakozzon a rendszerhez
Csatlakozzon a rendszerhez

Ha a kód működik, akkor elvégezte az alapvető dolgokat. Ebben a részben arra összpontosítunk, hogyan hozhatunk létre a rendszerhez csatlakoztatott telefonos alkalmazást. A legérdekesebb megoldás a bluetooth-on keresztül történő csatlakozás, mert ez lehetővé teszi egy alacsony fogyasztású protokoll használatát: Bluetooth Low Energy (BLE). A hierarchiaprofil a mellékelt rajzon látható: a parancsot egy szolgáltatás jellemzőjében olvassuk és írjuk. És természetesen az esp32 és az okostelefonunk bluetooth -al van felszerelve.

Ez a lépés két részre oszlik: az esp32 és az alkalmazás részre. A mellékelt fotó bemutatja és elmagyarázza a kódok fő részeit.

Az UUID -ket az alábbi linken hozhatja létre:

www.uuidgenerator.net/

Ezek azok az azonosítók, amelyek hozzáférést biztosítanak BLE profilunk szolgáltatásaihoz és szolgáltatásaihoz.

Az esp32 BLE kódról Kolban nagyszerű munkát végzett, hogy mindezeket a magas szintű C ++ funkciókat kompatibilisé tegye:

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

Ezeket a fájlokat a komponensek alkönyvtárába helyezheti. Ellenkező esetben több időre lesz szüksége ahhoz, hogy megértse, hogyan kell használni a BLE-t az esp-idf eszköztárral.

Összefoglalva, mit fog látni a kódban, létrehozunk egy kiszolgálót, egy szolgáltatást és egy karakterisztikát, a hozzájuk tartozó UUID -kkal, és hozzáadunk egy újra definiált visszahívási osztályt, a hozzá tartozó írási módszerrel: amikor megkapjuk az "O" -t karaktert, írási parancsot küldünk a cc1101 -nek.

Természetesen ne felejtse el engedélyezni a Bluetooth funkciót a Menuconfig Komponens konfigurációjában.

Az alkalmazás részéről a Framework Ionic -ot fogjuk használni. Erről további információkat talál az első lépésben bemutatott linken, valamint további információkat a BLE és az Ionic használatáról:

ionicframework.com/docs/native/ble/

És példák, Don írta:

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

Szerkesztheti például a "Csatlakozás" példát. Az eszközöket az első oldalon vizsgáljuk, és a második oldalt érjük el, ha kiválasztjuk eszközünket. Ezután belépünk egy felületre, ahol hozzáadhat egy gombot a fényképen bemutatott módszerrel: elküldi az "O" parancsunkat a megfelelő UUID -kkel. Az első oldal konstruktorában is hozzáadhatja az "engedélyezés" módszert, és kérheti a bluetooth aktiválását az alkalmazás elején.

Erősen ajánlom, hogy fedezze fel az Ionic webhelyet, és fedezze fel az összes összetevőt (gombok, figyelmeztetések, jelölőnégyzetek …) az alkalmazás fejlesztéséhez:

ionicframework.com/docs/components/#overvi…

5. lépés: Optimalizálja az energiafogyasztást

Optimalizálja az energiafogyasztást
Optimalizálja az energiafogyasztást
Optimalizálja az energiafogyasztást
Optimalizálja az energiafogyasztást

Kezdtünk alacsony fogyasztással dolgozni, ezért dolgozzunk tovább.

Az esp-idf eszköztár lehetővé teszi számunkra a menuconfig konfigurációs GUI használatát: számos paraméter csökkentheti az esp32 fogyasztást. Először is, mivel nincs szükségünk Wifi -re, letilthatjuk a Component konfigurációban. Ugyanebben a mappában, a FreeRTOS-ban válassza a "FreeRTOS futtatása csak az első magon. Ezt követően, ESP-specifikus, csökkentheti a CPU frekvenciáját 80 MHz-re. Minden funkció továbbra is ezen az órajelen működik. Végül jelölje be az "Ultra alacsony fogyasztású (ULP) koprocesszor engedélyezése" jelölőnégyzetet. Ez a konfiguráció az áramfelvételt körülbelül száz mA -ről körülbelül harminc mA -re növeli. Ez még mindig túl sok…

Az ESP32 képes kezelni a mély alvást. Csak az alacsony energiájú mag van bekapcsolva, és várja az ébredést.

További részletekért tekintse meg ezt az alábbi linket:

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

Sajnos az esp-idf eszköztár (3.0) legutóbbi elérhető verziójában az időzítők és a GPIO-k által okozott zavarok állnak rendelkezésre. Szerencsére az Espressif azt ígéri, hogy BLE felébred a következő verzióban (3.1).

A CC1101 alvó üzemmódba is állítható, ha elküldi az SPI parancsot az eszköz kikapcsolására (lásd a cc1101 adatlapját, az SPWD parancsot, 51. oldal). Az alvó üzemmódba helyezéshez vagy az ébresztéshez alacsonyra, majd magasra teheti az SPI csapok Chip Select csapját (további információk az adatlapon).

Ezeknek az utolsó konfigurációknak képesnek kell lenniük arra, hogy a rendszer fogyasztása a milliamper alatt csökkenjen…

Végül, hogy a rendszer a lehető leghosszabb ideig tartson újratöltés nélkül, vagy akár egy hónap autonómiát érjen el, válassza a 3,7 V-os akkumulátort, amely óránként a legtöbb milliamperrel rendelkezik. A rendszer energiafogyasztásának mérésével, generátor vagy ampermérő kijelzőjével sorba kötött rendszer + pólusa előtt megbecsülheti a rendszer élettartamát!

Ajánlott: