فهرست مطالب:

[15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا): 4 مرحله (همراه با تصاویر)
[15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا): 4 مرحله (همراه با تصاویر)

تصویری: [15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا): 4 مرحله (همراه با تصاویر)

تصویری: [15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا): 4 مرحله (همراه با تصاویر)
تصویری: سنت بارت، جزیره مخفی میلیونرها 2024, جولای
Anonim
Image
Image
[15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا)
[15 دقیقه] ساعت ویزلی / شاخص خانه کیست - بر اساس TR -064 (بتا)

به روز رسانی: مرحله 3 را ببینید.

داستان طولانی (TL ؛ DR زیر): چندی پیش من یک اسکریپت bash کوچک در رایانه خود نوشتم که شبکه را برای دستگاه های ثبت شده اسکن می کرد و نام میزبان آنها را با فهرستی با نام های مرتبط مقایسه می کرد. هربار که دستگاهی وارد شبکه می شد یا از آن خارج می شد ، یک اعلان دریافت می کردم. مانند این ، من ایده ای در خانه دارم (نه تنها گاهی اوقات خوب است بدانید چه کسی در خانه است از آنها بپرسید که آیا می خواهند در وعده غذایی شرکت کنند یا نه ، بلکه به طور بالقوه می تواند به شما در جلوگیری از شرایط ناخوشایند کمک کند). مشکل این است که این روش چندان قابل اعتماد نیست. متأسفانه برخی از دستگاه ها به پینگ (به عنوان مثال تلفن های هوشمند) پاسخ نمی دهند و به نظر می رسد که در حالت صرفه جویی در مصرف برق قرار دارند بنابراین با دستوراتی مانند nmap قابل اطمینان قابل تشخیص نیستند. من سعی کردم با نیاز به حداقل 10 مورد منفی بر این مشکل غلبه کنم قبل از اینکه بالاخره اعلام کنم دستگاه از شبکه خارج شد. در کل کار می کرد ، اما به آرامی ، غیر قابل اعتماد و نه خیلی خوب. همچنین من می خواستم بتوانم بدون باز کردن رایانه ام بررسی کنم چه کسی در خانه است. بنابراین من این ESP8266 ها را در اطراف داشتم - و می خواستم با آنها بازی کنم. اما من نمی خواهم ایستگاه هواشناسی 10.120.124.812th مبتنی بر ESP یا موارد دیگر را بسازم (چرا می خواهید آب و هوا را با دماسنج تند ± 2 درجه سانتی گراد خود کنترل کنید ، در حالی که می توانید به هر حال به هر وب سایت مراجعه کنید؟). بنابراین برنامه ریزی شد. متأسفانه معلوم می شود که به نظر می رسد ESP مجهز به پینگ مناسب نیست (که در ابتدا بد بود ، به یاد داشته باشید؟) چه برسد به اینکه یک اسکن کامل شبکه انجام دهد. من در نظر داشتم کتابخانه ای برای آن بنویسم - اما از آنجا که C ++ من بسیار محدود است ، این اولین پروژه ESP من است و من یک نابغه با مسائل شبکه نیستم یا این ایده را کنار گذاشتم. پس از انجام برخی تحقیقات ، متوجه شدم که من روتر (نام تجاری Fritz! Box) در واقع دارای API است! بله !!!! پروتکل TR-064 نام دارد. چنین نام الهام بخشی ، درست است؟ با انجام برخی تحقیقات در مورد این موضوع ، من یک اسناد (نسبتاً تند) آنلاین پیدا کردم. مدتی طول کشید تا آن را حل کنم. ممکن است در روزهای آینده یک دستورالعمل کاربردی تر (و نحوه برقراری ارتباط/آزمایش این API با استفاده از افزونه مرورگر) ارسال کنم. وقتی API را فهمیدم ، از ESP خود استفاده کردم. داستان کوتاه: من یک راه حل duck-tape-and-wd40 را اجرا کردم و آنچه را که می خواستم انجام داد (پرس و جو از API برای دستگاه های متصل ، آنها را با لیستی از آدرس های MAC مقایسه کنید و بر این اساس LED ها را تغییر دهید). اما من قوی تر می خواستم و راه حل انعطاف پذیر و این API چیزهای بیشتری برای ارائه دارد (می توانید تنظیمات را تغییر دهید (وای فای را خاموش/روشن کنید ، رمز عبور را تغییر دهید ، وای فای مهمان را باز/بسته کنید ، قدرت سیگنال را تغییر دهید) ، روتر را راه اندازی مجدد کنید ، سرعت اتصال را جستجو کنید ،…) - بنابراین تصمیم گرفتم یک کتابخانه جهانی TR -064 ایجاد کنم! TL؛ DR ؛ دستگاهی که از طریق LED هایی که در حال حاضر در خانه هستند نشان می دهد. عالی کار می کند ، هنوز مسکن عالی ندارید (سلام - متوجه بتا در عنوان شدید؟). از پروتکل SOAP برای ارتباط با روتر استفاده می کند. کتابخانه Arduino را نوشت تا این اتفاق بیفتد. دانش مورد نیاز • دانش اولیه Arduino/ESP • اگر یک مثال Blink را با ESP خود جمع آوری کرده باشید ، خوب خواهید بود! • در غیر این صورت ، می توانید دو مرحله اول این دستورالعمل را دنبال کنید • لحیم کاری ممکن است اگر می خواهید مرحله نان را ترک کنید ، مفید خواهد بود • برخی از طراحی های سه بعدی و یا نجاری ممکن است برای پیوند پروژه مسکن مفید باشد [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] برای مرجع سریع

تدارکات

  • ESP8266 یا ESP32 در هیئت توسعه یا با برنامه نویس دیگر (2 ~ 6 €)
  • کابل USB مناسب برنامه نویس
  • آداپتور برق (به عنوان مثال USB یا باتری 2 یورو)
  • چند LED و مقاومت (1 یورو پوند)
  • (بدنه)

=> حدود 4-6 یورو برای حداقل طراحی. این برای من به این معنی است که به راحتی می توانم چند نفر را در اطراف خانه آویزان کنم. اگر تنبل هستید ، می توانید از یک تخته توسعه با LED های استفاده شده استفاده کنید (برای جزئیات بیشتر به مرحله 4 مراجعه کنید).

مرحله 1: روتر خود را تنظیم کنید (اختیاری ، اما توصیه شده)

تنظیم روتر (اختیاری ، اما توصیه شده)
تنظیم روتر (اختیاری ، اما توصیه شده)
تنظیم روتر (اختیاری ، اما توصیه شده)
تنظیم روتر (اختیاری ، اما توصیه شده)

این پروتکل به عنوان یک پروتکل کلی برای روترها طراحی شده است ، اما من فقط می دانم که (بیشتر) روترهای Fritz! Box (حداقل در اروپا بسیار رایج است) از آن استفاده می کنند. در مورد مارک های دیگر اطلاعاتی ندارید. بنابراین فرض می کنم که شما از Fritz! Box استفاده می کنید. اگر می توانید این کار را انجام دهید (یا این کار را انجام ندهید) روی هر روتر دیگر ، خوشحال می شوم آن را به این دستورالعمل آموزشی اضافه کنید (شاید حتی لیست سازگاری کوتاهی را شروع کنید؟).

این مرحله ضروری نیست ، شما فقط می توانید از حساب سرپرست خود استفاده کنید ، اما به دلایل واضح توصیه نمی شود (ممکن است از ESP شما رهگیری یا استخراج شود ، ممکن است به طور تصادفی مواردی را که نمی خواهید تغییر دهید ، …) - بنابراین من به شما توصیه می کند این کار را انجام دهید

به هر حال ، اینجا می رویم:

  1. با تایپ fritz.box در نوار آدرس مرورگر مورد علاقه خود وارد Fritz! Box خود شوید.
  2. صفحه ایجاد کاربر جدید FRITZ! Box را پیدا کنید (لازم است آن را در سیستم زیر قرار دهید ، اگر نمی توانید آن را پیدا کنید ، دستگاه خود را به روز کنید).
  3. همانطور که در تصویر می بینید (با استفاده از نام کاربری/رمز عبور متفاوت!) یک حساب جدید ایجاد کنید.
  4. خروج.

مرحله 2: کد

Image
Image
سخت افزار (بتا)
سخت افزار (بتا)
  1. می توانید کتابخانه را از Github تهیه کنید.

  2. در مثال ها ، فایلی به نام home-indicator.ino را می بینید که کد این پروژه است. پوشه نمونه ها را در پوشه اصلی پروژه arduino IDE و پوشه دیگر را در پوشه libraries در همان پوشه اصلی پروژه قرار دهید.
  3. (دوباره) IDE خود را شروع کنید.
  4. home-indicator.ino را در IDE باز کرده و تنظیمات خود را وارد کنید. باید کاملاً واضح باشد که به کجا می رود. اگر هر سوالی داری به من بگو!
  5. اکنون می توانید آن را کامپایل کرده و به ESP خود منتقل کنید!

مرحله 3: سخت افزار (بتا)

سخت افزار (بتا)
سخت افزار (بتا)
سخت افزار (بتا)
سخت افزار (بتا)
سخت افزار (بتا)
سخت افزار (بتا)

بله … این مرحله ای است ، جایی که هنوز باید بیشتر کار کنم. اما من حدس می زنم مواد کافی در وب وجود دارد تا چیزی را بفهمد:) تنظیمات موجود در تصاویر فقط یک دیود است که دارای مقاومت 100 اهم ~ است که به GPIO {5 ، 4 ، 0 ، 2} ، که D1 هستند ، متصل شده است. D2 ، D3 ، D4 (به ترتیب) پین های برد MCU ESP8266 من و کابل نارنجی کوچکی که کاتدها را به GND می برد (با علامت G روی برد من). اگر تنبل هستید ، می توانید آنچه را که در تصویر دوم مشاهده می کنید انجام دهید. فقط از یک تخته توسعه با LED های استفاده شده استفاده کنید (مانند "ESP-202" ، تصاویر را ببینید-حدود 3.50-5.00 € با احتساب حمل و نقل). سپس می توانید آن را به برق USB وصل کنید یا از بسته باتری موجود استفاده کنید ، یک رابط روی یک کاغذ بکشید و آن را به دیوار بچسبانید. انجام شد. برای این برد خاص ، پورت ها عبارتند از:

int userPins [numUser] = {5 ، 4 ، 2 ، 14 ، 16} ؛

از بالا تا پایین.

مرحله 4: چشم انداز/منابع

این چیزی است که من هنوز برنامه ریزی می کنم: 1. ساختن یک محفظه زیبا (بدیهی است) 2. افزودن یک رابط کاربری گرافیکی زیبا برای مدیریت کاربران/LED ها/MAC ها/دستگاه های شناخته شده 3. بهبود کتابخانه (Github را در این زمینه مشاهده کنید) 4. رفع: گاهی اوقات LED ها به آرامی واکنش نشان دهید (پس از خاموش شدن دستگاه ، کمی طول می کشد) ، بدون دلیل مشخص 5. چیز را در راهرو و شاید چند مورد دیگر در خانه نگه دارید. دوست دارم از شما اطلاعاتی بگیرم! و مثل همیشه ، من واقعاً خوشحالم که می بینم دیگران چیزهایی را که فکر کرده اید می سازند ، بنابراین لطفاً یک دقیقه وقت بگذارید و نظر دهید و عکس ها را پست کنید!:):) برخی منابع دیگر من برخی مطالب را در اینجا پیوند می دهم که ممکن است به شما کمک کند: • مرجع TR-064 • برخی از افراد با پوسته و TR-064 کار می کنند (خوب است که API را درک کنید) • هری پاتر ویکی پدیا: ورودی ساعت ویزلی • برخی از بچه ها یک ساعت Weasly زیبا اما پیچیده می سازند*_*این بر اساس برنامه ای برای تلفن شما است که موقعیت مکانی شما را می گیرد. اگر در مناطق خاصی از قبل تعیین شده قرار دارید ، چراغ ساعت روی آن روشن می شود. برای من که بسیار پیچیده بود و در بسیاری از نقاط که ممکن است خراب شود یا خراب شود: اتصال • شما باید از یک سرور واسطه برای برقراری ارتباط استفاده کنید (مگر اینکه بخواهید سرور خود را تنظیم کرده و شبکه خانگی خود را برای ترافیک خارجی باز کنید - البته ، یک دستگاه IOT ناامن دیگر که مستقیماً به اینترنت متصل است!) • سرویس میانی ممکن است روزی آفلاین شود/API آن را تغییر دهد ، •… شما به نرم افزار بیشتری نیاز دارید. نرم افزار بیشتر به معنای مکان های بیشتر برای انجام خطا است؛) اما ، آنها کار شگفت انگیزی را انجام دادند و اگر می خواهید چنین کاری انجام دهید ، به سایت آنها سر بزنید ، واقعاً عالی است!

توصیه شده: