ዝርዝር ሁኔታ:

Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ 8 ደረጃዎች
Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ 8 ደረጃዎች

ቪዲዮ: Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ 8 ደረጃዎች

ቪዲዮ: Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ 8 ደረጃዎች
ቪዲዮ: How to setup MQTT for Raspberry Pi and ESP32 for IOT and Robotics projects 2024, ህዳር
Anonim
Image
Image
Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ
Raspberry Pi እና MQTT ፕሮቶኮል በመጠቀም የዲጂታል ማስታወቂያ ሰሌዳ

የማስታወቂያ ሰሌዳዎች እንደ ቢሮ ፣ ትምህርት ቤቶች ፣ ሆስፒታሎች እና ሆቴሎች ባሉ በሁሉም ቦታዎች ጥቅም ላይ ይውላሉ። አስፈላጊ ማስታወቂያዎችን ለማሳየት ወይም መጪ ዝግጅቶችን ወይም ስብሰባዎችን ለማስተዋወቅ ደጋግመው ሊጠቀሙባቸው ይችላሉ። ግን ማስታወቂያው ወይም ማስታወቂያዎቹ በወረቀት ላይ መታተም እና በማስታወቂያ ሰሌዳዎች ላይ መሰካት አለባቸው።

በዚህ መመሪያ ውስጥ ብዙ ወረቀቶችን እና ቶነር ለማዳን የእኛን የዲጂታል ማስታወቂያ ሰሌዳ በ Raspberry Pi መገንባት እንማር!

ደረጃ 1 የዲጂታል ማስታወቂያ ቦርድ እንዴት ይሠራል?

የዲጂታል ማስታወቂያ ቦርድ እንዴት ይሠራል?
የዲጂታል ማስታወቂያ ቦርድ እንዴት ይሠራል?
  • የእኛ ዲጂታል ማስታወቂያ ቦርድ ከሆነው ከኤችዲኤምአይ ማሳያ ጋር የተገናኘ Raspberry Pi።
  • የዊንዶውስ ፒሲ ማስታወቂያውን በበይነመረብ በኩል በዲጂታል ማስታወቂያ ሰሌዳ ላይ ለማተም ያገለግላል።
  • በዊንዶውስ ፒሲ የታተመው ማስታወቂያ በዲጂታል ማሳወቂያ ቦርድ በ CloudMQTT ደላላ በኩል ይቀበላል።
  • በዊንዶውስ ፒሲ እና በዲጂታል ማስታወቂያ ቦርድ መካከል ያለው ግንኙነት በ MQTT ፕሮቶኮል የተገኘ ነው።

ደረጃ 2: የሚያስፈልጉ ነገሮች

  1. Raspberry Pi ከ Rasbian OS ጋር
  2. ከኤችዲኤምአይ ወደብ ጋር ማሳያ
  3. ዊንዶውስ ፒሲ
  4. የበይነመረብ ግንኙነት
  5. የ CloudMQTT መለያ

ደረጃ 3 ማሳወቂያዎችን ለማሳየት GUI ዲዛይን

Image
Image
ማሳወቂያዎችን ለማሳየት የ GUI ንድፍ
ማሳወቂያዎችን ለማሳየት የ GUI ንድፍ

ማሳወቂያውን በኤችዲኤምአይ ማሳያ ላይ ለማሳየት አንድ ለ Raspberry Pi እና ሌላ ለዊንዶውስ ፒሲ ማሳወቂያውን ለ Raspberry Pi በ CloudMQTT ደላላ በኩል ማተም አለብን።

የ GUI ንድፍ የዲጂታል ማስታወቂያ ሰሌዳውን በሚያስቀምጡበት ቦታ ላይ የተመሠረተ ነው። ለምሳሌ ፣ ሠራተኞቹ በአዲሱ መረጃ እንዲዘመኑ መጪ ዝግጅቶችን እና ስብሰባዎችን ለማሳየት GUI ን ለመምህራን ጽ / ቤት (ዲዛይነር) ዲዛይን ላድርግ።

በዊንዶውስ ፒሲ ውስጥ GUI ን መንደፍ ቀላል ነው ፣ ስለሆነም በዊንዶውስ ፒሲ ውስጥ የዲጂታል ማስታወቂያ ቦርድ GUI ን ዲዛይን በማድረግ ኮዱን ወደ Raspberry Pi እንገልብጠው።

ሶፍትዌር ያስፈልጋል ፦

አናኮንዳ (ፓይዘን 2.7 ፣ የ Qt ዲዛይነር ጥቅል እና ስፓይደር አይዲኢን ያጠቃልላል)።

Qt ዲዛይነር GUI ን ለመንደፍ የሚያገለግል መሣሪያ ነው። የ Qt ዲዛይነር ውፅዓት የ.ui ፋይል ይሆናል ፣ በኋላ ለተጨማሪ ሂደት ወደ.py ሊቀየር ይችላል።

በቪዲዮው ውስጥ ምን እየሆነ ነው?

  • አናኮንዳ ዊንዶውስ ጫኝ ለፓይዘን 2.7 ያውርዱ እና በዊንዶውስ ፒሲ ውስጥ (በመደበኛ የመጫን ሂደት) ውስጥ ይጫኑት።
  • ከተጫነ በኋላ የ “Qt Designer” መሣሪያን በ “installation_directory / Library / bin / designer.exe” ውስጥ ማግኘት ይችላሉ (ለእኔ ‹C: / Anaconda2 / Library / bin / designer.exe›)
  • ለ “designer.exe” አቋራጭ ይፍጠሩ እና በዴስክቶፕ ላይ ያስቀምጡት።
  • "designer.exe" ን ይክፈቱ።
  • አዲስ ዋና መስኮት ይፍጠሩ።
  • አቀማመጦቹን እና አስፈላጊዎቹን እይታዎች (የጽሑፍ እይታ ፣ የመለያ እይታ ፣ ወዘተ) ይምረጡ እና ያስቀምጡ።
  • እንደ Rpi_UI.ui ፋይል አስቀምጥ።
  • ወደ.py ፋይል ለመለወጥ የ Rpi_UI.ui ፋይል ባለበት በአሁኑ አቃፊ ውስጥ የ cmd ጥያቄን ይክፈቱ እና የሚከተለውን ትዕዛዝ ይተይቡ

installation_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 ፋይልን ወደ Rpi_UI.py ፋይል ይለውጠዋል እና በተመሳሳይ ማውጫ ውስጥ ያስቀምጠዋል።

  • የ Rpi_UI.py ፋይልን በአናኮንዳ ውስጥ በተካተተው በ Spyder IDE ይክፈቱ።
  • ስክሪፕቱን ማስኬድ ቀደም ብለን ያዘጋጀነውን GUI ያሳያል።

በመቀጠል ፣ የ CloudMQTT መለያ እናዘጋጃለን።

ደረጃ 4 የ CloudMQTT መለያ ያዋቅሩ

Image
Image
  • ይህንን አገናኝ ይጎብኙ።
  • በኢሜል አካውንት ይፍጠሩ እና ወደ መለያዎ ይግቡ።
  • አዲስ ምሳሌ ይፍጠሩ (እኔ TEST_1 ብዬ ሰይሜዋለሁ)።
  • የፈጣን መረጃን ይክፈቱ።
  • የአገልጋዩን ፣ የተጠቃሚውን ፣ የይለፍ ቃሉን እና ወደቡን ልብ ይበሉ።
  • CloudMQTT Python ሰነድን ይመልከቱ እና ስክሪፕቱን እንደ CloudMQTT.py ያስቀምጡ።
  • በሰነዶቹ ውስጥ ያለው የምሳሌ ኮድ የፓሆ ቤተ -መጽሐፍት ፣ የፓሆ መሣሪያን በመጠቀም የፓሆ ፓይዘን ደንበኛን ይጫኑ ፣ የ cmd ጥያቄን እንደ አስተዳዳሪ ይክፈቱ እና የሚከተለውን ትዕዛዝ ያስገቡ።

pip install paho-mqtt

ደረጃ 5: Raspberry Pi የመጨረሻ ኮድ ተብራርቷል

እዚህ ፣ የ RPi_UI.py ፋይልን ከ CloudMQTT.py ጋር በማጣመር እና እንደ RPi_UI.py ያጠራቀምኩበትን መንገድ ላብራራ።

ቤተመጽሐፍት ያስመጡ ፣ ካልተጫነ ይጫኑት።

paho.mqtt.client እንደ mqtt ያስመጡ

urlparse ን ከ PyQt5 አስመጣ QtGui ፣ QtWidgets ፣ QtCore ከ PyQt5።

Googledrivedownloader ን ለመጫን ትዕዛዙን ይጠቀሙ

pip install googledrivedownloader

ተለዋዋጮችን ማስጀመር ፣

icon = "[email protected]"

contestImg = "black" meeting1 = "Meeting1:" venue1 = "Time andvenue1." meeting2 = "Meeting2:" venue2 = "ሰዓት እና ቦታ 2"። meeting3 = "Meet3:" venue3 = "ጊዜ እና ቦታ 3"።

በክፍል Ui_MainWindow ተከታትሏል

ክፍል Ui_MainWindow (ነገር)

def setupUi (ራስ ፣ MainWindow):… def retranslateUi (self, MainWindow):… def _update (self):…

በተግባሩ ማዋቀር ውስጥ የሚከተሉት መስመሮች የ ‹Udate› ተግባርን በመደወል GUI ን በየ 3 ሰከንዶች ያዘምኑ

ራስን ማስተርጎም ዩአይ (ዋና መስኮት)

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

የ on_message ተግባሩ ከደብዳቤው መልዕክቱን ይጠብቃል ፣ መልዕክቱ ከተቀበለ በኋላ የጉግል ድራይቭ ተከፋፋይ አገናኝ መታወቂያ በመጠቀም ምስሉን ከጉግል ድራይቭ ያውርዳል እንዲሁም የአለምአቀፍ ተለዋዋጮችን እሴቶች ይለውጣል።

def on_message (ደንበኛ ፣ obj ፣ msg) ፦

ህትመት (str (msg.payload)) ከሆነ (str (msg.payload)): noticeReceived = str (msg.payload) result = re.search ('%1 (.*)%2 (.*)%3 (. *)%4 (.*)%5 (.*)%6 (.*)%7 (.*)%8 '፣ ማሳወቂያ ተቀብሏል) ዓለም አቀፍ ውድድር Img ዓለም አቀፍ ስብሰባ 1 ዓለም አቀፍ ቦታ 1 ዓለም አቀፍ ስብሰባ 2 ዓለም አቀፍ ቦታ 2 ዓለም አቀፍ ስብሰባ 3 ዓለም አቀፍ ቦታ 3 ፋይልId = "" +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 = result.group (1) meeting1 = result.group (2) ዌብ 1 = result.group (3) meeting2 = result.group (4) venue2 = result.group (5) meeting3 = result.group (6) venue3 = result.group (7)

ኮዱ 2 ማለቂያ የሌላቸውን ቀለበቶች ያቀፈ ነው ፣

rc = mqttc.loop ()

እና

sys.exit (app.exec_ ())

እነዚህን ቀለበቶች በአንድ ጊዜ ለማሄድ ፣ የክርን ጽንሰ -ሀሳብን ተጠቅሜአለሁ

def sqImport (tId): tId == 0: 1: rc = 0 እያለ rc == 0: rc = mqttc.loop () ህትመት ("rc:" + str (rc)) tId == 1: ሳለ 1: መተግበሪያ = QtWidgets. Q ትግበራ (sys.argv) MainWindow = QtWidgets. QMainWindow () ui = Ui_MainWindow () ui.setupUi (MainWindow) MainWindow.show () sys.exit (app.exec_ ()) threadA = ክር (ዒላማ) = sqImport ፣ args = [0]) threadB = ክር (ዒላማ = sqImport ፣ args = [1]) threadA.start () threadB.start () threadA.join () threadB.join ()

አሪፍ ፣ Raspberry Pi ማዋቀሩን አጠናቅቀናል ፣ ቀጥሎ መልዕክቱን ወደ Raspberry Pi ለማተም GUI ን ለዊንዶውስ ፒሲ እንቀይስ።

ደረጃ 6: ዊንዶውስ ፒሲ GUI:

ዊንዶውስ ፒሲ GUI
ዊንዶውስ ፒሲ GUI
  • ለዊንዶውስ GUI ን ይንደፉ እና እንደ Windows_UI.ui አድርገው ያስቀምጡት።
  • ወደ ፓይዘን ፋይል ይለውጡት።
  • ከ CloudMQTT.py ፋይል ጋር ያዋህዱት እና እንደ Windows_UI.py አድርገው ያስቀምጡት።
  • የዊንዶውስ_UI.py ፋይል ተግባር ከ RPi_UI.py ፋይል ጋር ተመሳሳይ ነው ፣ ብቸኛው ልዩነት የ Windows_UI.py ፋይል መልዕክቱን ሲያተም RPi_UI.py መልዕክቱን ይቀበላል።

ደረጃ 7 የዊንዶውስ ፒሲ የመጨረሻ ኮድ ተብራርቷል

  • የ Windows_UI.py ፋይል ከጥቂቶች በስተቀር ሁሉም የ RPi_UI.ui ክፍሎች እና ተግባራት አሉት።
  • በ on_message ተግባር ፋንታ መልዕክቱን ለማተም የ on_publish ተግባር አለው።
  • በድጋሜ የመተርጎም ተግባር ውስጥ ያለው የሚከተለው ኮድ የአታሚ አዝራሩ አንዴ ጠቅ ከተደረገ በኋላ የህትመት ተግባሩን ይጠራል።

self.pushButton.clicked.connect (ራስን ማተም)

  • የህትመት ተግባሩ የጉግል ድራይቭ ሊጋራ የሚችል የአገናኝ መታወቂያ እና የስብሰባውን መረጃ ያጣምራል እና “ማስታወቂያ” በሚለው ርዕስ ስር ያትመዋል።
  • ይህ መልእክት በ Raspberry Pi ይቀበላል።

ደረጃ 8 የዲጂታል ማስታወቂያ ሰሌዳውን ያዋቅሩ

  • Raspberry Pi ን ከኤችዲኤምአይ ማሳያ ጋር ያገናኙት ፣ የእኔን ሶኒ ቲቪ እንደ ዲጂታል ማስታወቂያ ቦርድ ማሳያ አድርጌዋለሁ።
  • በ Raspberry Pi ውስጥ የ RPi_UI.py ፋይልን ያሂዱ።
  • በዊንዶውስ ፒሲ ውስጥ የዊንዶውስ_UI.py ፋይልን ያሂዱ።
  • የውድድር ምስል የ Google ድራይቭ አገናኝ መታወቂያ እና የስብሰባ ማስታወቂያውን ያስገቡ።
  • የህትመት አዝራሩን ጠቅ ያድርጉ።
  • አሁን የተዘመነውን የዲጂታል ማስታወቂያ ሰሌዳ በጥቂት ሰከንዶች ውስጥ ማየት ይችላሉ።

ፍንጮች ፦

  • የሚፈለገውን የዲጂታል ማስታወቂያ ሰሌዳዎችን ቁጥር መፍጠር ይችላሉ እና ቦርዶች ለተለያዩ ርዕሶች መመዝገብ ይችላሉ።
  • የ Windows_UI.py ፋይሉን ተንቀሳቃሽ ለማድረግ ፒሲንታልለር በመጠቀም ፋይሉን ወደ አስፈፃሚ ፋይል መለወጥ ይችላሉ ፣ ይህም በፒሲው ውስጥ አስፈላጊውን ቤተመፃህፍት ሳይጭኑ በማንኛውም የዊንዶውስ ፒሲ ውስጥ ሊሠራ የሚችል ፋይልን ማሄድ ይችላሉ።

አመሰግናለሁ

ሳባሪ ካናን ኤም

የሚመከር: