Innholdsfortegnelse:
- Trinn 1: Hvordan fungerer digital oppslagstavle?
- Trinn 2: Ting som kreves:
- Trinn 3: GUI -design for visning av merknader:
- Trinn 4: Opprett en CloudMQTT -konto:
- Trinn 5: Raspberry Pi endelig kode forklart:
- Trinn 6: Windows PC GUI:
- Trinn 7: Endelig kode for Windows PC forklart:
- Trinn 8: Konfigurer det digitale oppslagstavlet:
Video: Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokoll: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Oppslagstavler brukes nesten overalt, for eksempel kontor, skoler, sykehus og hoteller. De kan brukes om og om igjen for å vise viktige varsler eller annonsere for kommende arrangementer eller møter. Men varselet eller annonsene må skrives ut på et papir og festes på oppslagstavlene.
I denne instruksen kan vi lære å bygge vårt digitale oppslagstavle med Raspberry Pi for å spare mye papir og toner!
Trinn 1: Hvordan fungerer digital oppslagstavle?
- En Raspberry Pi koblet til en HDMI -skjerm som er vårt digitale oppslagstavle.
- En Windows -PC brukes til å publisere varselet på Digital Notice Board via internett.
- Meldingen som er publisert av Windows PC, mottas av Digital Notice Board gjennom en CloudMQTT -megler.
- Kommunikasjonen mellom Windows PC og Digital Notice Board oppnås med MQTT -protokollen.
Trinn 2: Ting som kreves:
- Raspberry Pi med Rasbian OS
- Skjerm med HDMI -port
- Windows PC
- Internett-tilkobling
- CloudMQTT -konto
Trinn 3: GUI -design for visning av merknader:
Vi må designe 2 GUI -er, en for Raspberry Pi for å vise varselet på HDMI -skjermen og en annen for Windows PC for å publisere varselet til Raspberry Pi via CloudMQTT -megler.
GUI -utformingen avhenger av stedet der du skal plassere Digital Notice Board. La meg for eksempel utforme en GUI for Instructables Office for å vise kommende arrangementer og møter, slik at de ansatte kan bli oppdatert med den siste informasjonen.
Det er enkelt å designe en GUI i en Windows -PC, så la oss designe Digital Notice Board GUI i Windows PC og kopiere koden til Raspberry Pi.
Programvare som kreves:
Anaconda (som inkluderer python 2.7, Qt Designer -pakken og Spyder IDE).
Qt Designer er verktøyet som brukes til å designe GUI -er. Utdataene fra Qt Designer vil være en.ui -fil, senere kan den konverteres til.py for videre prosess.
Hva skjer i videoen ?:
- Last ned Anaconda Windows Installer for python 2.7 og installer det på en Windows -PC (normal installasjonsprosess).
- Etter installasjonen kan du finne Qt Designer -verktøyet i "installation_directory / Library / bin / designer.exe" (for meg er det "C: / Anaconda2 / Library / bin / designer.exe")
- Lag en snarvei for "designer.exe" og legg den på skrivebordet.
- åpne "designer.exe".
- Lag et nytt hovedvindu.
- Velg og plasser layoutene og de nødvendige visningene (tekstvisning, etikettvisning osv.).
- Lagre som Rpi_UI.ui -fil.
- For å konvertere den til.py -fil, åpne cmd -ledeteksten i den nåværende mappen der Rpi_UI.ui -filen finnes, og skriv inn følgende kommando
installasjon_katalog / Bibliotek / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
for meg er det, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
denne kommandoen vil konvertere filen Rpi_UI.ui tilRpi_UI.py og plassere den i samme katalog.
- Åpne Rpi_UI.py -filen med Spyder IDE som er inkludert i Anaconda.
- Hvis du kjører skriptet, vises GUI som vi har designet tidligere.
La oss deretter konfigurere CloudMQTT -kontoen.
Trinn 4: Opprett en CloudMQTT -konto:
- Besøk denne lenken.
- Opprett en konto med e-post og logg på kontoen din.
- Lag en ny forekomst (jeg kalte den TEST_1).
- Åpne forekomstinformasjonen.
- Legg merke til serveren, brukeren, passordet og porten.
- Se CloudMQTT Python -dokumentasjon og lagre skriptet som CloudMQTT.py.
- Eksempelkoden i dokumentasjonen krever paho -bibliotek, Installer Paho Python -klient ved hjelp av pip -verktøy, åpne cmd -ledeteksten som administrator og skriv inn følgende kommando.
pip installer paho-mqtt
Trinn 5: Raspberry Pi endelig kode forklart:
La meg forklare hvordan jeg kombinerte RPi_UI.py -filen med CloudMQTT.py og lagret den som RPi_UI.py.
Importer biblioteker, hvis det ikke er installert, bare installer det
importer paho.mqtt.client som mqtt
import urlparse from PyQt5 import QtGui, QtWidgets, QtCore from PyQt5. QtCore import QTimer, QTime from threading import Thread import sys import re from google_drive_downloader import GoogleDriveDownloader as gdd import os
For å installere googledrivedownloader, bruk kommandoen
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."
Etterfulgt av klassen Ui_MainWindow
klasse Ui_MainWindow (objekt):
def setupUi (self, MainWindow): … def retranslateUi (self, MainWindow): … def _update (self): …
Følgende linjer i funksjonsoppsettetUi oppdaterer GUI hvert tredje sekund ved å kalle _update -funksjonen
self.retranslateUi (MainWindow)
QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)
On_message -funksjonen venter på meldingen fra megleren, når meldingen er mottatt, laster den ned bildet fra Google -stasjonen ved hjelp av koblings -IDen for Google Drive og endrer også verdiene til de globale variablene
def on_message (klient, obj, msg):
print (str (msg. Payload)) if (str (msg.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 = path) contestImg = result.group (1) meeting1 = result.group (2) venue1 = result.group (3) meeting2 = result.group (4) venue2 = result.group (5) meeting3 = result.group (6) spillested3 = resultat.gruppe (7)
Koden består av 2 uendelige sløyfer,
rc = mqttc.loop ()
og
sys.exit (app.exec_ ())
For å kjøre disse løkkene samtidig har jeg brukt Threading -konseptet
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 ()
Kult, vi har fullført konfigurasjonen av Raspberry Pi. La oss deretter designe GUI for Windows PC for å publisere meldingen til Raspberry Pi.
Trinn 6: Windows PC GUI:
- Design en GUI for Windows og lagre den som Windows_UI.ui.
- Konverter den til en python -fil.
- Kombiner den med CloudMQTT.py -filen og lagre den som Windows_UI.py.
- Funksjonen til Windows_UI.py -filen ligner på filen RPi_UI.py, den eneste forskjellen er at Windows_UI.py -filen publiserer meldingen mens RPi_UI.py mottar meldingen.
Trinn 7: Endelig kode for Windows PC forklart:
- Windows_UI.py -filen har alle klassene og funksjonene til RPi_UI.ui bortsett fra noen få.
- I stedet for on_message -funksjonen har den en on_publish -funksjon for å publisere meldingen.
- Følgende kode i retranslateUi -funksjonen kaller publiseringsfunksjonen når du klikker på PUBLISH -knappen.
self.pushButton.clicked.connect (self.publish)
- Publiseringsfunksjonen kobler sammen link -IDen for delbar google -stasjon og møteinformasjonen og publiserer den under emnet "varsel".
- Denne meldingen vil bli mottatt av Raspberry Pi.
Trinn 8: Konfigurer det digitale oppslagstavlet:
- Koble Raspberry Pi til en HDMI -skjerm, jeg har brukt min Sony TV som digital oppslagstavle.
- Kjør RPi_UI.py -filen i Raspberry Pi.
- Kjør Windows_UI.py -filen på Windows -PCen.
- Skriv inn koblings -ID -en for Google -stasjonen til et konkurransebilde og møtemeldingen.
- Klikk på PUBLISH -knappen.
- Nå kan du se det oppdaterte Digital Notice Board innen få sekunder.
Tips:
- Du kan opprette ønsket antall digitale oppslagstavler, og tavlene kan abonneres på forskjellige emner.
- For å gjøre Windows_UI.py -filen bærbar, kan du konvertere filen til en kjørbar fil ved hjelp av pyinstaller, slik at du kan kjøre den kjørbare filen på en hvilken som helst Windows -PC uten å installere de nødvendige bibliotekene på PCen.
Takk skal du ha
SABARI KANNAN M
Anbefalt:
Bluetooth -kontrollert Messenger LCD -- 16x2 LCD -- Hc05 -- Enkel -- Trådløst oppslagstavle: 8 trinn
Bluetooth -kontrollert Messenger LCD || 16x2 LCD || Hc05 || Enkel || Trådløst oppslagstavle: …………………………. Vennligst abonner på YouTube -kanalen min for flere videoer …… ………………………………… Oppslagstavlen brukes til å oppdatere folk med ny informasjon eller Hvis du vil sende melding med på rommet eller i hal
Trådløst oppslagstavle (Bluetooth): 5 trinn (med bilder)
Trådløst oppslagstavle (Bluetooth): I denne moderne verden der alt er digitalisert, hvorfor ikke konvensjonelle oppslagstavler får et nytt utseende. Så la oss lage et Bluetooth -kontrollert oppslagstavle som er veldig enkelt. Dette oppsettet kan brukes i stedet for statisk varsel brett som på høyskoler/i
HJEMAUTOMASJON BASERT PÅ LOKAL MQTT -SERVER SOM BRUKER RASPBERRY PI OG NODEMCU BOARD: 6 trinn
HJEMAUTOMASJON BASERT PÅ LOKAL MQTT -SERVER SOM BRUKER RASPBERRY PI OG NODEMCU BOARD: Hittil har jeg laget flere opplæringsvideoer om kontroll av apparater over internett. Og for det foretrakk jeg alltid Adafruit MQTT -serveren, da den var enkel å bruke og brukervennlig også. Men alt det var basert på internett. Det betyr at vi
Hvordan lage en autonom basketballball som bruker en IRobot Lag som base: 7 trinn (med bilder)
Slik lager du en autonom basketballball som bruker en IRobot Lag som base: Dette er min oppføring for iRobot Create -utfordringen. Den vanskeligste delen av hele denne prosessen for meg var å bestemme hva roboten skulle gjøre. Jeg ønsket å demonstrere de kule funksjonene i Create, samtidig som jeg la til litt robo -teft. Alle mine
Gjør Skolenes oppslagstavle VIRKELIG merkbar: 4 trinn
Gjør skolene dine oppslagstavle VIRKELIG merkbare: Lag en kjedelig gammel oppslagstavle som virkelig er iøynefallende til en billig pris. En dag satt jeg i timene og gjorde jobben min (hoste, hoste, snakke, hoste) og naturfaglæreren ringte meg utenfor. Bugger, tenkte jeg. Men nei, han ville faktisk at jeg skulle bygge ham