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: Postavite CloudMQTT račun:
- Korak 5: Objašnjenje završnog koda Raspberry Pi:
- Korak 6: Windows PC GUI:
- Korak 7: Objašnjenje završnog koda Windows PC -a:
- 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 izmjena: 2024-01-30 08:07
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?
- 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:
- Raspberry Pi sa Rasbian OS -om
- Ekran sa HDMI portom
- Windows PC
- Priključak za internet
- CloudMQTT račun
Korak 3: Dizajn grafičkog sučelja za prikaz 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:
- 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:
- 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:
LCD kontrolisani Messenger LCD -- 16x2 LCD -- Hc05 -- Jednostavno -- Bežična oglasna ploča: 8 koraka
LCD kontrolisani Messenger LCD || 16x2 LCD || Hc05 || Jednostavno || Bežična oglasna ploča: …………………………. PRETPLATITE SE na moj YouTube kanal za više video zapisa …… ………………………………… Oglasna ploča se koristi 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 napravimo oglasnu ploču s Bluetooth -om koja je vrlo jednostavna. Ovo se postavljanje može koristiti umjesto statičkog obavijesti ukrcajte se kao na fakultetima/u
Digitalna kamera sa statičnom slikom koja koristi ploču ESP32-CAM: 5 koraka
Digitalna kamera sa statičnom slikom pomoću ploče ESP32-CAM: U ovom ćemo članku naučiti kako izgraditi digitalnu kameru sa fotografijom pomoću ploče ESP32-CAM. Kada pritisnete tipku za poništavanje, ploča će snimiti sliku, pohraniti je na microSD karticu, a zatim će se vratiti u stanje dubokog sna. Koristimo EEPROM t
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 koju je proizveo Josh Levine, a koja se može naći na https://github.com/bigjo
Raspberry Pi oglasna ploča: 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 pripratu/predvorje i koja će svakih nekoliko sekundi kružiti kroz statičke slajdove. To su bili naši dizajnerski ciljevi: statički dijapozitivi, bez video zapisa ili au