Mündəricat:

Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi: 8 addım
Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi: 8 addım

Video: Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi: 8 addım

Video: Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi: 8 addım
Video: Home Assistant - Mosquitto broker, Zigbee2mqtt, MQTT - Oktyabr 2023 2024, Noyabr
Anonim
Image
Image
Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi
Raspberry Pi və MQTT Protokolundan istifadə edərək rəqəmsal bildiriş lövhəsi

Bildiriş lövhələri ofis, məktəblər, xəstəxanalar və otellər kimi demək olar ki, hər yerdə istifadə olunur. Önəmli bildirişləri göstərmək və ya qarşıdan gələn hadisələri və ya görüşləri reklam etmək üçün dəfələrlə istifadə edilə bilər. Ancaq bildiriş və ya reklam kağız üzərində çap olunmalı və lövhələrə yapışdırılmalıdır.

Bu Təlimat kitabında bir çox sənəd və tonerə qənaət etmək üçün Raspberry Pi ilə Rəqəmsal Bildirişlər Lövhəmizi qurmağı öyrənək!

Addım 1: Rəqəmsal Bildiriş Paneli necə işləyir?

Rəqəmsal bildiriş lövhəsi necə işləyir?
Rəqəmsal bildiriş lövhəsi necə işləyir?
  • Raspberry Pi, rəqəmsal bildiriş lövhəmiz olan bir HDMI ekranına qoşuldu.
  • Bir Windows PC, İnternet üzərindən Rəqəmsal Bildirişlər Lövhəsində elanı dərc etmək üçün istifadə olunur.
  • Windows PC tərəfindən yayımlanan bildiriş, Digital Notice Board tərəfindən CloudMQTT brokeri vasitəsi ilə alınır.
  • Windows PC ilə Digital Notice Board arasındakı əlaqə MQTT protokolu ilə əldə edilir.

Addım 2: Lazım olan şeylər:

  1. Rasbian OS ilə Raspberry Pi
  2. HDMI portu ilə ekran
  3. Windows kompüter
  4. İnternet bağlantısı
  5. CloudMQTT hesabı

Addım 3: Bildirişləri Göstərmək üçün GUI Dizaynı:

Image
Image
Bildirişləri göstərmək üçün GUI Dizaynı
Bildirişləri göstərmək üçün GUI Dizaynı

Birini Raspberry Pi üçün HDMI Ekranında, digəri isə Windows PC üçün CloudMQTT broker vasitəsilə Raspberry Pi -yə bildiriş göndərmək üçün 2 GUI dizayn etməliyik.

GUI dizaynı, Rəqəmsal Bildiriş Panosunu yerləşdirəcəyiniz yerdən asılıdır. Məsələn, işçilərin ən son məlumatlarla yenilənməsi üçün qarşıdakı hadisələri və görüşləri göstərmək üçün Instructables Office üçün bir GUI dizayn etməyimə icazə verin.

Windows PC -də bir GUI dizayn etmək asandır, buna görə də Windows PC -də Digital Notice Board GUI -ni tərtib edək və kodu Raspberry Pi -yə kopyalayaq.

Proqram tələb olunur:

Anaconda (python 2.7, Qt Designer paketi və Spyder IDE daxildir).

Qt Designer, GUI dizayn etmək üçün istifadə olunan bir vasitədir. Qt Designer -in çıxışı.ui faylı olacaq, sonrakı proses üçün.py -ə çevrilə bilər.

Videoda nə baş verir?:

  • Python 2.7 üçün Anaconda Windows Installer proqramını yükləyin və Windows PC -yə quraşdırın (normal quraşdırma prosesi).
  • Quraşdırıldıqdan sonra "install_directory / Library / bin / designer.exe" də Qt Designer alətini tapa bilərsiniz (mənim üçün "C: / Anaconda2 / Library / bin / designer.exe")
  • "Designer.exe" üçün qısa yol yaradın və onu masaüstünə yerləşdirin.
  • "dizayner.exe" faylını açın.
  • Yeni bir əsas pəncərə yaradın.
  • Layihələri və lazımi görünüşləri seçin və yerləşdirin (mətn görünüşü, etiket görünüşü və s.).
  • Rpi_UI.ui faylı olaraq qeyd edin.
  • Onu.py faylına çevirmək üçün Rpi_UI.ui faylının mövcud olduğu qovluqda cmd əmrini açın və aşağıdakı əmri yazın.

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

mənim üçün belədir, C: / Anaconda2 / Kitabxana / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

bu əmr Rpi_UI.ui faylını toRpi_UI.py faylına çevirəcək və eyni qovluğa yerləşdirəcək.

  • Anaconda -ya daxil olan Spyder IDE ilə Rpi_UI.py faylını açın.
  • Skriptin işə salınması əvvəllər hazırladığımız GUI -ni göstərəcək.

Sonra, CloudMQTT hesabını quraq.

Addım 4: CloudMQTT Hesabı qurun:

Image
Image
  • Bu linki ziyarət edin.
  • E-poçt ilə bir hesab yaradın və hesabınıza daxil olun.
  • Yeni bir nümunə yaradın (TEST_1 olaraq adlandırdım).
  • Instance məlumatlarını açın.
  • Server, İstifadəçi, Şifrə və Limanı qeyd edin.
  • CloudMQTT Python Sənədlərinə baxın və skripti CloudMQTT.py olaraq qeyd edin.
  • Sənədlərdəki nümunə kodu üçün paho kitabxanası, pip alətindən istifadə edərək Paho Python Müştərisini quraşdırın, administrator olaraq cmd əmrini açın və aşağıdakı əmri daxil edin.

paho-mqtt quraşdırın

Addım 5: Raspberry Pi Final Kodu Açıqlandı:

Burada, RPi_UI.py faylını CloudMQTT.py ilə necə birləşdirdiyimi və RPi_UI.py olaraq saxladığımı izah edim.

Kitabxanaları idxal edin, əgər quraşdırılmayıbsa, onu quraşdırın

paho.mqtt.client mqtt olaraq idxal edin

PyQt5 -dən urlparse idxal edin QtGui, QtWidgets, Pyqt5 -dən QtCore. QtCore idxal QTimer, QTime idxal etməkdən Thread idxal sys idxal google_drive_downloader -dən idxal GoogleDriveDownloader gdd import os kimi

Googledrivedownloader qurmaq üçün əmrdən istifadə edin

pip googledrivedownloader yükləyin

Dəyişənləri işə salmaq,

icon = "[email protected]"

CompetImg = "qara" görüş1 = "Toplantı1:" məkan1 = "Zaman və məkan1." Meeting2 = "Meeting2:" venue2 = "Time and place2." Meeting3 = "Meeting3:" venue3 = "Zaman və mekan3."

Ui_MainWindow sinfi izlədi

sinif Ui_MainWindow (obyekt):

def setupUi (özünü, MainWindow):… def retranslateUi (özünü, MainWindow):… def _update (özünü):…

SetupUi funksiyasındakı aşağıdakı sətirlər _update funksiyasını çağıraraq GUI -ni hər 3 saniyədə bir yeniləyir

self.retranslateUi (MainWindow)

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

On_message funksiyası brokerdən gələn mesajı gözləyir, mesaj alındıqdan sonra google sürücüsünün paylaşılan link identifikatorundan istifadə edərək görüntünü google sürücüsündən yükləyir və qlobal dəyişənlərin dəyərlərini dəyişir

def on_message (müştəri, obj, msg):

print (str (msg.payload)) if (str (msg.payload)): noteReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', bildiriş Alındı) qlobal yarışmaImg qlobal görüş1 qlobal məkan1 qlobal görüş2 qlobal məkan2 qlobal görüş3 qlobal məkan3 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 = yol) CompetitionImg = result.group (1) Meeting1 = result.group (2) mekan1 = result.group (3) Meeting2 = result.group (4) mekan2 = result.group (5) Meeting3 = result.group (6) yer3 = nəticə. qrup (7)

Kod 2 sonsuz döngədən ibarətdir,

rc = mqttc.loop ()

sys.exit (app.exec_ ())

Bu döngələri eyni anda işlətmək üçün Threading konsepsiyasından istifadə etdim

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 = Mövzu (hədəf) = sqImport, args = [0]) threadB = Thread (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

Sərin, Raspberry Pi quruluşunu tamamladıq, sonra mesajı Raspberry Pi -yə yayımlamaq üçün Windows PC üçün GUI dizayn edək.

Addım 6: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • Windows üçün bir GUI dizayn edin və Windows_UI.ui olaraq qeyd edin.
  • Bir python faylına çevirin.
  • CloudMQTT.py faylı ilə birləşdirin və Windows_UI.py olaraq qeyd edin.
  • Windows_UI.py faylının funksiyası RPi_UI.py faylına bənzəyir, yeganə fərq Windows_UI.py faylının mesajı dərc etməsidir, RPi_UI.py isə mesajı alır.

Addım 7: Windows PC Son Kodu Açıqlandı:

  • Windows_UI.py faylı, bir neçə istisna olmaqla, RPi_UI.ui -nin bütün siniflərinə və funksiyalarına malikdir.
  • On_message funksiyası əvəzinə mesajı dərc etmək üçün on_publish funksiyası var.
  • RetanslateUi funksiyasındakı aşağıdakı kod, YAYIM düyməsini basdıqdan sonra dərc funksiyasını çağırır.

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

  • Yayımlama funksiyası, Google sürücüsünün paylaşıla bilən əlaqələndirici kimliyi və görüş məlumatlarını birləşdirir və "bildiriş" mövzusunda dərc edir.
  • Bu mesaj Raspberry Pi tərəfindən alınacaq.

Addım 8: Rəqəmsal Bildiriş Paneli qurun:

  • Raspberry Pi -ni bir HDMI ekranına bağlayın, Sony TV -ni Rəqəmsal Bildiriş Paneli Ekranı olaraq istifadə etdim.
  • Raspberry Pi -də RPi_UI.py faylını işə salın.
  • Windows PC -də Windows_UI.py faylını işə salın.
  • Bir yarışma şəklinin və görüş anonsunun Google sürücü bağlantısı kimliyini daxil edin.
  • PUBLISH düyməsini basın.
  • İndi bir neçə saniyə ərzində yenilənmiş Rəqəmsal Bildiriş Panosunu görə bilərsiniz.

Göstərişlər:

  • İstədiyiniz sayda rəqəmsal bildiriş lövhəsi yarada bilərsiniz və lövhələr fərqli mövzulara abunə ola bilər.
  • Windows_UI.py faylını portativ etmək üçün, pyinstaller istifadə edərək faylı icra edilə bilən bir fayla çevirə bilərsiniz, belə ki, PC -də lazımi kitabxanaları quraşdırmadan istənilən Windows PC -də icra olunan faylı işə sala bilərsiniz.

Çox sağ ol

SABARI KANNAN M

Tövsiyə: