Mündəricat:

Qaraj qapınızı sındırın: 5 addım
Qaraj qapınızı sındırın: 5 addım

Video: Qaraj qapınızı sındırın: 5 addım

Video: Qaraj qapınızı sındırın: 5 addım
Video: Meyxana məclisi beləmi olur? #trend #meyxana 2024, Iyul
Anonim
Qaraj Qapınızı Hack edin
Qaraj Qapınızı Hack edin
Qaraj Qapınızı Hack edin
Qaraj Qapınızı Hack edin
Qaraj Qapınızı Hack Edin
Qaraj Qapınızı Hack Edin

Yalnız bir telefon tətbiqi ilə evə getməyi və ya tramvayları dinləyib kopyalaymağı kim xəyal etməyib? Anladıqlarımı və necə getdiyimi sizinlə bölüşməkdən xoşbəxtəm. İkinci dəfə açarlarımı unutduqdan sonra bu layihəyə başladım …

Əlbəttə ki, kodlaşdırma, modulyasiya növü, daşıyıcının tezliyi, bluetooth bağlantısı məlumatları və nümunədə göstərəcəyim məlumatlar orijinal deyil, ziyarətçilərin olmamasını üstün tuturam;-).

Bu proqram rəqəmsal məlumatları elektromaqnit dalğaları ilə ala bilən hər hansı bir obyektə aiddir (qaraj qapısı, avtomobil, bəzi panjurlar …). Bütün sistem bir telefona bluetooth ilə bağlı bir obyektdən ibarətdir və bu obyekt, hack etmək istədiyimiz şeylə əlaqəli uzaqdan idarəetmə ilə eyni çərçivələri göndərə bilir. Bu obyekti qarajımda yerləşdirdim və kənardan ona qoşula bilərəm.

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

İstifadə olunan dillər: C ++, MATLAB, Typescript, C, html.

Rəqəmsal elektronika və telekommunikasiya/siqnal emalı üzrə əsas biliklər.

Qiymət: 35 dollardan azdır.

Avadanlıq tələbləri:

- NooELEC NESDR: məlumatları ələ keçirmək üçün. Bu çox ucuz modul rəqəmsal demodulyasiyanı yerinə yetirir, buna görə də yüksək daşınma qabiliyyətinə malikdir. Bu model MATLAB ilə uyğundur. (18.95 dollar)

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

- Wemos Lolin32 lite: bu esp32 Wifi və Bluetooth ilə təchiz edilmiş ucuz bir mikro nəzarətçidir. Bu tətbiqdə Wifi istifadə etməyəcəyik, ancaq bu çox güman ki, mümkündür. (4.74 dollar)

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

- CDSENET cc1101: bu radio ötürücü bizə seçilmiş daşıyıcı tezliyindən modulyasiya tipinə qədər həddindən artıq rahatlıq verir. (2.63 dollar)

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

- Tellər, başlıqlar, qaynaq avadanlığı, muxtariyyət üçün 3.7V lipo batareyası, ehtimal ki osiloskop və/və ya debug üçün məntiq analizatoru və təsadüfən bir smartfon …

Proqram tələbləri:

- MATLAB/Simulink: məlumatları ələ keçirmək üçün. Verilənlərin vizuallaşdırılması üçün Audacity kimi digər pulsuz alternativ proqramlardan da istifadə edilə bilər. (lisenziya)

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

- esp-idf alət zənciri: bu esp32 proqramlaşdırmaq üçün istifadə olunacaq. Arduino ideyası da istifadə edilə bilər, amma istifadə edəcəyimiz qədər azadlığa imkan vermir. (pulsuz)

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

- TI SmartRF Studio: bu, spesifikasiyalarımıza uyğun olaraq cc1101 qeydlərini konfiqurasiya etməyimizə kömək edəcək. (pulsuz)

www.ti.com/tool/SMARTRFTM-STUDIO

- İonik: tətbiqi qurmaq üçün. Yerli tətbiqlər qurma seçimini edə bilərsiniz, ancaq Ionic, tətbiqimizi həm Android, həm də IOS cihazlarında yalnız bir kodla işləməyimizə imkan verir. Tamaşa bizim vəziyyətimizdə axtarıla bilməz. (pulsuz)

ionicframework.com/

- Ən sevdiyin ideya …

Addım 2: Uzaqdan İdarəetmə sisteminə casusluq

Uzaqdan İdarəetmə casusluğu
Uzaqdan İdarəetmə casusluğu
Uzaqdan Nəzarətə casusluq
Uzaqdan Nəzarətə casusluq
Uzaqdan Nəzarətə casusluq
Uzaqdan Nəzarətə casusluq

Uzaqdan idarəetmə əmrlərinin istehsal etdiyi məlumatları müşahidə edərək başlayacağıq. Bunu etmək üçün bir rtl-sdr dongle və anten istifadə edəcəyik:

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

Bu linki izləyərək, MATLAB paketini və bütün izahları izah edən pulsuz bir kitabı tapa bilərsiniz. Bizi narahat edənləri ümumiləşdirmək üçün tranzit məlumatları IQ siqnalı formasındadır: "Q" dördlük məlumatları ilə birlikdə "I" fazalı məlumatlar. Bu üsul telekommunikasiyanı asanlaşdırır. Siqnalın yalnız mərhələdə alınması ilə maraqlanacağıq. İndi fiziki və rəqəmsal məlumatları uzaqdan idarəetmə vasitəsi ilə toplayacağıq, bunun üzərində bəzi sənədlər tapa bilsəniz, daha asan olacaq. Heç birini tapmadım. Siqnalı müvəqqəti olaraq müşahidə etmək üçün əvvəlcə yayılan siqnalın tezlik daşıyıcısının nə olduğunu bilməliyik. "RTL-SDR Radio ilə Spektral Analiz" paket sənədləri ilə verilən nümunəni istifadə edərək, bir əmr göndərərkən hansı tezlikdə pik güc müşahidə etdiyimizi dəqiq biləcəyik. Mənim vəziyyətimdə 868.22 MHz -dir. Bu cür tətbiqlər üçün "standart" tezliklər 868 MHz civarındadır.

Bu göstəricilərlə məlumatları bərpa etmək üçün MATLAB kodu yaza biləcəyik. Nəticə modulyasiya növünü tapmağa imkan verir: xam məlumatları əldə etməklə, siqnalın əsl hissəsini bərpa etdikdən sonra nəticəni göstərməklə bunun bir ASK / OOK olduğunu başa düşə bilərik. modulyasiya. Həqiqətən, tezliyin dəyişməz olduğunu müşahidə edirik, lakin siqnalın yalnız iki amplitudu var: sıfır və sabit. Kodun qalan hissəsi, siqnalı bilmək üçün oxumağı asanlaşdıran alınan siqnalın zərfini bərpa etməyə imkan verir. Göstərildikdən sonra, əsas bant modulyasiyasını təyin edə bilərik: bu Manchester kodlaşdırmasıdır (əlavə olunmuş fotoya baxın). Baud sürətini (saniyədə simvollar) da çıxara bilərik. Bütün bu məlumatlar toplandıqda, məlumat çərçivəsini bilə bilərik. Mənim vəziyyətimdə tapılan baytlar: 249, 39, 75, 178, 45, 200 və əmrin yaxşı alınmasını təmin etmək üçün dəfələrlə təkrar edilmişdir. Xoşbəxtlikdən, kod yuvarlanmır, məlumat çərçivəsi həmişə eynidir.

Addım 3: Eyni Məlumat Çərçivələrini göndərin

Eyni Məlumat Çərçivələrini göndərin
Eyni Məlumat Çərçivələrini göndərin
Eyni Məlumat Çərçivələrini göndərin
Eyni Məlumat Çərçivələrini göndərin
Eyni Məlumat Çərçivələrini göndərin
Eyni Məlumat Çərçivələrini göndərin

Texas Instruments cc1101 o qədər çevikdir ki, əvvəlki addımda tapdığınız parametrlər mənimkindən tamamilə fərqli olsa belə, məqsədinizə çatacaqsınız. Həqiqətən, sənədlərdə, səhifə 2 -də (https://www.ti.com/lit/ds/symlink/cc1101.pdf) NRZ, Manchester, FSK, ASK/OOK modulyasiyasını yerinə yetirməyə imkan verdiyini görəcəksiniz. 433 MHz və ya 868 MHz ətrafında olan tezliklər və bir çox başqa şeylər. Bu modulla tanış olmaq üçün sənədləri oxumağı məsləhət görürəm.

Bu bağlantıda Loborisin bu moduldan istifadə edərək funksiyaların qurulması ilə bağlı işlərini nümunə olaraq tapa bilərsiniz:

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

Esp32 kodumuzu esp-idf alət zənciri ilə yazacağıq (ilk addımın bağlantılarına baxın). Əlaqənin fayllarını layihənizin komponentlər alt qovluğuna əlavə edə bilərsiniz. CC1101 -ni düzgün bir şəkildə konfiqurasiya etmək üçün qeydlərini düzəltməliyik. Texas Instruments bizə konfiqurasiyamıza uyğun olaraq qeydlərin dəyərini verən proqram təmin edir: SmartRF Studio.

Mənimlə əlaqədar olaraq, proqram təminatçısına Manchester kodlaşdırmasını istədiyimi, daşıyıcı tezliyimin 868.22 MHz olduğunu, modulyasiya növümün ASK / OOK olduğunu bildirirəm … Parametrlərinizi daxil etməyinizə icazə verirəm. Əsas bant kodlamanızın mövcud olmadığı halda, ötürmə sürətini düzgün şəkildə artıraraq və məlumatları uyğunlaşdıraraq NRZ kodlaşdırmasını nəzərdən keçirə bilərsiniz.

Dəyərlərinizi təyin etdikdən sonra modulun istifadəsi ilə bağlı bir neçə seçiminiz var: hər şeyi daha konfiqurasiya etmək üçün sizə əlaqələndirdiyim funksiyalardan və ya etdiyim işlərdən istifadə edə bilərsiniz, yalnız bu koddan ilham ala bilərsiniz. qəddar bir şəkildə (əlavə olunan fotoşəkillərə baxın) və yalnız ehtiyacımız olanı istifadə edin.

Cc1101 çipi SPI ilə ünsiyyət qurduqda, nümunə kodunun bağlantısında SPI -dən istifadə etmək üçün yalnız alət zənciri ilə istifadə etməyinizdən daha asan funksiyaları ehtiva edən "spi_master_lobo.h" başlıq faylını tapa bilərsiniz. CC1101 məlumat cədvəlinin 30 -cu səhifəsindən alınan SPI -də CC1101 ünsiyyət sxemini fotoşəkildə sizə əlavə edirəm. Təqdim olunan dörd tel: CS (Chip Select və ya SS: Slave Select və ya burada CSn), CLK (və ya SCLK, Master tərəfindən verilən Saat), MISO (və ya SO, Master In Slave Out) və MOSI (və ya SI, Master Out Slave In). Bizim vəziyyətimizdə usta ESP32, qul isə CC1101 -dir. Ünsiyyət ümumiyyətlə CS pin aşağı olduqda başlayır.

Menyu konfiqurasiyasının tərtibçi seçimlərində tərtib etmək üçün C ++ istisnalarını aktiv etməyi unutmayın.

Addım 4: Sistemə qoşulun

Sistemə qoşulun
Sistemə qoşulun
Sistemə qoşulun
Sistemə qoşulun
Sistemə qoşulun
Sistemə qoşulun

Kodunuz işləyirsə, əsas şeyi etdiniz. Bu hissədə, sistemə bağlı bir telefon tətbiqinin necə yaradılacağına diqqət yetirəcəyik. Ən maraqlı həll yolu bluetooth vasitəsilə qoşulmaqdır, çünki bu, aşağı güclü protokoldan istifadə etməyə imkan verir: Bluetooth Low Energy (BLE). İerarxiya profili əlavə edilmiş rəsmdə göstərilmişdir: bir Xidmətin Xarakteristikasında əmri oxuyub yazacağıq. Əlbəttə ki, esp32 və smartfonumuz bluetooth ilə təchiz edilmişdir.

Bu addım iki hissəyə bölünür: esp32 hissəsi və tətbiq hissəsi. Əlavə edilmiş fotoşəkil kodların əsas hissələrini göstərir və izah edir.

UUID -lərinizi bu linkə daxil olaraq yarada bilərsiniz:

www.uuidgenerator.net/

Bunlar BLE profilimizin xidmətlərinə və xüsusiyyətlərinə çıxış təmin edəcək identifikatorlardır.

Esp32 BLE kodu haqqında, Kolban bütün bu yüksək səviyyəli C ++ funksiyalarını uyğunlaşdırmaq üçün əla bir iş gördü:

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

Bu faylları komponentlər alt qovluğuna qoya bilərsiniz. Əks təqdirdə, BLE-ni esp-idf alət zənciri ilə necə istifadə edəcəyinizi başa düşmək üçün daha çox vaxta ehtiyacınız olacaq.

Kodda gördüklərinizin xülasəsi olaraq, əlaqəli UUID -lərlə birlikdə bir Server, Xidmət və Xarakterik yaradırıq və əlaqəli bir yazma metodu ilə yenidən təyin edilmiş geri çağırma sinfi əlavə edirik: "O" aldıqda xarakter, cc1101 -ə bir yazma əmri göndəririk.

Əlbəttə ki, Menuconfig -in Komponent konfiqurasiyasında Bluetooth -u aktiv etməyi unutmayın.

Tətbiq hissəsi haqqında Framework Ionic istifadə edəcəyik. Bu barədə daha çox məlumatı ilk addımda təqdim olunan linkdə və BLE -ni İonik ilə necə istifadə edəcəyiniz haqqında daha çox məlumat əldə edə bilərsiniz:

ionicframework.com/docs/native/ble/

Don tərəfindən yazılmış nümunələr:

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

Məsələn "Bağla" nümunəsini düzəldə bilərsiniz. Cihazları birinci səhifədə tararıq və cihazımızı seçsək ikinci bir səhifəyə çatarıq. Daha sonra fotoşəkildə təqdim olunan üsulla bir düyməni əlavə edə biləcəyiniz bir interfeysə daxil oluruq: "U" əmrimizi müvafiq UUID ilə göndərir. İlk səhifənin konstruktoruna tətbiqin əvvəlində bluetooth aktivləşdirilməsini istəyərək "aktivləşdir" üsulu da əlavə edə bilərsiniz.

Tətbiqinizi inkişaf etdirmək üçün Ionic veb saytını araşdırmağı və bütün Komponentləri (düymələr, siqnallar, onay qutuları …) kəşf etməyi çox tövsiyə edirəm:

ionicframework.com/docs/components/#overvi…

Addım 5: Enerji istehlakını optimallaşdırın

Enerji istehlakını optimallaşdırın
Enerji istehlakını optimallaşdırın
Enerji istehlakını optimallaşdırın
Enerji istehlakını optimallaşdırın

Aşağı istehlak üzərində işləməyə başladıq, buna görə də çalışaq.

Esp-idf alət zənciri, menuconfig bir konfiqurasiya GUI istifadə etməyə imkan verir: bir çox parametr esp32 istehlakını azalda bilər. Əvvəla, Wifi -yə ehtiyacımız olmadığı üçün Komponent konfiqurasiyasında onu deaktiv edə bilərik. Eyni qovluqda, FreeRTOS-da "FreeRTOS-u yalnız ilk nüvədə işlədin. Sonra ESP-ə uyğun olaraq CPU tezliyini 80 MHz-ə endirə bilərsiniz. Bütün funksiyalar hələ də bu saat sürətində işləyir. Nəhayət edə bilərsiniz. "Ultra Aşağı Güc (ULP) İşlemcisini Aktivləşdirin. Bu konfiqurasiya cari istehlakı təxminən yüz mA -dan təxminən otuz mA -a qədər artırır. Bu hələ çoxdur…

ESP32 dərin yuxunu idarə edə bilir. Yalnız aşağı enerjili nüvə işləyir və oyanışı gözləyir.

Daha ətraflı məlumat üçün aşağıdakı linkə baxın:

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

Təəssüf ki, esp-idf alət zəncirinin (3.0) son mövcud versiyasında, yalnız oyananlar taymerlər və GPIO-ların pozulmasıdır. Xoşbəxtlikdən, Espressif bizə növbəti versiyada BLE oyanacağını vəd edir (3.1).

Cihazı söndürmək üçün SPI -də müvafiq əmri göndərərək CC1101 -i yuxu rejiminə də qoya bilərsiniz (cc1101 məlumat cədvəlinə, SPWD əmrinə, səhifə 51). Cihazı yuxu rejiminə qoymaq və ya oyatmaq üçün SPI sancaqlarının Chip Select pinini aşağı və sonra yuxarı qoya bilərsiniz (məlumat cədvəlində daha çox məlumat).

Bu son konfiqurasiyalar, sistemin istehlakının milli amperdən aşağı keçməsini təmin etməlidir …

Nəhayət, sistemi şarj etmədən mümkün qədər uzun müddət davam etdirmək və ya hətta bir aylıq muxtariyyətə çatmaq üçün saatda ən çox milli amper olan 3.7V batareyanı seçin. Sisteminizin enerji istehlakını ölçərək, sisteminizin + dirəyindən əvvəl ardıcıl olaraq bağlanan bir generatorun və ya ampermetrin göstərilməsi ilə sisteminizin nə qədər davam edəcəyini təxmin edə bilərsiniz!

Tövsiyə: