Mundarija:
- 1 -qadam: Raqamli xabarlar paneli qanday ishlaydi?
- 2 -qadam: Kerakli narsalar:
- 3 -qadam: Xabarlarni ko'rsatish uchun GUI dizayni:
- 4 -qadam: CloudMQTT hisobini o'rnating:
- 5 -qadam: Raspberry Pi yakuniy kodi tushuntiriladi:
- 6 -qadam: Windows kompyuter GUI:
- 7 -qadam: Windows kompyuterining yakuniy kodi tushuntiriladi:
- 8 -qadam: Raqamli xabarlar taxtasini o'rnating:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
E'lonlar taxtasi deyarli hamma joyda, masalan, ofis, maktab, kasalxona va mehmonxonalarda ishlatiladi. Ulardan muhim xabarlarni ko'rsatish yoki bo'lajak voqealar yoki uchrashuvlarni reklama qilish uchun qayta -qayta foydalanish mumkin. Ammo xabar yoki reklama qog'ozga bosilishi va e'lonlar taxtasida mahkamlanishi kerak.
Bu yo'riqnomada keling, Raspberry Pi yordamida raqamli bildirishnomalar taxtasini yaratishni o'rganamiz, shuning uchun ko'p qog'oz va tonerni tejash mumkin!
1 -qadam: Raqamli xabarlar paneli qanday ishlaydi?
- Raspberry Pi bizning raqamli xabarlar paneli bo'lgan HDMI displeyiga ulangan.
- Windows kompyuteri Internet orqali raqamli xabarlar taxtasida e'lonni joylashtirish uchun ishlatiladi.
- Windows kompyuterida e'lon qilingan bildirishnoma DigitalMa'lumotlar kengashi tomonidan CloudMQTT brokeri orqali qabul qilinadi.
- Windows kompyuteri va Raqamli xabarlar paneli o'rtasidagi aloqa MQTT protokoli orqali amalga oshiriladi.
2 -qadam: Kerakli narsalar:
- Rasbian OS bilan Raspberry Pi
- HDMI portli displey
- Windows kompyuter
- Internetga ulanish
- CloudMQTT hisob qaydnomasi
3 -qadam: Xabarlarni ko'rsatish uchun GUI dizayni:
Biz ikkita GUI -ni ishlab chiqishimiz kerak, bittasi Raspberry Pi uchun HDMI displeyida, ikkinchisi Windows -da Raspberry Pi -ga CloudMQTT vositachisi orqali xabar yuborish uchun.
GUI dizayni raqamli xabarlar taxtasi joylashtiriladigan joyga bog'liq. Masalan, kelgusi voqealar va uchrashuvlarni namoyish qilish uchun Instructables Office uchun GUI loyihalashtirishga ruxsat bering, shunda xodimlar so'nggi ma'lumotlar bilan yangilanib turishi mumkin.
Windows kompyuterida GUI -ni loyihalash oson, shuning uchun Windows kompyuteridagi Raqamli xabarlar paneli GUI -ni loyihalashtiramiz va kodni Raspberry Pi -ga ko'chiramiz.
Kerakli dasturiy ta'minot:
Anaconda (unga python 2.7, Qt Designer to'plami va Spyder IDE kiradi).
Qt Designer - bu GUI -larni loyihalashda ishlatiladigan vosita. Qt Designer -ning chiqishi.ui fayli bo'ladi, keyinchalik uni keyingi jarayon uchun.py ga aylantirish mumkin.
Videoda nima bo'lyapti?:
- Python 2.7 uchun Anaconda Windows Installer dasturini yuklab oling va uni Windows kompyuteriga o'rnating (oddiy o'rnatish jarayoni).
- O'rnatishdan so'ng siz Qt Designer vositasini "install_directory / Library / bin / designer.exe" dan topishingiz mumkin (men uchun bu "C: / Anaconda2 / Library / bin / designer.exe")
- "Designer.exe" uchun yorliq yarating va uni ish stoliga joylashtiring.
- "dizayner.exe" ni oching.
- Yangi asosiy oyna yarating.
- Jadvallarni va kerakli ko'rinishni tanlang va joylashtiring (matn ko'rinishi, yorliq ko'rinishi va boshqalar).
- Rpi_UI.ui fayli sifatida saqlang.
- Uni.py faylga aylantirish uchun Rpi_UI.ui fayli mavjud papkada cmd buyrug'ini oching va quyidagi buyruqni kiriting.
install_directory / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
men uchun bu, C: / Anaconda2 / kutubxona / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
bu buyruq Rpi_UI.ui faylini toRpi_UI.py faylga o'zgartiradi va uni o'sha katalogga joylashtiradi.
- Anaconda -ga kiritilgan Spyder IDE bilan Rpi_UI.py faylini oching.
- Skriptni ishga tushirish biz ilgari ishlab chiqqan GUIni ko'rsatadi.
Keling, CloudMQTT hisobini o'rnataylik.
4 -qadam: CloudMQTT hisobini o'rnating:
- Bu havolaga tashrif buyuring.
- Elektron pochta orqali hisob yarating va hisobingizga kiring.
- Yangi misol yarating (men uni TEST_1 deb nomladim).
- Instance ma'lumotlarini oching.
- Server, foydalanuvchi, parol va portga e'tibor bering.
- CloudMQTT Python hujjatlariga murojaat qiling va skriptni CloudMQTT.py sifatida saqlang.
- Hujjatlardagi misol kodi paho kutubxonasini talab qiladi, Paho Python Client -ni pip vositasi yordamida o'rnating, cmd buyrug'ini administrator sifatida oching va quyidagi buyruqni kiriting.
paho-mqtt ni o'rnatish
5 -qadam: Raspberry Pi yakuniy kodi tushuntiriladi:
RPi_UI.py faylini CloudMQTT.py bilan birlashtirish va uni RPi_UI.py sifatida saqlash usulini tushuntirib beray.
Kutubxonalarni import qiling, agar u o'rnatilmagan bo'lsa, uni o'rnating
paho.mqtt.client -ni mqtt sifatida import qiling
PyQt5 dan urlparse import QtGui, QtWidgets, QtCore PyQt5. QtCore import QTimer, QTime importdan Thread import sys import google_drive_downloader dan import GoogleDriveDownloader gdd import os sifatida
Googledrivedownloader -ni o'rnatish uchun buyruqdan foydalaning
pip install googledrivedownloader
O'zgaruvchilarni ishga tushirish,
ikonka = "[email protected]"
CompetImg = "qora" uchrashuv1 = "Uchrashuv1:" joy1 = "Vaqt va makon1." uchrashuv2 = "Uchrashuv2:" joy2 = "Vaqt va makon2." Meeting3 = "Uchrashuv3:" joy3 = "Vaqt va makon3."
Ui_MainWindow sinfidan keyin
sinf Ui_MainWindow (ob'ekt):
def setupUi (o'zini, MainWindow):… def retranslateUi (o'zini, MainWindow):… def _update (o'zini):…
SetupUi funktsiyasidagi quyidagi satrlar GUIni har 3 soniyada _update funktsiyasini chaqirib yangilaydi
self.retranslateUi (MainWindow)
QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)
On_message funktsiyasi brokerdan xabarni kutadi, xabar qabul qilingandan so'ng u google drayveridan tasvirni google drayverini almashish havolasi identifikatori yordamida yuklaydi va global o'zgaruvchilar qiymatlarini o'zgartiradi
def on_message (mijoz, obj, xabar):
print (str (msg.payload)) if (str (msg.payload)): noteReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', bildirishnoma Qabul qilingan) global tanlovImg global yig'in1 global joy1 global yig'ilish2 global maydon2 global yig'ilish3 global joy3 global joy3 fileId = "" +result.group (1)+"" path = "/home/pi/Desktop/Instructables/RPi UI/ContestImages/"+result.group (1)+". jpg" gdd.download_from_google_drive (file_id = fileId, dest_path = yo'l) CompetitionImg = natija guruhi (1) yig'ilish1 = natija guruhi (2) joy1 = natija guruhi (3) yig'ilish2 = natija guruhi (4) joy2 = natija guruhi (5) yig'ilish3 = natija guruhi (6) joy 3 = natija guruhi (7)
Kod 2 cheksiz ko'chadan iborat,
rc = mqttc.loop ()
va
sys.exit (app.exec_ ())
Ushbu ko'chadan bir vaqtning o'zida ishlash uchun men Threading kontseptsiyasidan foydalandim
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 = mavzu (maqsad) = sqImport, args = [0]) threadB = Thread (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()
Ajoyib, biz Raspberry Pi -ni o'rnatishni yakunladik, keyin xabarni Raspberry Pi -ga nashr qilish uchun Windows PC uchun GUI -ni ishlab chiqamiz.
6 -qadam: Windows kompyuter GUI:
- Windows uchun GUI -ni yarating va uni Windows_UI.ui sifatida saqlang.
- Uni python faylga aylantiring.
- Uni CloudMQTT.py fayli bilan birlashtiring va Windows_UI.py sifatida saqlang.
- Windows_UI.py faylining vazifasi RPi_UI.py fayliga o'xshaydi, faqat farq Windows_UI.py fayli xabarni, RPi_UI.py esa xabarni oladi.
7 -qadam: Windows kompyuterining yakuniy kodi tushuntiriladi:
- Windows_UI.py faylida RPi_UI.ui -ning barcha sinflari va funktsiyalari mavjud, bir nechtasidan tashqari.
- On_message funktsiyasi o'rniga, xabarni chop etish uchun on_publish funksiyasi mavjud.
- RetanslateUi funktsiyasidagi quyidagi kod PUBLISH tugmasi bosilgandan so'ng nashr qilish funktsiyasini chaqiradi.
self.pushButton.clicked.connect (self.publish)
- Nashr qilish funktsiyasi Google drayveri almashish havolasi identifikatori va uchrashuv ma'lumotlarini birlashtiradi va "xabarnoma" mavzusi ostida nashr etadi.
- Bu xabar Raspberry Pi tomonidan qabul qilinadi.
8 -qadam: Raqamli xabarlar taxtasini o'rnating:
- Raspberry Pi -ni HDMI displeyiga ulang, men Sony televizorimni raqamli xabarlar paneli sifatida ishlatganman.
- Raspberry Pi -da RPi_UI.py faylini ishga tushiring.
- Windows kompyuterida Windows_UI.py faylini ishga tushiring.
- Tanlov tasviri va uchrashuv haqidagi Google disk havolasi identifikatorini kiriting.
- PUBLISH tugmasini bosing.
- Endi siz bir necha soniya ichida yangilangan raqamli xabarlar taxtasini ko'rishingiz mumkin.
Maslahatlar:
- Siz kerakli raqamli raqamli xabarlar taxtasini yaratishingiz mumkin va taxtalarga turli mavzularga obuna bo'lish mumkin.
- Windows_UI.
rahmat
SABARI KANNAN M