Indholdsfortegnelse:
- Trin 1: Hvordan fungerer Digital opslagstavle?
- Trin 2: Påkrævede ting:
- Trin 3: GUI -design til visning af meddelelser:
- Trin 4: Opret en CloudMQTT -konto:
- Trin 5: Raspberry Pi Final Code Forklaret:
- Trin 6: Windows PC GUI:
- Trin 7: Windows PC -slutkode Forklaret:
- Trin 8: Konfigurer det digitale opslagstavle:
Video: Digital opslagstavle, der bruger Raspberry Pi og MQTT -protokol: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Opslagstavler bruges næsten overalt, f.eks. Kontor, skoler, hospitaler og hoteller. De kan bruges igen og igen til at vise vigtige meddelelser eller annoncere for kommende begivenheder eller møder. Men opslaget eller annoncerne skal udskrives på et papir og fastgøres på opslagstavlerne.
I denne instruks kan vi lære at bygge vores digitale opslagstavle med Raspberry Pi for at spare masser af papir og toner!
Trin 1: Hvordan fungerer Digital opslagstavle?
- En Raspberry Pi tilsluttet en HDMI -skærm, som er vores digitale opslagstavle.
- En Windows -pc bruges til at offentliggøre meddelelsen på det digitale opslagstavle via internettet.
- Meddelelsen offentliggjort af Windows -pc'en modtages af Digital Notice Board via en CloudMQTT -mægler.
- Kommunikationen mellem Windows -pc'en og det digitale opslagstavle opnås ved hjælp af MQTT -protokollen.
Trin 2: Påkrævede ting:
- Raspberry Pi med Rasbian OS
- Skærm med HDMI -port
- Windows -pc
- Internetforbindelse
- CloudMQTT -konto
Trin 3: GUI -design til visning af meddelelser:
Vi skal designe 2 GUI'er, en til Raspberry Pi for at vise meddelelsen på HDMI -skærmen og en anden til Windows PC for at offentliggøre meddelelsen til Raspberry Pi via CloudMQTT -mægler.
GUI -designet afhænger af det sted, hvor du vil placere det digitale opslagstavle. Lad mig f.eks. Designe en GUI til Instructables Office til at vise kommende begivenheder og møder, så medarbejderne kan opdateres med de nyeste oplysninger.
Det er let at designe en GUI i en Windows -pc, så lad os designe Digital Notice Board GUI i Windows -pc'en og kopiere koden til Raspberry Pi.
Software påkrævet:
Anaconda (som inkluderer python 2.7, Qt Designer -pakke og Spyder IDE).
Qt Designer er værktøjet, der bruges til at designe GUI'er. Outputtet af Qt Designer vil være en.ui -fil, senere kan den konverteres til.py for yderligere proces.
Hvad sker der i videoen ?:
- Download Anaconda Windows Installer til python 2.7, og installer det på en Windows -pc (normal installationsproces).
- Efter installationen kan du finde værktøjet Qt Designer i "installation_directory / Library / bin / designer.exe" (for mig er det "C: / Anaconda2 / Library / bin / designer.exe")
- Opret en genvej til "designer.exe", og placer den på skrivebordet.
- åbn "designer.exe".
- Opret et nyt hovedvindue.
- Vælg og placer layout og de nødvendige visninger (tekstvisning, etiketvisning osv.).
- Gem som Rpi_UI.ui -fil.
- For at konvertere den til.py -fil skal du åbne cmd -prompten i den aktuelle mappe, hvor filen Rpi_UI.ui findes, og skrive følgende kommando
installation_katalog / Bibliotek / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
for mig er det, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
denne kommando konverterer filen Rpi_UI.ui tilRpi_UI.py og placerer den i det samme bibliotek.
- Åbn filen Rpi_UI.py med Spyder IDE, som er inkluderet i Anaconda.
- Kørsel af scriptet viser den GUI, vi har designet tidligere.
Lad os derefter konfigurere CloudMQTT -kontoen.
Trin 4: Opret en CloudMQTT -konto:
- Besøg dette link.
- Opret en konto med e-mail, og log på din konto.
- Opret ny forekomst (jeg kaldte den som TEST_1).
- Åbn forekomstoplysningerne.
- Notér serveren, brugeren, adgangskoden og porten.
- Se CloudMQTT Python -dokumentation, og gem scriptet som CloudMQTT.py.
- Eksempelkoden i dokumentationen kræver paho -bibliotek, Installer Paho Python -klient ved hjælp af pip -værktøj, åbn cmd -prompt som administrator, og indtast følgende kommando.
pip installer paho-mqtt
Trin 5: Raspberry Pi Final Code Forklaret:
Lad mig her forklare den måde, jeg kombinerede RPi_UI.py -fil med CloudMQTT.py og gemte den som RPi_UI.py.
Importer biblioteker, hvis det ikke er installeret, skal du bare installere det
import paho.mqtt.client som mqtt
import urlparse fra PyQt5 import QtGui, QtWidgets, QtCore fra PyQt5. QtCore import QTimer, QTime fra trådning import Tråd import sys import re fra google_drive_downloader import GoogleDriveDownloader som gdd import os
Brug kommandoen for at installere googledrivedownloader
pip installer googledrivedownloader
Initialiserer variabler,
icon = "[email protected]"
contestImg = "black" meeting1 = "Meeting1:" venue1 = "Time and venue1." meeting2 = "Meeting2:" venue2 = "Tid og sted2." meeting3 = "Meeting3:" venue3 = "Tid og sted3."
Efterfulgt af klassen Ui_MainWindow
klasse Ui_MainWindow (objekt):
def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…
Følgende linjer i funktionen setupUi opdaterer GUI hvert 3. sekund ved at kalde _update -funktionen
self.retranslateUi (MainWindow)
QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)
On_message -funktionen venter på meddelelsen fra mægleren, når meddelelsen er modtaget, downloades billedet fra google -drevet ved hjælp af link -id'et, der kan deles af Google Drive, og ændrer også værdierne for de globale variabler
def on_message (klient, obj, msg):
print (str (msg.payload)) if (str (ms.payload)): noticeReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', noticeReceived) global contestImg global meeting1 global venue1 global meeting2 global venue2 global meeting3 global venue3 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 = sti) contestImg = result.group (1) meeting1 = result.group (2) venue1 = result.group (3) meeting2 = result.group (4) venue2 = result.group (5) meeting3 = result.group (6) mødested3 = resultat.gruppe (7)
Koden består af 2 uendelige sløjfer,
rc = mqttc.loop ()
og
sys.exit (app.exec_ ())
For at køre disse sløjfer samtidigt har jeg brugt Threading -konceptet
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 ()
Fedt, vi har afsluttet konfigurationen af Raspberry Pi, lad os derefter designe GUI til Windows PC for at offentliggøre meddelelsen til Raspberry Pi.
Trin 6: Windows PC GUI:
- Design en GUI til Windows, og gem den som Windows_UI.ui.
- Konverter det til en python -fil.
- Kombiner den med CloudMQTT.py -filen, og gem den som Windows_UI.py.
- Windows_UI.py -filens funktion ligner filen RPi_UI.py, den eneste forskel er, at Windows_UI.py -filen udgiver meddelelsen, mens RPi_UI.py modtager meddelelsen.
Trin 7: Windows PC -slutkode Forklaret:
- Windows_UI.py -filen har alle klasser og funktioner i RPi_UI.ui undtagen nogle få.
- I stedet for on_message -funktionen har den en on_publish -funktion til at offentliggøre meddelelsen.
- Følgende kode i funktionen retranslateUi kalder publiceringsfunktionen, når der klikkes på knappen PUBLISH.
self.pushButton.clicked.connect (self.publish)
- Udgivelsesfunktionen sammenkæder google -drevets link -id og mødeoplysningerne og offentliggør det under emnet "meddelelse".
- Denne besked modtages af Raspberry Pi.
Trin 8: Konfigurer det digitale opslagstavle:
- Tilslut Raspberry Pi til en HDMI -skærm, jeg har brugt mit Sony TV som det digitale opslagstavle.
- Kør filen RPi_UI.py i Raspberry Pi.
- Kør Windows_UI.py -filen på Windows -pc'en.
- Indtast link -id'et for Google -drev for et konkurrencebillede og mødemeddelelsen.
- Klik på knappen PUBLISH.
- Nu kan du se det opdaterede digitale opslagstavle inden for få sekunder.
Tips:
- Du kan oprette det ønskede antal digitale opslagstavler, og tavlerne kan abonneres på forskellige emner.
- For at gøre Windows_UI.py -filen bærbar kan du konvertere filen til en eksekverbar fil ved hjælp af pyinstaller, så du kan køre den eksekverbare fil på en hvilken som helst Windows -pc uden at installere de nødvendige biblioteker i pc'en.
tak skal du have
SABARI KANNAN M
Anbefalede:
Hvad er der inde i en servo og hvordan man bruger den med Arduino Fuld vejledning: 6 trin
Hvad er der inde i en servo og hvordan man bruger den med Arduino Fuld vejledning: Lad os i denne vejledning undersøge, hvad der er en servowatch denne video -tutorial
Lydafspiller, der bruger Arduino med Micro SD -kort: 7 trin (med billeder)
Lydafspiller, der bruger Arduino med Micro SD -kort: ABONNER venligst min kanal for flere projekter ……………………. Mange mennesker ønsker at interface SD -kortet med arduino eller ønsker noget lydoutput via arduino.Så her er den nemmeste og billigste måde at interface SD -kort med arduino. du kan os
Ekstern VGA / GPU til bærbare computere, der bruger EXP GDC Beast: 15 trin (med billeder)
Ekstern VGA / GPU til bærbare computere ved hjælp af EXP GDC Beast: Hej Guys .. Dette er min første tutorial om instruktører. Engelsk er ikke mit første sprog, så tilgiv mine grammatiske fejl. Jeg lavede dette baseret på min erfaring med at opgradere min bærbare computer. Og jeg vil ikke kede dig med lang introduktion, da jeg ikke ved noget
Generering af forskellige lyde fra film, der kun bruger Arduino: 3 trin
Generering af forskellige lyde fra film, der kun bruger Arduino: As-salamu alaykum! Jeg ville generere forskellige lyde som rovdyr, optimus prime & humle fra transformerfilm. Faktisk så jeg " hacksmeden " video om at lave rovdyrhjelm
HJEMAUTOMATION BASERET PÅ LOKAL MQTT -SERVER, DER BRUGER RASPBERRY PI OG NODEMCU BOARD: 6 trin
HJEMAUTOMATION BASERET PÅ LOKAL MQTT -SERVER VED AT BRUGE RASPBERRY PI OG NODEMCU BOARD: Indtil nu har jeg lavet flere vejledningsvideoer vedrørende styring af apparater over internettet. Og dertil foretrak jeg altid Adafruit MQTT -serveren, da den også var let at bruge og brugervenlig. Men alt det var baseret på internet. Det betyder, at vi