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:
Video: Raspberry Pi va MQTT protokoli yordamida raqamli xabarlar paneli: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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
Tavsiya:
LED chiziqli xabarlar paneli: 3 qadam
LED chiziqli xabarlar taxtasi: Bu ko'rsatma sizga individual ravishda joylashtiriladigan NeoPixel LED tasmalaridan xabarlar taxtasini yaratish jarayonida yordam beradi. Bu loyiha Josh Levine tomonidan ishlab chiqarilgan belgining moslashtirilgan versiyasidir, uni https://github.com/bigjo… saytida topish mumkin
Internet soati: NTP protokoli bilan ESP8266 NodeMCU yordamida OLED yordamida sana va vaqtni ko'rsatish: 6 qadam
Internet soati: NTP protokoli bilan ESP8266 NodeMCU yordamida OLED yordamida sana va vaqtni ko'rsatish: Salom bolalar, biz Internetdan vaqt oladigan Internet soatini quramiz, shuning uchun bu loyihani ishga tushirish uchun hech qanday RTC kerak emas, unga faqat ishlaydigan Internet aloqasi Va bu loyiha uchun sizga esp8266 kerak bo'ladi, u
IoT RPi LED xabarlar paneli: 3 qadam (rasmlar bilan)
IoT RPi LED xabarlar taxtasi: Ushbu yo'riqnomada men Raspberry Pi (RPi) yordamida wifi-ga ulangan LED xabarlar taxtasini tayyorladim. Foydalanuvchilar 8x8 LED displeyida ko'rsatiladigan qisqa xabarlarni yuborish uchun o'z brauzerlari yordamida Raspberry Pi veb -serveriga ulanadi. Interfaoldan beri
Infraqizil NEC protokoli kodlovchi va dekoder paneli: 5 qadam
Infraqizil NEC protokolini kodlovchi va dekoder kartasi: xom modulyatsiyalangan yoki demodulyatsiyalangan NEC IR signalini oladi va uni ketma -ket portdan yuboriladigan baytlarga aylantiradi. Seriyali uzatish tezligi ikkita standart tezlikdan tanlanadi. Odatiy foydalanish rejimi ramkali baytli buyruqlar ketma -ketligini uzatadi
Qanday qilib: VBScript yordamida xabarlar qutisini yaratish: 5 qadam
Qanday qilib: VBScript yordamida xabarlar qutisini yarating: Bu " Ko'rsatmalar " Men sizga VBScript kodlash yordamida Notepad -da xabar qutisini qanday qilishni ko'rsataman. Iltimos, diqqat qiling: bu mutlaqo zararsiz loyiha va agar biror narsa noto'g'ri ketsa, men javobgar bo'lolmayman