فهرست مطالب:

سایزهای خودکار ویندوز: 6 مرحله (همراه با تصاویر)
سایزهای خودکار ویندوز: 6 مرحله (همراه با تصاویر)

تصویری: سایزهای خودکار ویندوز: 6 مرحله (همراه با تصاویر)

تصویری: سایزهای خودکار ویندوز: 6 مرحله (همراه با تصاویر)
تصویری: آموزش تعمیر ویندوز آسیب دیده | حل مشکل ارورهای عجیب ویندوز 2024, نوامبر
Anonim
Image
Image
سایه های خودکار ویندوز
سایه های خودکار ویندوز
سایه های خودکار ویندوز
سایه های خودکار ویندوز

یک کلمه پیش رو

من آموزش های زیادی در مورد نحوه خودکار کردن سایه ها و پرده های دستی دیده ام ، خوب در این یکی ما سایه های برقی را خودکار می کنیم. ما سایه های الکتریکی را که توسط موتورهای الکتریکی جریان مداوم (DC) که با معکوس کردن قطبیت جریان باز یا بسته می شوند ، پوشش می دهیم.

اگرچه اگر سایه های برقی می خرید ، اتوماسیون دریافت می کنید ، دلایلی وجود دارد که خودکار را به تنهایی انجام دهید ، مانند:

* ممکن است فقط یک سوئیچ در نزدیک آنها برای کنترل بالا/پایین داشته باشید

* ارزان تر است (برخی از شرکت ها اتوماسیون پیشرفته را با مبلغ اضافی $ $ ارائه می دهند)

* انعطاف پذیرتر ، می توانید آنها را در شرایط مختلف باز یا بسته برنامه ریزی کنید ، ما در مورد ایجاد یک وب سرور در پایتون که به رابط بلوتوث سایه ها متصل می شود ، آشنا می شویم و یک API را برای کنترل سایه ها نمایان می کنیم ، ما همچنین ادغام می شویم آن را با چیزهایی صحبت کنید و در آنجا می توانید کارهایی مانند کنترل سایه ها در یک برنامه زمانی یا کنترل آن از طریق ورودی سنسور را انجام دهید

این یک آموزش متوسط خواهد بود ، شما به مهارت هایی مانند لحیم کاری ، برنامه نویسی آردوینو ، درک الکترونیکی اولیه و نحوه نصب خدمات بر روی سرور ، اجرا و پیکربندی آنها نیاز دارید.

اگر از ویدیوهای یوتیوب خوشتان آمد ، می توانید در اینجا مشترک شوید.

مرحله 1: موارد مورد نیاز

موارد مورد نیاز
موارد مورد نیاز
موارد مورد نیاز
موارد مورد نیاز

نکته: برای مشاهده برچسب های توصیفی روی آنها ، تصاویر را بزرگ کنید

قطعات:

1. arduino pro mini 16Mhz 5V نوع (eBay) 2 $

2. ماژول بلوتوث HC-05 (eBay) 3.3 دلار

3. 5 ولت دو رله کانال (eBay) 1.6 $

4. ترانزیستور NPN که حداقل برای چند آمپر رتبه بندی شده است ، من از Tip142T <1 $ استفاده کرده ام

5. 220 اهم ، مقاومت 0.25W <1 $

6. دیود ، 1N4004 <1 $

7. سیم برای اتصال قطعات <1 $

8. PCB (eBay) <1 $ در هر قطعه

9. 2 عدد KF301-2P وصل کننده پیچ (eBay) <1 $ در هر قطعه

10. سیمهای جهنده زن و مرد (eBay) 1.2 دلار در 2 دلار برای یک دسته

11. تنظیم کننده L7805CV 5V (eBay) <1 $ در هر قطعه

12. پریز برق 5.5 میلیمتری DC سوکت مردانه و زنانه (eBay) <1 $ در هر قطعه

13. نوار لوله ای یا نوار عایق حرارتی

14. منبع تغذیه ، منبع تغذیه باید برای 12V و 2-3A درجه بندی شود.

من خودم را از یک شارژر 12 V 2 A (eBay) 3.2 دلار نجات دادم

14. بلوک نوار ترمینال (eBay) 15c

15. دارنده فیوز (Aliexpress) 1 دلار در هر قطعه

16. فیوز (eBay) <1 $ در هر قطعه

17. اتصالات pcb مرد و زن (eBay) <1 $ برای آنچه نیاز داریم

18. کابل برق AC

19. محفظه جعبه پلاستیکی ، اندازه من 6 * 19 سانتی متر بود

ابزارها:

1. آهن لحیم کاری با لحیم

2. سیم برش

3. پیچ گوشتی های مختلف

4. برش

5. مته قدرت و مته 8.5 میلی متری

6. آداپتور USB به سریال FTDI FT232RL برای برنامه نویسی arduino pro mini

7. لپ تاپ با ArduinoIDE برای برنامه ریزی arduino نصب شده است

8. در صورت استفاده از Heat Shrink Tubing فندک

9. تلفن هوشمندی که قابلیت اتصال بلوتوث دارد (در مثال از اندروید استفاده می کنم) با نصب نرم افزار بلوتوث

10. اختیاری: ذره بین ، مولتی متر ، انبردست

مرحله 2: آماده سازی

آماده سازی
آماده سازی
آماده سازی
آماده سازی
آماده سازی
آماده سازی

انتخاب منبع تغذیه و جعبه پلاستیکی

اولین نکته این است که تعیین کنید موتورهای سایه چقدر جریان و چه ولتاژی کار می کنند.

این را می توان با خواندن مشخصات یا اندازه گیری با استفاده از مولتی متر انجام داد. معمولاً آنها 12 ولت و 1-3 آمپر کار می کنند (من 2.5 آمپر و 12 ولت است). برای اینکه بتوانید حداکثر جریان مورد نیاز را بدست آورید ، جریان را در چند مورد از آنها برای رانندگی همزمان ضرب کنید (من دو رانندگی می کنم). شما باید منبع تغذیه ای را پیدا کنید که دقیقاً ولتاژ یکسانی داشته باشد و در حالت ایده آل همان آمپر یا کمی بالاتر باشد.

در این مرحله من کمی تقلب کرده ام ، با استفاده از منبع تغذیه 12 ولت و 2.5 آمپر برای دو موتور 12 ولت و 2.5 آمپر ، این بدان معناست که موتورها دو برابر بیشتر از منبع تغذیه قدرت مصرف می کنند. اما با استفاده از تکنیکی به نام PWM (پیوند را برای مشاهده جزئیات بیشتر بررسی کنید) موفق شدم موتور را همزمان با سرعت کمتری حرکت دهم.

دلیل این کار من صرفه جویی در فضا در جعبه است (من جعبه کوچکتری را انتخاب کرده ام).

محفظه پلاستیکی باید منبع تغذیه ، دو رله ، یک کامپیوتر کوچک با قطعات الکترونیکی و سیم را در خود جای دهد ، بنابراین اندازه را انتخاب کنید تا همه چیز متناسب باشد.

منبع تغذیه من دارای یک محفظه پلاستیکی بود که من با استفاده از ابزار dremel آن را پاره کردم ، سیمهای موجود را بریده و به این ترتیب منبع تغذیه ارزان و کوچکی مناسب پروژه خود دارم (تصاویر را ببینید).

کابل های موتور را آماده کنید

شما باید محاسبه کنید که طول کابل های موتور چقدر است ، یعنی تا زمانی که به جعبه کنترل برسند. به احتمال زیاد کابل های موجود به اندازه کافی طولانی نیستند ، و شما باید آنها را گسترش دهید ، هر دو سیم (کابل تیغه های موجود و کابل های فرمت) را در یک سر بچسبانید ، لوله های کوچک کننده را قرار دهید ، سیم ها را لحیم کنید و سپس با یک گرما اعمال کنید. سبک تر برای عایق کاری

در انتهای کابل افزونه یک سوکت جک دوشاخه برق 5.5 میلیمتری مردانه وجود دارد. شما باید دو سیم را به سوکت بچسبانید که نتیجه نهایی مانند تصاویر خواهد بود.

جک پریز برق زن 5.5 میلیمتری DC را داخل جعبه قرار دهید

با استفاده از دستگاه حفاری دو سوراخ را به اندازه ای بزرگ کنید که جک از آن عبور کند. دوشاخه های پریز برق را داخل دستگاه قرار دهید ، با استفاده از مهره ها پیچ کنید. سپس سیمهای ضخیم سیاه و قرمز را به هر یک از جکهای ورودی وصل کنید ، سپس آنها را با استفاده از لوله حرارتی کوچک عایق کنید. سیم ها باید به اندازه ای بلند باشند که به راحتی وارد بلوک نوار ترمینال شوند ، اما برای اشغال فضای زیاد طولانی نباشد.

نگهدارنده فیوز را با فیوز وصل کنید

در یک طرف جعبه یک سوراخ کوچک ایجاد کنید تا یک مهره کوچک که نگهدارنده فیوز را در آن قرار می دهد قرار دهید. سپس با استفاده از انبردست ، پیچ گوشتی و مهره ، آن را محکم در موقعیت خود پیچ کنید. نگهدارنده فیوز باید نزدیک محل منبع تغذیه و داخل جعبه باشد. یکبار دیگر تصاویر را بررسی کنید.

مرحله 3: ساخت PCB با وسایل الکترونیکی

ساخت PCB با وسایل الکترونیکی
ساخت PCB با وسایل الکترونیکی
ساخت PCB با وسایل الکترونیکی
ساخت PCB با وسایل الکترونیکی
ساخت PCB با وسایل الکترونیکی
ساخت PCB با وسایل الکترونیکی

PCB دارای میکروکنترلر ، ارتباط بلوتوث ، ماژول RTC ، ترانزیستور قدرت با دیود برای محافظت و مقاومت کوچک ، سیمهای اتصال دهنده و تنظیم کننده 5V است.

من شماتیک fritzig را ضمیمه کرده ام تا همه چیز آسان شود. تصویر اول نشان دهنده تصویر صادر شده از شماتیک است و sketch.fzz را نیز ضمیمه کرده ام (فایل اصلی ، می توانید آن را با این ابزار باز کنید)

مراحل لحیم کاری:

1. اتصالات PCB زن را قطع کنید ، دو اتصال 12 پین برای میکروکنترلر وجود دارد ، همچنین یک کانکتور 6 پین برای بلوتوث و یک کانکتور دیگر 12 پین دیگر در سمت راست میکروکنترلر و یک کانکتور دو پین برای رله منفی وجود دارد. و قدرت مثبت

2. پس از قطع همه اتصالات باید در پشت PCB لحیم شود

3. دو کانکتور پلاگین KF301-2P را لحیم کنید

4. تنظیم کننده L7805CV 5V را روی PCB قرار دهید. پاهای آن را خم کنید و آن را از طرف دیگر لحیم کنید و سپس پاهای اضافی را با کابل برش بزنید

5. ترانزیستور NPN Tip142T و دیود محافظ 1N4004 را لحیم کنید ، پاهای اضافی را بعد از

6. مقاومت 220 اهم را بین پایه 5 دیجیتال مربوطه و پایه پایه ترانزیستور لحیم کنید

7. سیمهای ضخیم تری را بین ترانزیستور و دوشاخه های KF301-2P لحیم کنید (قرمز و سیاه همانطور که در تصاویر مشخص شده است)

8. تمام سیمهای نازک قرمز (+) ، سیاه (-) و سفید (سیگنال) را مطابق شماتیک fritzig لحیم کنید

9. پین های نر را روی میکروکنترلر لحیم کنید به دو پین 12 نر در کناره ها نیاز دارید

10. بین هریک از پین های مربوطه سمت راست میکروکنترلر ارتباط برقرار کنید (در تصاویر بهتر توضیح داده شده است). اتصالات فقط با لحیم کاری انجام می شود (پین ها نزدیک می شوند)

11. اختیاری: با استفاده از ذره بین ، لحیم کاری ها را برای اتصال کوتاه بررسی کنید و بررسی کنید که آیا سیمها به درستی در پشت مدار چاپی لحیم شده اند یا خیر ، همچنین می توانید با استفاده از مولتی متر (تنظیم مقاومت) در صورت وجود اتصال کوتاه بین مثبت و ارتباطات منفی آزمایش دیگر تغذیه مدار بدون میکروکنترلر ، بلوتوث است

12. میکروکنترلر و بلوتوث HC-05 را بر روی pcb قرار دهید

مرحله 4: سیم کشی و مونتاژ

سیم کشی و مونتاژ
سیم کشی و مونتاژ
سیم کشی و مونتاژ
سیم کشی و مونتاژ

در حال حاضر ما PCB خود را آماده کرده ایم ، جعبه پلاستیکی ما کابل های سایه را به هم متصل کرده و سایر اجزای ما آماده شده است. تنها کاری که اکنون باید انجام دهیم سیم کشی سیستم است.

1. از طریق سوراخ جانبی بالای جعبه کابل برق AC را وارد کنید ، کابل را جدا کرده و روی منبع تغذیه لحیم کنید (اگر منبع تغذیه شما دارای پیچ است ، آن را پیچ کنید)

2. با استفاده از سیم قرمز ، خروجی (+) منبع تغذیه را در یکی از طرف فیوزها لحیم کنید ، از کمی لوله کاهنده حرارتی برای مخفی کردن سیم پهن شده استفاده کنید.

3. سیم قرمز دیگری را به طرف دیگر فیوز لوله کوچک کنید ، طرف دیگر سیم را باید در ورودی (+) کانکتور پیچ KF301-2P وارد و پیچ کنید

4. یک سیم سیاه را به طرف منبع (-) منبع تغذیه لحیم کرده و سپس آن را روی اتصال دهنده پیچ KF301-2P ورودی PCB پیچ کنید

4. با استفاده از اتصالات ورق زن و مرد ، رله مثبت و منفی را به اتصالات زن مثبت و منفی pcb وصل کنید. همچنین پایه های 8 و 9 میکروکنترلر (با استفاده از اتصالات مادر pcb در سمت چپ PCB) را به پین های ماشه رله وصل کنید

5. یک طرف بلوک نوار ترمینال را به سیمهای قرمز رنگ متصل به سیم سیاه متصل به کانکتورهای 5.5 میلی متری DC Power Plug متصل کنید. در شما بیش از یک کانکتور زن 5.5 میلی متری مانند من وجود دارد ، سپس همه سیم های قرمز به قسمت بالا سمت چپ بلوک ترمینال و تمام سیم های مشکی در سمت راست بالای بلوک ترمینال ختم می شود (تصاویر را ببینید) وقتی سایه ها را در یک جهت حرکت نمی دهید ، سیم ها را در اینجا معکوس می کنیم (در مورد آن بعداً بیشتر)

6. سیمهای مثبت و منفی ناشی از اتصال پیچ KF301-2P (خارج) را به وسط پایانه های رله وصل کنید. وسط پایانه ها را معمولی می نامند.

7. سمت چپ رله چپ (مهم نیست که چگونه واقعاً روبرو هستید) را به سمت چپ رله راست به سمت چپ پایین بلوک ترمینال وصل کنید. سپس سمت راست رله چپ را به سمت راست رله راست به سمت راست پایین بلوک ترمینال وصل کنید. بلوک ترمینال قسمت بالایی را به اتصالات زن 5.5 میلی متری متصل می کند (مرحله 5 را ببینید).

توجه: من بلوک ترمینال را به عنوان یک طرف بالا و پایین که هر یک سمت چپ و راست دارند ، توصیف کردم. مهم نیست که چگونه بلوک ترمینال را نگه دارید تا زمانی که به یاد داشته باشید چه طرفی چیست. شما می توانید تصاویر و به ویژه طرح کلی fritzig را بررسی کنید.

مرحله 5: کد آردوینو

کد آردوینو
کد آردوینو

کد باید در arduino pro mini با استفاده از آداپتور USB به سریال FTDI FT232RL بارگذاری شود.

شما باید پین GND ، VCC ، Rx ، Tx و DTR را به arduino pro mini وصل کنید. سپس نرم افزار arduino را انتخاب کنید ابزارها/پورت و هر پورتی که استفاده می کنید را باز کنید. سپس Tools/Board/Arduino Pro یا Pro Mini. سپس ابزارها/برد/پردازنده/ATmega328 (5V 16Mhz).

در نهایت ، طرح زیر را باز کرده و بارگذاری را فشار دهید.

تنظیمات: تنها چیزی که می توان در طرح تنظیم کرد pwmPower است. مقدار می تواند بین 0 تا 255 باشد و تقریباً نشان می دهد که چقدر از منبع تغذیه به موتورهای سایه می رود. این اساساً برق را سریع و خاموش می کند. من بیشتر آن را اجرا کرده ام تا بتوانم از منبع تغذیه کوچکتر بدون گرم شدن یا خاموش شدن استفاده کنم. اگر منبع تغذیه شما قدرت بیشتری نسبت به موتورها دارد ، می توانید pwmPower را روی 255 تنظیم کنید.

بنابراین این برنامه چگونه کار می کند: ابتدا به خط سریال (یک سریال نرم افزاری ثانویه) برای انتقالهای ورودی گوش می دهد. هنگامی که یک پیام ارسال می شود ، پیام در یک بافر تا "؛" خوانده می شود. موجود است یا انتهای بافر رسیده است. سپس تجزیه می شود و اگر در قالب صحیح باشد (مانند: O45 ؛) تابع toggleState با اولین حالت پارامتر و سپس مدت زمان فراخوانی می شود.

برای دستیابی به سوئیچ قطبیت ، هر دو رله باز یا بسته می شوند. ترانزیستور با استفاده از PWM برای مدت زمان مشخص روشن و خاموش می شود. O45 به این معنی است که به مدت 45 ثانیه باز می شود.

پس از اجرای دستور ، بافر پاک می شود.

مرحله 6: استفاده

استفاده
استفاده
استفاده
استفاده
استفاده
استفاده

ما می توانیم از کنترل ها به چند روش استفاده کنیم

1. از طریق برنامه بلوتوث اندروید یا آیفون (ساده ترین)

در نسخه ی نمایشی من یک برنامه اندروید به نام Bluetooth Controller را انتخاب کرده ام. این برنامه به شما اجازه می دهد دکمه هایی را که داده های سریال را ارسال می کنند سفارشی کنید. من دو دکمه به نام بالا و پایین ایجاد کرده ام ، بالا را با کد "C40" مرتبط کرده ام. و پایین با "O35؛".

"C40 ؛" به این معنی که سایه ها را به مدت 40 ثانیه می بندم (جمع می کنم) ، "035" به این معنی است که 35 ثانیه باز می شود (آنها بالا می روند). "؛" پایان دهنده فرمان است که در طرح خود انتخاب کرده ام ، به این معنی که نشان دهنده پایان یک فرمان است.

2. از طریق یک اسکریپت پایتون که به طور مداوم در پس زمینه اجرا می شود

این بخش مورد حمایت آموزش است. من یک اسکریپت پایتون دارم که روی سروری مانند تمشک pi یا لپ تاپ با دسترسی به اینترنت اجرا می شود. این به بلوتوث در جعبه کنترل متصل می شود و یک API http را نشان می دهد. به API می توان مستقیم یا از طریق چیزهای در دسترس دسترسی پیدا کرد.

من مرحله به مرحله توضیح می دهم که باید چه کار کنید

آ. اولین مورد این است که بلوتوث را جفت کنید

شما از فرمان bluetoothctl از کنسول ، در داخل نوع استفاده می کنید

روشن شدن

قابل کشف بر روی عامل در پیش فرض-عامل در اسکن روی جفت xx: xx: xx: xx: xx: xx (و رمز ورود را وارد کنید) به xx: xx: xx: xx: xx: xx (در صورت نداشتن رمز) اعتماد کنید:

سپس فایل پیکربندی bluetooth را باز کنید

vim /etc/bluetooth/rfcomm.conf

در داخل شما باید دستگاه بلوتوث خود را به این صورت پیکربندی کنید:

rfcomm1 {

صحافی بله ؛ دستگاه your_bluetooth_mac_address چیزی مانند 97: D3: 31: 21: A0: 51 ؛ کانال 1 ؛ نظر "اتصال به سایه های من bt"؛ }

اتصال ، راه اندازی مجدد خدمات بلوتوث

sudo rfcomm bind allsudo /etc/init.d/bluetooth راه اندازی مجدد sudo hciconfig hci0 up

ب نصب فلاسک ، فلاسک نویسنده اصلی:

sudo -H pip install Flask Flask -BasicAuth

ج یک فایل server.py با کد زیر ایجاد کنید و سرور را اجرا کنید:

# استفاده: رمز عبور نام کاربری پایتون httpToBluetooth bluetooth_address

# توجه: نام کاربری ، رمز عبور استفاده می شود

واردات سیستم عامل ، بلوتوث ، sys ، موضوع

from import flask Flask from flask_basicauth import BasicAuth from queue import app برنامه صف = Flask (_ name_) configuration = sys.argv app.config ['BASIC_AUTH_USERNAME'] = پیکربندی [1] app.config ['BASIC_AUTH_PASSWORD'] = پیکربندی = Queue () basic_auth = BasicAuth (app) کلاس BluetoothBackground (threading. Thread): def _init _ (self، bluetooth_address، queue): threading. Thread._ init _ (self) self._ bluetooth_address = bluetooth_address self._ صف صف = صف self.shutdown = def def false (self): self._ bluetooth = self.get_bluetooth () در حالی که self نیست. خاموش شدن: message = self._ queue.get () self._ bluetooth. ارسال (پیام) خود._ bluetooth.close () def get_bluetooth (خود): connection = bluetooth. BluetoothSocket (bluetooth. RFCOMM) connection.settimeout (هیچکدام) سعی کنید: connection.connect ((خود._ bluetooth_address، 1)) به جز استثنا ، e: چاپ 'اتصال خطا به bluetooth' + str (e) اتصال.setblocking (False) کلاس اتصال بازگشت دهنده وب سرور (threading. Thread): def run (self): port = in t (os.environ.get ('PORT'، 5000)) app.run (host = '0.0.0.0'، port = port، debug = True، use_reloader = False) @app.route ("/send_to_serial/") @basic_auth.requered def send_to_serial (command): queue.put (command) threads 'ok' return = threads.append (BluetoothBackground (پیکربندی [3] ، صف)) threads.append (وب سرور ()) [thread.start () برای موضوع در موضوعات]

برای اجرای سرور اجرا کنید:

python server.py رمز عبور کاربر 97: D2: 31: 20: A0: 51

بسیار خوب ، بنابراین server.py اسکریپت ماست ، کاربر و رمز عبور اعتبارنامه های مورد استفاده برای احراز هویت شما هستند و "97: D2: 31: 20: A0: 51" آدرس MAC بلوتوث شما است.

د از سرور خود برای ارسال فرمان از هر نقطه در جهان استفاده کنید

از نوع مرورگر: https:// your_ip: 5000/send_to_serial/C30 ؛

- کاربر و گذرواژه ای را که قبلاً هنگام راه اندازی سرور پایتون تنظیم کرده اید وارد کنید

- "C30 ؛" دستوراتی است که به دستگاه بلوتوث ارسال می شود (جعبه ما که سایه ها را کنترل می کند)

- بررسی کنید که پورت 5000 توسط فایروال شما مسدود نشده باشد (ما از آن پورت استفاده می کنیم)

- اگر پشت روتر هستید (به عنوان مثال تمشک pi) باید یک پورت را از روتر از پورت 5000 به پورت 5000 منتقل کنید

ه شما می توانید از چیزهایی برای انجام کارهایی مانند کنترل سایه ها در یک برنامه زمانی یا هنگامی که برخی از داده های حسگر کانال تغییر می کند استفاده کنید. به عنوان مثال ، می توانید یک سنسور نور (بیرون) را به تفکر متصل کنید و هنگامی که سطح نور تا حدی کاهش یافت (عصر است) می توانید سایه ها را ببندید تا افراد بیرون شما را نبینند.

با استفاده از ThingHTTP می توانید سایه ها (سرور پایتون که قبلاً راه اندازی کرده ایم) را با چیزهای متصل کنید.

من تصویری از فرم ThingHTTP با داده های پر شده به عنوان مثال و تصویری با TimeControl درج کرده ام بنابراین برای حداکثر انعطاف پذیری ، چیزهایی که شما نیاز دارید را انجام دهید.

3. از طریق برنامه اتوماسیون خانه من

این کمی پیچیده تر است ، برنامه من برای اتوماسیون خانگی بسیار بیشتر از کنترل سایه ها عمل می کند.

همچنین چراغ ها ، درب ، سنسورهای متعدد ، ادغام با سوئیچ ها و قوانین پیچیده تعریف شده توسط کاربر را کنترل می کند که می تواند به عنوان مثال اگر سطح نور داخل کم است یا صبح است سایه ها را باز کند.

می توانید مخزن github من را بررسی کنید ، و اگر سوالی دارید خوشحال می شوم به آنها پاسخ دهم.

اگر به نظر شما آموزش من تا حدودی مفید بود آن را به اشتراک بگذارید یا به موارد دلخواه اضافه کنید. و من می خواهم نظرات جالبی را نیز ببینم:)

توصیه شده: