Съдържание:
- Стъпка 1: Как работи таблото за цифрови съобщения?
- Стъпка 2: Необходими неща:
- Стъпка 3: Дизайн на GUI за показване на известия:
- Стъпка 4: Създайте акаунт в CloudMQTT:
- Стъпка 5: Обяснен е окончателният код на Raspberry Pi:
- Стъпка 6: Графичен интерфейс за компютър с Windows:
- Стъпка 7: Обяснен е окончателният код на Windows PC:
- Стъпка 8: Настройте цифровата дъска за обяви:
Видео: Цифрова табла за съобщения, използваща Raspberry Pi и MQTT протокол: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Табла за обяви се използват почти навсякъде, като офиси, училища, болници и хотели. Те могат да се използват отново и отново за показване на важни известия или рекламиране на предстоящи събития или срещи. Но обявлението или рекламите трябва да бъдат отпечатани на хартия и залепени върху дъските за обяви.
В тази инструкция нека се научим да изграждаме нашата дъска за цифрови съобщения с Raspberry Pi, за да спестим много хартии и тонер!
Стъпка 1: Как работи таблото за цифрови съобщения?
- Raspberry Pi, свързан към HDMI дисплей, който е нашата дъска за цифрови съобщения.
- Компютър с Windows се използва за публикуване на известието на таблото за цифрови съобщения чрез интернет.
- Съобщението, публикувано от компютъра с Windows, се получава от Съвета за цифрови съобщения чрез брокер CloudMQTT.
- Комуникацията между компютъра с Windows и таблото за цифрови съобщения се постига чрез протокола MQTT.
Стъпка 2: Необходими неща:
- Raspberry Pi с Rasbian OS
- Дисплей с HDMI порт
- Компютър с Windows
- Интернет връзка
- Акаунт в CloudMQTT
Стъпка 3: Дизайн на GUI за показване на известия:
Трябва да проектираме 2 графични интерфейса, един за Raspberry Pi, който да показва известието на HDMI дисплея, а друг за компютър с Windows, за да публикува известието в Raspberry Pi чрез брокер CloudMQTT.
Дизайнът на графичния интерфейс зависи от мястото, където ще поставите таблото за цифрови съобщения. Например, позволете ми да проектирам графичен интерфейс за Office Instructables за показване на предстоящи събития и срещи, така че служителите да могат да бъдат актуализирани с най -новата информация.
Лесно е да се проектира графичен потребителски интерфейс в компютър с Windows, така че нека да проектираме графичния интерфейс на дъската за цифрови съобщения в компютъра с Windows и да копираме кода в Raspberry Pi.
Необходим софтуер:
Anaconda (който включва python 2.7, пакет Qt Designer и Spyder IDE).
Qt Designer е инструментът, използван за проектиране на графични интерфейси. Резултатът от Qt Designer ще бъде.ui файл, по -късно той може да бъде преобразуван в.py за по -нататъшен процес.
Какво се случва във видеото?:
- Изтеглете Anaconda Windows Installer за python 2.7 и го инсталирайте на компютър с Windows (нормален процес на инсталиране).
- След инсталацията можете да намерите инструмента Qt Designer в "installation_directory / Library / bin / designer.exe" (за мен това е "C: / Anaconda2 / Library / bin / designer.exe")
- Създайте пряк път за „designer.exe“и го поставете на работния плот.
- отворете "designer.exe".
- Създайте нов главен прозорец.
- Изберете и поставете оформленията и необходимите изгледи (текстов изглед, изглед на етикет и т.н.).
- Запазете като Rpi_UI.ui файл.
- За да го конвертирате в.py файл, отворете cmd подкана в текущата папка, където съществува файл Rpi_UI.ui, и въведете следната команда
директория за инсталиране / Библиотека / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
за мен е така, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
тази команда ще преобразува файла Rpi_UI.ui в файл Rpi_UI.py и ще го постави в същата директория.
- Отворете файла Rpi_UI.py с Spyder IDE, който е включен в Anaconda.
- Изпълнението на скрипта ще покаже графичния интерфейс, който сме проектирали по -рано.
След това нека настроим акаунта в CloudMQTT.
Стъпка 4: Създайте акаунт в CloudMQTT:
- Посетете тази връзка.
- Създайте акаунт с имейл и влезте в него.
- Създайте нов екземпляр (нарекох го като TEST_1).
- Отворете информацията за Instance.
- Забележете сървъра, потребителя, паролата и порта.
- Вижте документацията за CloudMQTT Python и запишете скрипта като CloudMQTT.py.
- Примерният код в документацията изисква paho библиотека, Инсталирайте Paho Python Client с помощта на pip tool, отворете cmd подкана като администратор и въведете следната команда.
pip install paho-mqtt
Стъпка 5: Обяснен е окончателният код на Raspberry Pi:
Тук ще ви обясня начина, по който комбинирах файла RPi_UI.py с CloudMQTT.py и го запазих като RPi_UI.py.
Импортирайте библиотеки, ако не е инсталирана, просто я инсталирайте
импортирайте paho.mqtt.client като mqtt
импортиране на urlparse от PyQt5 импортиране на QtGui, QtWidgets, QtCore от PyQt5. QtCore импортиране на QTimer, QTime от резба импортиране на импортиране на система за импортиране импортиране от google_drive_downloader импортиране на GoogleDriveDownloader като gdd импортиране os
За да инсталирате googledrivedownloader, използвайте командата
pip install googledrivedownloader
Инициализиране на променливи,
icon = "[email protected]"
CompetImg = "black" meeting1 = "Meeting1:" venue1 = "Час и място1." meeting2 = "Среща2:" venue2 = "Час и място2." meeting3 = "Meeting3:" venue3 = "Час и място3."
Следва класа Ui_MainWindow
клас Ui_MainWindow (обект):
def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…
Следните редове в setupUi на функцията актуализират GUI на всеки 3 секунди, като извикат функцията _update
self.retranslateUi (MainWindow)
QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)
Функцията on_message изчаква съобщението от брокера, след като съобщението бъде получено, изтегля изображението от google устройството, като използва идентификатора на връзката за споделяне на google drive, а също така променя стойностите на глобалните променливи
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) глобален конкурсImg глобална среща1 глобално място1 глобална среща2 глобално място2 глобално събрание3 глобално място3 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 = път) CompetImg = резултат.група (1) среща1 = резултат.група (2) място1 = резултат.група (3) среща2 = резултат.група (4) място2 = резултат.група (5) среща3 = резултат.група (6) venue3 = резултат.група (7)
Кодът се състои от 2 безкрайни цикъла,
rc = mqttc.loop ()
и
sys.exit (app.exec_ ())
За да стартирам тези цикли едновременно, използвах концепцията 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 ()
Готино, завършихме настройката на Raspberry Pi, след това нека проектираме GUI за компютър с Windows, за да публикуваме съобщението на Raspberry Pi.
Стъпка 6: Графичен интерфейс за компютър с Windows:
- Проектирайте графичен интерфейс за Windows и го запазете като Windows_UI.ui.
- Конвертирайте го в python файл.
- Комбинирайте го с файла CloudMQTT.py и го запазете като Windows_UI.py.
- Функцията на файла Windows_UI.py е подобна на файла RPi_UI.py, единствената разлика е, че файлът Windows_UI.py публикува съобщението, докато RPi_UI.py получава съобщението.
Стъпка 7: Обяснен е окончателният код на Windows PC:
- Файлът Windows_UI.py има всички класове и функции на RPi_UI.ui, с изключение на няколко.
- Вместо функцията on_message, тя има функция on_publish за публикуване на съобщението.
- Следният код в рамките на функцията retranslateUi извиква функцията за публикуване след натискане на бутона PUBLISH.
self.pushButton.clicked.connect (self.publish)
- Функцията за публикуване обединява идентификационния номер на връзката на Google Drive за споделяне и информацията за срещата и я публикува под темата „известие“.
- Това съобщение ще бъде получено от Raspberry Pi.
Стъпка 8: Настройте цифровата дъска за обяви:
- Свържете Raspberry Pi към HDMI дисплей, използвал съм телевизора си Sony като дисплей на цифровата дъска за съобщения.
- Стартирайте файла RPi_UI.py в Raspberry Pi.
- Стартирайте файла Windows_UI.py на компютъра с Windows.
- Въведете идентификационния номер на връзката с Google диск на изображение на конкурса и съобщението за срещата.
- Щракнете върху бутона ПУБЛИКУВАНЕ.
- Сега можете да видите актуализираната дъска за цифрови съобщения в рамките на няколко секунди.
Съвети:
- Можете да създадете желания брой табла за цифрови съобщения и дъските могат да се абонират за различни теми.
- За да направите файла Windows_UI.py преносим, можете да конвертирате файла в изпълним файл с помощта на pyinstaller, така че да можете да стартирате изпълнимия файл във всеки компютър с Windows, без да инсталирате необходимите библиотеки в компютъра.
Благодаря ти
САБАРИ КАНАН М
Препоръчано:
Табла за прилагане на 555 Таймер IC: 11 стъпки
Табло за приложение на 555 Таймер IC: Въведение: 555 таймер IC е един от най -полезните и добре познати IC за всеки от нас. Моят професионален вграден хардуерен носител стартира две години назад и през 2019 г. едната ми резолюция е да подготвя 45 различни вериги, използвайки 555 IC таймер за
Цифрова рамка за картина, използваща Gen4 ULCD-43DCT-CLB: 3 стъпки
Цифрова рамка за картина, използваща Gen4 ULCD-43DCT-CLB: Цифровата рамка за картини може да показва изображения с достъп до микро SD карта. Този проект използва 4D системи, Gen4 uLCD-43DCT-CLB за своя дисплей модул. Digital Picture Frame е прост проект, който може да се използва като дисплей за дома или офиса. Потребителите могат да
Табла за табла на Arduino: 3 стъпки
Arduino Scoreboard Lights: Това е проект, който направих за част от таблото за фехтовка. Исках нещо, което да изпише и да светне. Скоро разбрах, че технически можете да използвате това за много различни спортове, а не само за фехтовка. Какво всъщност прави проектът, аз
Безжично управление на табла за легло MQTT: 5 стъпки (със снимки)
Безжично управление на табла за легло MQTT: Преди няколко години закупихме ново легло с мемори пяна и, както е при повечето легла, трябваше да закупите и една от техните „одобрени бази“за да се запази гаранцията. Така че, ние избрахме най -евтината база, която включваше и
Цифрова брава на базата на Arduino, използваща GSM и Bluetooth: 4 стъпки
Цифрова брава на базата на Arduino, използваща GSM и Bluetooth: РЕЗЮМЕ: Помислете за ситуацията, в която сте се прибрали напълно уморени и сте открили, че сте загубили ключа си от вратата. Какво ще направиш? Трябва или да счупите ключалката си, или да се обадите на ключов механик. Така че, заключването без ключ е интересна идея да спасите от