Taula de continguts:

Tallar la porta del garatge: 5 passos
Tallar la porta del garatge: 5 passos

Vídeo: Tallar la porta del garatge: 5 passos

Vídeo: Tallar la porta del garatge: 5 passos
Vídeo: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, Juliol
Anonim
Pirateja la porta del garatge
Pirateja la porta del garatge
Pirateja la porta del garatge
Pirateja la porta del garatge
Pirateja la porta del garatge
Pirateja la porta del garatge

Qui no ha somiat mai amb tornar a casa només amb una aplicació de telèfon o amb poder escoltar i copiar tramvies de dades? Estic feliç de poder compartir amb vosaltres el que em vaig adonar i com vaig procedir. Vaig començar aquest projecte després de la segona vegada que vaig oblidar les meves claus …

Per descomptat, la codificació, el tipus de modulació, la freqüència de la companyia, la informació de connexió bluetooth i les dades que mostraré per exemple no són els originals, prefereixo no tenir visitants;-).

Aquesta aplicació s'aplica a qualsevol objecte capaç de rebre informació digital mitjançant ones electromagnètiques (porta del garatge, cotxe, algunes persianes …). Tot el sistema consisteix en un objecte connectat per bluetooth a un telèfon, aquest objecte pot enviar els mateixos marcs que el comandament a distància associat al que volem piratejar. Vaig col·locar aquest objecte al meu garatge i hi puc connectar des de l’exterior.

Pas 1: equipament

Equipament
Equipament
Equipament
Equipament

Idiomes utilitzats: C ++, MATLAB, Typescript, C, html.

Coneixements bàsics en electrònica digital i telecomunicacions / processament de senyals.

Cost: inferior a 35 dòlars.

Requisits de maquinari:

- NooELEC NESDR: per capturar les dades. Aquest mòdul molt econòmic realitza una demodulació digital, d’aquí la seva alta portabilitat. Aquest model és compatible amb MATLAB. (18,95 dòlars)

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

- Wemos Lolin32 lite: aquest esp32 és un microcontrolador econòmic, equipat amb Wifi i Bluetooth. No utilitzarem Wifi en aquesta aplicació, però és molt concebible. (4,74 dòlars)

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

- CDSENET cc1101: aquest transmissor de ràdio ens proporciona una flexibilitat extrema, des de la freqüència portadora triada fins al tipus de modulació. (2,63 dòlars)

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

- Cables, capçaleres, equips de soldadura, bateria lipo de 3,7 V per autonomia, possiblement oscil·loscopi i / o analitzador lògic per a la depuració i, per cert, un telèfon intel·ligent …

Requisits de programari:

- MATLAB / Simulink: per capturar les dades. Es poden utilitzar altres programes alternatius gratuïts, com Audacity per a la visualització de dades. (llicència)

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

- cadena d’eines esp-idf: s’utilitzarà per programar l’esp32. També es pot utilitzar l'ide Arduino, però no permet tanta llibertat com la que farem servir. (gratuït)

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

- TI SmartRF Studio: això ens ajudarà a configurar els registres cc1101, segons les nostres especificacions. (gratuït)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: per construir l'aplicació. Podeu triar la creació d'aplicacions natives, però Ionic ens permet executar la nostra aplicació tant en dispositius Android com en iOS, amb un únic codi. L’actuació no es busca en el nostre cas. (gratuït)

ionicframework.com/

- La teva idea preferida …

Pas 2: espiar el control remot

Espiant el control remot
Espiant el control remot
Espiant el control remot
Espiant el control remot
Espiant el control remot
Espiant el control remot

Començarem observant les dades que produeixen les ordres del comandament a distància. Per fer-ho, utilitzarem un dongle i una antena rtl-sdr:

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

Seguint aquest enllaç, trobareu el paquet MATLAB, així com un llibre gratuït que explica tots els principis amb la seva explicació. Per resumir el que ens preocupa, les dades de trànsit es presenten en forma de senyal de coeficient intel·lectual: dades en fase de "I", combinades amb dades de quadratura "Q". Aquest mètode facilita les telecomunicacions. Només ens interessarà rebre el senyal en fase. Ara recollirem la informació física i digital al comandament a distància. Si en podeu trobar alguna documentació, serà més fàcil. No en vaig trobar cap. Per poder observar temporalment el senyal, primer hem de saber quina és la portadora de freqüència del senyal emès. Utilitzarem l'exemple proporcionat amb la documentació del paquet "Anàlisi espectral amb ràdio RTL-SDR", per saber exactament a quina freqüència observem una potència màxima quan enviem una ordre. En el meu cas és de 868,22 MHz. Les freqüències "estàndard" per a aquest tipus d'aplicacions ronden els 868 MHz.

Amb aquestes indicacions, podrem escriure un codi MATLAB per recuperar les dades. Aquesta s’adjunta a la foto i es comenta. El resultat ens permet trobar el tipus de modulació: en recuperar la informació en brut, mostrant el resultat just després d’haver recuperat la part real del senyal, podem deduir que es tracta d’un ASK / OOK modulació. De fet, observem que la freqüència és invariable, però, el senyal només té dues amplituds: una nul·la i una fixa. La resta del codi ens permet recuperar l’embolcall del senyal rebut, facilitat per llegir per conèixer el trame. Un cop mostrat, podem determinar la modulació de banda base: es tracta d’una codificació de Manchester (vegeu la foto adjunta). També podem deduir la velocitat en bauds (símbols per segon). Recopilant tota aquesta informació, podem conèixer el marc de dades. En el meu cas, els bytes trobats són: 249, 39, 75, 178, 45, 200 i repetits diverses vegades, per garantir que l’ordre tingui una bona rebuda. Afortunadament, el codi no funciona, el marc de dades sempre és el mateix.

Pas 3: envieu els mateixos marcs de dades

Envieu els mateixos marcs de dades
Envieu els mateixos marcs de dades
Envieu els mateixos marcs de dades
Envieu els mateixos marcs de dades
Envieu els mateixos marcs de dades
Envieu els mateixos marcs de dades

El Texas Instruments cc1101 és tan flexible que encara assolireu el vostre objectiu, fins i tot si la configuració que heu trobat al pas anterior és completament diferent de la meva. De fet, veureu a la documentació, pàgina 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) que permet realitzar la modulació NRZ, Manchester, FSK, ASK / OOK, per arribar les freqüències al voltant de 433 MHz o 868 MHz, i moltes altres coses. Us aconsello llegir la documentació per familiaritzar-vos amb aquest mòdul.

En aquest enllaç trobareu com a exemple el treball de Loboris sobre la construcció de funcions mitjançant aquest mòdul:

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

Escriureem el nostre codi per al nostre esp32 amb la cadena d’eines esp-idf (vegeu els enllaços del primer pas). Podeu afegir els fitxers de l'enllaç al subdirectori de components del vostre projecte. Per configurar correctament el nostre cc1101, haurem de corregir-ne els registres. Texas Instruments ens proporciona un programari que ens proporciona el valor dels registres segons la nostra configuració: SmartRF Studio.

Pel que fa a mi, indico al programari que desitjo una codificació Manchester, que la meva freqüència de portadora és de 868,22 MHz, que el meu tipus de modulació és ASK / OOK … Us deixo introduir els vostres paràmetres. En el cas que la vostra codificació de banda base no estigui disponible, podeu considerar la codificació NRZ augmentant adequadament la velocitat en bauds i adaptant les dades.

Un cop definits els vostres valors, teniu diverses opcions quant a l’ús del mòdul: podeu utilitzar les funcions que he enllaçat amb vosaltres, o el que he fet, només inspirar-vos en aquest codi, per tal de configurar de manera brutal (vegeu les fotos adjuntes) i utilitzeu només el que necessitem.

Com que el xip cc1101 es comunica per SPI, trobareu a l'enllaç del codi d'exemple el fitxer de capçalera "spi_master_lobo.h", que conté funcions més fàcils d'utilitzar l'SPI que si l'haguéssiu d'utilitzar només amb la cadena d'eines. A la foto m’uneixo amb l’esquema de la comunicació CC1101 a SPI, foto extreta de la pàgina 30 del full de dades CC1101. Els quatre cables presentats són: CS (Chip Select o SS: Slave Select o CSn), CLK (o SCLK, el rellotge proporcionat pel mestre), MISO (o SO, Master In Slave Out) i MOSI (o SI, Master Out Slave In). En el nostre cas, el mestre és l’ESP32 i l’esclau el CC1101. Les comunicacions s’inicien quan el pin CS és baix, en general.

No oblideu habilitar a les opcions del compilador del menuconfig les excepcions C ++ per compilar.

Pas 4: Connecteu-vos al sistema

Connecteu-vos al sistema
Connecteu-vos al sistema
Connecteu-vos al sistema
Connecteu-vos al sistema
Connecteu-vos al sistema
Connecteu-vos al sistema

Si el vostre codi funciona, heu fet l’essencial. En aquesta part, ens centrarem en com crear una aplicació de telèfon connectada al sistema. La solució més interessant és connectar-se mitjançant bluetooth, ja que permet l’ús d’un protocol de baix consum: Bluetooth Low Energy (BLE). El perfil de jerarquia es mostra al dibuix adjunt: llegirem i escriurem l’ordre en una característica d’un servei. I, per descomptat, el nostre esp32 i el nostre telèfon intel·ligent estan equipats amb bluetooth.

Aquest pas es divideix en dues parts: la part esp32 i la part de l'aplicació. La foto adjunta mostra i explica les principals parts dels codis.

Podeu generar els vostres UUID seguint aquest enllaç:

www.uuidgenerator.net/

Aquests són els identificadors que proporcionaran accés als serveis i funcions del nostre perfil BLE.

Quant al codi BLE esp32, Kolban va fer un gran treball fent compatibles totes aquestes funcions C ++ d’alt nivell:

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

Podeu posar aquests fitxers al subdirectori de components. En cas contrari, necessitareu més temps per entendre com utilitzar BLE amb la cadena d’eines esp-idf.

En resum del que veureu al codi, creem un servidor, un servei i una característica, amb els UUID associats, i afegim una classe de devolució de trucada redefinida, amb un mètode associat a l’escriptura: quan rebem l’O caràcter, enviem una ordre d’escriptura al cc1101.

Per descomptat, no oblideu habilitar el Bluetooth a la configuració de components del Menuconfig.

Quant a la part de l'aplicació, utilitzarem Framework Ionic. Podeu trobar més informació al respecte a l’enllaç presentat al primer pas i per obtenir més informació sobre com utilitzar BLE amb Ionic:

ionicframework.com/docs/native/ble/

I exemples, escrits per don:

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

Podeu editar per exemple l'exemple "Connecta". Escanejem dispositius en una primera pàgina i arribem a una segona pàgina si seleccionem el nostre dispositiu. Després accedim a una interfície on podeu afegir un botó amb el mètode presentat a la foto: envia la nostra comanda "O" amb els UUID adequats. També podeu afegir al constructor de la primera pàgina el mètode "enable", demanant que activeu el bluetooth al començament de l'aplicació.

Us recomano que explori el lloc web Ionic i que descobreixi tots els components (botons, alertes, caselles de selecció …) per millorar la vostra aplicació:

ionicframework.com/docs/components/#overvi…

Pas 5: optimitzeu el consum d'energia

Optimitzar el consum d'energia
Optimitzar el consum d'energia
Optimitzar el consum d'energia
Optimitzar el consum d'energia

Vam començar a treballar en un baix consum, així que anem a treballar.

La cadena d’eines esp-idf ens permet utilitzar una GUI de configuració, el menuconfig: molts paràmetres poden reduir el consum d’esp32. En primer lloc, com que no necessitem Wifi, podem desactivar-lo a la configuració del component. A la mateixa carpeta, a FreeRTOS, podeu seleccionar "Executa FreeRTOS només al primer nucli. Després, a ESP-específic, podeu reduir la freqüència de la CPU a 80 MHz. Totes les funcions segueixen funcionant a aquesta velocitat de rellotge. Finalment, podeu marqueu "Activa el coprocessador de baixa potència (ULP). Aquesta configuració fa que el consum actual passi d’un centenar de mA a uns trenta mA. Això encara és massa …

ESP32 pot gestionar el son profund. Només el nucli de baixa energia està engegat i espera el despertar.

Vegeu aquest enllaç següent per obtenir més informació:

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

Malauradament, a la darrera versió disponible de la cadena d’eines esp-idf (3.0), els únics despertats disponibles són per temporitzadors i per interrupcions de GPIO. Per sort, Espressif ens promet que BLE despertarà a la següent versió (3.1).

També podeu posar el CC1101 en mode de suspensió, enviant a SPI l’ordre adequada per apagar el dispositiu (vegeu el full de dades de cc1101, l’ordre SPWD, pàgina 51). Per posar el dispositiu en mode de repòs o per despertar-lo, podeu posar baix i alt el pin de selecció de xip dels pins SPI (més informació al full de dades).

Aquestes darreres configuracions haurien de ser capaces de fer que el consum del sistema passi per sota del miliamper …

Finalment, per fer que el sistema duri el major temps possible sense recarregar-se, o fins i tot arribar a un mes d’autonomia, trieu la bateria de 3,7 V amb més miliamperis per hora. Mesurant el consum d'energia del vostre sistema, amb la visualització d'un generador o un amperímetre connectats en sèrie abans del vostre + pol del vostre sistema, podeu calcular el temps que durarà el vostre sistema.

Recomanat: