Sadržaj:

Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol: 8 koraka
Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol: 8 koraka

Video: Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol: 8 koraka

Video: Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol: 8 koraka
Video: Как превратить Raspberry Pi Pico в ПЛК | Беремиз4Пико 2024, Juli
Anonim
Image
Image
Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol
Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol

Oglasne ploče se gotovo svugdje koriste, poput ureda, škola, bolnica i hotela. Mogu se koristiti uvijek iznova za prikazivanje važnih obavijesti ili oglašavanje predstojećih događaja ili sastanaka. No, obavijest ili oglasi moraju se odštampati na papiru i zalijepiti na oglasne ploče.

U ovom Instructableu naučimo izgraditi našu digitalnu oglasnu ploču s Raspberry Pi kako bismo uštedjeli mnogo papira i tonera!

Korak 1: Kako funkcionira digitalna oglasna ploča?

Kako funkcionira digitalna oglasna ploča?
Kako funkcionira digitalna oglasna ploča?
  • Raspberry Pi spojen na HDMI ekran koji je naša digitalna oglasna ploča.
  • Računalo sa sustavom Windows koristi se za objavljivanje obavijesti na digitalnoj oglasnoj ploči putem interneta.
  • Obavijest koju je objavio Windows PC prima Digitalna oglasna ploča putem brokera CloudMQTT.
  • Komunikacija između Windows računara i digitalne oglasne ploče ostvaruje se MQTT protokolom.

Korak 2: Potrebne stvari:

  1. Raspberry Pi sa Rasbian OS -om
  2. Ekran sa HDMI portom
  3. Windows PC
  4. Priključak za internet
  5. CloudMQTT račun

Korak 3: Dizajn grafičkog sučelja za prikaz obavijesti:

Image
Image
GUI dizajn za prikazivanje obavijesti
GUI dizajn za prikazivanje obavijesti

Moramo dizajnirati 2 grafička interfejsa, jedan za Raspberry Pi za prikaz obavijesti na HDMI ekranu, a drugi za Windows PC za objavljivanje obavijesti za Raspberry Pi putem brokera CloudMQTT.

Dizajn grafičkog sučelja ovisi o mjestu na koje ćete postaviti digitalnu oglasnu ploču. Na primjer, dopustite mi da dizajniram GUI za Office Instructables za prikaz predstojećih događaja i sastanaka kako bi zaposlenici mogli biti ažurirani najnovijim informacijama.

Lako je dizajnirati grafički interfejs na Windows računaru, pa hajde da dizajniramo grafički interfejs digitalne oglasne ploče na Windows računaru i kopiramo kôd na Raspberry Pi.

Potreban softver:

Anaconda (koja uključuje python 2.7, Qt Designer paket i Spyder IDE).

Qt Designer je alat koji se koristi za dizajniranje grafičkih sučelja. Izlaz Qt Designer -a bit će.ui datoteka, kasnije se može pretvoriti u.py za daljnji proces.

Šta se dešava u videu?:

  • Preuzmite Anaconda Windows Installer za python 2.7 i instalirajte ga na Windows PC (uobičajeni proces instalacije).
  • Nakon instalacije, alatku Qt Designer možete pronaći u "installation_directory / Library / bin / designer.exe" (za mene je to "C: / Anaconda2 / Library / bin / designer.exe")
  • Napravite prečicu za "designer.exe" i postavite je na radnu površinu.
  • otvorite "designer.exe".
  • Kreirajte novi glavni prozor.
  • Odaberite i postavite izglede i potrebne prikaze (prikaz teksta, prikaz naljepnica itd.).
  • Spremi kao datoteku Rpi_UI.ui.
  • Da biste je pretvorili u.py datoteku, otvorite cmd upit u trenutnoj mapi u kojoj postoji datoteka Rpi_UI.ui i upišite sljedeću naredbu

instalacijski_direktorij / Biblioteka / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

za mene jeste, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

ova naredba će pretvoriti datoteku Rpi_UI.ui u datoteku RP_UI.py i smjestiti je u isti direktorij.

  • Otvorite datoteku Rpi_UI.py sa Spyder IDE -om koji je uključen u Anacondu.
  • Pokretanje skripte će prikazati GUI koji smo ranije dizajnirali.

Zatim, postavimo CloudMQTT račun.

Korak 4: Postavite CloudMQTT račun:

Image
Image
  • Posjetite ovaj link.
  • Otvorite račun pomoću e-pošte i prijavite se na svoj račun.
  • Kreirajte novu instancu (nazvao sam je TEST_1).
  • Otvorite informacije o instanci.
  • Zabilježite poslužitelj, korisnika, lozinku i port.
  • Pogledajte CloudMQTT Python dokumentaciju i sačuvajte skriptu kao CloudMQTT.py.
  • Primjer koda u dokumentaciji zahtijeva paho biblioteku, instalirajte Paho Python klijenta pomoću alata pip, otvorite cmd upit kao administrator i unesite sljedeću naredbu.

pip install paho-mqtt

Korak 5: Objašnjenje završnog koda Raspberry Pi:

Evo, dopustite mi da objasnim način na koji sam kombinirao datoteku RPi_UI.py s CloudMQTT.py i spremio je kao RPi_UI.py.

Uvezite biblioteke, ako nisu instalirane, samo ih instalirajte

uvoz paho.mqtt.client kao mqtt

uvoz urlparse iz PyQt5 uvoz QtGui, QtWidgets, QtCore iz PyQt5. QtCore uvoz QTimer, QTime iz uvoza niti Uvoz niti sistema uvoz ponovo iz google_drive_downloader uvoz GoogleDriveDownloader kao gdd uvoz os

Da biste instalirali googledrivedownloader, koristite naredbu

pip install googledrivedownloader

Pokretanje varijabli,

icon = "[email protected]"

contestImg = "black" meeting1 = "Meeting1:" venue1 = "Vrijeme i mjesto1." meeting2 = "Sastanak2:" venue2 = "Vrijeme i mjesto2." meeting3 = "Meeting3:" venue3 = "Vrijeme i mjesto3."

Slijedi klasa Ui_MainWindow

klasa Ui_MainWindow (objekt):

def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…

Sljedeći redovi u setupUi funkcije ažuriraju GUI svake 3 sekunde pozivanjem funkcije _update

self.retranslateUi (Glavni prozor)

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

Funkcija on_message čeka poruku od brokera, nakon što je poruka primi, preuzima sliku s google pogona koristeći ID veze za dijeljenje google pogona i također mijenja vrijednosti globalnih varijabli

def na_poruku (klijent, obj, poruka):

print (str (msg.payload)) if (str (msg.payload)): noticeReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', primljeno obaveštenje) globalno takmičenjeImg globalni sastanak1 globalno mesto1 globalni sastanak2 globalno mesto2 globalno okupljanje3 globalno mesto3 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 = putanja) CompetImg = rezultat.grupa (1) sastanak1 = rezultat.grupa (2) mjesto1 = rezultat.grupa (3) sastanak2 = rezultat.grupa (4) mjesto2 = rezultat.grupa (5) sastanak3 = rezultat.grupa (6) mjesto 3 = rezultat.grupa (7)

Kod se sastoji od 2 beskonačne petlje,

rc = mqttc.loop ()

i

sys.exit (app.exec_ ())

Da bih pokrenuo ove petlje istovremeno, koristio sam koncept 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 = Thread (target = sqImport, args = [0]) threadB = Thread (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

Odlično, završili smo postavljanje Raspberry Pi -a, a zatim dizajnirajmo GUI za Windows PC kako bismo objavili poruku na Raspberry Pi -u.

Korak 6: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • Dizajnirajte GUI za Windows i spremite ga kao Windows_UI.ui.
  • Pretvorite ga u python datoteku.
  • Kombinujte je sa datotekom CloudMQTT.py i sačuvajte je kao Windows_UI.py.
  • Funkcija datoteke Windows_UI.py slična je datoteci RPi_UI.py, jedina razlika je u tome što datoteka Windows_UI.py objavljuje poruku dok RPi_UI.py prima poruku.

Korak 7: Objašnjenje završnog koda Windows PC -a:

  • Datoteka Windows_UI.py ima sve klase i funkcije RPi_UI.ui, osim nekoliko.
  • Umjesto funkcije on_message, ona ima funkciju on_publish za objavljivanje poruke.
  • Sljedeći kôd unutar funkcije retranslateUi poziva funkciju objavljivanja kada se pritisne dugme OBJAVI.

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

  • Funkcija objavljivanja povezuje ID veze za dijeljenje google pogona i informacije o sastanku i objavljuje ih pod temom "obavijest".
  • Ovu poruku primit će Raspberry Pi.

Korak 8: Postavljanje digitalne oglasne ploče:

  • Spojite Raspberry Pi na HDMI ekran, koristio sam svoj Sony TV kao ekran digitalne oglasne ploče.
  • Pokrenite datoteku RPi_UI.py na Raspberry Pi.
  • Pokrenite datoteku Windows_UI.py na računaru sa operativnim sistemom Windows.
  • Unesite ID veze Google diska za sliku takmičenja i najavu sastanka.
  • Pritisnite dugme OBJAVI.
  • Sada možete vidjeti ažuriranu Digitalnu oglasnu ploču u roku od nekoliko sekundi.

Savjeti:

  • Možete stvoriti željeni broj digitalnih oglasnih ploča i ploče se mogu pretplatiti na različite teme.
  • Da biste datoteku Windows_UI.py učinili prenosivom, datoteku možete pretvoriti u izvršnu datoteku pomoću pyinstallera, tako da izvršnu datoteku možete pokrenuti na bilo kojem Windows računaru bez instaliranja potrebnih biblioteka na računaru.

Hvala ti

SABARI KANNAN M

Preporučuje se: