Obsah:

Digitální nástěnka využívající protokol Raspberry Pi a MQTT: 8 kroků
Digitální nástěnka využívající protokol Raspberry Pi a MQTT: 8 kroků

Video: Digitální nástěnka využívající protokol Raspberry Pi a MQTT: 8 kroků

Video: Digitální nástěnka využívající protokol Raspberry Pi a MQTT: 8 kroků
Video: Vestax VCI-300 + VFX -1 Effect Controller 2024, Listopad
Anonim
Image
Image
Digitální nástěnka využívající protokol Raspberry Pi a MQTT
Digitální nástěnka využívající protokol Raspberry Pi a MQTT

Desky se používají téměř všude, například v kancelářích, školách, nemocnicích a hotelech. Mohou být použity znovu a znovu k zobrazení důležitých oznámení nebo k propagaci nadcházejících událostí nebo schůzek. Oznámení nebo reklamy však musí být vytištěny na papír a připnuty na nástěnky.

V tomto Instructable se naučíme budovat naši digitální nástěnku s Raspberry Pi, abychom ušetřili spoustu papírů a toneru!

Krok 1: Jak funguje digitální nástěnka?

Jak funguje digitální nástěnka?
Jak funguje digitální nástěnka?
  • Raspberry Pi připojený k HDMI displeji, což je naše digitální nástěnka.
  • K publikování oznámení na digitální nástěnce prostřednictvím internetu se používá počítač se systémem Windows.
  • Oznámení publikované počítačem se systémem Windows přijímá Digital Board Board prostřednictvím makléře CloudMQTT.
  • Komunikace mezi počítačem se systémem Windows a digitální nástěnkou je zajištěna protokolem MQTT.

Krok 2: Požadované věci:

  1. Raspberry Pi s operačním systémem Rasbian
  2. Displej s portem HDMI
  3. Windows PC
  4. Připojení k internetu
  5. Účet CloudMQTT

Krok 3: Návrh grafického uživatelského rozhraní pro zobrazování oznámení:

Image
Image
GUI Design pro zobrazování upozornění
GUI Design pro zobrazování upozornění

Musíme navrhnout 2 GUI, jedno pro Raspberry Pi pro zobrazení upozornění na HDMI displeji a druhé pro Windows PC pro zveřejnění oznámení pro Raspberry Pi prostřednictvím brokera CloudMQTT.

Design grafického uživatelského rozhraní závisí na místě, kam budete digitální nástěnku umísťovat. Dovolte mi například navrhnout GUI pro Instructables Office tak, aby zobrazovalo nadcházející události a schůzky, aby mohli být zaměstnanci aktualizováni o nejnovější informace.

V počítači se systémem Windows je snadné navrhnout grafické uživatelské rozhraní, navrhneme tedy grafické uživatelské rozhraní digitální nástěnky v počítači se systémem Windows a zkopírujeme kód do Raspberry Pi.

Potřebný software:

Anaconda (která obsahuje python 2.7, balíček Qt Designer a Spyder IDE).

Qt Designer je nástroj používaný k návrhu GUI. Výstupem Qt Designer bude soubor.ui, později jej lze převést na.py pro další zpracování.

Co se děje ve videu ?:

  • Stáhněte si Anaconda Windows Installer pro python 2.7 a nainstalujte jej do počítače se systémem Windows (normální instalační proces).
  • Po instalaci najdete nástroj Qt Designer v „instalační_adresář / Library / bin / designer.exe“(pro mě je to „C: / Anaconda2 / Library / bin / designer.exe“)
  • Vytvořte zástupce pro „designer.exe“a umístěte jej na plochu.
  • otevřete "designer.exe".
  • Vytvořte nové hlavní okno.
  • Vyberte a umístěte rozvržení a požadovaná zobrazení (zobrazení textu, zobrazení štítku atd.).
  • Uložit jako soubor Rpi_UI.ui.
  • Chcete -li jej převést na soubor.py, otevřete výzvu cmd v aktuální složce, kde existuje soubor Rpi_UI.ui, a zadejte následující příkaz

instalační_adresář / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

pro mě je, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

tento příkaz převede soubor Rpi_UI.ui na soubor Rpi_UI.py a umístí jej do stejného adresáře.

  • Otevřete soubor Rpi_UI.py pomocí Spyder IDE, který je součástí Anaconda.
  • Po spuštění skriptu se zobrazí GUI, které jsme navrhli dříve.

Dále si založíme účet CloudMQTT.

Krok 4: Nastavení účtu CloudMQTT:

Image
Image
  • Navštivte tento odkaz.
  • Vytvořte si účet pomocí e-mailu a přihlaste se ke svému účtu.
  • Vytvořte novou instanci (pojmenoval jsem ji jako TEST_1).
  • Otevřete informace o instanci.
  • Poznamenejte si server, uživatele, heslo a port.
  • Prostudujte si dokumentaci CloudMQTT Python a uložte skript jako CloudMQTT.py.
  • Příklad kódu v dokumentaci vyžaduje knihovnu paho, nainstalujte klienta Paho Python pomocí nástroje pip, otevřete příkaz cmd jako správce a zadejte následující příkaz.

pip install paho-mqtt

Krok 5: Vysvětlení konečného kódu Raspberry Pi:

Zde mi vysvětlím, jak jsem zkombinoval soubor RPi_UI.py s CloudMQTT.py a uložil jej jako RPi_UI.py.

Importujte knihovny, pokud nejsou nainstalovány, stačí je nainstalovat

importujte paho.mqtt.client jako 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

Chcete -li nainstalovat googledrivedownloader, použijte příkaz

pip install googledrivedownloader

Inicializace proměnných,

ikona = "[email protected]"

contestImg = "černá" meeting1 = "Meeting1:" Místo1 = "Čas a místo1." meeting2 = "Meeting2:" Místo2 = "Čas a místo2." meeting3 = "Meeting3:" Místo3 = "Čas a místo3."

Následuje třída Ui_MainWindow

třída Ui_MainWindow (objekt):

def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…

Následující řádky v nastavení funkceUU aktualizují GUI každé 3 sekundy voláním funkce _update

self.retranslateUi (hlavní okno)

QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)

Funkce on_message čeká na zprávu od makléře, jakmile je zpráva přijata, stáhne obrázek z jednotky Google pomocí ID odkazu na sdílení disku Google Drive a také změní hodnoty globálních proměnných

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) globální soutěž +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 = cesta) contestImg = result.group (1) meeting1 = result.group (2) Místo1 = result.group (3) meeting2 = result.group (4) Místo2 = result.group (5) meeting3 = result.group (6) place3 = result.group (7)

Kód se skládá ze 2 nekonečných smyček,

rc = mqttc.loop ()

a

sys.exit (app.exec_ ())

Aby bylo možné tyto smyčky spustit současně, použil jsem 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]) vláknoB = vlákno (cíl = sqImport, args = [1]) vláknoA.start () vláknoB.start () vláknoA.join () vláknoB.join ()

Skvěle, dokončili jsme nastavení Raspberry Pi, dále pojďme navrhnout GUI pro Windows PC a publikovat zprávu na Raspberry Pi.

Krok 6: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • Navrhněte GUI pro Windows a uložte jej jako Windows_UI.ui.
  • Převeďte jej do souboru pythonu.
  • Zkombinujte jej se souborem CloudMQTT.py a uložte jej jako Windows_UI.py.
  • Funkce souboru Windows_UI.py je podobná souboru RPi_UI.py, jediným rozdílem je, že soubor Windows_UI.py zprávu zveřejňuje, zatímco RPi_UI.py zprávu přijímá.

Krok 7: Vysvětlení konečného kódu Windows PC:

  • Soubor Windows_UI.py má všechny třídy a funkce RPi_UI.ui kromě několika.
  • Místo funkce on_message má k publikování zprávy funkci on_publish.
  • Následující kód v rámci funkce retranslateUi volá funkci publikování po kliknutí na tlačítko PUBLISH.

self.pushButton.clicked.connect (self.publish)

  • Funkce publikování zřetězí ID odkazu na sdílení disku Google a informace o schůzce a zveřejní je pod tématem „oznámení“.
  • Tuto zprávu obdrží Raspberry Pi.

Krok 8: Nastavení digitální nástěnky:

  • Připojte Raspberry Pi k displeji HDMI. Jako displej pro digitální nástěnku jsem použil svůj televizor Sony.
  • Spusťte soubor RPi_UI.py na Raspberry Pi.
  • Spusťte soubor Windows_UI.py v počítači se systémem Windows.
  • Zadejte ID odkazu na disk Google soutěžního obrázku a oznámení o setkání.
  • Klikněte na tlačítko PUBLIKOVAT.
  • Nyní můžete během několika sekund vidět aktualizovanou digitální nástěnku.

Tipy:

  • Můžete vytvořit požadovaný počet desek digitálních oznámení a desky lze přihlásit k odběru různých témat.
  • Aby byl soubor Windows_UI.py přenosný, můžete jej převést na spustitelný soubor pomocí pyinstalleru, takže spustitelný soubor můžete spustit v libovolném počítači se systémem Windows bez instalace požadovaných knihoven do počítače.

Děkuji

SABARI KANNAN M

Doporučuje: