Innholdsfortegnelse:

Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokoll: 8 trinn
Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokoll: 8 trinn

Video: Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokoll: 8 trinn

Video: Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokoll: 8 trinn
Video: Test iPad som tavle 2024, November
Anonim
Image
Image
Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokollen
Digital oppslagstavle som bruker Raspberry Pi og MQTT -protokollen

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?

Hvordan fungerer digital oppslagstavle?
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:

  1. Raspberry Pi med Rasbian OS
  2. Skjerm med HDMI -port
  3. Windows PC
  4. Internett-tilkobling
  5. CloudMQTT -konto

Trinn 3: GUI -design for visning av merknader:

Image
Image
GUI -design for visning av merknader
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:

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

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