विषयसूची:

रास्पबेरी पाई ESP8266 से बात कर रही है MQTT का उपयोग करना: 8 कदम
रास्पबेरी पाई ESP8266 से बात कर रही है MQTT का उपयोग करना: 8 कदम

वीडियो: रास्पबेरी पाई ESP8266 से बात कर रही है MQTT का उपयोग करना: 8 कदम

वीडियो: रास्पबेरी पाई ESP8266 से बात कर रही है MQTT का उपयोग करना: 8 कदम
वीडियो: MQTT वेब डैशबोर्ड | HTML, CSS और Java Script का उपयोग करके MQTT वेब ऐप 2024, नवंबर
Anonim
रास्पबेरी पाई ESP8266 से बात कर रहे हैं MQTT का उपयोग कर रहे हैं
रास्पबेरी पाई ESP8266 से बात कर रहे हैं MQTT का उपयोग कर रहे हैं

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

आवश्यक सामग्री

1. रास्पबेरी पाई 3

2. नोडएमसीयू

3. एलईडी

4. बटन

5. प्रतिरोधी (10k, 475 ओम)

चरण 1: एमक्यूटीटी क्या है और यह कैसे काम करता है

एमक्यूटीटी

MQTT एक मशीन-टू-मशीन (M2M) डेटा ट्रांसफर प्रोटोकॉल है। MQTT को कई उपकरणों से डेटा एकत्र करने और फिर उस डेटा को IT अवसंरचना तक पहुँचाने के लक्ष्य के साथ बनाया गया था। यह हल्का है, और इसलिए दूरस्थ निगरानी के लिए आदर्श है, विशेष रूप से एम 2 एम कनेक्शन में जिसके लिए एक छोटे कोड पदचिह्न की आवश्यकता होती है या जहां नेटवर्क बैंडविड्थ सीमित है।

एमक्यूटीटी कैसे काम करता है

MQTT एक पब्लिश/सब्सक्राइब प्रोटोकॉल है जो एज-ऑफ-नेटवर्क डिवाइसेज को ब्रोकर को प्रकाशित करने की अनुमति देता है। ग्राहक इस ब्रोकर से जुड़ते हैं, जो तब दो उपकरणों के बीच संचार में मध्यस्थता करता है। प्रत्येक उपकरण विशेष विषयों की सदस्यता या पंजीकरण कर सकता है। जब कोई अन्य क्लाइंट किसी सब्सक्राइब किए गए विषय पर संदेश प्रकाशित करता है, तो ब्रोकर उस ग्राहक को संदेश अग्रेषित करता है जिसने सदस्यता ली है।

MQTT द्विदिश है, और स्टेटफुल सेशन अवेयरनेस बनाए रखता है। यदि कोई एज-ऑफ-नेटवर्क डिवाइस कनेक्टिविटी खो देता है, तो सभी सब्सक्राइब किए गए क्लाइंट को MQTT सर्वर की "लास्ट विल एंड टेस्टामेंट" सुविधा के साथ सूचित किया जाएगा ताकि सिस्टम में कोई भी अधिकृत क्लाइंट एक नया मान वापस किनारे पर प्रकाशित कर सके- नेटवर्क डिवाइस, द्विदिश कनेक्टिविटी बनाए रखना।

परियोजना को 3 भागों में बांटा गया है

सबसे पहले, हम आरपीआई पर एमक्यूटीटी सर्वर बनाते हैं और कुछ पुस्तकालय स्थापित करते हैं।

दूसरे, हम MQTT के साथ काम करने के लिए NodeMCU के लिए Arduino IDE में लाइब्रेरी स्थापित करेंगे, कोड अपलोड करेंगे और जांचेंगे कि सर्वर काम कर रहा है या नहीं।

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

चरण 2: रास्पबेरी पाई

रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई
रास्पबेरी पाई

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

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key mosquitto-repo.gpg.key जोड़ें

2. उपयुक्त के लिए भंडार उपलब्ध कराएं।

सीडी /etc/apt/sources.list.d/

3. आप डेबियन के किस संस्करण का उपयोग कर रहे हैं, इसके आधार पर।

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

सुडो एपीटी-अपडेट प्राप्त करें

4. कमांड का उपयोग करके मॉस्किटो सर्वर स्थापित करें।

sudo apt-मच्छर स्थापित करें

अगर आपको इस तरह से मच्छर लगाने में त्रुटि हो रही है।

#################################################################

निम्नलिखित पैकेजों में अधूरे निर्भरताएँ हैं: मच्छर: निर्भर करता है: libssl1.0.0 (>= 1.0.1) लेकिन यह संस्थापन योग्य नहीं है निर्भर करता है: libwebsockets3 (>= 1.2) लेकिन यह संस्थापन योग्य नहीं है। पैकेज।

#################################################################

फिर मुद्दों को ठीक करने के लिए इस आदेश का उपयोग करें।

sudo apt --fix-टूटा हुआ इंस्टाल

5. एमक्यूटीटी सर्वर स्थापित करने के बाद, कमांड का उपयोग कर क्लाइंट स्थापित करें

sudo apt-मच्छर-ग्राहक स्थापित करें

आप कमांड का उपयोग करके सेवाओं की जांच कर सकते हैं।

systemctl स्थिति mosquitto.service

जैसा कि हमारा MQTT सर्वर और क्लाइंट स्थापित है। अब, हम इसे सब्सक्राइब और पब्लिश करके चेक कर सकते हैं। सदस्यता लेने और प्रकाशित करने के लिए आप नीचे दिए गए आदेशों की जांच कर सकते हैं या वेबसाइट पर जा सकते हैं।

मच्छर उप

मच्छर

पाहो-एमक्यूटीटी पुस्तकालय स्थापित करने के लिए नीचे दिए गए आदेश का उपयोग करें।

sudo pip install paho-mqtt

पाहो

चरण 3: स्टेटिक आईपी एड्रेस कैसे सेटअप करें

स्टेटिक आईपी एड्रेस कैसे सेटअप करें
स्टेटिक आईपी एड्रेस कैसे सेटअप करें

निर्देशिका cd/etc पर जाएं और किसी भी संपादक का उपयोग करके dhcpcd.conf फ़ाइल खोलें। अंत में इन चार पंक्तियों को लिखें।

इंटरफ़ेस eth0 स्थिर ip_address=192.168.1.100 // आईपी जिसे आप उपयोग करना चाहते हैं

इंटरफ़ेस wlan0

स्थिर ip_address=192.168.1.68

स्टेटिक राउटर=192.168.1.1 // आपका डिफ़ॉल्ट गेटवे

स्थिर डोमेन_नाम_सर्वर=192.168.1.1

इसके बाद इसे सेव करें और अपने पाई को रीबूट करें।

चरण 4: नोडएमसीयू

नोडएमसीयू
नोडएमसीयू
नोडएमसीयू
नोडएमसीयू
नोडएमसीयू
नोडएमसीयू
नोडएमसीयू
नोडएमसीयू

NodeMCU के लिए Arduino IDE में आवश्यक लाइब्रेरी स्थापित करें

1. स्केच पर जाएँ ==> पुस्तकालय शामिल करें ==> पुस्तकालयों का प्रबंधन करें।

2. एडफ्रूट द्वारा mqtt सर्च करें और लाइब्रेरी इंस्टॉल करें या आप कोई भी लाइब्रेरी इंस्टॉल कर सकते हैं।

3. यह स्लीपडॉग लाइब्रेरी पर निर्भर करता है इसलिए हमें इस लाइब्रेरी की भी आवश्यकता है।

कार्यक्रम ऊपर दिया गया है, सिर्फ यह जांचने के लिए कि यह काम करता है या नहीं। यहां मैंने आरपीआई में कोई स्क्रिप्ट नहीं बनाई है। हम केवल सदस्यता लेने और प्रकाशित करने के लिए आदेशों का उपयोग कर रहे हैं। हम बाद में नियंत्रण के लिए स्क्रिप्ट तैयार करेंगे।

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-एच ==> होस्ट नाम-टी ==> विषय

-एम ==> संदेश

Mqtt_check प्रोग्राम की जाँच के बाद NodeMCU में पूरा प्रोग्राम अपलोड करें

चरण 5: पायथन लिपि

पायथन लिपि
पायथन लिपि
पायथन लिपि
पायथन लिपि

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

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

चरण 6: कनेक्शन और सर्किट आरेख

कनेक्शन और सर्किट आरेख
कनेक्शन और सर्किट आरेख
कनेक्शन और सर्किट आरेख
कनेक्शन और सर्किट आरेख

बटन की इंटरफेसिंग, NodeMCU के साथ एलईडी

NodeMCU === > ButtonGnd === > Gnd

3.3V === > PIN1

GPIO4 (D2) === > PIN2

नोडएमसीयू === > एलईडी

Gnd === > कैथोड (-ve)

GPIO5 (D1) === > एनोड (+ve)

बटन की इंटरफेसिंग, आरपीआई के साथ एलईडी

आरपीआई === > ButtonGnd === > PIN1

जीपीआईओ २३ === > पिन२

आरपीआई === > एलईडी

Gnd ==> कैथोड (-ve)

GPIO 24 === > एनोड (+ve)

चरण 7: परिणाम

Image
Image
नतीजा
नतीजा

सुनिश्चित करें कि आप स्क्रिप्ट चल रहे हैं अन्यथा यह बटनों का उपयोग करके एलईडी को नियंत्रित करने में सक्षम नहीं होगा।

सिफारिश की: