این برنامه رابط کاربری گرافیکی یک طرح آردوینو را به یک سرور MQTT راه دور از طریق شبکه متصل می کند. با استفاده از پورت سریال با آردوینو ارتباط برقرار می کند و خطوط متن را به سرور MQTT و از آن منتقل می کند. این می تواند به عنوان یک پلتفرم برای همکاری آردوینو از راه دور با آردوینو استفاده شود.
این برنامه همه در یک فایل ارائه شده است و می توان آن را به طور مستقیم از qt_arduino_mqtt_bridge.py دانلود کرد. بخشهای زیر هم مستندات و هم کد کامل را دارند.
الزامات نصب
کد نیاز به نصب کاری پایتون 3 با PyQt5 و paho-mqtt دارد. برای پیشنهادات در مورد راه اندازی سیستم خود لطفاً به نصب پایتون 3 مراجعه کنید.
راهنمای کاربر
روش استفاده به طور کلی از این ترتیب است:
- RemoteStation Arduino Sketch را با استفاده از Arduino IDE روی آردوینو خود نصب کنید. این طرح ممکن است نقطه شروع مناسبی برای راه حل سفارشی شما باشد.
- از Arduino IDE خارج شوید تا پورت سریال Arduino آزاد شود.
qt_arduino_mqtt_bridge.py
برنامه را با استفاده از پایتون 3 اجرا کنید .- پورت سریال آردوینو خود را از منوی بازشو انتخاب کنید، سپس روی Connect کلیک کنید.
- پورت مربوط به شماره دوره خود را انتخاب کنید.
- نام کاربری و رمز عبور ارائه شده توسط مربی خود را وارد کنید.
- بررسی کنید که آدرس سرور باشد
mqtt.ideate.cmu.edu
، سپس روی اتصال کلیک کنید. - اندرو ID خود را در قسمت ارسال وارد کنید. این پیام های ارسالی شما را شناسایی می کند.
- اندرو ID شریک خود را در قسمت دریافت وارد کنید. این پیام های دریافتی را انتخاب می کند.
در صورت آزمایش محلی، اجرای مانیتور MQTT (PyQt5) به منظور شبیه سازی سیستم همکار نیز راحت است.
اسناد کد منبع
اگر در مورد عملکرد داخلی برنامه کنجکاو هستید، بقیه این صفحه مستندات دقیقی را ارائه می دهد. این بخش برای استفاده از سیستم ضروری نیست.
برنامه اصلی
کلاس mqtt.qt_arduino_mqtt_bridge.MainApp
شی برنامه اصلی دارای هر حالت غیر مرتبط با رابط کاربری گرافیکی است. send_arduino_message
( بار محموله )
یک پیام از آردوینو به موضوع فعلی منتقل کنید. send_message
( بار محموله )
پیام وارد شده توسط کاربر را منتشر کنید.
QtArduinoMQTT
کلاس mqtt.qt_arduino_mqtt_bridge.QtArduinoMQTT
( اصلی )
کلاس مدیریت اتصال سریال به طرح آردوینو MQTT با استفاده از شی Qt QSerialPort برای انتقال داده. پروتکل داده بر اساس خطوط متن است. available_ports
()