فهرست مطالب:

مدل کنترل قطار WiFi با استفاده از MQTT: 9 مرحله
مدل کنترل قطار WiFi با استفاده از MQTT: 9 مرحله

تصویری: مدل کنترل قطار WiFi با استفاده از MQTT: 9 مرحله

تصویری: مدل کنترل قطار WiFi با استفاده از MQTT: 9 مرحله
تصویری: آموزش برق ساختمان،نصب ریموت چهار کاناله روشن کردن لامپ با استفاده از ریموت 2024, نوامبر
Anonim
مدل کنترل قطار WiFi با استفاده از MQTT
مدل کنترل قطار WiFi با استفاده از MQTT

با داشتن یک سیستم مدل قطار مقیاس TT قدیمی ، من ایده ای داشتم که چگونه لوکوها را به صورت جداگانه کنترل کنم.

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

به این ترتیب سیستم قطار مدل کنترل شده WiFi متولد می شود.

مرحله 1: پیش بینی های عملیات

پیش بینی های عملیات
پیش بینی های عملیات

اصل اصلی این است که هر عنصر را به صورت جداگانه کنترل کنید ، یا از یک کنترلر واحد ، یا از منابع کنترل متعدد. این به طور ذاتی به یک لایه فیزیکی مشترک - به وضوح WiFi - و یک پروتکل ارتباطی مشترک ، MQTT نیاز دارد.

عنصر اصلی کارگزار MQTT است. هر دستگاه متصل (قطار ، سنسور ، خروجی …) فقط مجاز است از طریق بروکر ارتباط برقرار کند و فقط می تواند داده ها را از بروکر دریافت کند.

قلب دستگاه ها یک کنترل کننده WiFi مبتنی بر ESP8266 است ، در حالی که کارگزار MQTT با Raspberry pi کار می کند.

در ابتدا پوشش Wifi توسط روتر WiFi ارائه می شود و همه چیز از طریق وایرلس متصل می شود.

4 نوع دستگاه وجود دارد:

- کنترل کننده قطار: دارای 2 ورودی دیجیتال ، 1 خروجی دیجیتال ، 2 خروجی PWM (برای کنترل 2 موتور DC جداگانه) ،

- کنترل سنسور: دارای 7 ورودی دیجیتال (برای کلیدهای ورودی ، حسگرهای نوری …) ،

- کنترل کننده خروجی: دارای 8 خروجی دیجیتال (برای سوئیچ های راه آهن …) ،

- ریموت WiFi: دارای 1 ورودی رمزگذار افزایشی ، 1 ورودی دیجیتال (برای کنترل قطارها از راه دور).

این سیستم همچنین می تواند از Node-Red (از رایانه لوحی ، رایانه یا تلفن هوشمند) کار کند.

مرحله 2: تبادل داده و پیکربندی MQTT

تبادل و پیکربندی داده MQTT
تبادل و پیکربندی داده MQTT

بر اساس پروتکل MQTT ، در ابتدا هر دستگاه در یک موضوع خاص مشترک می شود و می تواند در یک موضوع دیگر منتشر کند. این اساس ارتباطات شبکه کنترل قطار است.

این قصه های ارتباطی از طریق پیام های فرمت JSON قرار می گیرد ، کوتاه و قابل خواندن برای انسان است.

از منظر دورتر: شبکه دارای یک روتر WiFi با SSID (نام شبکه) و رمز عبور خود است. هر دستگاهی برای دسترسی به شبکه WiFi باید این 2 مورد را بشناسد. کارگزار MQTT نیز بخشی از این شبکه است ، بنابراین برای استفاده از پروتکل MQTT هر دستگاهی باید آدرس IP کارگزار را بداند. و در نهایت هر دستگاه موضوع مشترک خود را برای اشتراک و انتشار پیام ها دارد.

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

مرحله 3: آموزش کنترل کننده

کنترل کننده قطار
کنترل کننده قطار

به منظور کنترل یک قطار اسباب بازی ، ما اساساً به 3 چیز نیاز داریم: منبع تغذیه ، کنترلر WiFi ، و وسایل الکترونیکی درایور موتور.

منبع تغذیه به برنامه مصرف واقعی بستگی دارد: در مورد LEGO ، این جعبه باتری Power Functions است ، در مورد مجموعه قطار مقیاس TT یا H0 "oldschool" ، منبع تغذیه پیست 12 ولت است.

کنترلر WiFi دارای کنترلر Wemos D1 mini (مبتنی بر ESP8266) است.

قطعات الکترونیکی درایور موتور یک ماژول مبتنی بر TB6612 است.

کنترلر قطار دارای 2 خروجی PWM به صورت جداگانه است. به طور همزمان یکی برای کنترل موتور و دیگری برای سیگنالینگ نور استفاده می شود. دارای 2 ورودی برای تشخیص مبتنی بر تماس نی و یک خروجی دیجیتال.

کنترل کننده پیام های JSON را از طریق پروتکل WiFi و MQTT می پذیرد.

SPD1 موتور را کنترل می کند ، به عنوان مثال: پیام {"SPD1": -204} برای حرکت موتور به عقب با 80٪ قدرت (حداکثر مقدار سرعت -255) استفاده می شود.

SPD2 شدت نور LED "حساس به جهت" را کنترل می کند: پیام "" SPD2 ": -255} باعث می شود که LED (عقب) در تمام قدرت خود بدرخشد.

OUT1 وضعیت خروجی دیجیتال را کنترل می کند: {"OUT1": 1} خروجی را روشن می کند.

اگر وضعیت ورودی تغییر کند ، کنترل کننده مطابق آن پیامی ارسال می کند: {"IN1": 1}

اگر کنترل کننده یک پیام معتبر دریافت کند ، آن را اجرا می کند و به کارگزار بازخورد می دهد. بازخورد در واقع دستور اجرا شده است. به عنوان مثال: اگر کارگزار {"SPD1": 280} را ارسال کند ، موتور با قدرت کامل کار می کند ، اما پیام بازخورد این خواهد بود: {"SPD1": 255}

مرحله 4: LEGO Train Control

LEGO Train Control
LEGO Train Control

در مورد قطار LEGO ، شماتیک کمی متفاوت است.

منبع تغذیه مستقیماً از جعبه باتری تامین می شود.

برای تهیه 3.5 ولت برای برد لولین مبتنی بر ESP8266 نیاز به یک مبدل کوچک به پایین است.

اتصالات با یک سیم گسترش LEGO 8886 ، به نصف انجام می شود.

مرحله 5: کنترل از راه دور

کنترل از راه دور
کنترل از راه دور

کنترل کننده فقط پیام هایی را برای قطار منتشر می کند (که توسط سوئیچ BCD تعریف شده است).

با چرخاندن رمزگذار ، کنترل از راه دور پیام های {"SPD1": "+"} یا {"SPD1": "-"} را ارسال می کند.

وقتی قطار این پیام "نوع افزایشی" را دریافت می کند ، مقدار خروجی PWM خود را 51 یا 51 تغییر می دهد.

به این ترتیب ریموت می تواند سرعت قطار را در 5 مرحله (هر جهت) تغییر دهد.

با فشار دادن رمزگذار افزایشی ، {"SPD1": 0} ارسال می شود.

مرحله 6: کنترل کننده سنسور

کنترل کننده سنسور
کنترل کننده سنسور

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

به عنوان مثال: {"IN1": 0 ، "IN6": 1} در این مثال 2 ورودی حالت را به طور همزمان تغییر دادند.

مرحله 7: کنترل کننده خروجی

کنترل کننده خروجی
کنترل کننده خروجی

کنترل کننده خروجی دارای 8 خروجی دیجیتال است که به یک ماژول مبتنی بر ULN2803 متصل هستند.

پیامها را از طریق موضوع مشترک خود دریافت می کند.

به عنوان مثال پیام {"OUT4": 1 ، "OUT7": 1} خروجی دیجیتال 4. و 7. را روشن کنید.

مرحله 8: Raspberry Pi و WiFi Router

من از روتر WiFI TP-Link استفاده می کردم ، بنابراین از آن به عنوان نقطه دسترسی استفاده کردم.

کارگزار MQTT رزبری پای است که Mosquitto روی آن نصب شده است.

من از سیستم عامل استاندارد Raspbian با MQTT استفاده می کنم که شامل موارد زیر است:

sudo apt-get نصب mosquitto mosquitto-client python-mosquitto

روتر TP-Link باید طوری تنظیم شده باشد که رزرو رزرو آدرس را داشته باشد ، بنابراین پس از هر بار راه اندازی مجدد Pi آدرس IP یکسانی دارد و هر دستگاهی می تواند به آن متصل شود.

و بس!

مرحله 9: کنترلرهای تمام شده

کنترلرهای تمام شده
کنترلرهای تمام شده
کنترلرهای تمام شده
کنترلرهای تمام شده

در اینجا کنترلرهای به پایان رسیده است.

لوکو مقیاس TT دارای اندازه کوچکی است به طوری که یک تخته لولین باید باریک (بریده) شود تا به اندازه کافی کوچک در قطار باشد.

فایلهای باینری کامپایل شده قابل بارگیری هستند. به دلایل امنیتی ، گسترش سطل زباله به txt جایگزین شد.

توصیه شده: