Daftar Isi:

Retas Pintu Garasi Anda: 5 Langkah
Retas Pintu Garasi Anda: 5 Langkah

Video: Retas Pintu Garasi Anda: 5 Langkah

Video: Retas Pintu Garasi Anda: 5 Langkah
Video: Rumus pintu tikung sliding,,,,ternyata semudah itu 2024, Juli
Anonim
Retas Pintu Garasi Anda
Retas Pintu Garasi Anda
Retas Pintu Garasi Anda
Retas Pintu Garasi Anda
Retas Pintu Garasi Anda
Retas Pintu Garasi Anda

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

Peralatan
Peralatan
Peralatan
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

Memata-matai Remote Control
Memata-matai Remote Control
Memata-matai Remote Control
Memata-matai Remote Control
Memata-matai Remote Control
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

Kirim Bingkai Data yang Sama
Kirim Bingkai Data yang Sama
Kirim Bingkai Data yang Sama
Kirim Bingkai Data yang Sama
Kirim Bingkai Data yang Sama
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

Hubungkan ke Sistem
Hubungkan ke Sistem
Hubungkan ke Sistem
Hubungkan ke Sistem
Hubungkan ke Sistem
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

Optimalkan Konsumsi Daya
Optimalkan Konsumsi Daya
Optimalkan Konsumsi Daya
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: