Indholdsfortegnelse:

Digital opslagstavle, der bruger Raspberry Pi og MQTT -protokol: 8 trin
Digital opslagstavle, der bruger Raspberry Pi og MQTT -protokol: 8 trin

Video: Digital opslagstavle, der bruger Raspberry Pi og MQTT -protokol: 8 trin

Video: Digital opslagstavle, der bruger Raspberry Pi og MQTT -protokol: 8 trin
Video: The Expert (Short Comedy Sketch) 2024, November
Anonim
Image
Image
Digital opslagstavle ved hjælp af Raspberry Pi og MQTT -protokol
Digital opslagstavle ved hjælp af Raspberry Pi og MQTT -protokol

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?

Hvordan fungerer Digital opslagstavle?
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:

  1. Raspberry Pi med Rasbian OS
  2. Skærm med HDMI -port
  3. Windows -pc
  4. Internetforbindelse
  5. CloudMQTT -konto

Trin 3: GUI -design til visning af meddelelser:

Image
Image
GUI -design til visning af meddelelser
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:

Image
Image
  • 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:

Windows PC GUI
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: