Tartalomjegyzék:
- 1. lépés: Felszerelés
- 2. lépés: A távirányító kémkedése
- 3. lépés: Ugyanazok az adatkeretek küldése
- 4. lépés: Csatlakozás a rendszerhez
- 5. lépés: Optimalizálja az energiafogyasztást
Videó: Feltörni a garázskaput: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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
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
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
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
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:
Feltörni az autót a Wio terminállal és a CAN busszal: 7 lépés
Hackelje autóját a Wio terminállal és a CAN busszal: Ha van némi ismerete a CAN Bus és az Arduino programozásról, és feltörni szeretné autóját, akkor ez az utasítás megoldást nyújthat Önnek. Ami azt jelenti, hogy miért akarja feltörni az autóját, nem tudom, de ez valóban érdekes dolog. Ez a pr
Hogyan kell feltörni egy Sonoff eszközt: 5 lépés
Hogyan kell feltörni egy Sonoff eszközt: Prakhar Agrawal Junior Researcher (IoT Exploits) BIZTONSÁGOS HARDVER BEVEZETÉS Ebben a bejegyzésben arról fogunk beszélni, hogyan lehet betölteni egy egyéni firmware -t a Sonoff eszközre, és hogyan lehet szabályozni annak IP -címét használva. az
Hogyan lehet feltörni a hőmérséklet -érzékelőt az akkumulátor hosszabb élettartama érdekében: 4 lépés
Hogyan lehet feltörni a hőmérséklet-érzékelőt az akkumulátor hosszabb élettartama érdekében: Az Inkbird IBS-TH1 egy nagyszerű kis eszköz a hőmérséklet és a páratartalom néhány órás vagy napi naplózásához. Beállítható, hogy másodpercenként akár 10 percenként naplózzon, és az adatokat Bluetooth LE -n keresztül jelenti egy androidos vagy iOS -es okostelefonra. Az alkalmazás
Hogyan lehet feltörni és frissíteni a Rigol DS1054Z digitális oszcilloszkópot: 5 lépés (képekkel)
A Rigol DS1054Z digitális oszcilloszkóp feltörése és frissítése: A Rigol DS1054Z egy nagyon népszerű, belépő szintű 4 csatornás digitális tároló oszcilloszkóp. Valós idejű mintavételi frekvenciája akár 1 GSa/s, sávszélessége pedig 50 MHz. A különösen nagy méretű TFT színes kijelzők nagyon könnyen olvashatók. Hála egy in
Feltörni a Halloween -t a Phidgets segítségével: 9 lépés (képekkel)
Feltörni Halloween -jét a Phidgets segítségével: Ez a projekt megmutatja, hogyan lehet " feltörni " Halloween dekorációit, és pontosan úgy viselkedjenek, ahogy szeretné! A Halloween dekoráció, amellyel dolgozunk, a következő alapértelmezett funkciókkal rendelkezik: Dobókapcsolóval aktiválható (látható az