Satura rādītājs:

Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu: 8 soļi
Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu: 8 soļi

Video: Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu: 8 soļi

Video: Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu: 8 soļi
Video: Установка приложения ArduBlock 2024, Novembris
Anonim
Image
Image
Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu
Digitālā paziņojumu dēlis, izmantojot Raspberry Pi un MQTT protokolu

Paziņojumu dēļi tiek izmantoti gandrīz visur, piemēram, birojos, skolās, slimnīcās un viesnīcās. Tos var izmantot atkal un atkal, lai parādītu svarīgus paziņojumus vai reklamētu gaidāmos pasākumus vai sanāksmes. Bet paziņojums vai reklāmas ir jāizdrukā uz papīra un jāpiesprauž uz ziņojumu dēļiem.

Šajā pamācībā iemācīsimies izveidot savu digitālo paziņojumu dēli ar Raspberry Pi, lai ietaupītu daudz papīra un tonera!

1. darbība. Kā darbojas digitālā paziņojumu dēlis?

Kā darbojas digitālā paziņojumu dēlis?
Kā darbojas digitālā paziņojumu dēlis?
  • Raspberry Pi ir pievienots HDMI displejam, kas ir mūsu digitālais paziņojumu dēlis.
  • Windows dators tiek izmantots, lai internetā publicētu paziņojumu digitālajā paziņojumu panelī.
  • Windows PC publicēto paziņojumu Digitālā paziņojumu dēlis saņem, izmantojot CloudMQTT brokeri.
  • Saziņa starp Windows datoru un digitālo paziņojumu paneli tiek panākta, izmantojot MQTT protokolu.

2. darbība. Nepieciešamās lietas:

  1. Raspberry Pi ar Rasbian OS
  2. Displejs ar HDMI portu
  3. Windows dators
  4. Interneta pieslēgums
  5. CloudMQTT konts

3. darbība. GUI dizains paziņojumu parādīšanai:

Image
Image
GUI dizains paziņojumu parādīšanai
GUI dizains paziņojumu parādīšanai

Mums ir jāizstrādā 2 GUI, viens Raspberry Pi, lai parādītu paziņojumu HDMI displejā, un otrs, kas paredzēts Windows PC, lai publicētu paziņojumu Raspberry Pi, izmantojot CloudMQTT brokeri.

GUI dizains ir atkarīgs no vietas, kur jūs novietojat Digitālo paziņojumu dēli. Piemēram, ļaujiet man izveidot Instructables Office GUI, lai parādītu gaidāmos pasākumus un sanāksmes, lai darbiniekus varētu atjaunināt ar jaunāko informāciju.

Windows datorā ir viegli izveidot GUI, tāpēc izstrādāsim digitālā paziņojumu dēļa GUI Windows datorā un nokopēsim kodu uz Raspberry Pi.

Nepieciešamā programmatūra:

Anaconda (kas ietver python 2.7, Qt Designer paketi un Spyder IDE).

Qt Designer ir rīks, ko izmanto GUI izstrādei. Qt Designer izvade būs.ui fails, vēlāk to var pārvērst par.py tālākai apstrādei.

Kas notiek video ?:

  • Lejupielādējiet Anaconda Windows Installer python 2.7 un instalējiet to Windows datorā (parasts instalēšanas process).
  • Pēc instalēšanas Qt Designer rīku var atrast sadaļā "installation_directory / Library / bin / designer.exe" (man tas ir "C: / Anaconda2 / Library / bin / designer.exe")
  • Izveidojiet saīsni uz "designer.exe" un novietojiet to uz darbvirsmas.
  • atveriet "designer.exe".
  • Izveidojiet jaunu galveno logu.
  • Izvēlieties un ievietojiet izkārtojumus un nepieciešamos skatus (teksta skats, iezīmju skats utt.).
  • Saglabāt kā Rpi_UI.ui failu.
  • Lai to pārvērstu par.py failu, atveriet cmd uzvedni pašreizējā mapē, kurā ir fails Rpi_UI.ui, un ierakstiet šādu komandu

installation_directory / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

man tas ir, C: / Anaconda2 / Library / bin / pyuic5.bat -x RPi_UI.ui -o RPi_UI.py

šī komanda konvertēs failu Rpi_UI.ui uz failu Rpi_UI.py un ievietos tajā pašā direktorijā.

  • Atveriet Rpi_UI.py failu ar Spyder IDE, kas ir iekļauts Anaconda.
  • Palaižot skriptu, tiks parādīts iepriekš izstrādātais GUI.

Pēc tam izveidosim CloudMQTT kontu.

4. darbība. CloudMQTT konta iestatīšana:

Image
Image
  • Apmeklējiet šo saiti.
  • Izveidojiet kontu, izmantojot e-pastu, un piesakieties savā kontā.
  • Izveidojiet jaunu instanci (es to nosaucu par TEST_1).
  • Atveriet instances informāciju.
  • Pierakstiet serveri, lietotāju, paroli un portu.
  • Skatiet CloudMQTT Python dokumentāciju un saglabājiet skriptu kā CloudMQTT.py.
  • Dokumenta koda paraugam ir nepieciešama paho bibliotēka, instalējiet Paho Python klientu, izmantojot pip rīku, atveriet cmd uzvedni kā administrators un ievadiet šādu komandu.

pip instalēt paho-mqtt

5. darbība: paskaidrots Raspberry Pi gala kods:

Šeit ļaujiet man paskaidrot, kā es apvienoju failu RPi_UI.py ar CloudMQTT.py un saglabāju to kā RPi_UI.py.

Importējiet bibliotēkas, ja tā nav instalēta, vienkārši instalējiet to

importēt paho.mqtt.client kā mqtt

importēt urlparse no PyQt5 importēt QtGui, QtWidgets, QtCore no PyQt5. QtCore importēt QTimer, QTime no pavedienu importēšanas Pavedienu importēšana sys importēšana re no google_drive_downloader importēt GoogleDriveDownloader kā gdd importēt os

Lai instalētu googledrivedownloader, izmantojiet komandu

pip instalēt googledrivedownloader

Inicializējot mainīgos,

icon = "[email protected]"

CompetitionImg = "black" meeting1 = "Meeting1:" venue1 = "Laiks un vieta1." meeting2 = "Meeting2:" venue2 = "Laiks un vieta2." meeting3 = "Meeting3:" venue3 = "Laiks un vieta3."

Seko klase Ui_MainWindow

klase Ui_MainWindow (objekts):

def setupUi (self, MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…

Šīs funkcijas setupUi rindas atjaunina GUI ik pēc 3 sekundēm, izsaucot funkciju _update

self.retranslateUi (MainWindow)

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

Funkcija on_message gaida starpnieka ziņojumu, kad ziņojums ir saņemts, tas lejupielādē attēlu no Google diska, izmantojot Google diska koplietojamās saites ID, kā arī maina globālo mainīgo vērtības

def on_message (klients, obj, ziņojums):

drukāt (str (msg.payload)), ja (str (msg.payload))): paziņojumsReceived = str (msg.payload) rezultāts = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 ', paziņojums Saņemts) globālais konkurssImg globālā sanāksme1 globālā vieta1 globālā sanāksme2 globālā vieta2 globālā sanāksme3 globālā vieta3 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 = ceļš) konkurssImg = rezultāts.grupa (1) sapulce1 = rezultāts.grupa (2) vieta1 = rezultāts.grupa (3) sapulce2 = rezultāts.grupa (4) norises vieta2 = rezultātsgrupa (5) sapulce3 = rezultāts.grupa (6) vieta3 = rezultāts.grupa (7)

Kods sastāv no 2 bezgalīgām cilpām,

rc = mqttc.loop ()

un

sys.exit (app.exec_ ())

Lai vienlaikus darbinātu šīs cilpas, esmu izmantojis Threading koncepciju

def sqImport (tId): ja tId == 0: kamēr 1: rc = 0, kamēr rc == 0: rc = mqttc.loop () drukāt ("rc:" + str (rc)), ja tId == 1: kamēr 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 ()

Forši, mēs esam pabeiguši Raspberry Pi iestatīšanu, pēc tam izstrādāsim GUI Windows PC, lai publicētu ziņojumu Raspberry Pi.

6. darbība: Windows PC GUI:

Windows PC GUI
Windows PC GUI
  • Izstrādājiet GUI logiem un saglabājiet to kā Windows_UI.ui.
  • Pārveidojiet to par python failu.
  • Apvienojiet to ar failu CloudMQTT.py un saglabājiet to kā Windows_UI.py.
  • Faila Windows_UI.py funkcija ir līdzīga failam RPi_UI.py, vienīgā atšķirība ir tā, ka fails Windows_UI.py publicē ziņojumu, turpretī RPi_UI.py saņem ziņojumu.

7. darbība: paskaidrots Windows datora gala kods:

  • Failā Windows_UI.py ir visas RPi_UI.ui klases un funkcijas, izņemot dažas.
  • Funkcijas on_message vietā ziņojuma publicēšanai ir funkcija on_publish.
  • Šāds retranslateUi funkcijas kods izsauc publicēšanas funkciju, tiklīdz tiek noklikšķināts uz pogas PUBLICĒT.

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

  • Publicēšanas funkcija apvieno Google diska koplietojamās saites ID un sapulces informāciju un publicē to ar tēmu "paziņojums".
  • Šo ziņojumu saņems Raspberry Pi.

8. darbība. Digitālā paziņojumu dēļa iestatīšana:

  • Pievienojiet Raspberry Pi HDMI displejam, esmu izmantojis savu Sony televizoru kā digitālā paziņojumu dēļa displeju.
  • Palaidiet failu RPi_UI.py Raspberry Pi.
  • Palaidiet failu Windows_UI.py Windows datorā.
  • Ievadiet konkursa attēla Google diska saites ID un sapulces paziņojumu.
  • Noklikšķiniet uz pogas PUBLICĒT.
  • Tagad dažu sekunžu laikā varat redzēt atjaunināto digitālo paziņojumu dēli.

Padomi:

  • Jūs varat izveidot vajadzīgo digitālo paziņojumu dēļu skaitu, un dēļus var abonēt dažādām tēmām.
  • Lai padarītu Windows_UI.py failu pārnēsājamu, varat to pārvērst izpildāmā failā, izmantojot pyinstaller, lai izpildāmo failu varētu palaist jebkurā Windows datorā, neinstalējot datorā nepieciešamās bibliotēkas.

Paldies

SABARI KANNAN M

Ieteicams: