Satura rādītājs:

Uzlauzt garāžas durvis: 5 soļi
Uzlauzt garāžas durvis: 5 soļi

Video: Uzlauzt garāžas durvis: 5 soļi

Video: Uzlauzt garāžas durvis: 5 soļi
Video: Overhead garage door opener install #liftmaster #solo #install #installation #garagedoor 2024, Novembris
Anonim
Uzlauzt savas garāžas durvis
Uzlauzt savas garāžas durvis
Uzlauzt savas garāžas durvis
Uzlauzt savas garāžas durvis
Uzlauzt savas garāžas durvis
Uzlauzt savas garāžas durvis

Kurš nekad nav sapņojis doties mājās tikai ar tālruņa lietotni vai klausīties un atkārtot datu tramvajus? Es priecājos, ka varu dalīties ar jums tajā, ko es sapratu un kā es turpināju. Es sāku šo projektu pēc otrās reizes, kad aizmirsu savas atslēgas …

Protams, kodējums, modulācijas veids, nesēja biežums, informācija par Bluetooth savienojumu un dati, ko es parādīšu, piemēram, nav oriģināli, es nevēlos apmeklētājus;-).

Šī lietojumprogramma attiecas uz jebkuru objektu, kas spēj uztvert digitālo informāciju ar elektromagnētiskiem viļņiem (garāžas durvis, automašīna, daži slēģi …). Visa sistēma sastāv no objekta, kas ar Bluetooth savienots ar tālruni, un šis objekts var nosūtīt tādus pašus kadrus kā tālvadības pults, kas saistīta ar to, ko mēs vēlamies uzlauzt. Es ievietoju šo objektu savā garāžā, un es varu tam pieslēgties no ārpuses.

1. solis: Aprīkojums

Aprīkojums
Aprīkojums
Aprīkojums
Aprīkojums

Izmantotās valodas: C ++, MATLAB, Typescript, C, html.

Pamatzināšanas digitālajā elektronikā un telekomunikācijās/signālu apstrādē.

Izmaksas: mazāk nekā 35 USD.

Aparatūras prasības:

- NooELEC NESDR: datu iegūšanai. Šis ļoti lētais modulis veic digitālu demodulāciju, līdz ar to tā augstu pārnesamību. Šis modelis ir saderīgs ar MATLAB. (18,95 ASV dolāri)

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

- Wemos Lolin32 lite: šis esp32 ir lēts mikrokontrolleris, kas aprīkots ar Wifi un Bluetooth. Mēs šajā lietojumprogrammā neizmantosim Wifi, taču tas lielā mērā ir iedomājams. (4,74 ASV dolāri)

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

- CDSENET cc1101: šis radio raidītājs nodrošina ārkārtēju elastību, sākot no izvēlētās nesējfrekvences līdz modulācijas veidam. (2,63 ASV dolāri)

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

- Vadi, galvenes, metināšanas iekārtas, 3,7 V lipo akumulators autonomijai, iespējams, osciloskops un/vai loģiskais analizators atkļūdošanai, un, starp citu, viedtālrunis …

Prasības programmatūrai:

- MATLAB/Simulink: datu iegūšanai. Var izmantot citas bezmaksas alternatīvas programmatūras, piemēram, Audacity datu vizualizācijai. (licence)

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

- esp-idf toolchain: tas tiks izmantots esp32 programmēšanai. Var izmantot arī Arduino ide, taču tas nepieļauj tik daudz brīvības kā tas, ko mēs izmantosim. (bezmaksas)

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

- TI SmartRF Studio: tas mums palīdzēs konfigurēt reģistrus cc1101 atbilstoši mūsu specifikācijām. (bezmaksas)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: lai izveidotu lietotni. Jūs varat izvēlēties izveidot vietējās lietotnes, bet Ionic ļauj mums palaist mūsu lietotni gan Android, gan IOS ierīcēs, izmantojot tikai kodu. Izrāde mūsu gadījumā netiek meklēta. (bezmaksas)

ionicframework.com/

- Tava mīļākā ideja…

2. darbība: tālvadības pults izspiegošana

Tālvadības pults izspiegošana
Tālvadības pults izspiegošana
Tālvadības pults izspiegošana
Tālvadības pults izspiegošana
Tālvadības pults izspiegošana
Tālvadības pults izspiegošana

Sāksim ar datu novērošanu, ko rada tālvadības komandas. Lai to izdarītu, mēs izmantosim rtl-sdr dongle un antenu:

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

Sekojot šai saitei, jūs atradīsit MATLAB pakotni, kā arī bezmaksas grāmatu, kurā paskaidroti visi dalībnieki un viņu paskaidrojumi. Apkopojot to, kas mūs satrauc, tranzīta dati ir IQ signāla veidā: "I" fāzes dati, apvienojumā ar "Q" kvadratūras datiem. Šī metode atvieglo telekomunikācijas. Mēs būsim ieinteresēti saņemt signālu tikai fāzē. Tagad mēs apkoposim fizisko un digitālo informāciju uz tālvadības pults. Ja jūs atradīsit kādu dokumentāciju par to, tas būs vieglāk. Neatradu nevienu. Lai varētu īslaicīgi novērot signālu, mums vispirms jāzina, kāds ir izstarotā signāla frekvences nesējs. Mēs izmantosim paketes dokumentācijā sniegto piemēru "Spektrālā analīze ar RTL-SDR radio", lai precīzi zinātu, ar kādu frekvenci, nosūtot komandu, mēs novērojam maksimālo jaudu. Manā gadījumā tas ir 868,22 MHz. Šāda veida lietojumprogrammu "standarta" frekvences ir aptuveni 868 MHz.

Ar šīm norādēm mēs varēsim uzrakstīt MATLAB kodu, lai atgūtu datus. Šis ir pievienots fotoattēlā un komentēts. Rezultāts ļauj mums noteikt modulācijas veidu: izgūstot neapstrādātu informāciju, parādot rezultātu tūlīt pēc signāla reālās daļas atgūšanas, mēs varam secināt, ka tas ir ASK / OOK modulācija. Patiešām, mēs novērojam, ka frekvence ir nemainīga, tomēr signālam ir tikai divas amplitūdas: nulle un fiksēta. Pārējais kods ļauj mums atgūt saņemtā signāla aploksni, kas atvieglo lasīšanu, lai uzzinātu trame. Pēc parādīšanas mēs varam noteikt pamatjoslas modulāciju: šī ir Mančestras kodēšana (skat. Pievienoto fotoattēlu). Mēs varam arī secināt pārraides ātrumu (simboli sekundē). Visu šo informāciju apkopojot, mēs varam zināt datu rāmi. Manā gadījumā atrastie baiti ir: 249, 39, 75, 178, 45, 200 un tiek atkārtoti vairākas reizes, lai nodrošinātu, ka komanda tiek labi uztverta. Par laimi, kods nerullē, datu rāmis vienmēr ir vienāds.

3. darbība: nosūtiet vienādus datu rāmjus

Sūtiet vienādus datu rāmjus
Sūtiet vienādus datu rāmjus
Sūtiet vienādus datu rāmjus
Sūtiet vienādus datu rāmjus
Sūtiet vienādus datu rāmjus
Sūtiet vienādus datu rāmjus

Texas Instruments cc1101 ir tik elastīgs, ka jūs joprojām sasniegsiet savu mērķi, pat ja iepriekšējā solī atrastie iestatījumi ir pilnīgi atšķirīgi no manējiem. Patiešām, dokumentācijas 2. lappusē (https://www.ti.com/lit/ds/symlink/cc1101.pdf) būs redzams, ka tā ļauj veikt NRZ, Mančestras, FSK, ASK/OOK modulāciju, lai sasniegtu frekvences ap 433 MHz vai 868 MHz un daudzas citas lietas. Iesaku iepazīties ar dokumentāciju, lai iepazītos ar šo moduli.

Šajā saitē jūs kā piemēru atradīsit Loboris darbu saistībā ar funkciju izveidi, izmantojot šo moduli:

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

Mēs rakstīsim kodu savam esp32, izmantojot rīku ķēdi esp-idf (skatiet pirmā soļa saites). Saites failus varat pievienot sava projekta komponentu apakšdirektorijā. Lai pareizi konfigurētu mūsu cc1101, mums būs jālabo tā reģistri. Texas Instruments nodrošina programmatūru, kas mums sniedz reģistru vērtību atbilstoši mūsu konfigurācijai: SmartRF Studio.

Runājot par mani, es programmatūrai norādu, ka vēlos Mančestras kodējumu, ka mana nesēja frekvence ir 868,22 MHz, ka mans modulācijas veids ir ASK / OOK … Es atļauju ievadīt jūsu parametrus. Gadījumā, ja jūsu pamatjoslas kodējums nav pieejams, varat apsvērt NRZ kodējumu, pareizi palielinot datu pārraides ātrumu un pielāgojot datus.

Kad esat definējis savas vērtības, jums ir vairākas iespējas attiecībā uz moduļa izmantošanu: varat izmantot funkcijas, kuras esmu jums saistījis, vai to, ko es darīju, tikai iedvesmojoties no šī koda, lai visu konfigurētu vairāk brutālā veidā (skat. pievienotos fotoattēlus), un izmantojiet tikai to, kas mums nepieciešams.

Tā kā mikroshēma cc1101 sazinās, izmantojot SPI, koda piemēra saitē atradīsit galvenes failu "spi_master_lobo.h", kurā ir vairāk vienkāršu funkciju SPI izmantošanai nekā tad, ja jums tas būtu jāizmanto tikai ar instrumentu ķēdi. Pievienojos jums fotoattēlā CC1101 komunikācijas shēma SPI, fotoattēls, kas ņemts no CC1101 datu lapas 30. lapas. Piedāvātie četri vadi ir: CS (Chip Select vai SS: Slave Select vai šeit CSn), CLK (vai SCLK, pulksteņa, ko nodrošina kapteinis), MISO (vai SO, Master In Slave Out) un MOSI (vai SI, Master Out Slave In). Mūsu gadījumā galvenais ir ESP32, bet vergs ir CC1101. Sakari parasti sākas, kad CS kontakts ir zems.

Neaizmirstiet izvēlnes kompilatora opcijās iespējot C ++ izņēmumus apkopošanai.

4. solis: izveidojiet savienojumu ar sistēmu

Izveidojiet savienojumu ar sistēmu
Izveidojiet savienojumu ar sistēmu
Izveidojiet savienojumu ar sistēmu
Izveidojiet savienojumu ar sistēmu
Izveidojiet savienojumu ar sistēmu
Izveidojiet savienojumu ar sistēmu

Ja jūsu kods darbojas, jūs esat paveicis būtisko. Šajā daļā mēs pievērsīsimies tam, kā izveidot sistēmai pievienotu tālruņa lietotni. Interesantākais risinājums ir izveidot savienojumu, izmantojot Bluetooth, jo tas ļauj izmantot mazjaudas protokolu: Bluetooth Low Energy (BLE). Hierarhijas profils ir parādīts pievienotajā zīmējumā: mēs izlasīsim un ierakstīsim komandu pakalpojuma raksturojumā. Un, protams, mūsu esp32 un viedtālrunis ir aprīkoti ar Bluetooth.

Šis solis ir sadalīts divās daļās: esp32 un lietotņu daļā. Pievienotajā fotoattēlā ir parādītas un izskaidrotas kodu galvenās daļas.

Varat izveidot savus UUID, izmantojot šo saiti:

www.uuidgenerator.net/

Šie ir identifikatori, kas nodrošinās piekļuvi mūsu BLE profila pakalpojumiem un funkcijām.

Par esp32 BLE kodu Kolban paveica lielisku darbu, padarot visas šīs augsta līmeņa C ++ funkcijas saderīgas:

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

Šos failus varat ievietot komponentu apakšdirektorijā. Pretējā gadījumā jums būs nepieciešams vairāk laika, lai saprastu, kā lietot BLE ar rīku ķēdi esp-idf.

Kopsavilkumā par to, ko redzēsit kodā, mēs izveidojam serveri, pakalpojumu un raksturlielumu ar saistītajiem UUID un pievienojam no jauna definētu atzvanīšanas klasi ar saistītu rakstīšanas metodi: kad saņemam "O" rakstzīmi, mēs nosūtām rakstīšanas komandu uz cc1101.

Protams, neaizmirstiet iespējot Bluetooth izvēlnes konfigurācijas komponentu konfigurācijā.

Par lietotnes daļu mēs izmantosim Framework Ionic. Plašāku informāciju par to varat atrast saitē, kas parādīta pirmajā solī, un sīkāku informāciju par BLE lietošanu kopā ar Ionic:

ionicframework.com/docs/native/ble/

Un piemēri, ko rakstījis don:

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

Jūs varat rediģēt, piemēram, piemēru "Savienot". Mēs skenējam ierīces pirmajā lapā un sasniedzam otro lapu, ja izvēlamies savu ierīci. Pēc tam mēs piekļūstam saskarnei, kurā varat pievienot pogu ar fotoattēlā redzamo metodi: tā nosūta mūsu komandu "O" ar atbilstošajiem UUID. Pirmās lapas konstruktorā varat pievienot arī metodi "enable", lūdzot aktivizēt Bluetooth lietojumprogrammas sākumā.

Es ļoti iesaku jums izpētīt vietni Ionic un atklāt visas sastāvdaļas (pogas, brīdinājumi, izvēles rūtiņas …), lai uzlabotu savu lietojumprogrammu:

ionicframework.com/docs/components/#overvi…

5. solis: optimizējiet enerģijas patēriņu

Optimizējiet enerģijas patēriņu
Optimizējiet enerģijas patēriņu
Optimizējiet enerģijas patēriņu
Optimizējiet enerģijas patēriņu

Mēs sākām strādāt ar zemu patēriņu, tāpēc strādāsim.

Rīku ķēde esp-idf ļauj mums izmantot konfigurācijas GUI-menuconfig: daudzi parametri var samazināt esp32 patēriņu. Pirmkārt, tā kā mums nav nepieciešams Wifi, mēs to varam atspējot komponenta konfigurācijā. Tajā pašā mapē FreeRTOS varat atlasīt "Palaist FreeRTOS tikai pirmajā kodolā. Pēc tam, izmantojot ESP, jūs varat samazināt CPU frekvenci līdz 80 MHz. Visas funkcijas joprojām darbojas ar šo pulksteņa ātrumu. Visbeidzot, jūs varat atzīmējiet "Iespējot īpaši mazjaudas (ULP) kopprocesoru. Šī konfigurācija padara pašreizējo patēriņu no aptuveni simts mA līdz aptuveni trīsdesmit mA. Tas joprojām ir par daudz…

ESP32 var tikt galā ar dziļu miegu. Tikai zema enerģijas patēriņa kodols ir ieslēgts un gaida pamodināšanu.

Lai iegūtu sīkāku informāciju, skatiet šo saiti zemāk:

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

Diemžēl pēdējā pieejamajā esp-idf toolchain versijā (3.0) vienīgie pieejamie pamošanās ir taimeriem un GPIO pārtraukumiem. Par laimi, Espressif sola mums BLE mosties nākamajā versijā (3.1.).

CC1101 var arī ieslēgt miega režīmā, nosūtot SPI pareizu komandu ierīces izslēgšanai (sk. Cc1101 datu lapu, komandu SPWD, 51. lpp.). Lai ierīci ieslēgtu miega režīmā vai pamodinātu, SPI tapu mikroshēmas izvēles tapu varat ievietot zemu un augstu (vairāk informācijas datu lapā).

Šīm pēdējām konfigurācijām vajadzētu ļaut sistēmas patēriņam pārsniegt miliamperu …

Visbeidzot, lai sistēma darbotos pēc iespējas ilgāk bez uzlādēšanas vai pat sasniegtu patstāvības mēnesi, izvēlieties 3,7 V akumulatoru ar vislielāko miliamperu skaitu stundā. Izmērot sistēmas enerģijas patēriņu, parādot ģeneratoru vai ampērmetru, kas sērijveidā pievienots pirms jūsu sistēmas + pola, jūs varat novērtēt sistēmas darbības laiku!

Ieteicams: