Spisu treści:
- Krok 1: Jak działa cyfrowa tablica ogłoszeń?
- Krok 2: Wymagane rzeczy:
- Krok 3: Projekt GUI do wyświetlania powiadomień:
- Krok 4: Skonfiguruj konto CloudMQTT:
- Krok 5: Wyjaśnienie końcowego kodu Raspberry Pi:
- Krok 6: GUI komputera z systemem Windows:
- Krok 7: Objaśnienie końcowego kodu komputera z systemem Windows:
- Krok 8: Skonfiguruj cyfrową tablicę ogłoszeń:
Wideo: Cyfrowa tablica ogłoszeń wykorzystująca Raspberry Pi i protokół MQTT: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Tablice ogłoszeniowe są używane prawie wszędzie, np. w biurach, szkołach, szpitalach i hotelach. Mogą być używane wielokrotnie do wyświetlania ważnych ogłoszeń lub reklamowania nadchodzących wydarzeń lub spotkań. Ale ogłoszenie lub reklamy muszą być wydrukowane na papierze i przypięte na tablicach ogłoszeń.
W tej instrukcji nauczmy się budować naszą cyfrową tablicę ogłoszeń za pomocą Raspberry Pi, aby zaoszczędzić dużo papieru i tonera!
Krok 1: Jak działa cyfrowa tablica ogłoszeń?
- Raspberry Pi podłączone do wyświetlacza HDMI, który jest naszą cyfrową tablicą ogłoszeń.
- Komputer z systemem Windows służy do publikowania ogłoszenia na Cyfrowej Tablicy Ogłoszeń przez Internet.
- Ogłoszenie opublikowane przez komputer z systemem Windows jest odbierane przez Cyfrową Tablicę Ogłoszeń za pośrednictwem brokera CloudMQTT.
- Komunikacja między komputerem z systemem Windows a cyfrową tablicą ogłoszeń jest realizowana za pomocą protokołu MQTT.
Krok 2: Wymagane rzeczy:
- Raspberry Pi z Rasbian OS
- Wyświetlacz z portem HDMI
- Komputer z systemem Windows
- Połączenie internetowe
- Konto CloudMQTT
Krok 3: Projekt GUI do wyświetlania powiadomień:
Musimy zaprojektować 2 GUI, jeden dla Raspberry Pi, aby wyświetlić powiadomienie na wyświetlaczu HDMI, a drugi dla komputera z systemem Windows, aby opublikować powiadomienie dla Raspberry Pi za pośrednictwem brokera CloudMQTT.
Projekt GUI zależy od miejsca, w którym zamierzasz umieścić cyfrową tablicę ogłoszeń. Na przykład pozwól mi zaprojektować GUI dla Instructables Office, aby wyświetlać nadchodzące wydarzenia i spotkania, aby pracownicy mogli być aktualizowani o najnowsze informacje.
Projektowanie graficznego interfejsu użytkownika na komputerze z systemem Windows jest łatwe, więc zaprojektujmy interfejs graficzny cyfrowej tablicy ogłoszeń na komputerze z systemem Windows i skopiuj kod do Raspberry Pi.
Wymagane oprogramowanie:
Anaconda (w tym Python 2.7, pakiet Qt Designer i Spyder IDE).
Qt Designer to narzędzie używane do projektowania GUI. Wynikiem Qt Designera będzie plik.ui, który później można przekonwertować na.py w celu dalszego przetwarzania.
Co się dzieje w filmie?:
- Pobierz Anaconda Windows Installer dla Pythona 2.7 i zainstaluj go na komputerze z systemem Windows (normalny proces instalacji).
- Po instalacji narzędzie Qt Designer można znaleźć w katalogu „katalog_instalacyjny\Library\bin\designer.exe” (u mnie jest to „C:\Anaconda2\Library\bin\designer.exe”)
- Utwórz skrót do "designer.exe" i umieść go na pulpicie.
- otwórz "designer.exe".
- Utwórz nowe okno główne.
- Wybierz i umieść układy i wymagane widoki (widok tekstu, widok etykiety itp.).
- Zapisz jako plik Rpi_UI.ui.
- Aby przekonwertować go na plik.py, otwórz wiersz polecenia cmd w bieżącym folderze, w którym znajduje się plik Rpi_UI.ui i wpisz następujące polecenie
katalog_instalacyjny\Biblioteka\bin\pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
dla mnie to jest, C:\Anaconda2\Biblioteka\bin\pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
to polecenie przekonwertuje plik Rpi_UI.ui na plik Rpi_UI.py i umieści go w tym samym katalogu.
- Otwórz plik Rpi_UI.py za pomocą Spyder IDE, który jest zawarty w Anacondzie.
- Uruchomienie skryptu spowoduje wyświetlenie zaprojektowanego wcześniej GUI.
Następnie załóżmy konto CloudMQTT.
Krok 4: Skonfiguruj konto CloudMQTT:
- Odwiedź ten link.
- Utwórz konto z e-mailem i zaloguj się na swoje konto.
- Utwórz nową instancję (nazwałem ją TEST_1).
- Otwórz informacje o instancji.
- Zanotuj serwer, użytkownika, hasło i port.
- Zapoznaj się z dokumentacją CloudMQTT Python i zapisz skrypt jako CloudMQTT.py.
- Przykładowy kod w dokumentacji wymaga biblioteki paho, Zainstaluj klienta Paho Python za pomocą narzędzia pip, otwórz wiersz polecenia cmd jako administrator i wprowadź następujące polecenie.
pip zainstaluj paho-mqtt
Krok 5: Wyjaśnienie końcowego kodu Raspberry Pi:
Tutaj wyjaśnię, w jaki sposób połączyłem plik RPi_UI.py z CloudMQTT.py i zapisałem go jako RPi_UI.py.
Importuj biblioteki, jeśli nie są zainstalowane, po prostu je zainstaluj
import paho.mqtt.client jako mqtt
importuj urlparse z PyQt5 importuj QtGui, QtWidgets, QtCore z PyQt5. QtCore importuj QTimer, QTime z wątków importuj wątki importuj sys import re z google_drive_downloader import GoogleDriveDownloader jako gdd importuj system operacyjny
Aby zainstalować googledrivedownloader, użyj polecenia
pip zainstaluj googledrivedownloader
Inicjowanie zmiennych,
ikona = "[email protected]"
contestImg = "czarny" meeting1 = "Spotkanie1:" miejsce1 = "Czas i miejsce1." meeting2 = "Spotkanie2:" miejsce2 = "Czas i miejsce2." meeting3 = "Spotkanie3:" miejsce3 = "Czas i miejsce3."
Następnie klasa Ui_MainWindow
klasa Ui_MainWindow(obiekt):
def setupUi(self, MainWindow): … def retranslateUi(self, MainWindow): … def _update(self): …
Poniższe wiersze w funkcji setupUi aktualizują GUI co 3 sekundy, wywołując funkcję _update
self.retranslateUi(Okno główne)
QtCore. QMetaObject.connectSlotsByName(MainWindow) self.timer = QTimer() self.timer.timeout.connect(self._update) self.timer.start(3000)
Funkcja on_message czeka na wiadomość od brokera, po odebraniu wiadomości pobiera obraz z dysku google przy użyciu identyfikatora łącza udostępnianego dysku google, a także zmienia wartości zmiennych globalnych
def on_message(klient, obj, wiadomość):
print(str(msg.payload)) if(str(msg.payload)): noticeReceived = str(msg.payload) result = re.search('%1(.*)%2(.*)%3(. *)%4(.*)%5(.*)%6(.*)%7(.*)%8', zawiadomienie Otrzymano) globalny konkursImg globalne spotkanie1 globalne miejsce1 globalne spotkanie2 globalne miejsce2 globalne spotkanie3 globalne miejsce3 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= ścieżka) Img konkursu = wynik.grupa(1) spotkanie1 = wynik.grupa(2) miejsce1 = wynik.grupa(3) spotkanie2 = wynik.grupa(4) miejsce2 = wynik.grupa(5) spotkanie3 = wynik.grupa(6) miejsce3 = wynik.grupa(7)
Kod składa się z 2 nieskończonych pętli,
rc = mqttc.pętla()
oraz
sys.exit(app.exec_())
Aby uruchomić te pętle jednocześnie, użyłem koncepcji 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]) threadB = Thread(target = sqImport, args=[1]) threadA.start() threadB.start() threadA.join() threadB.join()
Fajnie, zakończyliśmy konfigurację Raspberry Pi, a następnie zaprojektujmy GUI dla komputera z systemem Windows, aby opublikować wiadomość do Raspberry Pi.
Krok 6: GUI komputera z systemem Windows:
- Zaprojektuj GUI dla systemu Windows i zapisz go jako Windows_UI.ui.
- Przekonwertuj go na plik Pythona.
- Połącz go z plikiem CloudMQTT.py i zapisz jako Windows_UI.py.
- Funkcja pliku Windows_UI.py jest podobna do pliku RPi_UI.py, jedyną różnicą jest to, że plik Windows_UI.py publikuje komunikat, podczas gdy RPi_UI.py odbiera komunikat.
Krok 7: Objaśnienie końcowego kodu komputera z systemem Windows:
- Plik Windows_UI.py zawiera wszystkie klasy i funkcje RPi_UI.ui z wyjątkiem kilku.
- Zamiast funkcji on_message ma funkcję on_publish do publikowania wiadomości.
- Poniższy kod w funkcji retranslateUi wywołuje funkcję publikowania po kliknięciu przycisku OPUBLIKUJ.
self.pushButton.clicked.connect(self.publish)
- Funkcja publikowania łączy identyfikator łącza do udostępniania na dysku Google oraz informacje o spotkaniu i publikuje je w temacie „powiadomienie”.
- Ta wiadomość zostanie odebrana przez Raspberry Pi.
Krok 8: Skonfiguruj cyfrową tablicę ogłoszeń:
- Podłącz Raspberry Pi do wyświetlacza HDMI, używałem mojego telewizora Sony jako wyświetlacza cyfrowej tablicy ogłoszeń.
- Uruchom plik RPi_UI.py w Raspberry Pi.
- Uruchom plik Windows_UI.py na komputerze z systemem Windows.
- Wpisz identyfikator linku do Dysku Google obrazu konkursowego i ogłoszenia o spotkaniu.
- Kliknij przycisk OPUBLIKUJ.
- Teraz możesz zobaczyć zaktualizowaną cyfrową tablicę ogłoszeń w ciągu kilku sekund.
Poradnik:
- Możesz utworzyć żądaną liczbę cyfrowych tablic ogłoszeniowych, a tablice można subskrybować do różnych tematów.
- Aby plik Windows_UI.py był przenośny, można go przekonwertować na plik wykonywalny za pomocą pyinstaller, dzięki czemu można uruchomić plik wykonywalny na dowolnym komputerze z systemem Windows bez instalowania wymaganych bibliotek na komputerze.
Dziękuję Ci
SABARI KANNAN M
Zalecana:
Komunikator LCD sterowany przez Bluetooth -- LCD 16x2 -- Hc05 -- Prosty -- Bezprzewodowa tablica ogłoszeń: 8 kroków
Komunikator LCD sterowany przez Bluetooth || LCD 16x2 || Hc05 || Prosty || Bezprzewodowa tablica ogłoszeń:……………………………. Proszę SUBSKRYBUJ Mój kanał na YouTube, aby uzyskać więcej filmów… ………………………………… Tablica ogłoszeń służy do aktualizowania ludzi o nowe informacje lub Jeśli chcesz wysłać wiadomość w pokoju lub w hal
Bezprzewodowa tablica ogłoszeń (Bluetooth): 5 kroków (ze zdjęciami)
Bezprzewodowa tablica ogłoszeniowa (Bluetooth): W tym nowoczesnym świecie, w którym wszystko jest zdigitalizowane, dlaczego nie konwencjonalna tablica ogłoszeniowa zyskuje nowy wygląd. Zróbmy więc tablicę ogłoszeniową sterowaną przez Bluetooth, która jest bardzo prosta. Ta konfiguracja może być używana zamiast statycznej tablicy ogłoszeń wyżywienie jak na uczelniach/w
Tablica ogłoszeń Raspberry Pi: 11 kroków (ze zdjęciami)
Tablica ogłoszeń Raspberry Pi: to projekt, nad którym pracowałem dla mojego kościoła. Chcieliśmy mieć elektroniczną tablicę ogłoszeń, która byłaby zamontowana w obszarze narteksu/lobby i co kilka sekund przechodziła przez statyczne slajdy.To były nasze cele projektowe: slajdy statyczne, brak wideo lub au
Jak stworzyć stronę internetową z tablicą ogłoszeń przy użyciu PHP i MYSQL: 5 kroków
Jak stworzyć stronę tablicy ogłoszeń używając PHP i MYSQL: Ta instrukcja pokaże Ci jak stworzyć stronę tablicy ogłoszeń używając php, mysql, html i css. Jeśli jesteś nowy w tworzeniu stron internetowych, nie martw się, będą szczegółowe wyjaśnienia i analogie, dzięki którym możesz lepiej zrozumieć pojęcia. Mata
Tablica ogłoszeń LED IoT RPi: 3 kroki (ze zdjęciami)
Tablica ogłoszeń LED IoT RPi: W tym Instruktażowym stworzyłem tablicę ogłoszeń LED połączoną z Wi-Fi za pomocą Raspberry Pi (RPi). Użytkownicy będą łączyć się z serwerem WWW Raspberry Pi za pomocą przeglądarki, aby przesyłać krótkie wiadomości, które pojawią się na wyświetlaczu LED 8x8. Od interfejsu