Мазмұны:

Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы: 8 қадам
Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы: 8 қадам

Бейне: Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы: 8 қадам

Бейне: Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы: 8 қадам
Бейне: Урок №11. Интеграция Arduino с ПК и базами данных. Beyond Robotics 2024, Қараша
Anonim
Image
Image
Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы
Raspberry Pi мен MQTT протоколын қолданатын цифрлық хабарландыру тақтасы

Хабарландыру тақталары кеңсе, мектептер, ауруханалар мен қонақүйлер сияқты барлық жерде дерлік қолданылады. Оларды маңызды хабарландыруларды көрсету немесе алдағы оқиғалар мен кездесулерді жарнамалау үшін қайта -қайта қолдануға болады. Бірақ хабарландыруды немесе жарнаманы қағазға басып шығарып, хабарландыру тақтасына бекіту керек.

Бұл нұсқаулықта көптеген қағаздар мен тонерді үнемдеу үшін Raspberry Pi көмегімен цифрлық хабарландыру тақтасын құруды үйренейік!

1 -қадам: Сандық хабарландыру тақтасы қалай жұмыс істейді?

Сандық хабарландыру тақтасы қалай жұмыс істейді?
Сандық хабарландыру тақтасы қалай жұмыс істейді?
  • Raspberry Pi біздің сандық хабарландыру тақтасы болып табылатын HDMI дисплейіне қосылған.
  • Windows компьютері Интернет арқылы сандық хабарламалар тақтасында хабарламаны жариялау үшін қолданылады.
  • Windows ДК жариялаған хабарламаны CloudMQTT брокері арқылы Digital Notice Board алады.
  • Windows компьютері мен цифрлық хабарламалар тақтасы арасындағы байланыс MQTT хаттамасы арқылы жүзеге асады.

2 -қадам: Қажетті заттар:

  1. Rasbian OS қосылған Raspberry Pi
  2. HDMI порты бар дисплей
  3. Windows компьютері
  4. Интернет байланысы
  5. CloudMQTT есептік жазбасы

3 -қадам: Хабарландыруларды көрсету үшін GUI дизайны:

Image
Image
Хабарландыруларды көрсету үшін GUI дизайны
Хабарландыруларды көрсету үшін GUI дизайны

Біз 2 GUI -ді жобалауымыз керек, біреуі Raspberry Pi -ге арналған хабарламаны HDMI дисплейінде көрсету үшін, екіншісі Windows компьютеріне арналған хабарламаны Raspberry Pi -ге CloudMQTT брокері арқылы жариялау үшін.

GUI дизайны цифрлық хабарландыру тақтасын орналастыратын жерге байланысты. Мысалы, алдағы оқиғалар мен кездесулерді көрсету үшін қызметкерлерді соңғы ақпаратпен жаңартып отыру үшін Instructables Office GUI құруға рұқсат етіңіз.

Windows компьютерінде GUI құрастыру оңай, сондықтан Windows компьютерінде Digital Notice Board GUI -ді құрастырып, кодты Raspberry Pi -ге көшірейік.

Қажетті бағдарламалық қамтамасыз ету:

Анаконда (оған python 2.7, Qt Designer пакеті мен Spyder IDE кіреді).

Qt Designer - бұл GUI -ді құруға арналған құрал. Qt Designer шығысы.ui файлы болады, кейін оны әрі қарай өңдеу үшін.py түрлендіруге болады.

Бейнеде не болып жатыр?:

  • Python 2.7 үшін Anaconda Windows Installer жүктеп, оны Windows компьютеріне орнатыңыз (қалыпты орнату процесі).
  • Орнатқаннан кейін сіз Qt Designer құралын «install_directory / Library / bin / designer.exe» ішінен таба аласыз (мен үшін бұл «C: / Anaconda2 / Library / bin / designer.exe»)
  • «Designer.exe» сілтемесін жасаңыз және оны жұмыс үстеліне қойыңыз.
  • «designer.exe» файлын ашыңыз.
  • Жаңа негізгі терезені жасаңыз.
  • Орналасулар мен қажетті көріністерді (мәтін көрінісі, жапсырма көрінісі және т.б.) таңдаңыз және орналастырыңыз.
  • Rpi_UI.ui файлы ретінде сақтаңыз.
  • Оны.py файлына айналдыру үшін Rpi_UI.ui файлы бар қалтада cmd шақыруын ашыңыз және келесі пәрменді теріңіз

install_directory / Library / 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 файлын toRpi_UI.py файлына түрлендіреді және оны сол каталогқа орналастырады.

  • Anaconda құрамына кіретін Spyder IDE көмегімен Rpi_UI.py файлын ашыңыз.
  • Сценарийді іске қосу біз бұрын жасаған GUI көрсетеді.

Әрі қарай, CloudMQTT есептік жазбасын орнатуға рұқсат етіңіз.

4 -қадам: CloudMQTT есептік жазбасын орнату:

Image
Image
  • Мына сілтемеге өтіңіз.
  • Электрондық пошта арқылы тіркелгі жасаңыз және тіркелгіңізге кіріңіз.
  • Жаңа дананы жасаңыз (мен оны TEST_1 деп атадым).
  • Instance ақпаратын ашыңыз.
  • Серверге, пайдаланушыға, құпия сөзге және портқа назар аударыңыз.
  • CloudMQTT Python құжаттамасына жүгініңіз және сценарийді CloudMQTT.py ретінде сақтаңыз.
  • Құжаттамадағы мысал коды paho кітапханасын қажет етеді, Paho Python Client бағдарламасын pip құралының көмегімен орнатыңыз, әкімші ретінде cmd шақыруын ашыңыз және келесі пәрменді енгізіңіз.

paho-mqtt орнатыңыз

5 -қадам: Raspberry Pi қорытынды коды түсіндіріледі:

Міне, мен RPi_UI.py файлын CloudMQTT.py -мен біріктіруді және оны RPi_UI.py ретінде сақтауды түсіндірейін.

Кітапханаларды импорттаңыз, егер ол орнатылмаса

paho.mqtt.client файлын mqtt ретінде импорттаңыз

PyQt5 -тен urlparse импорттау QtGui, QtWidgets, QtCore PyQt5 -тен импорттау

Googledrivedownloader орнату үшін пәрменді қолданыңыз

pip googledrivedownloader орнатыңыз

Айнымалыларды инициализациялау,

белгіше = «[email protected]»

CompetImg = «қара» кездесу1 = «Кездесу1:» орын1 = «Уақыт пен орын1.» Meeting2 = «Жиналыс2:» venue2 = «Уақыт пен орын2.» кездесу3 = «Кездесу3:» орын3 = «Уақыт пен орын3.»

Ui_MainWindow класы бойынша

сынып Ui_MainWindow (объект):

def setupUi (өзін, MainWindow):… def retranslateUi (өзін, MainWindow):… def _update (өзін):…

SetupUi функциясының келесі жолдары _update функциясын шақыру арқылы әр 3 секунд сайын GUI жаңартады

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 (клиент, obj, хабар):

print (str (msg.payload)) if (str (msg.payload)): noteReceived = str (msg.payload) нәтиже = қайта іздеу ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', хабарлама алынды) жаһандық конкурсImg global Meeting1 жаһандық орын1 жаһандық кездесу2 жаһандық кездесу2 жаһандық кездесу3 жаһандық орын3 fileId = «» +result.group (1)+«» path = «/home/pi/Desktop/Instructables/RPi UI/ContestImages/»+result.group (1)+«. jpg» gdd.download_from_google_drive (file_id = fileId, dest_path = жол) конкурсImg = нәтиже.топ (1) жиналыс1 = нәтиже.топ (2) орын1 = нәтиже.топ (3) кездесу2 = нәтиже.топ (4) орын2 = нәтиже.топ (5) кездесу3 = нәтиже.топ (6) орын3 = нәтиже тобы (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 (мақсатты) = sqImport, args = [0]) threadB = Thread (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

Керемет, біз Raspberry Pi -ді орнатуды аяқтадық, содан кейін хабарды Raspberry Pi -ге жариялау үшін Windows компьютерлеріне арналған GUI құрастырамыз.

6 -қадам: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • Windows үшін GUI жасаңыз және оны Windows_UI.ui ретінде сақтаңыз.
  • Оны python файлына айналдырыңыз.
  • Оны CloudMQTT.py файлымен біріктіріп, оны Windows_UI.py ретінде сақтаңыз.
  • Windows_UI.py файлының функциясы RPi_UI.py файлына ұқсас, айырмашылығы - Windows_UI.py файлында хабарды жариялау, ал RPi_UI.py хабарламаны алады.

7 -қадам: Windows компьютерінің соңғы коды түсіндіріледі:

  • Windows_UI.py файлында RPi_UI.ui файлдарының барлығынан басқа барлық сыныптары мен функциялары бар.
  • On_message функциясының орнына хабарламаны жариялау үшін on_publish функциясы бар.
  • RetanslateUi функциясының келесі коды PUBLISH батырмасы басылғаннан кейін жариялау функциясын шақырады.

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

  • Жариялау функциясы google drive ортақ сілтеме идентификаторы мен жиналыс ақпаратын біріктіреді және оны «хабарландыру» тақырыбында жариялайды.
  • Бұл хабарды Raspberry Pi алады.

8 -қадам: Сандық хабарландыру тақтасын орнатыңыз:

  • Raspberry Pi -ді HDMI дисплейіне қосыңыз, мен Sony теледидарымды сандық хабарламалар тақтасының дисплейі ретінде қолдандым.
  • Raspi Pi ішіндегі RPi_UI.py файлын іске қосыңыз.
  • Windows компьютерінде Windows_UI.py файлын іске қосыңыз.
  • Конкурс суреті мен жиналыс туралы хабарландырудың Google дискісінің сілтеме идентификаторын енгізіңіз.
  • ЖАРЫҚТАУ түймесін басыңыз.
  • Енді сіз бірнеше секунд ішінде жаңартылған сандық хабарландыру тақтасын көре аласыз.

Кеңестер:

  • Сіз цифрлық хабарландыру тақталарының қажетті санын жасай аласыз және тақталар әр түрлі тақырыптарға жазыла алады.
  • Windows_UI.py файлын портативті ету үшін, файлды pyinstaller көмегімен орындалатын файлға түрлендіруге болады, осылайша кез келген Windows компьютерінде орындалатын файлды компьютерге қажетті кітапханаларды орнатпай -ақ іске қосуға болады.

Рақмет сізге

САБАРИ КАННАН М.

Ұсынылған: