Inhaltsverzeichnis:
- Schritt 1: Wie funktioniert das digitale Schwarze Brett?
- Schritt 2: Erforderliche Dinge:
- Schritt 3: GUI-Design zur Anzeige von Hinweisen:
- Schritt 4: Einrichten eines CloudMQTT-Kontos:
- Schritt 5: Raspberry Pi Final Code erklärt:
- Schritt 6: Windows-PC-GUI:
- Schritt 7: Erklärter endgültiger Windows-PC-Code:
- Schritt 8: Richten Sie das digitale Schwarze Brett ein:
Video: Digitales Schwarzes Brett mit Raspberry Pi und MQTT-Protokoll - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Schwarze Bretter werden fast überall verwendet, z. B. in Büros, Schulen, Krankenhäusern und Hotels. Sie können immer wieder verwendet werden, um wichtige Hinweise anzuzeigen oder bevorstehende Veranstaltungen oder Meetings zu bewerben. Der Aushang oder die Anzeigen müssen jedoch auf Papier gedruckt und an den Anschlagtafeln angeheftet werden.
In diesem Instructable lernen wir, unser digitales Schwarzes Brett mit Raspberry Pi zu bauen, um viele Papiere und Toner zu sparen!
Schritt 1: Wie funktioniert das digitale Schwarze Brett?
- Ein Raspberry Pi, der mit einem HDMI-Display verbunden ist, das unser digitales Schwarzes Brett ist.
- Ein Windows-PC wird verwendet, um die Bekanntmachung auf dem digitalen Schwarzen Brett über das Internet zu veröffentlichen.
- Die vom Windows-PC veröffentlichte Bekanntmachung geht über einen CloudMQTT-Broker beim Digitalen Anschlagbrett ein.
- Die Kommunikation zwischen dem Windows-PC und dem Digitalen Brett erfolgt über das MQTT-Protokoll.
Schritt 2: Erforderliche Dinge:
- Raspberry Pi mit Rasbian OS
- Display mit HDMI-Anschluss
- Windows-PC
- Internetverbindung
- CloudMQTT-Konto
Schritt 3: GUI-Design zur Anzeige von Hinweisen:
Wir müssen 2 GUIs entwerfen, eine für Raspberry Pi, um den Hinweis auf dem HDMI-Display anzuzeigen, und einen anderen für Windows-PC, um den Hinweis über den CloudMQTT-Broker an Raspberry Pi zu veröffentlichen.
Das GUI-Design hängt von dem Ort ab, an dem Sie das digitale Schwarze Brett platzieren möchten. Lassen Sie mich zum Beispiel eine GUI für Instructables Office entwerfen, um bevorstehende Veranstaltungen und Besprechungen anzuzeigen, damit die Mitarbeiter mit den neuesten Informationen aktualisiert werden können.
Es ist einfach, eine GUI auf einem Windows-PC zu entwerfen, also lassen Sie uns die GUI des Digital Notice Board auf dem Windows-PC entwerfen und den Code auf den Raspberry Pi kopieren.
Erforderliche Software:
Anaconda (einschließlich Python 2.7, Qt Designer-Paket und Spyder-IDE).
Qt Designer ist das Tool zum Entwerfen von GUIs. Die Ausgabe des Qt Designers ist eine.ui-Datei, die später zur weiteren Verarbeitung in.py konvertiert werden kann.
Was passiert im Video?:
- Laden Sie Anaconda Windows Installer für Python 2.7 herunter und installieren Sie es auf einem Windows-PC (normaler Installationsvorgang).
- Nach der Installation finden Sie das Qt Designer-Tool in "installation_directory\Library\bin\designer.exe" (bei mir ist es "C:\Anaconda2\Library\bin\designer.exe")
- Erstellen Sie eine Verknüpfung für "designer.exe" und legen Sie diese auf dem Desktop ab.
- öffne "designer.exe".
- Erstellen Sie ein neues Hauptfenster.
- Wählen Sie die Layouts und die erforderlichen Ansichten (Textansicht, Etikettenansicht usw.) aus und platzieren Sie sie.
- Als Rpi_UI.ui-Datei speichern.
- Um es in eine.py-Datei zu konvertieren, öffnen Sie die cmd-Eingabeaufforderung im aktuellen Ordner, in dem sich die Datei Rpi_UI.ui befindet, und geben Sie den folgenden Befehl ein:
Installationsverzeichnis\Library\bin\pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
für mich ist es, C:\Anaconda2\Library\bin\pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
Dieser Befehl konvertiert die Datei Rpi_UI.ui in die Datei Rpi_UI.py und legt sie im selben Verzeichnis ab.
- Öffnen Sie die Datei Rpi_UI.py mit der Spyder-IDE, die in Anaconda enthalten ist.
- Wenn Sie das Skript ausführen, wird die zuvor entworfene GUI angezeigt.
Als Nächstes richten wir das CloudMQTT-Konto ein.
Schritt 4: Einrichten eines CloudMQTT-Kontos:
- Besuchen Sie diesen Link.
- Erstellen Sie ein Konto mit E-Mail und loggen Sie sich in Ihr Konto ein.
- Neue Instanz erstellen (ich habe sie TEST_1 genannt).
- Öffnen Sie die Instanzinfo.
- Notieren Sie sich Server, Benutzer, Kennwort und Port.
- Lesen Sie die CloudMQTT-Python-Dokumentation und speichern Sie das Skript als CloudMQTT.py.
- Der Beispielcode in der Dokumentation erfordert die paho-Bibliothek, Installieren Sie den Paho Python-Client mit dem pip-Tool, öffnen Sie die cmd-Eingabeaufforderung als Administrator und geben Sie den folgenden Befehl ein.
pip install paho-mqtt
Schritt 5: Raspberry Pi Final Code erklärt:
Lassen Sie mich hier erklären, wie ich die Datei RPi_UI.py mit der CloudMQTT.py kombiniert und als RPi_UI.py gespeichert habe.
Bibliotheken importieren, wenn sie nicht installiert sind, installieren Sie sie einfach
paho.mqtt.client als mqtt importieren
urlparse von PyQt5 importieren QtGui, QtWidgets, QtCore von PyQt5 importieren. QtCore QTimer importieren, QTime von Threading importieren Thread importieren sys importieren re von google_drive_downloader importieren GoogleDriveDownloader als gdd importieren os
Um googledrivedownloader zu installieren, verwenden Sie den Befehl
pip installieren googledrivedownloader
Initialisieren von Variablen,
icon = "[email protected]"
ContestImg = "schwarz" meeting1 = "Meeting1:" Veranstaltungsort1 = "Zeit und Veranstaltungsort1." meeting2 = "Meeting2:" Venue2 = "Zeit und Ort2." meeting3 = "Meeting3:" Venue3 = "Zeit und Ort3."
Gefolgt von der Klasse Ui_MainWindow
Klasse Ui_MainWindow(Objekt):
def setupUi(self, MainWindow): … def retranslateUi(self, MainWindow): … def _update(self): …
Die folgenden Zeilen in der Funktion setupUi aktualisieren die GUI alle 3 Sekunden durch Aufrufen der _update-Funktion
self.retranslateUi(Hauptfenster)
QtCore. QMetaObject.connectSlotsByName(MainWindow) self.timer = QTimer() self.timer.timeout.connect(self._update) self.timer.start(3000)
Die Funktion on_message wartet auf die Nachricht vom Broker, lädt nach Erhalt der Nachricht das Bild vom Google-Laufwerk mit der gemeinsam nutzbaren Link-ID des Google-Laufwerks herunter und ändert auch die Werte der globalen Variablen
def on_message(client, 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) globaler WettbewerbImg globales Meeting1 globaler Veranstaltungsort1 globales Meeting2 globaler Veranstaltungsort2 globales Meeting3 globaler Veranstaltungsort3 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) Veranstaltungsort1 = result.group(3) meeting2 = result.group(4) Veranstaltungsort2 = result.group(5) meeting3 = result.group(6) Veranstaltungsort3 = Ergebnis. Gruppe(7)
Der Code besteht aus 2 Endlosschleifen,
rc = mqttc.loop()
und
sys.exit(app.exec_())
Um diese Schleifen gleichzeitig auszuführen, habe ich das Threading-Konzept verwendet
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()
Cool, wir haben das Raspberry Pi-Setup abgeschlossen. Lassen Sie uns als nächstes eine GUI für Windows-PC entwerfen, um die Nachricht auf dem Raspberry Pi zu veröffentlichen.
Schritt 6: Windows-PC-GUI:
- Entwerfen Sie eine GUI für Windows und speichern Sie sie als Windows_UI.ui.
- Konvertieren Sie es in eine Python-Datei.
- Kombinieren Sie es mit der Datei CloudMQTT.py und speichern Sie es als Windows_UI.py.
- Die Funktion der Datei Windows_UI.py ähnelt der Datei RPi_UI.py, der einzige Unterschied besteht darin, dass die Datei Windows_UI.py die Nachricht veröffentlicht, während die Datei RPi_UI.py die Nachricht empfängt.
Schritt 7: Erklärter endgültiger Windows-PC-Code:
- Die Datei Windows_UI.py enthält alle Klassen und Funktionen von RPi_UI.ui mit Ausnahme einiger weniger.
- Anstelle der Funktion on_message verfügt sie über eine Funktion on_publish zum Veröffentlichen der Nachricht.
- Der folgende Code innerhalb der Funktion retranslateUi ruft die Veröffentlichungsfunktion auf, sobald auf die Schaltfläche PUBLISH geklickt wird.
self.pushButton.clicked.connect(self.publish)
- Die Veröffentlichungsfunktion verkettet die gemeinsam nutzbare Link-ID von Google Drive und die Besprechungsinformationen und veröffentlicht sie unter dem Thema "Hinweis".
- Diese Nachricht wird vom Raspberry Pi empfangen.
Schritt 8: Richten Sie das digitale Schwarze Brett ein:
- Verbinden Sie den Raspberry Pi mit einem HDMI-Display, ich habe meinen Sony-Fernseher als digitales Anzeigetafel-Display verwendet.
- Führen Sie die Datei RPi_UI.py auf dem Raspberry Pi aus.
- Führen Sie die Datei Windows_UI.py auf dem Windows-PC aus.
- Geben Sie die Google Drive-Link-ID eines Wettbewerbsbilds und der Besprechungsankündigung ein.
- Klicken Sie auf die Schaltfläche VERÖFFENTLICHEN.
- Jetzt können Sie innerhalb weniger Sekunden das aktualisierte Digitale Schwarze Brett sehen.
Hinweise:
- Sie können die gewünschte Anzahl an digitalen Pinnwänden erstellen und die Boards können zu verschiedenen Themen abonniert werden.
- Um die Datei Windows_UI.py portabel zu machen, können Sie die Datei mit pyinstaller in eine ausführbare Datei konvertieren, sodass Sie die ausführbare Datei auf jedem Windows-PC ausführen können, ohne die erforderlichen Bibliotheken auf dem PC zu installieren.
Dankeschön
SABARI KANNAN M
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Wie erstelle ich ein digitales Thermometer # 1: 4 Schritte
So erstellen Sie ein digitales Thermometer Nr. 1: In diesem Artikel werde ich ein Projekt namens "Digitales Thermometer" erstellen. Ich verwende "DHT11" für den Temperatursensor. Und verwenden Sie das "7Segmrnt-Modul" als Anzeige. Ich empfehle, diesen Artikel zuerst zu lesen "DHT11" und &q
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50