Isi kandungan:
- Langkah 1: Bagaimana Papan Pemberitahuan Digital Berfungsi?
- Langkah 2: Perkara yang Diperlukan:
- Langkah 3: Reka Bentuk GUI untuk Memaparkan Pemberitahuan:
- Langkah 4: Sediakan Akaun CloudMQTT:
- Langkah 5: Kod Akhir Raspberry Pi Dijelaskan:
- Langkah 6: GUI PC Windows:
- Langkah 7: Kod Akhir PC Windows Dijelaskan:
- Langkah 8: Sediakan Papan Notis Digital:
Video: Papan Pemberitahuan Digital Menggunakan Raspberry Pi dan MQTT Protocol: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Papan Pemberitahuan hampir digunakan di mana-mana, seperti pejabat, sekolah, hospital, dan hotel. Mereka dapat digunakan berulang kali untuk menampilkan pemberitahuan penting atau mengiklankan acara atau perjumpaan yang akan datang. Tetapi notis atau iklan mesti dicetak di atas kertas dan disematkan di papan kenyataan.
Dalam Instructable ini mari belajar membina Papan Notis Digital kami dengan Raspberry Pi untuk menjimatkan banyak kertas dan toner!
Langkah 1: Bagaimana Papan Pemberitahuan Digital Berfungsi?
- Raspberry Pi yang disambungkan ke Paparan HDMI yang merupakan Papan Pemberitahuan Digital kami.
- PC Windows digunakan untuk Menerbitkan notis di Papan Pemberitahuan Digital melalui internet.
- Notis yang diterbitkan oleh PC Windows diterima oleh Lembaga Pemberitahuan Digital melalui broker CloudMQTT.
- Komunikasi antara Windows PC dan Digital Notice Board dicapai dengan protokol MQTT.
Langkah 2: Perkara yang Diperlukan:
- Raspberry Pi dengan Rasbian OS
- Paparkan dengan port HDMI
- PC Windows
- Sambungan internet
- Akaun CloudMQTT
Langkah 3: Reka Bentuk GUI untuk Memaparkan Pemberitahuan:
Kita harus merancang 2 GUI, satu untuk Raspberry Pi untuk menampilkan notis pada Paparan HDMI dan satu lagi untuk PC Windows untuk menerbitkan notis itu kepada Raspberry Pi melalui broker CloudMQTT.
Reka bentuk GUI bergantung pada tempat di mana anda akan meletakkan Papan Notis Digital. Sebagai contoh, izinkan saya merancang GUI untuk Instructables Office untuk memaparkan acara dan perjumpaan yang akan datang supaya pekerja dapat dikemas kini dengan maklumat terkini.
Sangat mudah untuk merancang GUI di PC Windows, jadi marilah kita merancang GUI Papan Pemberitahuan Digital di PC Windows dan menyalin kodnya ke Raspberry Pi.
Perisian yang diperlukan:
Anaconda (yang merangkumi python 2.7, pakej Qt Designer dan Spyder IDE).
Qt Designer adalah alat yang digunakan untuk merancang GUI. Keluaran Qt Designer akan menjadi fail.ui, kemudian dapat ditukar menjadi.py untuk proses selanjutnya.
Apa yang berlaku dalam video ?:
- Muat turun Anaconda Windows Installer untuk python 2.7 dan pasangkannya di PC Windows (proses pemasangan biasa).
- Selepas pemasangan, anda boleh menemui alat Qt Designer di "install_directory / Library / bin / designer.exe" (bagi saya ia adalah "C: / Anaconda2 / Library / bin / designer.exe")
- Buat jalan pintas untuk "designer.exe" dan letakkan di desktop.
- buka "designer.exe".
- Buat Tetingkap Utama baru.
- Pilih dan letakkan susun atur dan paparan yang diperlukan (paparan teks, paparan label, dll).
- Simpan sebagai fail Rpi_UI.ui.
- Untuk menukarnya menjadi file.py buka cmd prompt di folder saat ini di mana fail Rpi_UI.ui ada dan ketik perintah berikut
install_directory / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
bagi saya, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py
perintah ini akan menukar fail Rpi_UI.ui ke file Rpi_UI.py dan meletakkannya di direktori yang sama.
- Buka fail Rpi_UI.py dengan Spyder IDE yang disertakan dalam Anaconda.
- Menjalankan skrip akan memaparkan GUI yang kita rancang lebih awal.
Seterusnya, mari kita sediakan akaun CloudMQTT.
Langkah 4: Sediakan Akaun CloudMQTT:
- Lawati pautan ini.
- Buat akaun dengan E-mel dan log masuk ke akaun anda.
- Buat contoh baru (saya menamakannya sebagai TEST_1).
- Buka maklumat Instance.
- Perhatikan Pelayan, Pengguna, Kata Laluan, dan Port.
- Rujuk Dokumentasi CloudMQTT Python dan simpan skrip sebagai CloudMQTT.py.
- Contoh kod dalam dokumentasi memerlukan paho library, Install Paho Python Client menggunakan alat pip, buka cmd prompt sebagai pentadbir dan masukkan perintah berikut.
memasang pip paho-mqtt
Langkah 5: Kod Akhir Raspberry Pi Dijelaskan:
Di sini, izinkan saya menerangkan cara saya menggabungkan fail RPi_UI.py dengan CloudMQTT.py dan menyimpannya sebagai RPi_UI.py.
Import perpustakaan, jika tidak dipasang, pasang saja
import paho.mqtt.client sebagai mqtt
import urlparse dari PyQt5 import QtGui, QtWidgets, QtCore dari PyQt5. QtCore import QTimer, QTime dari threading import Thread import sys import re dari google_drive_downloader import GoogleDriveDownloader sebagai gdd os os
Untuk memasang googledrive downloader, gunakan perintah
memasang pip googledriveownloader
Memulakan pemboleh ubah,
ikon = "[email protected]"
contestImg = "black" meeting1 = "Meeting1:" venue1 = "Masa dan tempat1." meeting2 = "Meeting2:" venue2 = "Masa dan tempat2." meeting3 = "Meeting3:" venue3 = "Masa dan tempat3."
Diikuti oleh kelas Ui_MainWindow
kelas Ui_MainWindow (objek):
def setupUi (diri, MainWindow):… def retranslateUi (diri, MainWindow):… def _update (diri):…
Garis berikut dalam penyediaan fungsiUi mengemas kini GUI setiap 3 saat dengan memanggil fungsi _update
self.retranslateUi (MainWindow)
QtCore. QMetaObject.connectSlotsByName (MainWindow) self.timer = QTimer () self.timer.timeout.connect (self._update) self.timer.start (3000)
Fungsi on_message menunggu mesej dari broker, setelah mesej diterima ia memuat turun gambar dari pemacu google menggunakan ID pautan boleh dikongsi pemacu google dan juga mengubah nilai pemboleh ubah global
def on_message (pelanggan, obj, msg):
print (str (msg.payload)) if (str (msg.payload)): notificationReceived = str (msg.payload) hasil = cari semula ('% 1 (. *)% 2 (. *)% 3 (. *)% 4 (. *)% 5 (. *)% 6 (. *)% 7 (. *)% 8 ', notisDiterima) pertandingan globalImg global meeting1 global venue1 global meeting2 global venue2 global meeting3 global venue3 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 = jalan) pertandinganImg = result.group (1) meeting1 = result.group (2) venue1 = result.group (3) meeting2 = result.group (4) venue2 = result.group (5) meeting3 = result.group (6) venue3 = result.group (7)
Kodnya terdiri daripada 2 gelung tanpa had,
rc = mqttc.loop ()
dan
sys.exit (app.exec_ ())
Untuk menjalankan gelung ini secara serentak, saya telah menggunakan konsep Threading
def sqImport (tId): if tId == 0: while 1: rc = 0 while rc == 0: rc = mqttc.loop () print ("rc:" + str (rc)) jika tId == 1: sementara 1: app = QtWidgets. QApplication (sys.argv) MainWindow = QtWidgets. QMainWindow () ui = Ui_MainWindow () ui.setupUi (MainWindow) MainWindow.show () sys.exit (app.exec_ ()) threadA = Thread (sasaran = sqImport, args = [0]) threadB = Thread (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()
Hebatnya, kami telah menyelesaikan penyediaan Raspberry Pi, selanjutnya mari kita merancang GUI untuk Windows PC untuk menerbitkan mesej ke Raspberry Pi.
Langkah 6: GUI PC Windows:
- Reka GUI untuk windows dan simpan sebagai Windows_UI.ui.
- Tukarkannya menjadi fail python.
- Gabungkannya dengan fail CloudMQTT.py dan simpan sebagai Windows_UI.py.
- Fungsi fail Windows_UI.py mirip dengan file RPi_UI.py, satu-satunya perbezaan adalah fail Windows_UI.py menerbitkan pesan sedangkan RPi_UI.py menerima pesan.
Langkah 7: Kod Akhir PC Windows Dijelaskan:
- Fail Windows_UI.py mempunyai semua kelas dan fungsi RPi_UI.ui kecuali beberapa.
- Daripada fungsi on_message, ia mempunyai fungsi on_publish untuk menerbitkan mesej.
- Kod berikut dalam fungsi retranslateUi memanggil fungsi penerbitan setelah butang PUBLISH diklik.
self.pushButton.clicked.connect (self.publish)
- Fungsi penerbitan menggabungkan ID pautan boleh dikongsi google drive dan maklumat mesyuarat dan menerbitkannya di bawah topik "notis".
- Mesej ini akan diterima oleh Raspberry Pi.
Langkah 8: Sediakan Papan Notis Digital:
- Sambungkan Raspberry Pi ke paparan HDMI, saya telah menggunakan TV Sony saya sebagai Paparan Papan Notis Digital.
- Jalankan fail RPi_UI.py di Raspberry Pi.
- Jalankan fail Windows_UI.py di Windows PC.
- Masukkan ID pautan pemacu Google untuk gambar pertandingan dan pengumuman mesyuarat.
- Klik butang PUBLISH.
- Sekarang anda dapat melihat Papan Pemberitahuan Digital yang dikemas kini dalam beberapa saat.
Petunjuk:
- Anda dapat membuat bilangan Papan Pemberitahuan Digital yang diinginkan dan Papan dapat dilanggan ke Topik yang berbeza.
- Untuk menjadikan fail Windows_UI.py mudah alih, anda dapat menukar fail tersebut menjadi file yang dapat dieksekusi menggunakan pyinstaller, sehingga anda dapat menjalankan file yang dapat dieksekusi di mana-mana PC Windows tanpa memasang perpustakaan yang diperlukan di PC.
Terima kasih
SABARI KANNAN M
Disyorkan:
Pemberitahuan GMail Menggunakan ESP8266 Arduino dan OLED: 5 Langkah
Pemberitahuan GMail Menggunakan ESP8266 Arduino dan OLED: Pada masa ini, Setiap mesin mempunyai beberapa data untuk diposkan di atas awan dan Data harus Menganalisis dan harus mencatat untuk banyak tujuan. Pada masa yang sama data harus dapat diakses oleh Penganalisis juga. Perkara ini dapat dilakukan dengan menggunakan konsep IOT. IOT adalah internet
OTOMASI RUMAH BERDASARKAN SERVER MQTT TEMPATAN MENGGUNAKAN RASPBERRY PI DAN PAPAN NODEMCU: 6 Langkah
OTOMASI RUMAH BERDASARKAN SERVER MQTT TEMPAT MENGGUNAKAN RASPBERRY PI DAN NODEMCU BOARD: Hingga kini saya telah membuat beberapa video tutorial mengenai mengendalikan peralatan melalui internet. Dan untuk itu saya selalu memilih pelayan MQTT Adafruit kerana senang digunakan dan juga mesra pengguna. Tetapi semua itu berdasarkan internet. Itu bermakna kita
Cara Memprogram Papan AVR Menggunakan Papan Arduino: 6 Langkah
Cara Memprogram Papan AVR Menggunakan Papan Arduino: Adakah anda mempunyai papan mikrokontroler AVR yang terbaring? Adakah sukar untuk memprogramkannya? Baiklah, anda berada di tempat yang betul. Di sini, saya akan menunjukkan cara memprogram papan mikrokontroler Atmega8a menggunakan papan Arduino Uno sebagai pengaturcara. Jadi tanpa jarak
Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: 4 Langkah (dengan Gambar)
Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: Adakah anda pernah mahu diberitahu apabila terdapat tindakan yang dibuat di laman web anda tetapi e-mel tidak sesuai? Adakah anda ingin mendengar bunyi atau loceng setiap kali anda membuat penjualan? Atau ada keperluan untuk perhatian segera anda kerana munculnya
Raspberry Pi: Kalendar Pemasangan di Dinding dan Pusat Pemberitahuan: 5 Langkah (dengan Gambar)
Raspberry Pi: Kalendar Dipasang di Dinding dan Pusat Pemberitahuan: Sebelum “ era digital ” banyak keluarga menggunakan kalendar dinding untuk menunjukkan pandangan bulanan mengenai acara yang akan datang. Versi moden kalendar yang dipasang di dinding ini merangkumi fungsi asas yang sama: Agenda bulanan Penyegerakan ahli keluarga mengaktifkan