Kazalo:
- 1. korak: Oprema
- 2. korak: vohunjenje daljinskega upravljalnika
- 3. korak: Pošljite iste okvirje podatkov
- 4. korak: Povežite se s sistemom
- 5. korak: Optimizirajte porabo energije
Video: Vdor v vaša garažna vrata: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Kdo ni sanjal, da bi šel domov samo s telefonsko aplikacijo ali da bi lahko poslušal in ponovno kopiral podatkovne tramvaje? Vesel sem, da lahko z vami delim, kaj sem spoznal in kako sem nadaljeval. Ta projekt sem začel, ko sem drugič pozabil ključe …
Seveda kodiranje, vrsta modulacije, frekvenca nosilca, informacije o povezavi bluetooth in podatki, ki jih bom prikazal na primer, niso izvirniki, raje nimam obiskovalcev;-).
Ta aplikacija velja za kateri koli predmet, ki lahko z elektromagnetnimi valovi sprejema digitalne informacije (garažna vrata, avto, nekatere rolete …). Celoten sistem je sestavljen iz predmeta, povezanega prek bluetootha s telefonom, ki lahko pošlje iste okvirje kot daljinski upravljalnik, povezan s tem, kar želimo vdreti. Ta predmet sem dal v svojo garažo in nanj se lahko povežem od zunaj.
1. korak: Oprema
Uporabljeni jeziki: C ++, MATLAB, Typescript, C, html.
Osnovno znanje iz digitalne elektronike in telekomunikacij/obdelave signalov.
Cena: manj kot 35 USD.
Strojne zahteve:
- NooELEC NESDR: za zajem podatkov. Ta zelo poceni modul izvaja digitalno demodulacijo, zato je njegova visoka prenosljivost. Ta model je združljiv z MATLAB. (18,95 USD)
www.nooelec.com/store/sdr/sdr-receivers/nes…
- Wemos Lolin32 lite: ta esp32 je poceni mikrokrmilnik, opremljen z Wifi in Bluetooth. V tej aplikaciji ne bomo uporabljali Wi -Fi, vendar je to v veliki meri mogoče. (4,74 USD)
wiki.wemos.cc/products:lolin32:lolin32_lit…
- CDSENET cc1101: ta radijski oddajnik nam daje izjemno prilagodljivost, od izbrane nosilne frekvence do vrste modulacije. (2,63 USD)
www.aliexpress.com/item/2PC-Lot-E07-868MS1…
- Žice, glave, varilna oprema, 3,7 V lipo baterija za avtonomijo, po možnosti osciloskop in/ali logični analizator za odpravljanje napak in mimogrede pametni telefon …
Zahteve za programsko opremo:
- MATLAB/Simulink: za zajem podatkov. Uporabite lahko tudi druge brezplačne alternativne programe, na primer Audacity za vizualizacijo podatkov. (licenca)
fr.mathworks.com/products.html?s_tid=gn_ps
- esp-idf toolchain: to bo uporabljeno za programiranje esp32. Arduino ide je tudi mogoče uporabiti, vendar ne dopušča toliko svobode kot tisto, kar bomo uporabili. (prost)
esp-idf.readthedocs.io/en/latest/get-starte…
- TI SmartRF Studio: to nam bo pomagalo pri konfiguraciji registrov cc1101 v skladu z našimi specifikacijami. (prost)
www.ti.com/tool/SMARTRFTM-STUDIO
- Ionic: za izdelavo aplikacije. Lahko se odločite za izdelavo domačih aplikacij, vendar nam Ionic omogoča, da aplikacijo zaženemo v napravah Android in IOS z edino kodo. Predstave v našem primeru ne iščemo. (prost)
ionicframework.com/
- Vaša najljubša ideja…
2. korak: vohunjenje daljinskega upravljalnika
Začeli bomo z opazovanjem podatkov, ki jih ustvarijo ukazi daljinskega upravljalnika. Za to bomo uporabili ključ in anteno rtl-sdr:
fr.mathworks.com/hardware-support/rtl-sdr….
Če sledite tej povezavi, boste našli paket MATLAB in brezplačno knjigo, ki pojasnjuje vse cene z njihovo razlago. Če povzamemo, kaj nas skrbi, so tranzitni podatki v obliki signala IQ: "fazni" podatki v fazi, v kombinaciji s kvadraturnimi podatki "Q". Ta metoda olajša telekomunikacije. Zanimalo nas bo le fazno sprejemanje signala. Zdaj bomo na daljinskem upravljalniku zbrali fizične in digitalne podatke. Če boste našli nekaj dokumentacije o tem, bo to lažje. Nisem našel nobenega. Da bi lahko časovno opazovali signal, moramo najprej vedeti, kaj je frekvenčni nosilec oddanega signala. Uporabili bomo primer, priložen dokumentaciji paketa "Spektralna analiza z RTL-SDR radijem", da bi natančno vedeli, na kateri frekvenci opazimo največjo moč, ko pošiljamo ukaz. V mojem primeru je 868,22 MHz. "Standardne" frekvence za tovrstne aplikacije so okoli 868 MHz.
S temi navedbami bomo lahko napisali kodo MATLAB za obnovitev podatkov. Ta je priložen na fotografiji in komentiran. Rezultat nam omogoča, da ugotovimo vrsto modulacije: tako, da pridobimo surove informacije, prikažemo rezultat takoj po tem, ko smo povrnili dejanski del signala, lahko sklepamo, da gre za VPRAŠANJE / OOK modulacija. Dejansko opažamo, da je frekvenca nespremenljiva, vendar ima signal le dve amplitudi: ničelno in fiksno. Preostali del kode nam omogoča, da obnovimo ovojnico prejetega signala, olajšamo branje, da poznamo trame. Ko se prikaže, lahko določimo modulacijo osnovnega pasu: to je Manchester kodiranje (glej priloženo fotografijo). Določimo lahko tudi hitrost prenosa (simboli na sekundo). Vse te podatke, ki se zbirajo, lahko poznamo podatkovni okvir. V mojem primeru so najdeni bajti: 249, 39, 75, 178, 45, 200 in večkrat ponovljeni, da zagotovimo, da je ukaz dobro sprejet. Na srečo se koda ne premika, okvir podatkov je vedno enak.
3. korak: Pošljite iste okvirje podatkov
Texas Instruments cc1101 je tako prilagodljiv, da boste še vedno dosegli svoj cilj, tudi če so nastavitve, ki ste jih našli v prejšnjem koraku, popolnoma drugačne od mojih. Dejansko boste v dokumentaciji, stran 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) videli, da omogoča izvajanje modulacije NRZ, Manchester, FSK, ASK/OOK, da doseže frekvence okoli 433 MHz ali 868 MHz in mnoge druge stvari. Svetujem vam, da preberete dokumentacijo, da se seznanite s tem modulom.
Na tej povezavi boste kot primer našli delo Loborisa v zvezi s konstrukcijo funkcij s tem modulom:
github.com/loboris/ESP32_CC1101/tree/maste…
Kodo za naš esp32 bomo napisali z orodno verigo esp-idf (glej povezave prvega koraka). Datoteke povezave lahko dodate v podimenik komponent svojega projekta. Za pravilno konfiguriranje našega cc1101 bomo morali popraviti njegove registre. Texas Instruments nam ponuja programsko opremo, ki nam daje vrednost registrov glede na našo konfiguracijo: SmartRF Studio.
Kar zadeva mene, programski opremi navajam, da želim Manchester kodiranje, da je moja nosilna frekvenca 868,22 MHz, da je moj tip modulacije ASK / OOK … Dovolim vam, da vnesete svoje parametre. Če vaše kodiranje osnovnega pasu ni na voljo, lahko razmislite o kodiranju NRZ, tako da ustrezno povečate hitrost prenosa podatkov in prilagodite podatke.
Ko določite svoje vrednosti, imate na voljo več možnosti glede uporabe modula: lahko uporabite funkcije, ki sem jih povezal z vami, ali kar sem naredil, samo navdihnite se iz te kode, da vse nastavite v bolj brutalno (glej priložene fotografije) in uporabite le tisto, kar potrebujemo.
Ker čip cc1101 komunicira prek SPI, boste v povezavi vzorčne kode našli datoteko glave "spi_master_lobo.h", ki vsebuje več lažjih funkcij za uporabo SPI, kot če bi jo morali uporabljati samo z verigo orodij. Pridružujem se vam na fotografiji sheme komunikacije CC1101 v SPI, fotografija posneta s strani 30 podatkovnega lista CC1101. Štiri predstavljene žice so: CS (Chip Select ali SS: Slave Select ali tukaj CSn), CLK (ali SCLK, ura, ki jo posreduje glavni), MISO (ali SO, Master In Slave Out) in MOSI (ali SI, Master Out Slave In). V našem primeru je glavni ESP32, pomožni pa CC1101. Na splošno se komunikacija začne, ko je pin CS nizek.
Ne pozabite v možnostih prevajalnika menija konfigurirati izjeme C ++ za sestavljanje.
4. korak: Povežite se s sistemom
Če vaša koda deluje, ste naredili bistveno. V tem delu se bomo osredotočili na to, kako ustvariti aplikacijo za telefon, povezano s sistemom. Najbolj zanimiva rešitev je povezovanje prek bluetootha, saj omogoča uporabo protokola z nizko porabo energije: Bluetooth Low Energy (BLE). Profil hierarhije je prikazan na priloženi risbi: ukaz bomo prebrali in zapisali v Značilnosti storitve. In seveda sta naš esp32 in naš pametni telefon opremljena z bluetoothom.
Ta korak je razdeljen na dva dela: del esp32 in del aplikacije. Priložena fotografija prikazuje in razlaga glavne dele kod.
UUID -je lahko ustvarite po tej povezavi:
www.uuidgenerator.net/
To so identifikatorji, ki bodo omogočali dostop do storitev in funkcij našega profila BLE.
Kar zadeva kodo esp32 BLE, je Kolban odlično opravil delo, tako da je združil vse te funkcije na visoki ravni C ++:
github.com/nkolban/esp32-snippets/tree/mas…
Te datoteke lahko postavite v podimenik komponent. V nasprotnem primeru boste potrebovali več časa, da razumete, kako uporabljati BLE z orodno verigo esp-idf.
Če povzamemo, kar boste videli v kodi, ustvarimo strežnik, storitev in značilnost s povezanimi UUID -ji in dodamo redefiniran razred povratnega klica s povezano metodo pisanja: ko prejmemo "O" znak, na cc1101 pošljemo ukaz za pisanje.
Seveda ne pozabite omogočiti Bluetootha v konfiguraciji Component v meniju Menuconfig.
Kar zadeva del aplikacije, bomo uporabili Framework Ionic. Več informacij o tem najdete na povezavi, predstavljeni v prvem koraku, in za več podrobnosti o uporabi BLE z Ionic:
ionicframework.com/docs/native/ble/
In primeri, ki jih je napisal don:
github.com/don/ionic-ble-examples/tree/mas…
Urejate lahko na primer primer »Poveži se«. Napravo skeniramo na prvi strani in na drugo stran pridemo, če izberemo svojo napravo. Nato dostopamo do vmesnika, kjer lahko dodate gumb z metodo, prikazano na fotografiji: pošlje naš ukaz "O" z ustreznimi UUID -ji. V konstruktor prve strani lahko dodate tudi metodo »enable«, ki prosi Bluetooth za aktiviranje ob zagonu aplikacije.
Toplo vam priporočam, da raziščete spletno mesto Ionic in odkrijete vse komponente (gumbe, opozorila, potrditvena polja …), da izboljšate svojo aplikacijo:
ionicframework.com/docs/components/#overvi…
5. korak: Optimizirajte porabo energije
Začeli smo delati na nizki porabi, zato se lotimo.
Orodje esp-idf nam omogoča uporabo grafičnega vmesnika za konfiguracijo, menuconfig: številni parametri lahko zmanjšajo porabo esp32. Najprej, ker ne potrebujemo Wi -Fi, ga lahko onemogočimo v konfiguraciji komponente. V isti mapi v FreeRTOS-u lahko izberete Zaženi FreeRTOS samo na prvem jedru. Nato lahko v posebnem ESP-ju znižate frekvenco procesorja na 80 MHz. Vse funkcije še vedno delujejo pri tej taktni hitrosti. Nazadnje lahko potrdite polje »Omogoči soprocesor ultra nizke porabe (ULP). Zaradi te konfiguracije se trenutna poraba giblje od približno sto mA do približno trideset mA. To je še vedno preveč…
ESP32 lahko prenese globok spanec. Vklopljeno je samo nizkoenergijsko jedro in čaka na prebujanje.
Za več podrobnosti glejte spodnjo povezavo:
esp-idf.readthedocs.io/en/latest/api-refere…
Na žalost so v zadnji razpoložljivi različici orodne verige esp-idf (3.0) na voljo le časovniki in motnje GPIO. Na srečo nam Espressif obljublja, da se bo BLE prebudil v naslednji različici (3.1).
CC1101 lahko preklopite tudi v način spanja, tako da v SPI pošljete ustrezen ukaz za izklop naprave (glejte podatkovni list cc1101, ukaz SPWD, stran 51). Če želite napravo preklopiti v način spanja ali prebuditi, lahko postavite nizko, nato pa visoko pin za izbiro čipa zatičev SPI (več informacij v podatkovnem listu).
Te zadnje konfiguracije bi morale omogočiti, da poraba sistema pade pod miliamper…
Nazadnje, da bo sistem zdržal čim dlje brez polnjenja ali celo dosegel mesec dni avtonomije, izberite 3,7 V baterijo z največ miliamperji na uro. Z merjenjem porabe energije vašega sistema, z zaporednim prikazom generatorja ali ampermetra pred vašim + polom vašega sistema, lahko ocenite, koliko časa bo vaš sistem zdržal!
Priporočena:
Garažna vrata z nadzorom Alexa z Arduino Esp8266: 6 korakov
Garažna vrata z nadzorom Alexa z Arduinom Esp8266: Ideja za ta projekt se mi je porodila iz starega projekta, na katerem sem delal pred časom. Priključil sem preprosto stikalno vezje, ki bi prižgalo LED, ko bi na garažna vrata pritisnili gumb. Ta metoda se je izkazala za nezanesljivo in ni tako uporabna
Nevidni daljinski upravljalnik za garažna vrata: 7 korakov (s slikami)
Nevidni daljinski upravljalnik za garažna vrata: Nekoč smo avto pustili parkiran pred garažo in tat je razbil okno, da bi prišel do daljinskega upravljalnika garažnih vrat. Nato so odprli garažo in ukradli nekaj koles. Zato sem se odločil, da daljinec skrijem tako, da ga vgradim v avtomobilski pepelnik. Deluje do
Vdor v gumb za vrata londonske podzemne jubilejne linije: 12 korakov (s slikami)
Vdor v gumb za vrata londonske podzemne jubilejne linije: Trgovina v Londonskem transportnem muzeju prodaja razgrajene gumbe vrat iz linije Jubilee (na voljo sta leva in desna). Če razmišljate o izvajanju projekta, ki potrebuje gumb in nekakšno lučko, bi bili '
Brezžična različica Ali so moja garažna vrata odprta ali zaprta?: 7 korakov
Brezžična različica … Ali so moja garažna vrata odprta ali zaprta?: Želeli smo preprost, poceni in zanesljiv sistem označevanja, ki nam je pokazal, ali so naša garažna vrata odprta ali zaprta. Obstaja veliko " Ali so moja garažna vrata odprta " projekti. Večina teh projektov je trdno povezana. V mojem primeru zagnano
Glasovno upravljane luči za skuterje in garažna vrata: 6 korakov
Glasovne luči za skuterje in garažna vrata: Pozdravljeni! Pred kratkim sem kupil električni skuter, vendar ni imel zadnje luči niti vgrajenega odpirača garažnih vrat … IZNENAD !! (ノ ゚ 0 ゚) ノ ~ Zato sem se odločil, da namesto da bi jih kupil, naredim lastne daljinske in zadnje luči za garažna vrata