Daftar Isi:
- Langkah 1: Peralatan
- Langkah 2: Memata-matai Remote Control
- Langkah 3: Kirim Bingkai Data yang Sama
- Langkah 4: Hubungkan ke Sistem
- Langkah 5: Optimalkan Konsumsi Daya
Video: Retas Pintu Garasi Anda: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Siapa yang tidak pernah bermimpi untuk pulang hanya dengan aplikasi telepon, atau dapat mendengarkan dan menyalin trem data? Saya senang dapat berbagi dengan Anda apa yang saya sadari, dan bagaimana saya melanjutkan. Saya memulai proyek ini setelah kedua kalinya saya lupa kunci saya…
Tentu saja, pengkodean, jenis modulasi, frekuensi pembawa, informasi koneksi bluetooth, dan data yang akan saya tunjukkan pada contoh bukan yang asli, saya lebih suka tidak memiliki pengunjung;-).
Aplikasi ini berlaku untuk objek apa pun yang mampu menerima informasi digital melalui gelombang elektromagnetik (pintu garasi, mobil, beberapa daun jendela …). Seluruh sistem terdiri dari objek yang terhubung oleh bluetooth ke telepon, objek ini dapat mengirim bingkai yang sama dengan remote yang terkait dengan apa yang ingin kita retas. Saya menempatkan objek ini di garasi saya, dan saya dapat menghubungkannya dari luar.
Langkah 1: Peralatan
Bahasa yang digunakan: C++, MATLAB, TypeScript, C, html.
Pengetahuan dasar dalam elektronika digital dan telekomunikasi/pemrosesan sinyal.
Biaya: kurang dari $35.
Persyaratan perangkat keras:
- NooELEC NESDR: untuk menangkap data. Modul yang sangat murah ini melakukan demodulasi digital, sehingga portabilitasnya tinggi. Model ini kompatibel dengan MATLAB. ($18,95)
www.nooelec.com/store/sdr/sdr-receivers/nes…
- Wemos Lolin32 lite: esp32 ini merupakan mikrokontroler murah, dilengkapi Wifi dan Bluetooth. Kami tidak akan menggunakan Wifi dalam aplikasi ini, tetapi ini sebagian besar dapat dibayangkan. ($4.74)
wiki.wemos.cc/products:lolin32:lolin32_lit…
- CDSENET cc1101: pemancar radio ini memberi kita fleksibilitas yang ekstrem, dari frekuensi pembawa yang dipilih hingga jenis modulasi. ($2,63)
www.aliexpress.com/item/2PC-Lot-E07-868MS1…
- Kabel, header, peralatan las, baterai lipo 3.7V untuk otonomi, mungkin osiloskop, dan/atau penganalisis logika untuk debug, dan kebetulan, smartphone…
Persyaratan perangkat lunak:
- MATLAB/Simulink: untuk menangkap data. Perangkat lunak alternatif gratis lainnya dapat digunakan, seperti Audacity untuk visualisasi data. (lisensi)
fr.mathworks.com/products.html?s_tid=gn_ps
- esp-idf toolchain: ini akan digunakan untuk memprogram esp32. Ide Arduino juga dapat digunakan, tetapi tidak memberikan kebebasan sebanyak yang akan kita gunakan. (Gratis)
esp-idf.readthedocs.io/en/latest/get-starte…
- TI SmartRF Studio: ini akan membantu kami mengonfigurasi register cc1101, sesuai dengan spesifikasi kami. (Gratis)
www.ti.com/tool/SMARTRFTM-STUDIO
- Ionic: untuk membangun aplikasi. Anda dapat membuat pilihan untuk membangun aplikasi asli, tetapi Ionic memungkinkan kami untuk menjalankan aplikasi kami di perangkat Android dan iOS, dengan satu-satunya kode. Kinerja tidak dicari dalam kasus kami. (Gratis)
ionicframework.com/
- Ide favorit Anda…
Langkah 2: Memata-matai Remote Control
Kita akan mulai dengan mengamati data yang dihasilkan oleh perintah remote control. Untuk melakukan ini, kita akan menggunakan dongle dan antena rtl-sdr:
fr.mathworks.com/hardware-support/rtl-sdr….
Dengan mengikuti tautan ini, Anda akan menemukan paket MATLAB, serta buku gratis yang menjelaskan semua harga dengan penjelasannya. Untuk meringkas apa yang menjadi perhatian kami, data transit dalam bentuk sinyal IQ: data fase "I", dikombinasikan dengan data kuadratur "Q". Metode ini memudahkan telekomunikasi. Kami hanya akan tertarik untuk menerima sinyal dalam fase. Kami sekarang akan mengumpulkan informasi fisik dan digital pada remote control. Jika Anda dapat menemukan beberapa dokumentasi di dalamnya, itu akan lebih mudah. Saya tidak menemukan apapun. Untuk dapat mengamati sinyal secara temporal, pertama-tama kita harus mengetahui apa pembawa frekuensi dari sinyal yang dipancarkan. Kami akan menggunakan contoh yang disertakan dengan dokumentasi paket "Analisis Spektral dengan Radio RTL-SDR", untuk mengetahui dengan tepat pada frekuensi mana kami mengamati daya puncak saat kami mengirim perintah. Dalam kasus saya ini adalah 868,22 MHz. Frekuensi "standar" untuk jenis aplikasi ini sekitar 868 MHz.
Dengan indikasi ini, kita akan dapat menulis kode MATLAB untuk memulihkan data. Yang ini terlampir di foto dan dikomentari. Hasilnya memungkinkan kita menemukan jenis modulasi: dengan mengambil informasi mentah, menampilkan hasilnya setelah memulihkan bagian sebenarnya dari sinyal, kita dapat menyimpulkan bahwa itu adalah ASK / OOK modulasi. Memang, kami mengamati bahwa frekuensinya tidak berubah, namun, sinyal hanya memiliki dua amplitudo: nol, dan tetap. Sisa kode memungkinkan kita untuk memulihkan amplop sinyal yang diterima, menjadi lebih mudah dibaca untuk mengetahui trame. Setelah ditampilkan, kita dapat menentukan modulasi baseband: ini adalah pengkodean Manchester (lihat foto terlampir). Kami juga dapat menyimpulkan baud rate (simbol per detik). Semua informasi ini dikumpulkan, kita dapat mengetahui kerangka data. Dalam kasus saya, byte yang ditemukan adalah: 249, 39, 75, 178, 45, 200, dan diulang beberapa kali, untuk memastikan bahwa perintah diterima dengan baik. Untungnya, kodenya tidak bergulir, kerangka datanya selalu sama.
Langkah 3: Kirim Bingkai Data yang Sama
Texas Instruments cc1101 sangat fleksibel sehingga Anda tetap akan mencapai tujuan Anda, bahkan jika pengaturan yang Anda temukan di langkah sebelumnya benar-benar berbeda dari pengaturan saya. Memang, Anda akan melihat dalam dokumentasi, halaman 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) yang memungkinkan untuk melakukan NRZ, Manchester, FSK, ASK / OOK modulasi, untuk mencapai frekuensi sekitar 433 MHz atau 868 MHz, dan banyak hal lainnya. Saya menyarankan Anda untuk membaca dokumentasi untuk membiasakan diri dengan modul ini.
Pada tautan ini Anda akan menemukan contoh pekerjaan Loboris tentang konstruksi fungsi menggunakan modul ini:
github.com/loboris/ESP32_CC1101/tree/maste…
Kami akan menulis kode kami untuk esp32 kami dengan esp-idf toolchain (lihat tautan dari langkah pertama). Anda dapat menambahkan file tautan di subdirektori komponen proyek Anda. Untuk mengkonfigurasi cc1101 kita dengan benar, kita perlu memperbaiki registernya. Texas Instruments memberi kami perangkat lunak yang memberi kami nilai register sesuai dengan konfigurasi kami: SmartRF Studio.
Mengenai saya, saya menunjukkan kepada perangkat lunak bahwa saya menginginkan pengkodean Manchester, bahwa frekuensi pembawa saya adalah 868,22 MHz, bahwa jenis modulasi saya adalah ASK / OOK … Saya membiarkan Anda memasukkan parameter Anda. Jika encoding baseband Anda tidak tersedia, Anda dapat mempertimbangkan encoding NRZ, dengan meningkatkan baud rate dengan benar, dan mengadaptasi data.
Setelah Anda menentukan nilai Anda, Anda memiliki beberapa pilihan mengenai penggunaan modul: Anda dapat menggunakan fungsi yang telah saya tautkan kepada Anda, atau apa yang saya lakukan, hanya mengambil inspirasi dari kode ini, untuk mengonfigurasi semuanya dengan cara yang lebih cara brutal (lihat foto terlampir), dan hanya menggunakan apa yang kita butuhkan.
Saat chip cc1101 berkomunikasi dengan SPI, Anda akan menemukan di tautan kode contoh file header "spi_master_lobo.h", yang berisi fungsi yang lebih mudah untuk menggunakan SPI daripada jika Anda harus menggunakannya hanya dengan rantai alat. Saya bergabung dengan Anda di foto skema komunikasi CC1101 di SPI, foto diambil dari halaman 30 lembar data CC1101. Empat kabel yang disajikan adalah: CS (Chip Select, atau SS: Slave Select, atau di sini CSn), CLK (atau SCLK, Jam, disediakan oleh master), MISO (atau SO, Master In Slave Out), dan MOSI (atau SI, Master Out Slave In). Dalam kasus kami, master adalah ESP32, dan slave adalah CC1101. Komunikasi dimulai ketika pin CS rendah, secara umum.
Jangan lupa untuk mengaktifkan di opsi kompiler menuconfig pengecualian C++ untuk kompilasi.
Langkah 4: Hubungkan ke Sistem
Jika kode Anda berfungsi, Anda telah melakukan yang penting. Pada bagian ini, kita akan fokus pada cara membuat aplikasi telepon yang terhubung ke sistem. Solusi paling menarik adalah terhubung dengan bluetooth, karena memungkinkan penggunaan protokol berdaya rendah: Bluetooth Low Energy (BLE). Profil hierarki ditunjukkan pada gambar terlampir: kita akan membaca dan menulis perintah dalam Karakteristik Layanan. Dan tentunya esp32 dan smartphone kita dilengkapi dengan bluetooth.
Langkah ini dibagi menjadi dua bagian: bagian esp32, dan bagian aplikasi. Foto terlampir menunjukkan dan menjelaskan bagian utama dari kode.
Anda dapat membuat UUID Anda dengan mengikuti tautan ini:
www.uuidgenerator.net/
Ini adalah pengidentifikasi yang akan memberikan akses ke layanan dan fitur profil BLE kami.
Tentang kode BLE esp32, Kolban melakukan pekerjaan yang baik untuk membuat semua fungsi C++ tingkat tinggi ini kompatibel:
github.com/nkolban/esp32-snippets/tree/mas…
Anda dapat meletakkan file-file ini di subdirektori komponen. Jika tidak, Anda akan membutuhkan lebih banyak waktu untuk memahami cara menggunakan BLE dengan rantai alat esp-idf.
Singkatnya apa yang akan Anda lihat dalam kode, kami membuat Server, Layanan, dan Karakteristik, dengan UUID terkait, dan kami menambahkan kelas panggilan balik yang didefinisikan ulang, dengan metode terkait saat menulis: ketika kami menerima "O" karakter, kami mengirim perintah tulis ke cc1101.
Tentu saja, jangan lupa untuk mengaktifkan Bluetooth di Component config dari Menuconfig.
Tentang bagian aplikasi, kita akan menggunakan Framework Ionic. Anda dapat menemukan lebih banyak info tentangnya di tautan yang disajikan pada langkah pertama, dan untuk detail lebih lanjut tentang cara menggunakan BLE dengan Ionic:
ionicframework.com/docs/native/ble/
Dan contohnya, ditulis oleh don:
github.com/don/ionic-ble-examples/tree/mas…
Anda dapat mengedit misalnya contoh "Hubungkan". Kami memindai perangkat pada halaman pertama, dan mencapai halaman kedua jika kami memilih perangkat kami. Kami kemudian mengakses antarmuka di mana Anda dapat menambahkan tombol dengan metode yang disajikan dalam foto: ia mengirimkan perintah kami "O" dengan UUID yang sesuai. Anda juga dapat menambahkan di konstruktor halaman pertama metode "aktifkan", meminta untuk mengaktifkan bluetooth di awal aplikasi.
Saya sangat menyarankan Anda untuk menjelajahi situs web Ionic, dan untuk menemukan semua Komponen (tombol, peringatan, kotak centang…) untuk menyempurnakan aplikasi Anda:
ionicframework.com/docs/components/#overvi…
Langkah 5: Optimalkan Konsumsi Daya
Kami mulai bekerja dengan konsumsi rendah, jadi mari kita selesaikan.
Toolchain esp-idf memungkinkan kita untuk menggunakan konfigurasi GUI, menuconfig: banyak parameter dapat menurunkan konsumsi esp32. Pertama-tama, karena kita tidak memerlukan Wifi, kita dapat menonaktifkannya di konfigurasi Komponen. Di folder yang sama, di FreeRTOS, Anda dapat memilih "Jalankan FreeRTOS hanya pada inti pertama. Kemudian, di khusus ESP, Anda dapat menurunkan frekuensi CPU hingga 80 MHz. Semua fungsi masih berfungsi pada kecepatan clock ini. Terakhir, Anda dapat centang "Aktifkan Koprosesor Daya Ultra Rendah (ULP). Konfigurasi ini membuat konsumsi arus berubah dari sekitar seratus mA menjadi sekitar tiga puluh mA. Ini masih terlalu…
ESP32 dapat menangani tidur nyenyak. Hanya inti berenergi rendah yang menyala dan menunggu bangun.
Lihat tautan di bawah ini untuk lebih jelasnya:
esp-idf.readthedocs.io/en/latest/api-refere…
Sayangnya, pada toolchain esp-idf versi terakhir yang tersedia (3.0), satu-satunya wake up yang tersedia adalah oleh timer dan gangguan GPIO. Untungnya, Espressif menjanjikan kita BLE bangun di versi berikutnya (3.1).
Anda juga dapat menempatkan CC1101 dalam mode tidur, dengan mengirimkan SPI perintah yang tepat untuk mematikan perangkat (lihat lembar data cc1101, perintah SPWD, halaman 51). Untuk menempatkan perangkat dalam mode tidur atau untuk membangunkannya, Anda dapat menempatkan pin Pilihan Chip pin SPI rendah lalu tinggi (info lebih lanjut di lembar data).
Konfigurasi terakhir ini harus dapat membuat konsumsi sistem melewati di bawah mili-ampere…
Terakhir, untuk membuat sistem bertahan selama mungkin tanpa pengisian ulang, atau bahkan mencapai satu bulan otonomi, pilih baterai 3.7V dengan mili-ampere per jam paling banyak. Dengan mengukur konsumsi daya sistem Anda, dengan tampilan generator atau ammeter yang dihubungkan secara seri sebelum kutub + sistem Anda, Anda dapat memperkirakan waktu sistem Anda akan bertahan!
Direkomendasikan:
Retas Baterai 12 Volt! Anda Tidak Akan Percaya Mata Anda!!!!! (diperbarui): 7 Langkah
Retas Baterai 12 Volt! Anda Tidak Akan Percaya Mata Anda!!!!! (diperbarui): Terinspirasi oleh instruksi oleh Kipkay, saya pikir saya akan mengambil beberapa baterai saya sendiri dari merek yang berbeda…Dan, nak, saya terkejut
Retas Cahaya Ruang Bel Pintu untuk Gangguan Pendengaran: 7 Langkah (dengan Gambar)
Gangguan Pendengaran Bel Pintu Kamar Light Hack: Masalah: ayah saya terdaftar sebagai tunarungu dan ibu saya tuna rungu dan karena ini mereka sering merasa sulit untuk mendengar bel pintu. Ini bisa menjadi masalah yang dialami oleh banyak orang lain juga. Mereka membeli bel pintu yang berkedip-kedip untuk membantu mereka m
Ubah Bel Pintu Berkabel Anda Menjadi Bel Pintu Cerdas Dengan IFTTT: 8 Langkah
Ubah Bel Pintu Berkabel Anda Menjadi Bel Pintu Cerdas Dengan IFTTT: Bel Pintu WiFi mengubah bel pintu berkabel Anda menjadi bel pintu pintar. https://www.fireflyelectronix.com/product/wifidoor
Ubah Bel Pintu Berkabel Anda Menjadi Bel Pintu Cerdas Dengan Asisten Rumah: 6 Langkah
Ubah Bel Pintu Berkabel Anda Menjadi Bel Pintu Cerdas Dengan Asisten Rumah: Ubah bel pintu berkabel Anda menjadi bel pintu pintar. Terima pemberitahuan ke ponsel Anda atau pasangkan dengan kamera pintu depan yang ada untuk menerima peringatan foto atau video kapan pun seseorang membunyikan bel pintu Anda.Pelajari lebih lanjut di: fireflyelectronix.com/pro
Retas Servo V1.00 Anda - Ubah Servo Anda Menjadi Aktuator Linier yang Kuat: 7 Langkah
Retas Servo Anda V1.00 - Ubah Servo Anda Menjadi Aktuator Linier yang Kuat: Asalkan Anda memiliki alat dan servo, Anda dapat membuat ini dengan harga di bawah beberapa dolar. Aktuator memanjang dengan kecepatan sekitar 50mm/menit. Ini agak lambat tetapi sangat kuat. Tonton video saya di akhir posting di mana aktuator kecil