این برنامه کاربردی رابط کاربری گرافیکی ابزاری برای تجسم محتوای جریان های داده چندگانه است که به عنوان پیام های عددی کوتاه به صورت رفت و برگشت در سراسر شبکه از طریق یک سرور MQTT ارسال می شود. این برنامه از باز کردن یک اتصال تأیید شده به سرور، اشتراک در کلاسی از پیام ها برای دریافت آنها، مشاهده ترافیک پیام و ترسیم پیام های دریافتی به عنوان نقاط در یک گرافیک به روز شده پویا پشتیبانی می کند.
![](https://duino4projects.com/wp-content/uploads/2022/01/Arduino-MQTT-Plotter-PyQt5.jpg)
کاربرد مورد انتظار این است که هر پیام توسط یک طرح آردوینو تولید شده و با استفاده از برنامه Arduino-MQTT Bridge (PyQt5) به شبکه MQTT ارسال شود. بخش زیر گزینه های قالب بندی پیام را مستند می کند.
فرمت داده
هر پیام دریافتی به صورت اعداد صحیح متنی که با فاصله از هم جدا شده اند پردازش می شود. طول پیام دو یا پنج مقدار: با دو مقدار، آنها به عنوان مکان X و Y ("XY")، با پنج مقدار به عنوان یک موقعیت و یک رنگ RGB ("XYRGB") تفسیر می شوند. همه مقادیر ممکن است از 0 تا 100 شامل باشد. از نام موضوع برای شناسایی نقطه استفاده می شود، بنابراین چندین پیام در یک موضوع به صورت پویا یک نقطه طرح را جابه جا می کند. برخی از پیام های نمونه دنبال می شود.
متن پیام | نتیجه گرافیکی در یک نقطه رسم شده |
---|---|
0 0 | نقطه را به گوشه پایین سمت چپ منتقل کنید |
50 50 | نقطه را به مرکز منتقل کنید |
100 50 100 0 0 | به لبه سمت راست بروید و آن را قرمز کنید |
75 75 0 0 100 | نزدیک بالا سمت راست حرکت کنید و آن را آبی رنگ کنید |
الزامات نصب
کد نیاز به نصب کاری پایتون 3 با PyQt5 و paho-mqtt دارد. برای پیشنهادات در مورد راه اندازی سیستم خود لطفاً به نصب پایتون 3 مراجعه کنید.
راهنمای کاربر
رابط کاربری گرافیکی اتصال از مانیتور MQTT (PyQt5) مشتق شده است. روش استفاده به طور کلی از این ترتیب است:
qt_mqtt_plotter.py
برنامه را با استفاده از پایتون 3 اجرا کنید .- پورت مربوط به شماره دوره خود را انتخاب کنید.
- نام کاربری و رمز عبور ارائه شده توسط مربی خود را وارد کنید.
- بررسی کنید که آدرس سرور باشد
mqtt.ideate.cmu.edu
، سپس روی اتصال کلیک کنید. - یک الگوی اشتراک با توجه به نیاز خود وارد کنید. این ابزار برای نمایش همه پیام ها طراحی شده است، بنابراین علامت عام پیش فرض
#
برای گرفتن همه پیام ها معمول است. با این حال، الگویی مانندusername/#
ترافیک نمایش داده شده را به یک فرستنده خاص محدود می کند. - بررسی کنید که پیام های داده در قسمت متن ظاهر می شوند.
- سپس برگه طرح یک گرافیک متحرک نشان می دهد که در آن هر جریان موضوعی با یک نقطه متحرک با مکان دو بعدی و رنگ سه بعدی نشان داده می شود.
اسناد کد منبع
اگر در مورد عملکرد داخلی برنامه کنجکاو هستید، بقیه این صفحه مستندات دقیقی را ارائه می دهد. این بخش برای استفاده از سیستم ضروری نیست.
برنامه اصلی
کلاس mqtt.qt_mqtt_plotter.MainApp
شی برنامه اصلی دارای هر حالت غیر مرتبط با رابط کاربری گرافیکی است.
MainGUI
کلاس mqtt.qt_mqtt_plotter.MainGUI
( اصلی ، *args ، **kwargs )
یک پنجره اصلی سفارشی که تمام کنترل های رابط کاربری گرافیکی را فراهم می کند. برای رسیدگی به درخواستهای کاربر به یک شیء برنامه اصلی نمایندگی نیاز دارد. closeEvent
( خود ، QCloseEvent )
خروجی را در قسمت متن کنسول به روشی ایمن بنویسید. Qt فقط اجازه تماس از رشته اصلی را می دهد، اما روال سرویس در رشته های جداگانه اجرا می شود.