Სარჩევი:

ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით: 8 ნაბიჯი
ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით: 8 ნაბიჯი

ვიდეო: ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით: 8 ნაბიჯი

ვიდეო: ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით: 8 ნაბიჯი
ვიდეო: როგორ ავაშენოთ Raspberry Pi Pico PLC || OpenPLC რედაქტორი 2024, ნოემბერი
Anonim
Image
Image
ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით
ციფრული შეტყობინებების დაფა Raspberry Pi და MQTT პროტოკოლის გამოყენებით

შეტყობინებების დაფები თითქმის ყველგან გამოიყენება, როგორიცაა ოფისი, სკოლები, საავადმყოფოები და სასტუმროები. ისინი შეიძლება გამოყენებულ იქნას არაერთხელ მნიშვნელოვანი შეტყობინებების ჩვენების ან მომავალი ღონისძიებების ან შეხვედრების რეკლამირების მიზნით. მაგრამ ცნობა ან რეკლამა უნდა დაიბეჭდოს ქაღალდზე და დამაგრდეს საინფორმაციო დაფებზე.

ამ ინსტრუქციურად ვისწავლოთ ჩვენი ციფრული შეტყობინებების დაფის შექმნა Raspberry Pi– ით უამრავი ქაღალდისა და ტონერის შესანახად!

ნაბიჯი 1: როგორ მუშაობს ციფრული შეტყობინებების დაფა?

როგორ მუშაობს ციფრული შეტყობინებების დაფა?
როგორ მუშაობს ციფრული შეტყობინებების დაფა?
  • ჟოლო Pi უკავშირდება HDMI ეკრანს, რომელიც არის ჩვენი ციფრული შეტყობინებების დაფა.
  • Windows კომპიუტერი გამოიყენება ციფრული შეტყობინებების დაფაზე შეტყობინების ინტერნეტით გამოქვეყნების მიზნით.
  • Windows PC– ის მიერ გამოქვეყნებული შეტყობინება მიიღება ციფრული შეტყობინებების დაფის მიერ CloudMQTT ბროკერის საშუალებით.
  • Windows კომპიუტერსა და ციფრული შეტყობინებების დაფას შორის კომუნიკაცია მიიღწევა MQTT პროტოკოლით.

ნაბიჯი 2: საჭირო ნივთები:

  1. Raspberry Pi Rasbian OS– ით
  2. ჩვენება HDMI პორტით
  3. Windows PC
  4. Ინტერნეტ კავშირი
  5. CloudMQTT ანგარიში

ნაბიჯი 3: შეტყობინებების ჩვენების GUI დიზაინი:

Image
Image
GUI დიზაინი შეტყობინებების ჩვენებისათვის
GUI დიზაინი შეტყობინებების ჩვენებისათვის

ჩვენ უნდა შევიმუშაოთ 2 GUI, ერთი Raspberry Pi– სთვის HDMI ეკრანზე შეტყობინების ჩვენებისათვის და მეორე Windows PC– ისთვის, რათა გამოაქვეყნოს ცნობა Raspberry Pi– ზე ბროკერის CloudMQTT საშუალებით.

GUI დიზაინი დამოკიდებულია იმ ადგილას, სადაც აპირებთ ციფრული შეტყობინებების დაფის განთავსებას. მაგალითად, ნება მომეცით შევადგინო GUI Instructables Office– ისთვის მომავალი მოვლენებისა და შეხვედრების ჩვენების მიზნით, რათა თანამშრომლებმა შეძლონ უახლესი ინფორმაციის განახლება.

Windows PC- ში ადვილია GUI- ს შემუშავება, ასე რომ მოდით შევქმნათ ციფრული შეტყობინებების დაფის GUI Windows კომპიუტერში და დააკოპიროთ კოდი Raspberry Pi- ში.

საჭირო პროგრამული უზრუნველყოფა:

ანაკონდა (რომელშიც შედის პითონი 2.7, Qt Designer პაკეტი და Spyder IDE).

Qt Designer არის ინსტრუმენტი, რომელიც გამოიყენება GUI– ების შესაქმნელად. Qt Designer– ის გამომავალი იქნება.ui ფაილი, მოგვიანებით ის შეიძლება გადაკეთდეს.py შემდგომი პროცესისთვის.

რა ხდება ვიდეოში:

  • ჩამოტვირთეთ Anaconda Windows Installer პითონის 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 ფაილი არსებობს და ჩაწერეთ შემდეგი ბრძანება

installation_directory / ბიბლიოთეკა / 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 ფაილს Rpi_UI.py ფაილში და განათავსებს მას იმავე დირექტორიაში.

  • გახსენით Rpi_UI.py ფაილი Spyder IDE– ით, რომელიც შედის ანაკონდაში.
  • სკრიპტის გაშვება აჩვენებს GUI, რომელიც ჩვენ ადრე შევიმუშავეთ.

შემდეგი, მოდით შევქმნათ CloudMQTT ანგარიში.

ნაბიჯი 4: შექმენით CloudMQTT ანგარიში:

Image
Image
  • ეწვიეთ ამ ბმულს.
  • შექმენით ანგარიში ელექტრონული ფოსტით და შედით თქვენს ანგარიშში.
  • შექმენით ახალი მაგალითი (მე მას TEST_1 დავარქვი).
  • გახსენით ინსტანციის ინფორმაცია.
  • გაითვალისწინეთ სერვერი, მომხმარებელი, პაროლი და პორტი.
  • იხილეთ CloudMQTT პითონის დოკუმენტაცია და შეინახეთ სკრიპტი CloudMQTT.py- ში.
  • დოკუმენტის კოდის მაგალითი მოითხოვს პაჰოს ბიბლიოთეკას, დააინსტალირეთ Paho Python კლიენტი pip ინსტრუმენტის გამოყენებით, გახსენით cmd მოთხოვნა ადმინისტრატორად და შეიყვანეთ შემდეგი ბრძანება.

pip დააინსტალირეთ 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 საწყისი threading import თემადან იმპორტი sys იმპორტი re google_drive_downloader იმპორტი GoogleDriveDownloader როგორც gdd იმპორტი os

Googledrivedownloader– ის დასაყენებლად გამოიყენეთ ბრძანება

pip დააინსტალირეთ googledrivedownloader

ცვლადების ინიციალიზაცია,

icon = "[email protected]"

contestImg = "შავი" შეხვედრა 1 = "შეხვედრა 1:" venue1 = "დრო და ადგილი 1." შეხვედრა 2 = "შეხვედრა 2:" ადგილი 2 = "დრო და ადგილი 2." შეხვედრა 3 = "შეხვედრა 3:" venue3 = "დრო და ადგილი 3."

მოყვება კლასი Ui_MainWindow

კლასი Ui_MainWindow (ობიექტი):

def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _ განახლება (self):…

ფუნქციის კონფიგურაციის შემდეგი ხაზები განაახლებს GUI ყოველ 3 წამში _ დარეკვის ფუნქციას

self.retranslateUi (მთავარი ფანჯარა)

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

On_message ფუნქცია ელოდება ბროკერის შეტყობინებას, მას შემდეგ რაც შეტყობინება მიიღება ის გადმოწერს სურათს google დისკიდან google drive google ბმული ID ბარათით და ასევე ცვლის გლობალური ცვლადების მნიშვნელობებს

def on_message (კლიენტი, obj, msg):

ამობეჭდვა (str (msg.payload)) if (str (msg.payload)): noticeReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', noticeReceived) გლობალური კონკურსი იმიჯის გლობალური შეხვედრა 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 = გზა) კონკურსი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): თუ tId == 0: ხოლო 1: rc = 0 ხოლო 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_ ()) თემაA = თემა (სამიზნე = sqImport, args = [0]) თემა B = თემა (target = sqImport, args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

მაგარია, ჩვენ დავასრულეთ Raspberry Pi– ს დაყენება, შემდეგ მოდით შევქმნათ GUI Windows PC– სთვის, რომ გამოაქვეყნოს შეტყობინება Raspberry Pi– სთვის.

ნაბიჯი 6: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • შეიმუშავეთ GUI ფანჯრებისთვის და შეინახეთ როგორც Windows_UI.ui.
  • გადააკეთეთ ის პითონის ფაილში.
  • შეუთავსეთ მას 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 გაზიარებულ ბმულის ID- ს და შეხვედრის ინფორმაციას და აქვეყნებს მას თემის "გაფრთხილების" ქვეშ.
  • ამ შეტყობინებას მიიღებს Raspberry Pi.

ნაბიჯი 8: შექმენით ციფრული შეტყობინებების დაფა:

  • შეაერთეთ Raspberry Pi HDMI ეკრანზე, მე გამოვიყენე ჩემი Sony ტელევიზია, როგორც ციფრული შეტყობინებების დაფის ჩვენება.
  • გაუშვით RPi_UI.py ფაილი Raspberry Pi- ში.
  • გაუშვით Windows_UI.py ფაილი Windows კომპიუტერში.
  • შეიყვანეთ კონკურსის სურათის Google Drive ბმულის ID და შეხვედრის განცხადება.
  • დააწკაპუნეთ პუბლიკაციის ღილაკზე.
  • ახლა თქვენ შეგიძლიათ ნახოთ განახლებული ციფრული შეტყობინებების დაფა რამდენიმე წამში.

მინიშნებები:

  • თქვენ შეგიძლიათ შექმნათ ციფრული შეტყობინებების დაფების სასურველი რაოდენობა და დაფები შეიძლება გამოწერილი იყოს სხვადასხვა თემებზე.
  • Windows_UI.py ფაილის პორტატული რომ გახადოთ, შეგიძლიათ გადააკეთოთ ფაილი შესრულებად ფაილში pyinstaller– ის გამოყენებით, ასე რომ თქვენ შეგიძლიათ გაუშვათ შესრულებადი ფაილი ნებისმიერ Windows კომპიუტერში კომპიუტერში საჭირო ბიბლიოთეკების დაყენების გარეშე.

Გმადლობთ

საბარი კანანი მ

გირჩევთ: