Përmbajtje:

Hack Dera juaj e Garazhit: 5 Hapa
Hack Dera juaj e Garazhit: 5 Hapa

Video: Hack Dera juaj e Garazhit: 5 Hapa

Video: Hack Dera juaj e Garazhit: 5 Hapa
Video: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Korrik
Anonim
Hack Dera juaj e Garazhit
Hack Dera juaj e Garazhit
Hack Dera juaj e Garazhit
Hack Dera juaj e Garazhit
Hack Dera juaj e Garazhit
Hack Dera juaj e Garazhit

Kush nuk ka ëndërruar të shkojë në shtëpi vetëm me një aplikacion telefoni, ose të jetë në gjendje të dëgjojë dhe të rikopjojë tramvajet e të dhënave? Unë jam i lumtur që jam në gjendje të ndaj me ju atë që kuptova dhe si veprova. E fillova këtë projekt pasi herën e dytë harrova çelësat e mi…

Sigurisht, kodimi, lloji i modulimit, frekuenca e transportuesit, informacioni i lidhjes bluetooth dhe të dhënat që do të tregoj në shembull nuk janë origjinale, preferoj të mos kem vizitorë;-).

Ky aplikacion zbatohet për çdo objekt të aftë për të marrë informacion dixhital nga valët elektromagnetike (dera e garazhit, makina, disa grila…). I gjithë sistemi përbëhet nga një objekt i lidhur me bluetooth me një telefon, ky objekt është në gjendje të dërgojë të njëjtat korniza si telekomanda e lidhur me atë që duam të hakojmë. E vendosa këtë objekt në garazhin tim dhe mund të lidhem me të nga jashtë.

Hapi 1: Pajisja

Pajisja
Pajisja
Pajisja
Pajisja

Gjuhët e përdorura: C ++, MATLAB, Typescript, C, html.

Njohuri bazë në elektronikën dixhitale dhe telekomunikacionin/përpunimin e sinjalit.

Kostoja: më pak se 35 dollarë.

Kërkesat për harduerin:

- NooELEC NESDR: për kapjen e të dhënave. Ky modul shumë i lirë kryen një demodulim dixhital, pra edhe transportueshmëri e tij e lartë. Ky model është i pajtueshëm me MATLAB. ($ 18.95)

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

- Wemos Lolin32 lite: ky esp32 është një mikrokontrollues i lirë, i pajisur me Wifi dhe Bluetooth. Ne nuk do të përdorim Wifi në këtë aplikacion, por kjo është kryesisht e imagjinueshme. (4.74 dollarë)

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

- CDSENET cc1101: ky transmetues radio na jep një fleksibilitet ekstrem, nga frekuenca e zgjedhur e bartësit tek lloji i modulimit. (2.63 dollarë)

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

- Tela, tituj, pajisje saldimi, bateri lipo 3.7V për autonomi, ndoshta oshiloskop, dhe/ose analizues logjik për korrigjim, dhe rastësisht, një smartphone…

Kërkesat e softuerit:

- MATLAB/Simulink: për kapjen e të dhënave. Softuerë të tjerë alternativë falas mund të përdoren, si Audacity për vizualizimin e të dhënave. (liçensë)

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

- esp-idf toolchain: kjo do të përdoret për programimin e esp32. Ideja Arduino gjithashtu mund të përdoret, por nuk lejon aq liri sa ajo që ne do të përdorim. (falas)

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

- TI SmartRF Studio: kjo do të na ndihmojë të konfigurojmë regjistrat cc1101, sipas specifikimeve tona. (falas)

www.ti.com/tool/SMARTRFTM-STUDIO

- Jonike: për ndërtimin e aplikacionit. Ju mund të bëni zgjedhjen e ndërtimit të aplikacioneve amtare, por Ionic na lejon të ekzekutojmë aplikacionin tonë si në pajisjet Android ashtu edhe në IOS, me një kod të vetëm. Performanca nuk kërkohet në rastin tonë. (falas)

ionicframework.com/

- Ideja juaj e preferuar…

Hapi 2: Spiunimi i telekomandës

Spiunimi i telekomandës
Spiunimi i telekomandës
Spiunimi i telekomandës
Spiunimi i telekomandës
Spiunimi i telekomandës
Spiunimi i telekomandës

Ne do të fillojmë duke vëzhguar të dhënat që prodhojnë komandat e telekomandës. Për ta bërë këtë, ne do të përdorim një dongle rtl-sdr dhe antenë:

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

Duke ndjekur këtë lidhje, do të gjeni paketën MATLAB, si dhe një libër falas që shpjegon të gjitha çmimet me shpjegimin e tyre. Për të përmbledhur atë që na shqetëson, të dhënat e tranzitit janë në formën e një sinjali të IQ: një të dhënë në fazë "I", e kombinuar me një të dhënë kuadratura "Q". Kjo metodë lehtëson telekomunikacionin. Ne do të jemi të interesuar vetëm për marrjen e sinjalit në fazë. Tani do të mbledhim informacionin fizik dhe dixhital në telekomandë. Nëse mund të gjeni ndonjë dokumentacion mbi të, do të jetë më e lehtë. Nuk gjeta asnjë. Për të qenë në gjendje të vëzhgojmë përkohësisht sinjalin, së pari duhet të dimë se cili është bartësi i frekuencës së sinjalit të emetuar. Ne do të përdorim shembullin e dhënë me dokumentacionin e paketës "Analiza spektrale me Radion RTL-SDR", për të ditur saktësisht se në cilën frekuencë vërejmë një fuqi kulmore kur dërgojmë një komandë. Në rastin tim është 868.22 MHz. Frekuencat "standarde" për këtë lloj aplikacioni janë rreth 868 MHz.

Me këto indikacione, ne do të jemi në gjendje të shkruajmë një kod MATLAB për të rimarrë të dhënat. Ky është i bashkangjitur në foto dhe komentohet. Rezultati na lejon të gjejmë llojin e modulimit: duke marrë informacionin e papërpunuar, duke shfaqur rezultatin menjëherë pasi të keni rimarrë pjesën e vërtetë të sinjalit, mund të nxjerrim përfundimin se është një PYETJE / OOK modulim Në të vërtetë, ne vërejmë se frekuenca është e pandryshueshme, megjithatë, sinjali ka vetëm dy amplituda: një zero dhe një fikse. Pjesa tjetër e kodit na lejon të rikuperojmë zarfin e sinjalit të marrë, i bërë më i lehtë për t'u lexuar për të njohur tramën. Pasi të shfaqet, ne mund të përcaktojmë modulimin e brezit bazë: ky është një kodim i Mançesterit (shiko foton e bashkangjitur). Ne gjithashtu mund të nxjerrim përfundimin e normës së baudit (simbole për sekondë). I gjithë ky informacion i mbledhur, ne mund ta njohim kornizën e të dhënave. Në rastin tim, bajtët e gjetur janë: 249, 39, 75, 178, 45, 200, dhe përsëriten shumë herë, për të siguruar që komanda është pranuar mirë. Për fat të mirë, kodi nuk po lëviz, korniza e të dhënave është gjithmonë e njëjtë.

Hapi 3: Dërgoni të njëjtat korniza të të dhënave

Dërgoni të njëjtat korniza të të dhënave
Dërgoni të njëjtat korniza të të dhënave
Dërgoni të njëjtat korniza të të dhënave
Dërgoni të njëjtat korniza të të dhënave
Dërgoni të njëjtat korniza të të dhënave
Dërgoni të njëjtat korniza të të dhënave

Texas Instruments cc1101 është aq fleksibël saqë ju akoma do të arrini qëllimin tuaj, edhe nëse cilësimet e gjetura në hapin e mëparshëm janë krejtësisht të ndryshme nga imi. Në të vërtetë, do të shihni në dokumentacionin, faqe 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) që ju lejon të kryeni modulimin NRZ, Manchester, FSK, ASK/OOK, për të arritur frekuencat rreth 433 MHz ose 868 MHz, dhe shumë gjëra të tjera. Unë ju këshilloj të lexoni dokumentacionin për t'u njohur me këtë modul.

Në këtë lidhje do të gjeni si shembull punën e Loboris në lidhje me ndërtimin e funksioneve duke përdorur këtë modul:

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

Ne do të shkruajmë kodin tonë për esp32 tonë me zinxhirin e veglave esp-idf (shiko lidhjet e hapit të parë). Ju mund të shtoni skedarët e lidhjes në nën -drejtorinë e përbërësve të projektit tuaj. Për të konfiguruar siç duhet cc1101, do të na duhet të rregullojmë regjistrat e tij. Texas Instruments na siguron softuer që na jep vlerën e regjistrave sipas konfigurimit tonë: SmartRF Studio.

Në lidhje me mua, unë i tregoj softuerit që unë dëshiroj një kodim në Mançester, se frekuenca ime e operatorit është 868.22 MHz, se lloji im i modulimit është ASK / OOK … Unë ju lejoj të futni parametrat tuaj. Në rastin kur kodimi juaj me brez bazë nuk është i disponueshëm, mund të konsideroni kodimin NRZ, duke rritur siç duhet normën e baudit dhe duke përshtatur të dhënat.

Pasi të keni përcaktuar vlerat tuaja, keni disa zgjedhje në lidhje me përdorimin e modulit: mund të përdorni funksionet që ju kam lidhur, ose atë që kam bërë, vetëm të merrni frymëzim nga ky kod, në mënyrë që të konfiguroni gjithçka në një mënyrë më të mënyrë brutale (shihni fotot e bashkangjitura), dhe përdorni vetëm atë që na nevojitet.

Ndërsa çipi cc1101 komunikon me SPI, ju do të gjeni në lidhjen e kodit shembull skedarin e titullit "spi_master_lobo.h", që përmban funksione më të lehta për përdorimin e SPI sesa nëse do të duhej ta përdorni vetëm me zinxhirin e veglave. Unë ju bashkohem në foto skemën e komunikimit CC1101 në SPI, foto e marrë nga faqja 30 e fletës së të dhënave CC1101. Katër telat e paraqitur janë: CS (Chip Select, ose SS: Slave Select, ose këtu CSn), CLK (ose SCLK, Ora, e siguruar nga mjeshtri), MISO (ose SO, Master In Slave Out), dhe MOSI (ose SI, Master Out Slave In). Në rastin tonë, mjeshtri është ESP32, dhe skllavi është CC1101. Komunikimet fillojnë kur kunja CS është e ulët, në përgjithësi.

Mos harroni të aktivizoni në opsionet e përpiluesit të menuskonfigurimit të përjashtimeve C ++ për përpilimin.

Hapi 4: Lidhuni me sistemin

Lidhu me Sistemin
Lidhu me Sistemin
Lidhu me Sistemin
Lidhu me Sistemin
Lidhu me Sistemin
Lidhu me Sistemin

Nëse kodi juaj funksionon, ju keni bërë atë thelbësore. Në këtë pjesë, ne do të përqendrohemi në mënyrën e krijimit të një aplikacioni telefoni të lidhur me sistemin. Zgjidhja më interesante është lidhja me bluetooth, sepse lejon përdorimin e një protokolli me fuqi të ulët: Bluetooth me energji të ulët (BLE). Profili i hierarkisë tregohet në vizatimin e bashkangjitur: ne do të lexojmë dhe shkruajmë komandën në një Karakteristikë të një Shërbimi. Dhe sigurisht, esp32 dhe smartphone -i ynë janë të pajisur me bluetooth.

Ky hap ndahet në dy pjesë: pjesa esp32 dhe pjesa e aplikacionit. Fotografia e bashkangjitur tregon dhe shpjegon pjesët kryesore të kodeve.

Ju mund të krijoni UUID -të tuaj duke ndjekur këtë lidhje:

www.uuidgenerator.net/

Këta janë identifikuesit që do të sigurojnë qasje në shërbimet dhe veçoritë e profilit tonë BLE.

Në lidhje me kodin esp32 BLE, Kolban bëri një punë të shkëlqyeshme duke i bërë të pajtueshme të gjitha këto funksione të nivelit të lartë C ++:

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

Ju mund t'i vendosni këto skedarë në nën -drejtorinë e përbërësve. Përndryshe, do t'ju duhet më shumë kohë për të kuptuar se si të përdorni BLE me zinxhirin e veglave esp-idf.

Në përmbledhje të asaj që do të shihni në kod, ne krijojmë një Server, një Shërbim dhe një Karakteristikë, me UUID -të e lidhur, dhe shtojmë një klasë të ripërcaktuar të thirrjes, me një metodë të lidhur në shkrim: kur marrim "O" karakter, ne i dërgojmë një komandë shkrimi cc1101.

Sigurisht, mos harroni të aktivizoni Bluetooth në konfigurimin e Komponentit të Menuconfig.

Rreth pjesës së aplikacionit, ne do të përdorim Jonikun e Kornizës. Mund të gjeni më shumë informacion në lidhje me të në lidhjen e paraqitur në hapin e parë, dhe për më shumë detaje se si të përdorni BLE me Jonik:

ionicframework.com/docs/native/ble/

Dhe shembuj, të shkruar nga don:

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

Ju mund të redaktoni për shembull shembullin "Lidhu". Ne skanojmë pajisjet në një faqe të parë dhe arrijmë në një faqe të dytë nëse zgjedhim pajisjen tonë. Ne pastaj hyjmë në një ndërfaqe ku mund të shtoni një buton me metodën e paraqitur në foto: ai dërgon komandën tonë "O" me UUID -et e duhura. Ju gjithashtu mund të shtoni në konstruktorin e faqes së parë metodën "aktivizo", duke kërkuar të aktivizoni bluetooth -in në fillim të aplikacionit.

Ju rekomandoj shumë që të eksploroni uebfaqen Jonike dhe të zbuloni të gjithë Komponentët (butonat, sinjalizimet, kutitë e zgjedhjes …) për të përmirësuar aplikacionin tuaj:

ionicframework.com/docs/components/#overvi…

Hapi 5: Optimizoni konsumin e energjisë

Optimizoni konsumin e energjisë
Optimizoni konsumin e energjisë
Optimizoni konsumin e energjisë
Optimizoni konsumin e energjisë

Ne filluam të punojmë me konsum të ulët, kështu që le të vazhdojmë.

Zinxhiri i veglave esp-idf na lejon të përdorim një GUI konfigurimi, menuconfig: shumë parametra mund të ulin konsumin esp32. Para së gjithash, pasi nuk kemi nevojë për Wifi, mund ta çaktivizojmë në konfigurimin e Komponentit. Në të njëjtën dosje, në FreeRTOS, mund të zgjidhni "Run FreeRTOS vetëm në bërthamën e parë. Pastaj, në ESP-specifike, mund të ulni frekuencën e CPU-së në 80 MHz. Të gjitha funksionet funksionojnë akoma me këtë shpejtësi të orës. Së fundi, ju mund të kontrolloni "Aktivizoni bashkëprocesorin me fuqi ultra të ulët (ULP). Ky konfigurim bën që konsumi aktual të shkojë nga rreth njëqind mA në rreth tridhjetë mA. Kjo është akoma shumë…

ESP32 mund të trajtojë gjumë të thellë. Vetëm bërthama me energji të ulët është e ndezur dhe pret për zgjim.

Shikoni këtë lidhje më poshtë për më shumë detaje:

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

Fatkeqësisht, në versionin e fundit të disponueshëm të zinxhirit të veglave esp-idf (3.0), zgjimet e vetme në dispozicion janë nga kohëmatësit dhe nga ndërprerjet e GPIO-ve. Për fat të mirë, Espressif na premton BLE të zgjohemi në versionin tjetër (3.1).

Ju gjithashtu mund ta vendosni CC1101 në modalitetin e fjetjes, duke dërguar në SPI komandën e duhur për të fikur pajisjen (shihni fletën e të dhënave cc1101, komanda SPWD, faqe 51). Për ta vendosur pajisjen në modalitetin e fjetjes ose për ta zgjuar atë, mund të vendosni të ulët pastaj të lartë kunjin e zgjedhjes së çipit të kunjave SPI (më shumë informacion në fletën e të dhënave).

Këto konfigurime të fundit duhet të jenë në gjendje të bëjnë që konsumi i sistemit të kalojë nën mili-amper…

Së fundi, për ta bërë sistemin të zgjasë sa më gjatë që të jetë e mundur pa rimbushur, apo edhe për të arritur një muaj autonomi, zgjidhni baterinë 3.7V me më shumë mili-amper në orë. Duke matur konsumin e energjisë të sistemit tuaj, me shfaqjen e një gjeneratori ose një ammetri të lidhur në seri para polit tuaj + të sistemit tuaj, ju mund të vlerësoni kohën që sistemi juaj do të zgjasë!

Recommended: