فهرست مطالب:

تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT: 8 مرحله
تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT: 8 مرحله

تصویری: تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT: 8 مرحله

تصویری: تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT: 8 مرحله
تصویری: آموزش ساخت تابلو با کمترین هزینه | MAKE SHOP SIGNS INEXPENSIVE 2024, نوامبر
Anonim
Image
Image
تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT
تابلوی اعلانات دیجیتال با استفاده از رزبری پای و پروتکل MQTT

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

در این دستورالعمل بیایید یاد بگیریم که صفحه اعلانات دیجیتال خود را با Raspberry Pi بسازیم تا مقدار زیادی کاغذ و تونر ذخیره کنیم!

مرحله 1: تابلوی اعلانات دیجیتال چگونه کار می کند؟

تابلو اعلانات دیجیتال چگونه کار می کند؟
تابلو اعلانات دیجیتال چگونه کار می کند؟
  • Raspberry Pi به یک صفحه نمایش HDMI متصل است که صفحه اعلانات دیجیتال ما است.
  • از رایانه Windows استفاده می شود تا اعلان را در صفحه اعلانات دیجیتال از طریق اینترنت منتشر کند.
  • اعلان منتشر شده توسط Windows PC توسط هیئت اعلانات دیجیتال از طریق کارگزار CloudMQTT دریافت می شود.
  • ارتباط بین رایانه شخصی ویندوز و تابلوی اعلانات دیجیتال با پروتکل MQTT حاصل می شود.

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

  1. رزبری پای با سیستم عامل Rasbian
  2. نمایش با پورت HDMI
  3. کامپیوتر ویندوز
  4. اتصال اینترنت
  5. حساب CloudMQTT

مرحله 3: طراحی رابط کاربری گرافیکی برای نمایش اعلان ها:

Image
Image
طراحی رابط کاربری گرافیکی برای نمایش اعلان ها
طراحی رابط کاربری گرافیکی برای نمایش اعلان ها

ما باید 2 GUI طراحی کنیم ، یکی برای Raspberry Pi برای نمایش اعلان بر روی صفحه HDMI و دیگری برای Windows PC برای انتشار اعلان به Raspberry Pi از طریق کارگزار CloudMQTT.

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

طراحی GUI در رایانه Windows آسان است ، بنابراین اجازه دهید GUI Digital Notice Board را در رایانه Windows طراحی کرده و کد را در Raspberry Pi کپی کنیم.

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

Anaconda (که شامل پایتون 2.7 ، بسته Qt Designer و Spyder IDE است).

Qt Designer ابزاری است که برای طراحی رابط کاربری گرافیکی استفاده می شود. خروجی طراح Qt یک فایل.ui خواهد بود ، بعداً می توان آن را برای پردازش بیشتر به.py تبدیل کرد.

در ویدیو چه می گذرد ؟:

  • Windows Anakonda Windows Installer را برای python 2.7 بارگیری کرده و در رایانه ویندوزی نصب کنید (مراحل نصب معمولی).
  • پس از نصب ، می توانید ابزار Qt Designer را در "install_directory / Library / bin / designer.exe" (برای من "C: / Anaconda2 / Library / bin / designer.exe") پیدا کنید.
  • یک میانبر برای "designer.exe" ایجاد کرده و آن را روی میز کار قرار دهید.
  • "designer.exe" را باز کنید.
  • یک پنجره اصلی جدید ایجاد کنید.
  • طرح بندی ها و نماهای مورد نیاز (نمای متن ، نمای برچسب و غیره) را انتخاب کرده و قرار دهید.
  • به عنوان فایل Rpi_UI.ui ذخیره کنید.
  • برای تبدیل آن به فایل.py در پوشه فعلی که فایل Rpi_UI.ui وجود دارد ، دستور cmd را باز کنید و دستور زیر را تایپ کنید

installation_directory / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

برای من این است ،

C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

این دستور فایل Rpi_UI.ui را به فایل Rpi_UI.py تبدیل کرده و در همان فهرست قرار می دهد.

  • فایل Rpi_UI.py را با Spyder IDE که در Anaconda موجود است باز کنید.
  • اجرای اسکریپت GUI ای را که قبلاً طراحی کرده بودیم نشان می دهد.

در مرحله بعد ، اجازه دهید حساب CloudMQTT را تنظیم کنیم.

مرحله 4: تنظیم حساب CloudMQTT:

Image
Image
  • از این پیوند دیدن فرمایید.
  • با ایمیل یک حساب کاربری ایجاد کرده و وارد حساب خود شوید.
  • ایجاد نمونه جدید (من آن را TEST_1 نامگذاری کردم).
  • اطلاعات Instance را باز کنید.
  • سرور ، کاربر ، رمز عبور و پورت را یادداشت کنید.
  • به CloudMQTT Python Documentation مراجعه کنید و اسکریپت را به عنوان CloudMQTT.py ذخیره کنید.
  • کد نمونه در اسناد نیاز به کتابخانه paho دارد ، Paho Python Client را با استفاده از ابزار pip نصب کنید ، cmd را به عنوان سرپرست باز کنید و دستور زیر را وارد کنید.

pip نصب paho-mqtt

مرحله 5: کد نهایی Raspberry Pi توضیح داده شده است:

در اینجا اجازه دهید نحوه ترکیب فایل RPi_UI.py با CloudMQTT.py و ذخیره آن به عنوان RPi_UI.py را توضیح دهم.

در صورت نصب نبودن کتابخانه ها ، فقط آن را نصب کنید

وارد کردن paho.mqtt.client به عنوان mqtt

وارد کردن urlparse از PyQt5 وارد کردن QtGui ، QtWidgets ، QtCore از PyQt5. QtCore وارد کردن QTimer ، QTime از وارد کردن موضوع از طریق واردات موضوع واردات sys از google_drive_downloader وارد کردن GoogleDriveDownloader به عنوان gdd import os

برای نصب googledrivedownloader ، از دستور استفاده کنید

pip نصب googledrivedownloader

شروع متغیرها ،

icon = "[email protected]"

contestImg = "black" meeting1 = "Meeting1:" venue1 = "زمان و مکان 1." meeting2 = "Meeting2:" venue2 = "زمان و مکان 2." meeting3 = "Meeting3:" venue3 = "زمان و مکان 3."

کلاس Ui_MainWindow دنبال می شود

کلاس Ui_MainWindow (شی):

def setupUi (self، MainWindow):… def retranslateUi (self، MainWindow):… def _update (خود):…

خطوط زیر در تابع setupUi با فراخوانی تابع _update هر 3 ثانیه GUI را به روز می کند

self.retranslateUi (MainWindow)

QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)

تابع on_message منتظر پیام کارگزار است ، پس از دریافت پیام ، تصویر را با استفاده از شناسه پیوند قابل اشتراک گذاری google drive بارگیری می کند و همچنین مقدار متغیرهای جهانی را تغییر می دهد

def on_message (client، obj، msg):

print (str (msg.payload)) if (str (msg.payload)): noticeReceived = str (msg.payload) result = re.search ('٪ 1 (.*)٪ 2 (.*)٪ 3 (. *)٪ 4 (.*)٪ 5 (.*)٪ 6 (.*)٪ 7 (.*)٪ 8 '، noticeReceived) مسابقه جهانی تصویر جهانی جلسه 1 مکان جهانی 1 نشست جهانی 2 مکان جهانی 2 نشست جهانی 3 مکان جهانی 3 fileId = "" +result.group (1)+"" path = "/home/pi/Desktop/Instructables/RPi UI/ContestImages/"+result.group (1)+". jpg" gdd.download_file_from_google_drive (file_id = fileId، dest_path = path) contestImg = result.group (1) جلسه1 = result.group (2) ven11 = result.group (3) جلسه2 = result.group (4) ven22 = result.group (5) جلسه3 = result.group (6) venue3 = result.group (7)

کد شامل 2 حلقه بی نهایت است ،

rc = mqttc.loop ()

و

sys.exit (app.exec_ ())

برای اجرای همزمان این حلقه ها ، از مفهوم Threading استفاده کرده ام

def sqImport (tId): if tId == 0: while 1: rc = 0 while rc == 0: rc = mqttc.loop () print ("rc:" + str (rc)) if tId == 1: while 1: app = QtWidgets. QApplication (sys.argv) MainWindow = QtWidgets. QMainWindow () ui = Ui_MainWindow () ui.setupUi (MainWindow) MainWindow.show () sys.exit (app.exec_ ()) threadA = موضوع (target) = sqImport، args = [0]) threadB = موضوع (target = sqImport، args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

جالب است ، ما راه اندازی Raspberry Pi را تکمیل کردیم ، سپس اجازه دهید GUI را برای Windows PC طراحی کنیم تا پیام را به Raspberry Pi منتشر کند.

مرحله 6: رابط کاربری رایانه Windows:

رابط کاربری Windows PC
رابط کاربری Windows PC
  • یک GUI برای ویندوز طراحی کنید و آن را به عنوان Windows_UI.ui ذخیره کنید.
  • آن را به یک فایل پایتون تبدیل کنید.
  • آن را با فایل CloudMQTT.py ترکیب کرده و آن را به عنوان Windows_UI.py ذخیره کنید.
  • عملکرد فایل Windows_UI.py شبیه به فایل RPi_UI.py است ، تنها تفاوت این است که فایل Windows_UI.py پیام را منتشر می کند در حالی که RPi_UI.py پیام را دریافت می کند.

مرحله 7: کد نهایی Windows PC توضیح داده شده است:

  • فایل Windows_UI.py تمام کلاسها و عملکردهای RPi_UI.ui را به جز چند مورد دارد.
  • به جای تابع on_message ، یک تابع on_publish برای انتشار پیام دارد.
  • کد زیر در تابع retranslateUi پس از کلیک روی دکمه PUBLISH ، تابع انتشار را فراخوانی می کند.

self.pushButton.clicked.connect (self.publish)

  • عملکرد انتشار شناسه پیوند قابل اشتراک Google Drive و اطلاعات جلسه را در بر می گیرد و آن را تحت عنوان "اطلاع" منتشر می کند.
  • این پیام توسط Raspberry Pi دریافت می شود.

مرحله 8: صفحه اعلانات دیجیتال را تنظیم کنید:

  • رزبری پای را به یک صفحه نمایش HDMI وصل کنید ، من از تلویزیون سونی خود به عنوان صفحه نمایش صفحه اعلانات دیجیتال استفاده کرده ام.
  • فایل RPi_UI.py را در Raspberry Pi اجرا کنید.
  • فایل Windows_UI.py را در رایانه Windows اجرا کنید.
  • شناسه پیوند Google Drive تصویر مسابقه و اعلام جلسه را وارد کنید.
  • روی دکمه PUBLISH کلیک کنید.
  • اکنون می توانید تابلوی اعلانات دیجیتال به روز شده را در عرض چند ثانیه مشاهده کنید.

نکات:

  • شما می توانید تعداد دلخواه تابلوی اعلانات دیجیتال را ایجاد کنید و تابلوها می توانند در موضوعات مختلف مشترک شوند.
  • برای اینکه فایل Windows_UI.py قابل حمل باشد ، می توانید فایل را با استفاده از pyinstaller به یک فایل اجرایی تبدیل کنید تا بتوانید فایل اجرایی را در هر رایانه ویندوزی بدون نصب کتابخانه های مورد نیاز در رایانه اجرا کنید.

متشکرم

صابری کاننان م

توصیه شده: