विषयसूची:

रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड: 8 कदम
रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड: 8 कदम

वीडियो: रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड: 8 कदम

वीडियो: रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड: 8 कदम
वीडियो: Raspberry Pi Pico Voltmeter - UART serial with the Pico and GUI application in C/C++ and MicroPython 2024, नवंबर
Anonim
Image
Image
रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड
रास्पबेरी पाई और एमक्यूटीटी प्रोटोकॉल का उपयोग करते हुए डिजिटल नोटिस बोर्ड

कार्यालय, स्कूल, अस्पताल और होटल जैसे लगभग हर जगह नोटिस बोर्ड का उपयोग किया जाता है। महत्वपूर्ण नोटिस प्रदर्शित करने या आने वाली घटनाओं या बैठकों का विज्ञापन करने के लिए उनका बार-बार उपयोग किया जा सकता है। लेकिन नोटिस या विज्ञापनों को एक कागज पर छापकर नोटिस बोर्ड पर चिपकाना होता है।

इस निर्देश में आइए जानें कि रास्पबेरी पाई के साथ हमारे डिजिटल नोटिस बोर्ड का निर्माण बहुत सारे कागजात और टोनर को बचाने के लिए है!

चरण 1: डिजिटल नोटिस बोर्ड कैसे काम करता है?

डिजिटल नोटिस बोर्ड कैसे काम करता है?
डिजिटल नोटिस बोर्ड कैसे काम करता है?
  • एक रास्पबेरी पाई एक एचडीएमआई डिस्प्ले से जुड़ा है जो हमारा डिजिटल नोटिस बोर्ड है।
  • इंटरनेट के माध्यम से डिजिटल नोटिस बोर्ड पर नोटिस प्रकाशित करने के लिए एक विंडोज पीसी का उपयोग किया जाता है।
  • विंडोज पीसी द्वारा प्रकाशित नोटिस क्लाउडएमक्यूटीटी ब्रोकर के माध्यम से डिजिटल नोटिस बोर्ड द्वारा प्राप्त किया जाता है।
  • विंडोज पीसी और डिजिटल नोटिस बोर्ड के बीच संचार एमक्यूटीटी प्रोटोकॉल द्वारा हासिल किया जाता है।

चरण 2: आवश्यक चीजें:

  1. रासबियन ओएस के साथ रास्पबेरी पाई
  2. एचडीएमआई पोर्ट के साथ प्रदर्शित करें
  3. विंडोज पीसी
  4. इंटरनेट कनेक्शन
  5. CloudMQTT खाता

चरण 3: नोटिस प्रदर्शित करने के लिए जीयूआई डिजाइन:

Image
Image
नोटिस प्रदर्शित करने के लिए जीयूआई डिजाइन
नोटिस प्रदर्शित करने के लिए जीयूआई डिजाइन

हमें 2 जीयूआई डिजाइन करने होंगे, एक रास्पबेरी पाई के लिए एचडीएमआई डिस्प्ले पर नोटिस प्रदर्शित करने के लिए और दूसरा विंडोज पीसी के लिए क्लाउडएमक्यूटीटी ब्रोकर के माध्यम से रास्पबेरी पाई को नोटिस प्रकाशित करने के लिए।

जीयूआई डिजाइन उस स्थान पर निर्भर करता है जहां आप डिजिटल नोटिस बोर्ड लगाने जा रहे हैं। उदाहरण के लिए, मैं आगामी कार्यक्रमों और बैठकों को प्रदर्शित करने के लिए अनुदेशक कार्यालय के लिए एक जीयूआई डिजाइन करता हूं ताकि कर्मचारियों को नवीनतम जानकारी के साथ अद्यतन किया जा सके।

विंडोज पीसी में जीयूआई डिजाइन करना आसान है, तो आइए विंडोज पीसी में डिजिटल नोटिस बोर्ड जीयूआई डिजाइन करें और कोड को रास्पबेरी पाई में कॉपी करें।

सॉफ्टवेयर की आवश्यकता:

एनाकोंडा (जिसमें अजगर 2.7, क्यूटी डिजाइनर पैकेज और स्पाइडर आईडीई शामिल है)।

क्यूटी डिजाइनर जीयूआई डिजाइन करने के लिए इस्तेमाल किया जाने वाला उपकरण है। Qt Designer का आउटपुट एक.ui फ़ाइल होगा, बाद में इसे आगे की प्रक्रिया के लिए.py में परिवर्तित किया जा सकता है।

वीडियो में क्या हो रहा है?:

  • अजगर 2.7 के लिए एनाकोंडा विंडोज इंस्टालर डाउनलोड करें और इसे विंडोज पीसी (सामान्य स्थापना प्रक्रिया) में स्थापित करें।
  • स्थापना के बाद, आप "installation_directory\Library\bin\designer.exe" में Qt डिज़ाइनर टूल पा सकते हैं (मेरे लिए यह "C:\Anaconda2\Library\bin\designer.exe" है)
  • "Designer.exe" के लिए एक शॉर्टकट बनाएं और इसे डेस्कटॉप पर रखें।
  • "डिजाइनर.exe" खोलें।
  • एक नई मुख्य विंडो बनाएं।
  • लेआउट और आवश्यक दृश्य (पाठ दृश्य, लेबल दृश्य, आदि) चुनें और रखें।
  • Rpi_UI.ui फ़ाइल के रूप में सहेजें।
  • इसे.py फ़ाइल में बदलने के लिए वर्तमान फ़ोल्डर में cmd प्रॉम्प्ट खोलें जहाँ Rpi_UI.ui फ़ाइल मौजूद है और निम्न कमांड टाइप करें

install_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 फ़ाइल को स्पाइडर आईडीई के साथ खोलें जो एनाकोंडा में शामिल है।
  • स्क्रिप्ट चलाने से हमारे द्वारा पहले डिज़ाइन किया गया GUI प्रदर्शित होगा।

इसके बाद, हम CloudMQTT खाता सेट करते हैं।

चरण 4: CloudMQTT खाता सेट करें:

Image
Image
  • इस लिंक पर जाएं।
  • ई-मेल से एक अकाउंट बनाएं और अपने अकाउंट में लॉग इन करें।
  • नया उदाहरण बनाएं (मैंने इसे TEST_1 नाम दिया है)।
  • इंस्टेंस जानकारी खोलें।
  • सर्वर, उपयोगकर्ता, पासवर्ड और पोर्ट पर ध्यान दें।
  • CloudMQTT Python Documentation देखें और स्क्रिप्ट को CloudMQTT.py के रूप में सहेजें।
  • दस्तावेज़ीकरण में उदाहरण कोड के लिए पाहो लाइब्रेरी की आवश्यकता होती है, पाइप टूल का उपयोग करके पाहो पायथन क्लाइंट स्थापित करें, व्यवस्थापक के रूप में cmd प्रॉम्प्ट खोलें और निम्न कमांड दर्ज करें।

पाइप स्थापित पाहो-mqtt

चरण 5: रास्पबेरी पाई अंतिम कोड समझाया गया:

यहाँ, मैं RPi_UI.py फ़ाइल को CloudMQTT.py के साथ संयोजित करने और इसे RPi_UI.py के रूप में सहेजने का तरीका बताता हूँ।

पुस्तकालयों को आयात करें, अगर यह स्थापित नहीं है तो बस इसे स्थापित करें।

आयात paho.mqtt.client के रूप में mqtt

PyQt5 से urlparse आयात करें PyQt5 से QtGui, QtWidgets, QtCore आयात करें।

googledrivedownloader स्थापित करने के लिए, कमांड का उपयोग करें

पिप googledrivedownloader स्थापित करें

प्रारंभिक चर,

आइकन = "निर्देश-लोगो@2x.png"

प्रतियोगिता आईएमजी = "ब्लैक" मीटिंग1 = "मीटिंग1:" वेन्यू1 = "समय और स्थान1।" बैठक २ = "मीटिंग २:" स्थल २ = "समय और स्थान २।" बैठक ३ = "मीटिंग ३:" स्थल ३ = "समय और स्थान ३।"

Ui_MainWindow वर्ग द्वारा अनुसरण किया गया

कक्षा Ui_MainWindow (वस्तु):

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

फंक्शन सेटअप में निम्नलिखित पंक्तियाँ _update फंक्शन को कॉल करके हर 3 सेकंड में GUI को अपडेट करती हैं

self.retranslateUi (मेनविंडो)

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

on_message फ़ंक्शन ब्रोकर से संदेश की प्रतीक्षा करता है, एक बार संदेश प्राप्त होने के बाद यह Google ड्राइव से छवि को डाउनलोड करने के लिए Google ड्राइव साझा करने योग्य लिंक आईडी का उपयोग करता है और वैश्विक चर के मूल्यों को भी बदलता है।

def on_message (क्लाइंट, obj, msg):

Print(str(msg.payload)) if(str(msg.payload)): नोटिस प्राप्त = str(msg.payload) परिणाम = re.search('%1(.*)%2(.*)%3(. *)%4(.*)%5(.*)%6(.*)%7(.*)%8', नोटिस प्राप्त) वैश्विक प्रतियोगिताImg वैश्विक बैठक1 वैश्विक स्थल1 वैश्विक बैठक2 वैश्विक स्थल2 वैश्विक बैठक3 वैश्विक स्थल3 फाइलआईडी = "" +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= पथ) प्रतियोगिताआईएमजी = परिणाम। समूह (1) बैठक 1 = परिणाम समूह (2) स्थल 1 = परिणाम समूह (3) बैठक 2 = परिणाम समूह (4) स्थल 2 = परिणाम समूह (5) बैठक 3 = परिणाम समूह (6) स्थल3 = परिणाम समूह(7)

कोड में 2 अनंत लूप होते हैं,

आरसी = mqttc.loop ()

तथा

sys.exit (app.exec_ ())

इन लूपों को एक साथ चलाने के लिए, मैंने थ्रेडिंग अवधारणा का उपयोग किया है

def sqImport (tId): यदि tId == 0: जबकि 1: rc = 0 जबकि rc == 0: rc = mqttc.loop () प्रिंट ("आरसी:" + स्ट्र (आरसी)) यदि टीआईडी == 1: जबकि 1: ऐप = QtWidgets. QApplication(sys.argv) MainWindow = QtWidgets. QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_()) threadA = थ्रेड (लक्ष्य) = sqImport, args=[0]) थ्रेडबी = थ्रेड (लक्ष्य = sqImport, args=[1]) थ्रेडए.स्टार्ट () थ्रेडबी.स्टार्ट () थ्रेडए.जॉइन () थ्रेडबी.जॉइन ()

कूल, हमने रास्पबेरी पाई सेट अप पूरा कर लिया है, इसके बाद हम रास्पबेरी पाई को संदेश प्रकाशित करने के लिए विंडोज पीसी के लिए जीयूआई डिजाइन करते हैं।

चरण 6: विंडोज पीसी जीयूआई:

विंडोज पीसी जीयूआई
विंडोज पीसी जीयूआई
  • विंडोज़ के लिए GUI डिज़ाइन करें और इसे Windows_UI.ui के रूप में सहेजें।
  • इसे एक पायथन फ़ाइल में कनवर्ट करें।
  • इसे CloudMQTT.py फ़ाइल के साथ संयोजित करें और इसे Windows_UI.py के रूप में सहेजें।
  • Windows_UI.py फ़ाइल का कार्य RPi_UI.py फ़ाइल के समान है, केवल अंतर यह है कि Windows_UI.py फ़ाइल संदेश प्रकाशित करती है जबकि RPi_UI.py संदेश प्राप्त करता है।

चरण 7: विंडोज पीसी फाइनल कोड समझाया गया:

  • Windows_UI.py फ़ाइल में कुछ को छोड़कर RPi_UI.ui के सभी वर्ग और कार्य हैं।
  • on_message फ़ंक्शन के बजाय, इसमें संदेश प्रकाशित करने के लिए एक on_publish फ़ंक्शन है।
  • एक बार PUBLISH बटन पर क्लिक करने के बाद retranslateUi फ़ंक्शन के भीतर निम्न कोड प्रकाशित फ़ंक्शन को कॉल करता है।

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

  • पब्लिश फंक्शन गूगल ड्राइव को शेयर करने योग्य लिंक आईडी और मीटिंग की जानकारी को जोड़ता है और इसे "नोटिस" विषय के तहत प्रकाशित करता है।
  • यह संदेश रास्पबेरी पाई को प्राप्त होगा।

चरण 8: डिजिटल नोटिस बोर्ड स्थापित करें:

  • रास्पबेरी पाई को एचडीएमआई डिस्प्ले से कनेक्ट करें, मैंने अपने सोनी टीवी को डिजिटल नोटिस बोर्ड डिस्प्ले के रूप में इस्तेमाल किया है।
  • रास्पबेरी पाई में RPi_UI.py फ़ाइल चलाएँ।
  • Windows PC में Windows_UI.py फ़ाइल चलाएँ।
  • प्रतियोगिता छवि और मीटिंग घोषणा की Google ड्राइव लिंक आईडी दर्ज करें।
  • पब्लिश बटन पर क्लिक करें।
  • अब आप कुछ ही सेकंड में अपडेटेड डिजिटल नोटिस बोर्ड देख सकते हैं।

संकेत:

  • आप वांछित संख्या में डिजिटल नोटिस बोर्ड बना सकते हैं और बोर्डों को विभिन्न विषयों की सदस्यता दी जा सकती है।
  • Windows_UI.py फ़ाइल को पोर्टेबल बनाने के लिए, आप pyinstaller का उपयोग करके फ़ाइल को एक निष्पादन योग्य फ़ाइल में परिवर्तित कर सकते हैं, ताकि आप पीसी में आवश्यक लाइब्रेरी स्थापित किए बिना किसी भी विंडोज पीसी में निष्पादन योग्य फ़ाइल चला सकें।

शुक्रिया

सबरी कन्नन मो

सिफारिश की: