Sadržaj:
- Korak 1: Kako funkcionira digitalna oglasna ploča?
- Korak 2: Potrebne stvari:
- Korak 3: Dizajn grafičkog sučelja za prikaz obavijesti:
- Korak 4: Postavljanje CloudMQTT računa:
- Korak 5: Objašnjenje završnog koda Raspberry Pi:
- Korak 6: Windows PC GUI:
- Korak 7: Objašnjenje završnog koda za Windows PC:
- Korak 8: Postavljanje digitalne oglasne ploče:
Video: Digitalna oglasna ploča koja koristi Raspberry Pi i MQTT protokol: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Oglasne ploče gotovo se koriste svugdje, poput ureda, škola, bolnica i hotela. Mogu se koristiti uvijek iznova za prikaz važnih obavijesti ili oglašavanje predstojećih događaja ili sastanaka. No, obavijest ili oglasi moraju se ispisati 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?
- Raspberry Pi spojen na HDMI zaslon 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 objavilo računalo sa sustavom Windows prima Digitalna oglasna ploča putem brokera CloudMQTT.
- Komunikacija između Windows računala i digitalne oglasne ploče ostvaruje se MQTT protokolom.
Korak 2: Potrebne stvari:
- Raspberry Pi sa Rasbian OS -om
- Zaslon s HDMI priključkom
- Windows računalo
- Priključak za internet
- CloudMQTT račun
Korak 3: Dizajn grafičkog sučelja za prikaz obavijesti:
Moramo dizajnirati 2 grafička sučelja, jedan za Raspberry Pi za prikaz obavijesti na HDMI zaslonu, 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 se zaposlenici mogli ažurirati najnovijim informacijama.
Lako je dizajnirati GUI na Windows računalu, pa dizajnirajmo GUI Digitalne oglasne ploče na Windows PC -u i kopirajmo kôd na Raspberry Pi.
Potreban softver:
Anaconda (koja uključuje python 2.7, paket Qt Designer i Spyder IDE).
Qt Designer je alat koji se koristi za dizajn grafičkih sučelja. Izlaz Qt Designera bit će.ui datoteka, kasnije se može pretvoriti u.py za daljnji proces.
Što se događa u videu?:
- Preuzmite Anaconda Windows Installer za python 2.7 i instalirajte ga na računalo sa sustavom Windows (uobičajeni postupak instalacije).
- Nakon instalacije, alat Qt Designer možete pronaći u "installation_directory / Library / bin / designer.exe" (za mene je to "C: / Anaconda2 / Library / bin / designer.exe")
- Izradite prečac za "designer.exe" i postavite ga na radnu površinu.
- otvorite "designer.exe".
- Izradite 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
direktorij_instalacije / Knjižnica / 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 Rpi_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 prikazat će GUI koji smo ranije dizajnirali.
Zatim, postavimo CloudMQTT račun.
Korak 4: Postavljanje CloudMQTT računa:
- Posjetite ovu vezu.
- Otvorite račun pomoću e-pošte i prijavite se na svoj račun.
- Izradite novu instancu (nazvao sam je TEST_1).
- Otvorite podatke o Instanci.
- Zabilježite poslužitelj, korisnika, lozinku i port.
- Pogledajte CloudMQTT Python dokumentaciju i spremite skriptu kao CloudMQTT.py.
- Primjer koda u dokumentaciji zahtijeva paho biblioteku, instalirajte Paho Python Client 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 knjižnice, 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 uvoženja niti Uvoz niti niti uvoz ponovo iz google_drive_downloader uvoz GoogleDriveDownloader kao gdd uvoz os
Da biste instalirali googledrivedownloader, upotrijebite naredbu
pip install googledrivedownloader
Pokretanje varijabli,
icon = "[email protected]"
contestImg = "black" meeting1 = "Meeting1:" venue1 = "Vrijeme i mjesto1." meeting2 = "Sastanak2:" venue2 = "Vrijeme i mjesto2." meeting3 = "Sastanak3:" 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 retci u setupUi funkcije ažuriraju GUI svake 3 sekunde pozivanjem funkcije _update
self.retranslateUi (Glavni prozor)
QtCore. QMetaObject.connectSlotsByName (MainWindow) 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, a također mijenja i 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 ', noticeReceived) globalno natjecanjeImg globalni sastanak1 globalno mjesto1 globalni sastanak2 globalno mjesto2 globalno okupljanje3 globalno mjesto3 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 = put) contestImg = 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 istovremeno pokrenuo ove petlje, upotrijebio 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 ()
Super, dovrš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:
- Dizajnirajte GUI za Windows i spremite ga kao Windows_UI.ui.
- Pretvorite ga u python datoteku.
- Kombinirajte je s datotekom CloudMQTT.py i spremite 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 za Windows PC:
- 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 nakon što pritisnete gumb OBJAVI.
self.pushButton.clicked.connect (self.publish)
- Funkcija objavljivanja povezuje ID veze za dijeljenje google pogona i podatke o sastanku te ih objavljuje pod temom "obavijest".
- Ovu poruku primit će Raspberry Pi.
Korak 8: Postavljanje digitalne oglasne ploče:
- Spojite Raspberry Pi na HDMI zaslon. Koristio sam svoj Sony TV kao zaslon za digitalnu oglasnu ploču.
- Pokrenite datoteku RPi_UI.py u Raspberry Pi.
- Pokrenite datoteku Windows_UI.py na računalu sa sustavom Windows.
- Unesite ID veze Google pogona slike natječaja i najavu sastanka.
- Pritisnite gumb 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, a 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 programa pyinstaller, tako da izvršnu datoteku možete pokrenuti na bilo kojem računalu sa sustavom Windows bez instaliranja potrebnih knjižnica na računalo.
Hvala vam
SABARI KANNAN M
Preporučeni:
LCD upravljani Bluetooth Messenger LCD -- 16x2 LCD -- Hc05 -- Jednostavno -- Bežična oglasna ploča: 8 koraka
LCD upravljani Bluetooth Messenger LCD || 16x2 LCD || Hc05 || Jednostavno || Bežična oglasna ploča: …………………………. PRETPLATITE SE na moj YouTube kanal za više videa …… ………………………………… Oglasna ploča služi za ažuriranje novih informacija ili Ako želite poslati poruku sa u sobi ili na poluvremenu
Bežična oglasna ploča (Bluetooth): 5 koraka (sa slikama)
Bežična oglasna ploča (Bluetooth): U ovom modernom svijetu u kojem je sve digitalizirano, zašto ne bi konvencionalna oglasna ploča dobila novi izgled. Dakle, dopustimo da se oglasna ploča kontrolira Bluetooth -om koja je vrlo jednostavna. Ova se postavka može koristiti umjesto statičke obavijesti ukrcajte se kao na fakultetima/u
Ruksak #4: Oglasna ploča: 8 koraka
Ruksak #4: Breadboard: SPIKE Prime ruksaci su proširenja za LEGO Education SPIKE Prime.Ovaj ruksak omogućuje vam povezivanje vašeg SPIKE Prime sa LED diodama, gumbima, prekidačima i upravljačkim palicama za stvaranje prototipova za upravljanje SPIKE Prime. Imamo i ruksak za kameru koji vam omogućuje
Oglasna ploča sa LED trakama: 3 koraka
Oglasna ploča sa LED trakama: Ovo uputstvo će vas provesti kroz proces stvaranja oglasne ploče od individualno adresiranih NeoPixel LED traka. Ovaj projekt je prilagođena verzija znaka koji je proizveo Josh Levine, a može se pronaći na https://github.com/bigjo
Oglasna ploča Raspberry Pi: 11 koraka (sa slikama)
Raspberry Pi oglasna ploča: Ovo je projekt na kojem sam radio za svoju crkvu. Željeli smo elektroničku oglasnu ploču koja će biti postavljena u narteks/predvorje i koja će svakih nekoliko sekundi prolaziti kroz statične slajdove. To su bili naši dizajnerski ciljevi: statički dijapozitivi, bez videa ili au