Isi kandungan:

Hack Pintu Garaj Anda: 5 Langkah
Hack Pintu Garaj Anda: 5 Langkah

Video: Hack Pintu Garaj Anda: 5 Langkah

Video: Hack Pintu Garaj Anda: 5 Langkah
Video: Garage Door Opener Hack! 2024, Julai
Anonim
Hack Pintu Garaj Anda
Hack Pintu Garaj Anda
Hack Pintu Garaj Anda
Hack Pintu Garaj Anda
Hack Pintu Garaj Anda
Hack Pintu Garaj Anda

Siapa yang tidak pernah bermimpi pulang hanya dengan aplikasi telefon, atau dapat mendengar dan menyalin semula tram data? Saya gembira dapat berkongsi dengan anda apa yang saya sedar, dan bagaimana saya meneruskannya. Saya memulakan projek ini setelah kali kedua saya lupa kunci saya …

Sudah tentu, pengekodan, jenis modulasi, kekerapan pembawa, maklumat sambungan bluetooth, dan data yang akan saya tunjukkan misalnya bukan yang asli, saya lebih suka tidak mempunyai pelawat;-).

Aplikasi ini berlaku untuk objek yang mampu menerima maklumat digital dengan gelombang elektromagnetik (pintu garaj, kereta, beberapa penutup …). Keseluruhan sistem terdiri dari objek yang disambungkan oleh bluetooth ke telefon, objek ini dapat mengirim bingkai yang sama dengan alat kawalan jauh yang terkait dengan apa yang ingin kita hack. Saya meletakkan objek ini di garaj saya, dan saya boleh menyambungnya dari luar.

Langkah 1: Peralatan

Peralatan
Peralatan
Peralatan
Peralatan

Bahasa yang digunakan: C ++, MATLAB, Typescript, C, html.

Pengetahuan asas dalam elektronik digital dan telekomunikasi / pemprosesan isyarat.

Kos: kurang daripada $ 35.

Keperluan perkakasan:

- NooELEC NESDR: untuk menangkap data. Modul yang sangat murah ini melakukan demodulasi digital, oleh itu mudah dibawa. Model ini sesuai dengan MATLAB. ($ 18.95)

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

- Wemos Lolin32 lite: esp32 ini adalah mikrokontroler murah, dilengkapi dengan Wifi dan Bluetooth. Kami tidak akan menggunakan Wifi dalam aplikasi ini, tetapi ini sebahagian besarnya dapat dibayangkan. ($ 4.74)

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

- CDSENET cc1101: pemancar radio ini memberi kita fleksibiliti yang luar biasa, dari frekuensi pembawa yang dipilih hingga jenis modulasi. ($ 2.63)

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

- Wayar, header, peralatan kimpalan, bateri lipo 3.7V untuk autonomi, kemungkinan osiloskop, dan / atau penganalisis logik untuk debug, dan secara tidak sengaja, telefon pintar…

Keperluan perisian:

- MATLAB / Simulink: untuk menangkap data. Perisian perisian alternatif lain boleh digunakan, seperti Audacity untuk visualisasi data. (lesen)

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

- rantai alat esp-idf: ini akan digunakan untuk pengaturcaraan esp32. Ide Arduino juga dapat digunakan, tetapi tidak membenarkan kebebasan sebanyak yang akan kita gunakan. (percuma)

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

- TI SmartRF Studio: ini akan membantu kami mengkonfigurasi daftar cc1101, mengikut spesifikasi kami. (percuma)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: untuk membina aplikasi. Anda boleh membuat pilihan untuk membuat aplikasi asli, tetapi Ionic membolehkan kami menjalankan aplikasi kami pada kedua-dua peranti Android dan IOS, dengan satu-satunya kod. Prestasi tidak dicari dalam kes kita. (percuma)

ionicframework.com/

- Idea kegemaran anda …

Langkah 2: Mengintip Alat Kawalan Jauh

Mengintip Alat Kawalan Jauh
Mengintip Alat Kawalan Jauh
Mengintip Alat Kawalan Jauh
Mengintip Alat Kawalan Jauh
Mengintip Alat Kawalan Jauh
Mengintip Alat Kawalan Jauh

Kami akan memulakan dengan memerhatikan data yang dihasilkan oleh arahan dari alat kawalan jauh. Untuk melakukan ini, kami akan menggunakan rtl-sdr dongle dan antena:

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

Dengan mengikuti pautan ini, anda akan menemui pakej MATLAB, dan juga buku percuma yang menerangkan semua prisip dengan penjelasan mereka. Untuk meringkaskan apa yang menjadi perhatian kami, data transit berupa isyarat IQ: data dalam fasa "I", digabungkan dengan data kuadratur "Q". Kaedah ini memudahkan telekomunikasi. Kami hanya akan berminat untuk menerima isyarat secara berperingkat. Kami sekarang akan mengumpulkan maklumat fizikal dan digital pada alat kawalan jauh. Sekiranya anda dapat menemui beberapa dokumentasi di atasnya, itu akan lebih mudah. Saya tidak menjumpai apa-apa. Untuk dapat memerhatikan isyarat secara sementara, kita mesti terlebih dahulu mengetahui apakah pembawa frekuensi isyarat yang dipancarkan. Kami akan menggunakan contoh yang disediakan dengan dokumentasi paket "Analisis Spektral dengan Radio RTL-SDR", untuk mengetahui dengan tepat pada frekuensi mana kita melihat daya puncak ketika kita mengirim perintah. Dalam kes saya, ia adalah 868,22 MHz. Frekuensi "standard" untuk aplikasi seperti ini adalah sekitar 868 MHz.

Dengan petunjuk ini, kita akan dapat menulis kod MATLAB untuk memulihkan data. Yang ini dilampirkan dalam foto dan dikomentari. Hasilnya membolehkan kita mencari jenis modulasi: dengan mengambil maklumat mentah, memaparkan hasilnya setelah mendapatkan semula bahagian sebenar isyarat, kita dapat menyimpulkan bahawa ia adalah ASK / OOK modulasi. Memang, kita perhatikan bahawa frekuensi tidak berubah, bagaimanapun, isyaratnya hanya mempunyai dua amplitud: nol, dan tetap. Selebihnya kod membolehkan kita mendapatkan semula sampul isyarat yang diterima, yang lebih mudah dibaca untuk mengetahui trame. Setelah dipaparkan, kita dapat menentukan modulasi baseband: ini adalah pengekodan Manchester (lihat foto yang dilampirkan). Kita juga dapat menyimpulkan kadar baud (simbol per saat). Semua maklumat ini dikumpulkan, kita dapat mengetahui kerangka data. Dalam kes saya, bait yang dijumpai adalah: 249, 39, 75, 178, 45, 200, dan diulang berulang kali, untuk memastikan bahawa perintah itu diterima dengan baik. Nasib baik, kodnya tidak bergulir, kerangka data selalu sama.

Langkah 3: Hantar Bingkai Data yang Sama

Hantar Bingkai Data yang Sama
Hantar Bingkai Data yang Sama
Hantar Bingkai Data yang Sama
Hantar Bingkai Data yang Sama
Hantar Bingkai Data yang Sama
Hantar Bingkai Data yang Sama

Texas Instruments cc1101 sangat fleksibel sehingga anda tetap dapat mencapai matlamat anda, walaupun tetapan yang anda temukan pada langkah sebelumnya sama sekali berbeza dengan yang saya miliki. Memang, anda akan melihat dalam dokumentasi, halaman 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) bahawa ia memungkinkan untuk melakukan modulasi NRZ, Manchester, FSK, ASK / OOK, untuk mencapai frekuensi sekitar 433 MHz atau 868 MHz, dan banyak perkara lain. Saya menasihati anda untuk membaca dokumentasi untuk membiasakan diri dengan modul ini.

Pada pautan ini, anda akan dapati sebagai contoh karya Loboris mengenai pembinaan fungsi menggunakan modul ini:

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

Kami akan menulis kod untuk esp32 kami dengan rantai alat esp-idf (lihat pautan langkah pertama). Anda boleh menambah fail pautan di subdirektori komponen projek anda. Untuk mengkonfigurasi cc1101 kita dengan betul, kita perlu memperbaiki daftarnya. Texas Instruments memberi kami perisian yang memberi kami nilai daftar mengikut konfigurasi kami: SmartRF Studio.

Mengenai saya, saya menunjukkan kepada perisian yang saya mahukan pengekodan Manchester, bahawa frekuensi pembawa saya adalah 868.22 MHz, bahawa jenis modulasi saya adalah ASK / OOK … Saya membiarkan anda memasukkan parameter anda. Sekiranya pengekodan baseband anda tidak tersedia, anda boleh mempertimbangkan pengekodan NRZ, dengan meningkatkan kadar baud dengan betul, dan menyesuaikan data.

Setelah anda menentukan nilai anda, anda mempunyai beberapa pilihan mengenai penggunaan modul: anda boleh menggunakan fungsi yang telah saya hubungkan dengan anda, atau apa yang saya lakukan, hanya mengambil inspirasi dari kod ini, untuk mengkonfigurasi semuanya dengan lebih banyak lagi cara yang kejam (lihat gambar yang dilampirkan), dan hanya menggunakan apa yang kami perlukan.

Semasa cip c1101 berkomunikasi dengan SPI, anda akan dapati dalam pautan kod contoh fail pengepala "spi_master_lobo.h", yang mengandungi fungsi yang lebih mudah untuk menggunakan SPI daripada jika anda harus menggunakannya hanya dengan alatan alat. Saya menyertai anda dalam gambar skema komunikasi CC1101 di SPI, gambar yang diambil dari halaman 30 lembar data CC1101. Empat wayar yang disajikan adalah: CS (Chip Select, atau SS: Slave Select, atau di sini CSn), CLK (atau SCLK, Jam, yang disediakan oleh master), MISO (atau SO, Master In Slave Out), dan MOSI (atau SI, Master Out Slave In). Dalam kes kami, tuannya adalah ESP32, dan hamba adalah CC1101. Komunikasi bermula apabila pin CS rendah, secara umum.

Jangan lupa untuk mengaktifkan pilihan penyusun menuuconfig pengecualian C ++ untuk menyusun.

Langkah 4: Sambungkan ke Sistem

Sambungkan ke Sistem
Sambungkan ke Sistem
Sambungkan ke Sistem
Sambungkan ke Sistem
Sambungkan ke Sistem
Sambungkan ke Sistem

Sekiranya kod anda berfungsi, anda telah melakukan yang penting. Pada bahagian ini, kami akan memfokuskan cara membuat aplikasi telefon yang disambungkan ke sistem. Penyelesaian yang paling menarik adalah menghubungkan melalui bluetooth, kerana ia memungkinkan penggunaan protokol kuasa rendah: Bluetooth Low Energy (BLE). Profil hierarki ditunjukkan dalam gambar yang dilampirkan: kami akan membaca dan menulis perintah dalam Karakteristik Perkhidmatan. Dan tentu saja, esp32 dan telefon pintar kami dilengkapi dengan bluetooth.

Langkah ini terbahagi kepada dua bahagian: bahagian esp32, dan bahagian aplikasi. Foto yang dilampirkan menunjukkan dan menerangkan bahagian utama kod.

Anda boleh menghasilkan UUID anda dengan mengikuti pautan ini:

www.uuidgenerator.net/

Ini adalah pengecam yang akan memberikan akses kepada perkhidmatan dan ciri profil BLE kami.

Mengenai kod esp32 BLE, Kolban melakukan kerja yang hebat menjadikan semua fungsi C ++ tahap tinggi ini serasi:

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

Anda boleh meletakkan fail ini di subdirektori komponen. Jika tidak, anda memerlukan lebih banyak masa untuk memahami cara menggunakan BLE dengan rantai alat esp-idf.

Sebagai ringkasan dari apa yang anda akan lihat dalam kod, kami membuat Pelayan, Perkhidmatan, dan Karakteristik, dengan UUID yang berkaitan, dan kami menambah kelas panggilan balik yang ditakrifkan semula, dengan kaedah yang berkaitan semasa menulis: apabila kami menerima "O" watak, kami menghantar arahan tulis ke cc1101.

Sudah tentu, jangan lupa untuk mengaktifkan Bluetooth dalam konfigurasi Komponen Menuconfig.

Mengenai bahagian aplikasi, kami akan menggunakan Framework Ionic. Anda boleh mendapatkan lebih banyak maklumat mengenainya di pautan yang ditunjukkan pada langkah pertama, dan untuk maklumat lebih lanjut mengenai cara menggunakan BLE dengan Ionic:

ionicframework.com/docs/native/ble/

Dan contoh, yang ditulis oleh don:

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

Anda dapat mengedit misalnya "Sambungkan". Kami mengimbas peranti di halaman pertama, dan mencapai halaman kedua jika kami memilih peranti kami. Kami kemudian mengakses antara muka di mana anda dapat menambahkan butang dengan kaedah yang ditunjukkan dalam foto: ia mengirimkan perintah kami "O" dengan UUID yang sesuai. Anda juga dapat menambahkan pada konstruktor halaman pertama kaedah "aktifkan", meminta untuk mengaktifkan bluetooth pada permulaan aplikasi.

Saya sangat mengesyorkan anda untuk menjelajahi laman web Ionic, dan menemui semua Komponen (butang, amaran, kotak centang…) untuk meningkatkan aplikasi anda:

ionicframework.com/docs/components/#overvi…

Langkah 5: Optimumkan Penggunaan Kuasa

Optimumkan Penggunaan Kuasa
Optimumkan Penggunaan Kuasa
Optimumkan Penggunaan Kuasa
Optimumkan Penggunaan Kuasa

Kami mula mengusahakan penggunaan yang rendah, jadi mari kita selesaikan.

Rantai alat esp-idf memungkinkan kita menggunakan konfigurasi GUI, menuconfig: banyak parameter dapat menurunkan penggunaan esp32. Pertama sekali, kerana kami tidak memerlukan Wifi, kami dapat mematikannya dalam konfigurasi Komponen. Dalam folder yang sama, di FreeRTOS, anda boleh memilih "Jalankan FreeRTOS hanya pada teras pertama. Kemudian, dalam ESP khusus, anda dapat menurunkan frekuensi CPU hingga 80 MHz. Semua fungsi masih berfungsi pada kelajuan jam ini. Akhirnya, anda boleh tandakan "Aktifkan Coprocessor Ultra Low Power (ULP). Konfigurasi ini menjadikan penggunaan semasa meningkat dari sekitar seratus mA hingga sekitar tiga puluh mA. Ini masih terlalu banyak …

ESP32 dapat mengatasi tidur nyenyak. Hanya teras tenaga rendah yang dihidupkan dan menunggu untuk bangun.

Lihat pautan ini di bawah untuk maklumat lebih lanjut:

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

Malangnya, dalam versi terakhir rantai alat esp-idf (3.0), satu-satunya bangun yang tersedia adalah dengan pemasa dan gangguan GPIO. Nasib baik, Espressif menjanjikan kami BLE bangun pada versi seterusnya (3.1).

Anda juga dapat memasukkan CC1101 dalam mod tidur, dengan mengirimkan SPI perintah yang tepat untuk mematikan perangkat (lihat lembar data cc1101, perintah SPWD, halaman 51). Untuk meletakkan peranti dalam mod tidur atau untuk membangunkannya, anda mungkin meletakkan pin Chip Select yang rendah dan tinggi dari pin SPI (lebih banyak maklumat dalam lembar data).

Konfigurasi terakhir ini seharusnya dapat menjadikan penggunaan sistem melebihi tahap milli-ampere…

Akhirnya, untuk menjadikan sistem ini bertahan selama mungkin tanpa mengecas semula, atau bahkan mencapai satu bulan autonomi, pilih bateri 3.7V dengan mili-ampere paling banyak per jam. Dengan mengukur penggunaan kuasa sistem anda, dengan paparan generator atau ammeter dihubungkan secara bersiri sebelum + tiang sistem anda, anda dapat menganggarkan masa sistem anda akan bertahan!

Disyorkan: