جدول المحتويات:

اخترق باب المرآب الخاص بك: 5 خطوات
اخترق باب المرآب الخاص بك: 5 خطوات

فيديو: اخترق باب المرآب الخاص بك: 5 خطوات

فيديو: اخترق باب المرآب الخاص بك: 5 خطوات
فيديو: غلطة في GTA 5 ما شالوها المطورين 2024, يوليو
Anonim
اخترق باب المرآب الخاص بك
اخترق باب المرآب الخاص بك
اخترق باب المرآب الخاص بك
اخترق باب المرآب الخاص بك
اخترق باب المرآب الخاص بك
اخترق باب المرآب الخاص بك

من منا لم يحلم أبدًا بالعودة إلى المنزل فقط باستخدام تطبيق هاتف ، أو القدرة على الاستماع إلى ترام البيانات وإعادة نسخه؟ يسعدني أن أكون قادرًا على مشاركة ما أدركته وكيف تقدمت. لقد بدأت هذا المشروع بعد المرة الثانية التي نسيت فيها مفاتيح …

بالطبع ، الترميز ونوع التعديل وتكرار الناقل ومعلومات اتصال البلوتوث والبيانات التي سأعرضها على سبيل المثال ليست أصلية ، أفضل عدم وجود زوار ؛-).

ينطبق هذا التطبيق على أي كائن قادر على استقبال المعلومات الرقمية عن طريق الموجات الكهرومغناطيسية (باب المرآب ، السيارة ، بعض الستائر …). يتكون النظام بأكمله من كائن متصل عن طريق البلوتوث بهاتف ، وهذا الكائن قادر على إرسال نفس الإطارات مثل جهاز التحكم عن بعد المرتبط بما نريد اختراقه. لقد وضعت هذا الشيء في المرآب الخاص بي ، ويمكنني الاتصال به من الخارج.

الخطوة 1: التجهيز

تجهيز
تجهيز
تجهيز
تجهيز

اللغات المستخدمة: C ++ ، MATLAB ، Typescript ، C ، html.

المعرفة الأساسية في الإلكترونيات الرقمية والاتصالات / معالجة الإشارات.

التكلفة: أقل من 35 دولارًا.

متطلبات الأجهزة:

- NooELEC NESDR: لالتقاط البيانات. تقوم هذه الوحدة الرخيصة جدًا باستخلاص رقمي ، وبالتالي قابلية نقلها العالية. هذا النموذج متوافق مع MATLAB. (18.95 دولارًا)

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

- Wemos Lolin32 lite: هذا esp32 عبارة عن متحكم دقيق رخيص ومجهز بشبكات Wifi و Bluetooth. لن نستخدم Wifi في هذا التطبيق ، لكن هذا ممكن إلى حد كبير. (4.74 دولارًا أمريكيًا)

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

- CDSENET cc1101: يمنحنا هذا المرسل الراديوي مرونة قصوى ، من تردد الموجة الحاملة المختار إلى نوع التشكيل. (2.63 دولار)

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

- الأسلاك ، والموصلات ، ومعدات اللحام ، وبطارية ليبو 3.7 فولت للاستقلالية ، وربما راسم الذبذبات ، و / أو محلل المنطق لتصحيح الأخطاء ، وبالمناسبة ، هاتف ذكي …

متطلبات البرنامج:

- MATLAB / Simulink: لالتقاط البيانات. يمكن استخدام برامج بديلة مجانية أخرى ، مثل Audacity لتصور البيانات. (رخصة)

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

- سلسلة أدوات esp-idf: ستُستخدم لبرمجة ملف esp32. يمكن أيضًا استخدام Arduino ID ، لكنه لا يسمح بقدر من الحرية مثل ما سنستخدمه. (مجانا)

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

- TI SmartRF Studio: سيساعدنا ذلك في تكوين سجلات cc1101 ، وفقًا لمواصفاتنا. (مجانا)

www.ti.com/tool/SMARTRFTM-STUDIO

- أيوني: لبناء التطبيق. يمكنك اختيار إنشاء تطبيقات أصلية ، لكن Ionic تسمح لنا بتشغيل تطبيقنا على كل من أجهزة Android و IOS ، برمز فقط. لم يتم البحث عن الأداء في حالتنا. (مجانا)

ionicframework.com/

- بيئة التطوير المفضلة لديك …

الخطوة الثانية: التجسس على جهاز التحكم عن بعد

التجسس على جهاز التحكم عن بعد
التجسس على جهاز التحكم عن بعد
التجسس على جهاز التحكم عن بعد
التجسس على جهاز التحكم عن بعد
التجسس على جهاز التحكم عن بعد
التجسس على جهاز التحكم عن بعد

سنبدأ بملاحظة البيانات التي تنتجها أوامر جهاز التحكم عن بعد. للقيام بذلك ، سوف نستخدم دونجل rtl-sdr والهوائي:

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

باتباع هذا الرابط ، ستجد حزمة MATLAB ، بالإضافة إلى كتاب مجاني يشرح جميع المشاركين مع شرحهم. لتلخيص ما يهمنا ، تكون بيانات النقل في شكل إشارة IQ: بيانات "I" على مراحل ، مقترنة ببيانات تربيعية "Q". هذه الطريقة تسهل الاتصالات. سنكون مهتمين فقط باستقبال الإشارة على مراحل. سنقوم الآن بجمع المعلومات المادية والرقمية على جهاز التحكم عن بعد ، إذا كان بإمكانك العثور على بعض الوثائق عليها ، فسيكون ذلك أسهل. لم أجد أي شيء. لكي نتمكن من مراقبة الإشارة مؤقتًا ، يجب أن نعرف أولاً ما هو ناقل التردد للإشارة المنبعثة. سنستخدم المثال المقدم مع وثائق الحزمة "التحليل الطيفي باستخدام راديو RTL-SDR" ، لنعرف بالضبط التردد الذي نلاحظ فيه ذروة الطاقة عندما نرسل أمرًا. في حالتي هو 868.22 ميغاهيرتز. تبلغ الترددات "القياسية" لهذا النوع من التطبيقات حوالي 868 ميجا هرتز.

باستخدام هذه المؤشرات ، سنكون قادرين على كتابة كود MATLAB لاستعادة البيانات. تم إرفاق هذا في الصورة والتعليق عليه. تسمح لنا النتيجة بالعثور على نوع التعديل: من خلال استرداد المعلومات الأولية ، وعرض النتيجة مباشرة بعد استعادة الجزء الحقيقي من الإشارة ، يمكننا أن نستنتج أنها ASK / OOK تعديل. في الواقع ، نلاحظ أن التردد ثابت ، ومع ذلك ، فإن الإشارة لها اتساعان فقط: قيمة فارغة وثابتة. يسمح لنا باقي الكود باستعادة غلاف الإشارة المستقبلة ، مما يسهل قراءته لمعرفة الترام. بمجرد العرض ، يمكننا تحديد تعديل النطاق الأساسي: هذا ترميز مانشستر (انظر الصورة المرفقة). يمكننا أيضًا استنتاج معدل الباود (الرموز في الثانية). كل هذه المعلومات التي يتم جمعها ، يمكننا معرفة إطار البيانات. في حالتي ، البايتات التي تم العثور عليها هي: 249 ، 39 ، 75 ، 178 ، 45 ، 200 ، وتكررت عدة مرات ، لضمان استقبال الأمر بشكل جيد. لحسن الحظ ، الرمز لا يتداول ، إطار البيانات هو نفسه دائمًا.

الخطوة 3: إرسال نفس إطارات البيانات

أرسل نفس إطارات البيانات
أرسل نفس إطارات البيانات
أرسل نفس إطارات البيانات
أرسل نفس إطارات البيانات
أرسل نفس إطارات البيانات
أرسل نفس إطارات البيانات

إن Texas Instruments cc1101 مرن للغاية لدرجة أنك ستستمر في تحقيق هدفك ، حتى لو كانت الإعدادات التي وجدتها في الخطوة السابقة مختلفة تمامًا عن الإعدادات الخاصة بي. في الواقع ، سترى في الوثائق ، الصفحة 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) أنها تسمح بإجراء تعديل NRZ و Manchester و FSK و ASK / OOK للوصول إلى ترددات حوالي 433 ميجاهرتز أو 868 ميجاهرتز وأشياء أخرى كثيرة. أنصحك بقراءة الوثائق للتعرف على هذه الوحدة.

في هذا الرابط ستجد كمثال عمل Loboris فيما يتعلق ببناء الوظائف باستخدام هذه الوحدة:

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

سنقوم بكتابة الكود الخاص بنا لـ esp32 باستخدام سلسلة أدوات esp-idf (انظر روابط الخطوة الأولى). يمكنك إضافة ملفات الارتباط في الدليل الفرعي لمكونات مشروعك. لتكوين cc1101 الخاص بنا بشكل صحيح ، سنحتاج إلى إصلاح تسجيلاته. تزودنا شركة Texas Instruments ببرنامج يمنحنا قيمة السجلات وفقًا لتكويننا: SmartRF Studio.

فيما يتعلق بي ، أشير للبرنامج الذي أتمنى ترميز مانشستر ، وأن تردد الناقل الخاص بي هو 868.22 ميجاهرتز ، وأن نوع التعديل الخاص بي هو ASK / OOK … وأسمح لك بإدخال المعلمات الخاصة بك. في حالة عدم توفر ترميز النطاق الأساسي ، يمكنك التفكير في ترميز NRZ ، عن طريق زيادة معدل البث بالباود بشكل صحيح ، وتكييف البيانات.

بمجرد تحديد القيم الخاصة بك ، يكون لديك العديد من الخيارات فيما يتعلق باستخدام الوحدة: يمكنك استخدام الوظائف التي قمت بربطها بك ، أو ما فعلته ، فقط استلهم من هذا الرمز ، من أجل تكوين كل شيء في أكثر بطريقة وحشية (انظر الصور المرفقة) ، واستخدام ما نحتاجه فقط.

عندما تتواصل شريحة cc1101 بواسطة SPI ، ستجد في رابط رمز المثال ملف الرأس "spi_master_lobo.h" ، الذي يحتوي على وظائف أسهل لاستخدام SPI أكثر مما لو كان عليك استخدامه مع toolchain فقط. أنضم إليكم في صورة مخطط اتصال CC1101 في SPI ، الصورة مأخوذة من الصفحة 30 من ورقة البيانات CC1101. الأسلاك الأربعة المعروضة هي: CS (Chip Select ، أو SS: Slave Select ، أو هنا CSn) ، CLK (أو SCLK ، الساعة ، المقدمة من قبل السيد) ، MISO (أو SO ، Master In Slave Out) ، و MOSI (أو SI ، Master Out Slave In). في حالتنا ، السيد هو ESP32 ، والعبد هو CC1101. تبدأ الاتصالات عندما يكون دبوس CS منخفضًا بشكل عام.

لا تنس أن تقوم بتمكين استثناءات C ++ للترجمة في خيارات برنامج التحويل البرمجي menuconfig.

الخطوة 4: الاتصال بالنظام

اتصل بالنظام
اتصل بالنظام
اتصل بالنظام
اتصل بالنظام
اتصل بالنظام
اتصل بالنظام

إذا كانت التعليمات البرمجية الخاصة بك تعمل ، فقد قمت بالأمور الأساسية. في هذا الجزء ، سنركز على كيفية إنشاء تطبيق هاتف متصل بالنظام. الحل الأكثر إثارة للاهتمام هو الاتصال عن طريق البلوتوث ، لأنه يسمح باستخدام بروتوكول منخفض الطاقة: Bluetooth Low Energy (BLE). يظهر ملف تعريف التسلسل الهرمي في الرسم المرفق: سنقرأ الأمر ونكتبه في سمة الخدمة. وبالطبع ، جهاز esp32 وهاتفنا الذكي مزودان بتقنية البلوتوث.

تنقسم هذه الخطوة إلى جزأين: جزء esp32 وجزء التطبيق. الصورة المرفقة تظهر وتشرح الأجزاء الرئيسية للرموز.

يمكنك إنشاء UUID الخاص بك باتباع هذا الرابط:

www.uuidgenerator.net/

هذه هي المعرفات التي ستوفر الوصول إلى الخدمات والميزات في ملف تعريف BLE الخاص بنا.

حول كود esp32 BLE ، قام Kolban بعمل رائع جعل جميع وظائف C ++ عالية المستوى متوافقة:

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

يمكنك وضع هذه الملفات في دليل فرعي للمكونات. خلاف ذلك ، سوف تحتاج إلى مزيد من الوقت لفهم كيفية استخدام BLE مع سلسلة أدوات esp-idf.

بإيجاز ما ستراه في الكود ، نقوم بإنشاء خادم ، وخدمة ، وخاصية ، مع UUIDs المصاحبة ، ونضيف فئة رد نداء معاد تعريفها ، مع طريقة مرتبطة عند الكتابة: عندما نتلقى "O" حرف ، نرسل أمر كتابة إلى cc1101.

بالطبع ، لا تنس تمكين Bluetooth في تكوين مكون Menuconfig.

حول جزء التطبيق ، سوف نستخدم Framework Ionic. يمكنك العثور على مزيد من المعلومات حول هذا الموضوع في الرابط المقدم في الخطوة الأولى ، ولمزيد من التفاصيل حول كيفية استخدام BLE مع Ionic:

ionicframework.com/docs/native/ble/

وأمثلة كتبها دون:

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

يمكنك تعديل مثال "الاتصال" على سبيل المثال. نقوم بفحص الأجهزة في الصفحة الأولى ، والوصول إلى الصفحة الثانية إذا اخترنا الجهاز الخاص بنا. نصل بعد ذلك إلى واجهة حيث يمكنك إضافة زر بالطريقة المعروضة في الصورة: يرسل الأمر "O" مع UUIDs المناسب. يمكنك أيضًا إضافة منشئ الصفحة الأولى طريقة "تمكين" ، وطلب تفعيل البلوتوث في بداية التطبيق.

أوصي بشدة باستكشاف موقع Ionic على الويب ، واكتشاف جميع المكونات (الأزرار ، والتنبيهات ، ومربعات الاختيار …) لتحسين تطبيقك:

ionicframework.com/docs/components/#overvi…

الخطوة 5: تحسين استهلاك الطاقة

تحسين استهلاك الطاقة
تحسين استهلاك الطاقة
تحسين استهلاك الطاقة
تحسين استهلاك الطاقة

بدأنا العمل على الاستهلاك المنخفض ، لذلك دعونا نعمل من خلال.

تسمح لنا أداة esp-idf باستخدام واجهة المستخدم الرسومية للتكوين ، menuconfig: يمكن للعديد من المعلمات تقليل استهلاك esp32. بادئ ذي بدء ، نظرًا لأننا لا نحتاج إلى Wifi ، يمكننا تعطيله في تكوين المكون. في نفس المجلد ، في FreeRTOS ، يمكنك تحديد "تشغيل FreeRTOS على النواة الأولى فقط. وبعد ذلك ، في ESP الخاص ، يمكنك خفض تردد وحدة المعالجة المركزية إلى 80 ميجاهرتز. لا تزال جميع الوظائف تعمل بسرعة الساعة هذه. وأخيرًا ، يمكنك حدد "تمكين المعالج المساعد ذو الطاقة المنخفضة جدًا (ULP). هذا التكوين يجعل الاستهلاك الحالي ينتقل من حوالي مائة مللي أمبير إلى حوالي ثلاثين مللي أمبير. لا يزال هذا كثيرًا …

يمكن لـ ESP32 التعامل مع النوم العميق. فقط النواة منخفضة الطاقة تعمل وتنتظر الاستيقاظ.

انظر هذا الرابط أدناه لمزيد من التفاصيل:

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

للأسف ، في آخر إصدار متاح من أداة esp-idf toolchain (3.0) ، التنشيط الوحيد المتاح هو بواسطة أجهزة ضبط الوقت واضطرابات GPIOs. لحسن الحظ ، يعدنا Espressif بأن BLE استيقظ في الإصدار التالي (3.1).

يمكنك أيضًا وضع CC1101 في وضع السكون ، عن طريق إرسال الأمر المناسب في SPI لإيقاف تشغيل الجهاز (انظر ورقة بيانات cc1101 ، أمر SPWD ، صفحة 51). لوضع الجهاز في وضع السكون أو لإيقاظه ، يمكنك وضع دبوس تحديد الشريحة منخفضًا ثم مرتفعًا من دبابيس SPI (المزيد من المعلومات في ورقة البيانات).

يجب أن تكون هذه التكوينات الأخيرة قادرة على جعل استهلاك النظام يمر دون الملي أمبير …

أخيرًا ، لجعل النظام يدوم لأطول فترة ممكنة دون إعادة الشحن ، أو حتى الوصول إلى شهر من الاستقلالية ، اختر بطارية 3.7 فولت بأكبر عدد من الملي أمبير في الساعة. من خلال قياس استهلاك الطاقة في نظامك ، مع عرض مولد أو مقياس التيار المتصل في سلسلة قبل القطب + في نظامك ، يمكنك تقدير الوقت الذي سيستمر فيه نظامك!

موصى به: