Мазмуну:

Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы: 8 кадам
Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы: 8 кадам

Video: Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы: 8 кадам

Video: Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы: 8 кадам
Video: 5. Установка MQTT Broker на Raspberry Pi. Умный Дом | Room31 2024, Ноябрь
Anonim
Image
Image
Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы
Raspberry Pi жана MQTT протоколун колдонуу менен санариптик билдирүү тактасы

Билдирүү такталары кеңсе, мектептер, ооруканалар жана мейманканалар сыяктуу дээрлик бардык жерде колдонулат. Алар маанилүү эскертүүлөрдү көрсөтүү же алдыдагы окуяларды же жолугушууларды жарнамалоо үчүн кайра -кайра колдонулушу мүмкүн. Бирок кулактандыруу же жарнак кагазга басылып, такталарга илиниши керек.

Бул Нускамада, Raspberry Pi менен санариптик тактабызды курууну үйрөнөлү, көптөгөн кагаздарды жана тонерди үнөмдөңүз!

1 -кадам: Санариптик билдирүү тактасы кантип иштейт?

Санариптик билдирүү тактасы кантип иштейт?
Санариптик билдирүү тактасы кантип иштейт?
  • Raspberry Pi биздин Санариптик тактабыз болгон HDMI дисплейине туташкан.
  • Windows PC эскертмелерди Интернет аркылуу Санарип тактасына жарыялоо үчүн колдонулат.
  • Windows PC тарабынан жарыяланган эскертме CloudMQTT брокери аркылуу Digital Notice Board тарабынан кабыл алынат.
  • Windows PC менен Digital Notice Board ортосундагы байланыш MQTT протоколу менен ишке ашат.

2 -кадам: Керектүү нерселер:

  1. Rasbian OS менен Raspberry Pi
  2. HDMI порту менен көрсөтүү
  3. Windows PC
  4. Интернетке туташуу
  5. CloudMQTT эсеби

3 -кадам: Эскертүүлөрдү көрсөтүү үчүн GUI дизайны:

Image
Image
Эскертүүлөрдү көрсөтүү үчүн GUI дизайны
Эскертүүлөрдү көрсөтүү үчүн GUI дизайны

Биз 2 GUIди иштеп чыгышыбыз керек, бири Raspberry Pi үчүн эскертмени HDMI дисплейинде көрсөтүү үчүн, экинчиси Windows PC үчүн CloudMQTT брокери аркылуу Raspberry Piге билдирүү жарыялоо үчүн.

GUI дизайны Санариптик билдирүү тактасын жайгаштыра турган жерге көз каранды. Мисалы, келе жаткан окуяларды жана жолугушууларды көрсөтүү үчүн GUIди Instructables Office үчүн иштеп чыгууга уруксат бериңиз, ошондо кызматкерлер акыркы маалымат менен жаңыртылып турушу мүмкүн.

Windows ЖКда GUI долбоорлоо оңой, андыктан Windows PCдеги Digital Notice Board GUIди иштеп чыгалы жана кодду Raspberry Piге көчүрөлү.

Программалык камсыздоо талап кылынат:

Анаконда (анын ичинде python 2.7, Qt Designer пакети жана Spyder IDE бар).

Qt Designer GUIлерди иштеп чыгуу үчүн колдонулган курал. Qt Дизайнеринин чыгарылышы.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 / Китепкана / 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 Клиентин пип куралын колдонуп орнотуңуз, администратор катары cmd чакыруусун ачыңыз жана төмөнкү буйрукту киргизиңиз.

pip 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 = "black" Meeting1 = "Meeting1:" venue1 = "Time and place1." Meeting2 = "Meeting2:" venue2 = "Time and place2." Meeting3 = "Meeting3:" venue3 = "Time and place3."

Ui_MainWindow классынын артынан

класс Ui_MainWindow (объект):

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

SetupUi функциясынын төмөнкү саптары _update функциясын чакырып, GUIди ар бир 3 секундда жаңыртып турат

self.retranslateUi (MainWindow)

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

On_message функциясы брокерден келген билдирүүнү күтөт, билдирүү алгандан кийин Google Driveдан бөлүшүлгөн шилтеме ID аркылуу google дисктен сүрөттү жүктөп алат жана глобалдык өзгөрмөлөрдүн маанилерин өзгөртөт

def on_message (кардар, obj, msg):

print (str (msg.payload)) if (str (msg.payload)): noteReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', эскертме алынды) глобалдык конкурс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_from_google_drive (file_id = fileId, dest_path = жол) CompetImg = result.group (1) Meeting1 = result.group (2) жер1 = result.group (3) жолугушуу2 = result.group (4) жер2 = result.group (5) жолугушуу3 = result.group (6) venue3 = result.group (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 PC үчүн GUIди иштеп чыгалы.

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

Windows PC GUI
Windows PC GUI
  • Windows үчүн GUIди иштеп чыгыңыз жана Windows_UI.ui катары сактаңыз.
  • Аны python файлына айлантыңыз.
  • Аны CloudMQTT.py файлы менен бириктирип, Windows_UI.py катары сактаңыз.
  • Windows_UI.

7 -кадам: Windows PC акыркы коду түшүндүрүлдү:

  • Windows_UI.py файлында RPi_UI.uiнин бардык класстары жана функциялары бар.
  • On_message функциясынын ордуна, билдирүүнү жарыялоо үчүн on_publish функциясы бар.
  • RetanslateUi функциясынын ичиндеги төмөнкү код ЖАРЫК баскычы басылганда жарыялоо функциясын чакырат.

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

  • Жарыялоо функциясы google drive sharable link ID менен жолугушуу маалыматын бириктирип, аны "эскертүү" деген теманын алдында жарыялайт.
  • Бул билдирүү Raspberry Pi тарабынан кабыл алынат.

8 -кадам: Санариптик билдирүү тактасын орнотуңуз:

  • Raspberry Pi'ни HDMI дисплейине туташтырыңыз, мен Sony сыналгымды Digital Notice Board дисплейи катары колдондум.
  • Raspi Piдеги RPi_UI.py файлын иштетүү.
  • Windows ЖК Windows_UI.py файлын иштетүү.
  • Конкурстун сүрөтүнүн жана жолугушуунун кулактандыруусунун Google дискинин шилтемесинин идентификаторун киргизиңиз.
  • ЖАРЫЯ баскычын басыңыз.
  • Эми бир нече секунданын ичинде жаңыртылган Санариптик тактаны көрө аласыз.

Кеңештер:

  • Сиз каалаган сандык санарип такталарды түзө аласыз жана такталар ар кандай темаларга жазылышы мүмкүн.
  • Windows_UI.py файлын портативдүү кылуу үчүн, pyinstallerдин жардамы менен файлды аткарылуучу файлга айландырсаңыз болот, ошондо сиз каалаган Windows PCте аткарылуучу файлды PCке керектүү китепканаларды орнотпостон иштете аласыз.

Рахмат

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

Сунушталууда: