فهرست مطالب:
- مرحله 1: تجهیز
- مرحله 2: جاسوسی از راه دور
- مرحله 3: همان فریم های داده را ارسال کنید
- مرحله 4: به سیستم وصل شوید
- مرحله 5: بهینه سازی مصرف برق
تصویری: درب گاراژ خود را هک کنید: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
چه کسی هرگز رویای این را نداشته است که فقط با یک برنامه تلفن به خانه برگردد یا بتواند به ترامواهای داده گوش داده و دوباره کپی کند؟ خوشحالم که می توانم آنچه را که فهمیده ام و نحوه کارم را با شما به اشتراک بگذارم. این پروژه را پس از بار دوم که کلیدهایم را فراموش کردم ، شروع کردم…
البته ، رمزگذاری ، نوع مدولاسیون ، فرکانس حامل ، اطلاعات اتصال بلوتوث و داده هایی که در مثال نشان می دهم اصلی نیستند ، ترجیح می دهم بازدیدکننده نداشته باشم ؛-).
این برنامه برای هر جسمی که می تواند اطلاعات دیجیتالی را با امواج الکترومغناطیسی دریافت کند (درب گاراژ ، ماشین ، برخی از کرکره ها …) اعمال می شود. کل سیستم شامل یک شیء است که توسط بلوتوث به تلفن متصل شده است ، این شی قادر است فریم های مشابهی با ریموت مرتبط با آنچه ما می خواهیم هک کنیم ارسال کند. من این شیء را در گاراژ خود قرار دادم و می توانم از بیرون به آن متصل شوم.
مرحله 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 و بلوتوث است. ما از 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 استفاده می شود. از ایده آردوینو نیز می توان استفاده کرد ، اما به اندازه آنچه که ما استفاده می کنیم اجازه آزادی نمی دهد. (رایگان)
esp-idf.readthedocs.io/fa/latest/get-starte…
- TI SmartRF Studio: این به ما در پیکربندی ثبات cc1101 ، با توجه به مشخصات ما کمک می کند. (رایگان)
www.ti.com/tool/SMARTRFTM-STUDIO
- Ionic: برای ساختن برنامه شما می توانید برنامه ساخت برنامه های بومی را انتخاب کنید ، اما Ionic به ما اجازه می دهد برنامه خود را در هر دو دستگاه Android و IOS و تنها با یک کد اجرا کنیم. اجرا در مورد ما جستجو نمی شود. (رایگان)
ionicframework.com/
- ایده مورد علاقه شما…
مرحله 2: جاسوسی از راه دور
ما با مشاهده داده هایی که فرمان های کنترل از راه دور تولید می کنند شروع می کنیم. برای انجام این کار ، ما از دانگل و آنتن rtl-sdr استفاده می کنیم:
fr.mathworks.com/hardware-support/rtl-sdr….
با پیروی از این پیوند ، بسته MATLAB و همچنین یک کتاب رایگان را خواهید دید که تمام اصول و توضیحات آنها را توضیح می دهد. به طور خلاصه آنچه ما را نگران می کند ، داده های ترانزیت به شکل یک سیگنال IQ است: یک داده فاز "I" ، همراه با داده های درجه چهارم "Q". این روش مخابرات را تسهیل می کند. ما فقط علاقمند به دریافت سیگنال در مرحله هستیم. ما در حال حاضر اطلاعات فیزیکی و دیجیتالی را روی کنترل از راه دور جمع آوری می کنیم. اگر بتوانید اسناد و مدارکی را در مورد آن پیدا کنید ، راحت تر خواهد بود. من هیچی پیدا نکردم. برای اینکه بتوانیم سیگنال را به صورت موقت مشاهده کنیم ، ابتدا باید بدانیم حامل فرکانس سیگنال ساطع شده چیست؟ ما از مثال ارائه شده با مستندات بسته "تجزیه و تحلیل طیفی با رادیو RTL-SDR" استفاده می کنیم تا بدانیم دقیقاً در چه فرکانسی هنگام ارسال فرمان ، حداکثر قدرت را مشاهده می کنیم. در مورد من 868.22 مگاهرتز است. فرکانس های "استاندارد" برای این نوع برنامه ها در حدود 868 مگاهرتز است.
با استفاده از این نشانه ها ، می توانیم یک کد متلب برای بازیابی اطلاعات بنویسیم. این مورد در عکس پیوست شده و نظر داده شده است. نتیجه به ما امکان می دهد نوع مدولاسیون را بیابیم: با بازیابی اطلاعات خام ، نمایش نتیجه فقط پس از بازیابی قسمت واقعی سیگنال ، می توان نتیجه گرفت که این یک ASK / OOK است تعدیل در واقع ، ما مشاهده می کنیم که فرکانس متغیر است ، با این حال ، سیگنال فقط دو دامنه دارد: یک صفر و یک ثابت. بقیه کد به ما اجازه می دهد تا پاکت سیگنال دریافت شده را که برای خواندن ترام آسان تر است ، بازیابی کنیم. پس از نمایش ، می توان مدولاسیون باند پایه را تعیین کرد: این یک کدگذاری منچستر است (به عکس پیوست مراجعه کنید). همچنین می توان نرخ باود (نمادها در ثانیه) را استنباط کرد. با جمع آوری تمام این اطلاعات ، می توانیم چارچوب داده ها را بشناسیم. در مورد من ، بایت های پیدا شده عبارتند از: 249 ، 39 ، 75 ، 178 ، 45 ، 200 ، و چندین بار تکرار شده اند تا اطمینان حاصل شود که فرمان به خوبی دریافت شده است. خوشبختانه ، کد در حال چرخش نیست ، قاب داده همیشه یکسان است.
مرحله 3: همان فریم های داده را ارسال کنید
ابزار Texas Texas 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 است … به شما اجازه می دهم پارامترهای خود را وارد کنید. در مواردی که رمزگذاری پهنای باند شما در دسترس نیست ، می توانید با افزایش مناسب نرخ baud و تطبیق داده ها ، کدگذاری NRZ را در نظر بگیرید.
پس از تعیین مقادیر خود ، چندین انتخاب در مورد استفاده از ماژول دارید: می توانید از عملکردهایی که من به شما پیوند داده ام یا آنچه انجام دادم ، فقط از این کد الهام بگیرید ، تا همه چیز را به صورت بیشتری پیکربندی کنید. راه وحشیانه (عکسهای پیوست شده را ببینید) ، و فقط از آنچه نیاز داریم استفاده کنید.
همانطور که تراشه cc1101 با SPI ارتباط برقرار می کند ، در پیوند کد مثال فایل سربرگ "spi_master_lobo.h" را خواهید یافت ، که شامل عملکردهای راحت تری برای استفاده از SPI نسبت به مواردی است که مجبور به استفاده از آن فقط با زنجیره ابزار هستید. من در عکس طرح ارتباط CC1101 در SPI ، عکسی که از صفحه 30 برگه داده CC1101 گرفته شده است ، به شما ملحق می شوم. چهار سیم ارائه شده عبارتند از: CS (انتخاب تراشه ، یا SS: Slave Select ، یا اینجا CSn) ، CLK (یا SCLK ، ساعت ، ارائه شده توسط استاد) ، MISO (یا SO ، Master In Slave Out) ، و MOSI (یا SI ، Master Out Slave In). در مورد ما ، استاد ESP32 و برده CC1101 است. به طور کلی ارتباطات زمانی شروع می شود که پین CS کم باشد.
فراموش نکنید که در گزینه های کامپایلر منو پیکربندی استثنائات C ++ را برای کامپایل فعال کنید.
مرحله 4: به سیستم وصل شوید
اگر کد شما کار می کند ، ضروری را انجام داده اید. در این قسمت ، ما روی نحوه ایجاد یک برنامه تلفن متصل به سیستم تمرکز می کنیم. جالب ترین راه حل اتصال با بلوتوث است ، زیرا اجازه می دهد از پروتکل کم مصرف استفاده کنید: بلوتوث کم مصرف (BLE). مشخصات سلسله مراتب در نقشه پیوست نشان داده شده است: ما دستور را در یک ویژگی یک سرویس می خوانیم و می نویسیم. و البته ، esp32 و تلفن هوشمند ما مجهز به بلوتوث هستند.
این مرحله به دو قسمت تقسیم می شود: قسمت esp32 و قسمت برنامه. عکس پیوست قسمت های اصلی کدها را نشان می دهد و توضیح می دهد.
با پیوند زیر می توانید UUID های خود را ایجاد کنید:
www.uuidgenerator.net/
اینها شناسه هایی هستند که دسترسی به خدمات و ویژگی های نمایه BLE ما را فراهم می کنند.
در مورد کد esp32 BLE ، Kolban کار بزرگی انجام داد و همه این توابع سطح بالا ++ C را سازگار کرد:
github.com/nkolban/esp32-snippets/tree/mas…
می توانید این فایل ها را در زیر شاخه اجزا قرار دهید. در غیر این صورت ، برای درک نحوه استفاده از BLE با ابزار ابزار esp-idf به زمان بیشتری نیاز خواهید داشت.
به طور خلاصه آنچه در کد مشاهده خواهید کرد ، ما یک سرور ، یک سرویس و یک مشخصه با UUID های مرتبط ایجاد می کنیم و یک کلاس بازخوانی مجدد تعریف می کنیم ، با یک روش مرتبط در نوشتن: هنگامی که "O" را دریافت می کنیم کاراکتر ، ما یک دستور نوشتن به cc1101 ارسال می کنیم.
البته ، فراموش نکنید که بلوتوث را در پیکربندی Component Menuconfig فعال کنید.
در مورد قسمت برنامه ، از Framework Ionic استفاده خواهیم کرد. اطلاعات بیشتر در مورد آن را می توانید در پیوند ارائه شده در مرحله اول و جزئیات بیشتر در مورد نحوه استفاده از BLE با Ionic پیدا کنید:
ionicframework.com/docs/native/ble/
و نمونه هایی که توسط دان نوشته شده است:
github.com/don/ionic-ble-examples/tree/mas…
می توانید به عنوان مثال "اتصال" را ویرایش کنید. ما دستگاه ها را در صفحه اول اسکن می کنیم و اگر دستگاه خود را انتخاب کنیم به صفحه دوم می رسیم. سپس به رابطی دسترسی پیدا می کنید که در آن می توانید یک دکمه با روش ارائه شده در عکس اضافه کنید: دستور ما "O" را با UUID های مناسب ارسال می کند. همچنین می توانید روش "فعال کردن" را در سازنده صفحه اول اضافه کنید و در ابتدای برنامه بلوتوث را فعال کنید.
من اکیداً توصیه می کنم وب سایت Ionic را کاوش کنید و همه اجزاء (دکمه ها ، هشدارها ، چک باکس ها …) را برای افزایش برنامه خود کشف کنید:
ionicframework.com/docs/components/#overvi…
مرحله 5: بهینه سازی مصرف برق
ما کار را با مصرف کم شروع کردیم ، بنابراین بیایید کار را ادامه دهیم.
زنجیره ابزار esp-idf به ما اجازه می دهد تا از GUI پیکربندی ، یعنی menuconfig استفاده کنیم: بسیاری از پارامترها می توانند مصرف esp32 را کاهش دهند. اول از همه ، چون نیازی به Wifi نداریم ، می توانیم آن را در پیکربندی Component غیرفعال کنیم. در همان پوشه ، در FreeRTOS ، می توانید "اجرای FreeRTOS را فقط در هسته اول اجرا کنید. سپس ، در ESP-specific ، می توانید فرکانس CPU را به 80 مگاهرتز کاهش دهید. همه عملکردها هنوز با این سرعت کلاک کار می کنند. در نهایت ، می توانید علامت "فعال کردن پردازنده فوق العاده کم مصرف (ULP) را بررسی کنید. این پیکربندی باعث می شود مصرف فعلی از حدود صد میلی آمپر به حدود سی میلی آمپر برسد. این هنوز زیاد است…
ESP32 می تواند خواب عمیق را کنترل کند. فقط هسته کم انرژی روشن است و منتظر بیدار شدن است.
برای جزئیات بیشتر به پیوند زیر مراجعه کنید:
esp-idf.readthedocs.io/fa/latest/api-refere…
متأسفانه ، در آخرین نسخه موجود از ابزار ابزار esp-idf (3.0) ، تنها بیداری های موجود توسط تایمرها و اختلال در GPIO ها انجام می شود. خوشبختانه ، Espressif به ما قول می دهد BLE در نسخه بعدی (3.1) بیدار شود.
همچنین می توانید CC1101 را در حالت خواب قرار دهید ، با ارسال فرمان مناسب به SPI برای خاموش کردن دستگاه (به برگه اطلاعات cc1101 ، دستور SPWD ، صفحه 51 مراجعه کنید). برای قرار دادن دستگاه در حالت خواب یا بیدار کردن آن ، می توانید پین Chip Select از پین های SPI را کم و زیاد قرار دهید (اطلاعات بیشتر در برگه اطلاعات).
این آخرین تنظیمات باید بتواند مصرف سیستم را از زیر میلی آمپر عبور دهد…
در نهایت ، برای ماندگاری بیشتر سیستم تا زمانی که ممکن است بدون شارژ مجدد یا حتی رسیدن به یک ماه خودمختاری ، باتری 3.7 ولت را با بیشترین میلی آمپر در ساعت انتخاب کنید. با اندازه گیری توان مصرفی سیستم ، با نمایش ژنراتور یا آمپرمتر متصل به صورت سری قبل از قطب + سیستم خود ، می توانید مدت زمان دوام سیستم خود را تخمین بزنید!
توصیه شده:
درب گاراژ کنترل شده توسط الکسا با آردوینو Esp8266: 6 مرحله
درب گاراژ کنترل شده توسط الکسا با آردوینو Esp8266: ایده این پروژه از پروژه ای قدیمی که مدتی پیش روی آن کار کرده بودم به ذهنم رسید. مدار ساده ای را فشار داده بودم که با فشردن یک دکمه توسط درب گاراژ ، LED روشن می شد. این روش غیرقابل اعتماد بود و مفید نبود
UPS خود را Steam Punk کنید تا ساعتهای به روز برای روتر Wi-Fi خود دریافت کنید: 4 مرحله (همراه با تصاویر)
UPS شما Steam Punk می کند تا ساعتهای به روز برای روتر Wi-fi شما دریافت کند: در مورد اینکه UPS شما قدرت باتری 12 ولت DC خود را به برق AC 220 ولت تبدیل کند ، چیزی اساساً مخالف است تا ترانسفورماتورهای روتر و فیبر ONT شما بتوانند آن را دوباره به 12 ولت DC! شما همچنین با [معمولاً
نظارت بر دو درب گاراژ: 4 مرحله
نظارت بر دو درب گاراژ: در سال 2016 ما به خانه جدیدی نقل مکان کردیم ، جایی که درهای گاراژ به گونه ای واقع شده است که نمی توانید آنها را از ورودی اصلی خانه مشاهده کنید. بنابراین نمی توانید مطمئن باشید که درها بسته یا باز هستند. فقط برای نظارت ، صاحبان سابق یک سوئیچ پرس نصب کردند
درب بازکن ارزان گاراژ ارزان: 6 مرحله (همراه با تصاویر)
ارزان باز کردن درب گاراژ هوشمند: اعتبار من تقریباً اجرای Savjee را کپی کردم اما به جای استفاده از Shelly ، من از Sonoff Basic استفاده کردم. وب سایت و کانال YouTube او را بررسی کنید
از ایده های خود محافظت کنید ، از کار خود محافظت کنید: 8 مرحله
از ایده های خود محافظت کنید ، از کار خود محافظت کنید: من چند روز پیش اطلاعات را در اثر خرابی رایانه از دست دادم. کار یک روز از بین رفت.:/ من داده های خود را در ابر ذخیره می کنم تا از نقص دیسک سخت جلوگیری شود. من از یک نرم افزار نسخه سازی استفاده می کنم تا بتوانم نسخه های قدیمی کار خود را بازیابی کنم. من هر روز یک نسخه پشتیبان تهیه می کنم. اما این بار من