MQTT: एक खुले नेटवर्क प्रोटोकॉल और IoT में इसका महत्व

MQTT प्रोटोकॉल नेटवर्क IoT

नाम याद MQTT, क्योंकि यह एक नेटवर्क कम्युनिकेशन प्रोटोकॉल टाइप M2M (मशीन टू मशीन) है जो काफी अच्छा लगने वाला है। यह अंग्रेजी में इसके संक्षिप्त रूप के लिए इंटरनेट ऑफ थिंग्स या IoT (इंटरनेट ऑफ थिंग्स) के नए युग के लिए काफी लोकप्रिय हो रहा है। इसके अलावा, यह एक खुला प्रोटोकॉल है, जो कई फायदे देता है।

वास्तव में, यह IoT के केंद्रीय स्तंभों में से एक बन गया है, क्योंकि यह इन जैसे कुछ ट्रांसमिशन सीमाओं वाले उपकरणों पर काफी अच्छा है। संक्षिप्त MQTT से आता है संदेश कतारबद्ध टेलीमेट्री परिवहन, नेटवर्क संचार के लिए OASIS और ISO (ISO / IEC 20922) से एक खुला मानक और जो आम तौर पर प्रसिद्ध TCP / IP पर चलता है।

नेटवर्क प्रोटोकॉल

OSI मॉडल और इसकी परतें

L संचार प्रोटोकॉल वे नियम हैं जो दो या अधिक उपकरणों या प्रणालियों को एक दूसरे के साथ संवाद करने की अनुमति देते हैं। यही है, यह विभिन्न माध्यमों और परिभाषित प्रारूप के माध्यम से सूचना प्रसारित करने का एक प्रोटोकॉल है, चाहे सॉफ्टवेयर और हार्डवेयर (या दोनों) द्वारा लागू किया गया हो।

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

और निश्चित रूप से, केवल एक प्रोटोकॉल नहीं है, लेकिन कई। उदाहरण के लिए, प्रसिद्ध आवेदन परत के लिए DNS, FTP, MQTT, HTTP और HTTPS, IMAP, LDAP, NTP, DHCP, SSH, टेलनेट, SNMP, SMTP, आदि। परिवहन परत में रहते हुए आप कुछ को टीसीपी, यूडीपी इत्यादि के रूप में प्रसिद्ध पा सकते हैं, साथ ही साथ इंटरनेट परत जैसे कि आईपीवी 4, या आईपीवी 6 (वह है जो उपलब्ध आईपी की सबसे बड़ी संख्या और संभव है। IoT), IPSec, आदि, और लिंक परत से अन्य जैसे DSL, ईथरनेट, WiFi, ARP, आदि।

IoT प्रोटोकॉल के बारे में

MQTT प्रोटोकॉल

बेशक, विशिष्ट संचार प्रोटोकॉल हैं या जिन्हें लागू किया जा सकता है IoT। यह कहना है कि पिछले अनुभाग पर विचार करते हुए, वे परिभाषित मानकों की एक श्रृंखला होगी ताकि दो या अधिक IoT डिवाइस एक-दूसरे को संचार और समझ सकें, और वे आमतौर पर M2M, यानी मशीन-टू-मशीन संचार होते हैं। कई IoT डिवाइस सेंसर या अन्य स्रोतों से जुड़ी और साझा जानकारी।

बड़ी संख्या में IoT उपकरणों के कारण, इन प्रोटोकॉल को बैंडविड्थ, गति, आदि की सीमाओं से परे आवश्यकताओं को पूरा करना चाहिए। (ध्यान दें कि कई उपकरण एम्बेडेड और सस्ते हैं), जो आमतौर पर कुछ उपकरणों में होता है। और मेरा मतलब है कि तथ्य स्केलेबल होना चाहिए, यदि आवश्यक हो और वैश्विक प्रणाली को प्रभावित किए बिना अधिक जुड़े उपकरणों को जोड़ने में सक्षम हो।

साथ ही, उन्हें ए कम निर्भरता उपकरणों के बीच युग्मन, ताकि डिवाइस को हटा दिए जाने पर समस्याएं उत्पन्न न हों। और हां, एक ही समय में, उच्च अंतर की मांग की जाती है ताकि यह बड़ी संख्या में उपकरणों और बहुत विविध प्रणालियों के साथ काम करे, क्योंकि IoT की दुनिया काफी विषम है।

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

महत्वपूर्ण अवधारणाएँ

यह कहा गया है, यह कहा जाना चाहिए कि IoT के लिए समाधान उन सभी कनेक्ट किए गए उपकरणों से संदेश प्राप्त करने के लिए एक केंद्रीकृत सर्वर का उपयोग करते हैं जो उन्हें सुन रहे सभी कनेक्ट किए गए IoT उपकरणों को वितरित और वितरित करते हैं। वह सर्वर है, जिसे जाना जाता है राउटर या ब्रोकर। कुछ जो पारंपरिक क्लाइंट-सर्वर रिलेशनशिप से कुछ मायनों में दूर है।

इसके अलावा, तरीके आप IoT के लिए इन संचार प्रोटोकॉल में पा सकते हैं:

  • पबसब: पब्लिश / ससब्यूज़ एक मैसेजिंग पैटर्न है जहां एक डिवाइस (सब) ब्रोकर को सूचित करता है कि वह एक संदेश प्राप्त करना चाहता है, जबकि दूसरा डिवाइस (पब) ब्रोकर के लिए दूसरे डिवाइस / उनके लिए प्रतीक्षा करने के लिए संदेश प्रकाशित करता है।
  • आरआरपीसी: राउटर रीमोडर प्रक्रिया कॉल दूरस्थ प्रक्रिया निष्पादन का एक और पैटर्न है। इसमें, एक उपकरण (कैली) ब्रोकर को सूचित करता है कि वह एक निश्चित प्रक्रिया को अंजाम देगा और ब्रोकर इसे दूसरे डिवाइस (कॉलर) पर वितरित करता है, जिस पर प्रक्रिया निष्पादित की जाती है।

अब, इन पद्धतियों या पैटर्न को पूरा करने के लिए, a मैसेजिंग इन्फ्रास्ट्रक्चर। और इस अर्थ में दो को प्रतिष्ठित किया जा सकता है:

  • संदेश कतार: संदेश सेवा, जहां सभी ग्राहकों के लिए एक एकल संदेश कतार उत्पन्न होती है जो दलाल को सदस्यता प्रदान करते हैं। बाद वाले संदेशों को तब तक स्टोर करके रखेंगे जब तक वे क्लाइंट को डिलीवर नहीं कर देते। यदि क्लाइंट या प्राप्तकर्ता कनेक्टेड नहीं है, तो इसे कनेक्ट होने तक बनाए रखा जाता है। इस प्रकार की सेवाएं इंस्टेंट मैसेजिंग ऐप जैसे टेलीग्रा, व्हाट्सएप, मैसेंजर इत्यादि में उपयोग की जाती हैं।
  • संदेश सेवा: यह एक अन्य सेवा है जिसमें ब्रोकर मैसेज को टाइप करने वाले से फिल्टर करके कनेक्टेड प्राप्तकर्ता क्लाइंट को भेज देता है। यदि क्लाइंट या रिसीविंग डिवाइस डिस्कनेक्ट हो जाता है, तो संदेश खो जाते हैं (हालांकि इसमें कुछ लॉगिंग सिस्टम हो सकता है)।

IoT प्रोटोकॉल

ऊपर देखा, अब चलो एक करीब देखो IoT प्रोटोकॉल यह बेहतर ज्ञात हैं। M2M के सबसे प्रमुख हैं:

  • AMQP (उन्नत संदेश कतारबद्ध प्रोटोकॉल): संदेश कतार का एक पबसब प्रकार का प्रोटोकॉल है। अच्छी इंटरऑपरेबिलिटी होने और विश्वसनीयता सुनिश्चित करने के लिए डिज़ाइन किया गया। कॉर्पोरेट अनुप्रयोगों, उच्च प्रदर्शन, उच्च विलंबता नेटवर्क, महत्वपूर्ण, आदि के लिए विशेष।
  • WAMP (वेब ​​एप्लिकेशन मैसेजिंग प्रोटोकॉल): यह rRPC जैसे PubSub प्रकार का एक और खुला प्रोटोकॉल है, और यह WebSockets पर चलता है।
  • सीओएपी (विवश अनुप्रयोग प्रोटोकॉल): एक प्रोटोकॉल है जिसे विशेष रूप से कम क्षमता वाले अनुप्रयोगों के लिए डिज़ाइन किया गया है।
  • TOMP (स्ट्रीमिंग टेक्स्ट ओरिएंटेड मैसेजिंग प्रोटोकॉल): बहुत ही सरल प्रोटोकॉल और अधिकतम अंतर को प्राप्त करने के लिए। HTTP का उपयोग टेक्स्ट संदेशों को प्रसारित करने के लिए किया जाता है।
  • एक्सएमपीपी (एक्सटेन्सिबल मैसेजिंग एंड प्रेजेंस प्रोटोकॉल): इंस्टेंट मैसेजिंग ऐप्स के लिए IoT में और XML पर आधारित एक और प्रोटोकॉल। जनवरी यह मामला भी खुला।
  • WMQ (वेबस्फीयर संदेश कतार): आईबीएम द्वारा विकसित प्रोटोकॉल। यह संदेश कतार प्रकार का है, जैसा कि इसके नाम से पता चलता है, और संदेश-उन्मुख है।
  • MQTT: (अगला भाग देखें)

सभी MQTT के बारे में

MQTT पैकेज

El MQTT प्रोटोकॉल यह एक संदेश कतार संचार प्रोटोकॉल है, जो एक PubSub पैटर्न और M2M प्रकार का अनुसरण करता है, जैसा कि मैंने पहले ही उल्लेख किया है। यह व्यापक रूप से IoT में उपयोग किया जाता है, और इंटरनेट पर उपयोग किए जाने वाले टीसीपी / आईपी स्टैक पर आधारित है।

MQTT के मामले में, हर कनेक्शन खुला रखा जाता है और इसका उपयोग हर आवश्यक संचार में किया जाता है। अन्य ज्ञात प्रोटोकॉल में जो कुछ होता है, उससे कुछ अलग, जो प्रत्येक संचार में होता है, एक नए कनेक्शन की आवश्यकता होती है।

लाभ

आईओटी के लिए एम 2 एम संचार के संदर्भ में एमक्यूटीटी प्रोटोकॉल के फायदे काफी स्पष्ट हैं। उपरोक्त सभी बातों के अलावा, यह एक प्रोटोकॉल है जो प्रदान करता है:

  • अधिक से अधिक ग्राहकों को जोड़ने के लिए स्केलेबिलिटी।
  • कम निर्भरता के लिए, ग्राहकों के बीच में गिरावट।
  • अतुल्यवाद।
  • सादगी।
  • लपट इतना है कि बहुत सारे संसाधनों का उपभोग न करें (हालांकि टीएलएस / एसएसएल सुरक्षा के साथ यह ऊपर जाता है)।
  • उन उपकरणों के लिए ऊर्जा कुशल जो बैटरी पर निर्भर करते हैं या 24/7 काम करते हैं, इसके लिए एक बड़े बैंडविड्थ (धीमी कनेक्शन के लिए आदर्श, कुछ वायरलेस की तरह) की आवश्यकता नहीं होती है।
  • संचार में अधिक विश्वसनीयता और मजबूती के लिए सुरक्षा और गुणवत्ता।

इतिहास

MQTT 90 के दशक में बनाया गया था, के शुरुआती संस्करण के साथ प्रोटोकॉल 1999 में। इसे आईबीएम के डॉ। एंडी स्टैनफोर्ड-क्लार्क और सिरस लिंक (पूर्व में यूरोटेक) के अर्लेन नीपर ने बनाया था।

La प्रारंभिक विचार एक कुशल संचार प्रोटोकॉल (कम बैंडविड्थ की खपत), प्रकाश और एक कम ऊर्जा की खपत के साथ, रेगिस्तान के माध्यम से यात्रा करने वाले पाइपलाइन की निगरानी के लिए एक प्रोटोकॉल बनाना था। उस समय यह बहुत महंगा था, लेकिन अब यह एक सस्ता और खुला प्रोटोकॉल बन गया है।

की उपस्थिति के साथ प्रारंभिक प्रोटोकॉल में सुधार किया गया था नए संस्करण, जैसे कि OQIS के तहत MQTT v3.1 (2013) (संरचित सूचना मानकों की उन्नति के लिए संगठन) विनिर्देश, आदि। आपको पता होना चाहिए कि शुरुआत में यह आईबीएम से एक मालिकाना प्रोटोकॉल था, लेकिन यह 2010 में जारी किया जाएगा, और यह OASIS में एक मानक बन गया ...

MQTT कनेक्शन कैसे काम करता है

MQTT प्रोटोकॉल का उपयोग करता है एक फिल्टरउन संदेशों के लिए, जो प्रत्येक क्लाइंट को भेजे जाते हैं, उन विषयों या विषयों के आधार पर, जो पदानुक्रम में व्यवस्थित होते हैं। इस तरह, एक ग्राहक किसी विशिष्ट विषय पर एक संदेश पोस्ट कर सकता है। इस तरह, उन सभी क्लाइंट या कनेक्टेड डिवाइस जो विषय की सदस्यता लेते हैं, ब्रोकर के माध्यम से संदेश प्राप्त करेंगे।

जैसा कि एमक्यू है, संदेश कतार में रहेंगे और जब तक ग्राहक को वह संदेश नहीं मिल जाता, तब तक वे नहीं खोते हैं।

कनेक्शन, जैसा कि मैंने भी संकेत दिया है, बनाया जाता है टीसीपी / आईपी के माध्यम से, और सर्वर या ब्रोकर जुड़े हुए क्लाइंट का रिकॉर्ड रखेगा। डिफ़ॉल्ट रूप से, डिवाइस संचार पोर्ट संख्या 1883 का उपयोग करेंगे, हालांकि यदि आप जोड़ा सुरक्षा के लिए SSL / TLS का उपयोग कर रहे हैं, तो आपको पोर्ट 8883 भी मिल सकता है।

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

  • कनेक्शन स्थापित करें: सभी आवश्यक जानकारी के साथ ग्राहक द्वारा भेजे गए संदेश / पैकेट को कनेक्ट करें। उस जानकारी में ग्राहक आईडी, उपयोगकर्ता नाम, पासवर्ड आदि शामिल हैं। ब्रोकर या सर्वर एक CONNACK पैकेट के साथ प्रतिक्रिया करता है जो क्लाइंट को सूचित करेगा कि कनेक्शन स्वीकार किया गया था, अस्वीकार कर दिया गया था, आदि।
  • संदेश भेजें और प्राप्त करें: एक बार कनेक्शन स्थापित होने के बाद, PUBLISH पैकेज या संदेशों का उपयोग टॉपिक और ब्रोकर को भेजे गए संदेश के पेलोड के साथ किया जाता है। दूसरी ओर, इच्छुक ग्राहक या ग्राहक क्रमशः अपनी सदस्यता लेने या वापस लेने के लिए SUBSCRIBE और UNSUSCRIBE पैकेज का उपयोग करते हैं। ब्रोकर क्लाइंट द्वारा अनुरोधित ऑपरेशन की सफलता की रिपोर्ट करने के लिए क्रमशः SUBACK और UNSUBACK पैकेज के साथ जवाब देगा।
  • कनेक्शन बनाए रखना: यह सुनिश्चित करने के लिए कि कनेक्शन खुला रहता है, ग्राहक समय-समय पर एक PINGREQ पैकेट भेज सकते हैं जिसे सर्वर से PINGRESP पैकेट के साथ मिलान किया जाएगा।
  • अंत कनेक्शन: जब कोई ग्राहक डिस्कनेक्ट करता है तो वह उस घटना की रिपोर्ट करने के लिए एक DISCONNECT पैकेट भेजता है।

उन संदेश या पैकेज जिन लोगों के बारे में मैंने बात की है उनकी संरचना अन्य नेटवर्क प्रोटोकॉल के अन्य पैकेटों के समान है:

  • हेडर या फिक्स्ड हैडर: एक निश्चित हिस्सा है जो 2-5 बाइट्स के बीच होता है। इसमें एक नियंत्रण कोड, भेजे गए संदेश के प्रकार की आईडी, और इसकी लंबाई शामिल है। 1-4 बाइट्स के बीच लंबाई को एन्कोड करने के लिए उपयोग किया जाता है, प्रत्येक ओकटेट के पहले 7 बिट्स का उपयोग लंबाई के लिए डेटा और एक निरंतर बिट की निरंतरता के रूप में यह निर्धारित करने के लिए होता है कि एक से अधिक बाइट है जो संदेश की लंबाई बनाता है।
  • वैरिएबल हैडर: हमेशा अनिवार्य नहीं है, लेकिन वैकल्पिक है। यह केवल कुछ स्थितियों या विशिष्ट संदेशों में कुछ पैकेजों में निहित है।
  • सामग्री या डेटा: पैकेट डेटा वह होता है जिसमें वास्तव में भेजा जाने वाला संदेश होता है। यह कुछ केबी से लेकर 256 एमबी की सीमा तक हो सकता है।

यदि आप जानने में रुचि रखते हैं हेक्साडेसिमल में संबंधित कोड भेजे गए संदेशों के प्रकार हैं:

संदेश कोड
कनेक्ट 0x10
कनेक्ट करें 0x20
प्रकाशित 0x30
पबैक 0x40
यौवन 0x50
सार्वजनिक 0x60
पबकॉम्प 0x70
SUBSCRBE करें 0x80
उपहास 0x90
सदस्यता समाप्त करें 0xA0
अनसबबैक 0xB0
पिंगरेक्यू 0xC =
पिंग्रेस 0xD0
डिस्कनेक्ट 0xE0

संचार की गुणवत्ता और सुरक्षा

MQTT द्वारा संदेशों का एक और महत्वपूर्ण विवरण है सेवा की गुणवत्ता या QoS, और सुरक्षा। विफलताओं और इसकी सुरक्षा की स्थिति में संचार प्रणाली की मजबूती इस पर निर्भर करेगी।

इसकी गुणवत्ता के संबंध में, यह निर्धारित किया जा सकता है 3 विभिन्न स्तरों:

  • QoS 0 (अनजाने)- संदेश केवल एक बार भेजा जाता है, और विफलता के मामले में इसे वितरित नहीं किया जाएगा। इसका उपयोग तब किया जाता है जब यह महत्वपूर्ण नहीं होता है।
  • QoS 1 (स्वीकार करें): ग्राहक को डिलीवरी की गारंटी देने के लिए जितनी बार जरूरत होगी संदेश भेजा जाएगा। नकारात्मक पक्ष यह है कि ग्राहक को एक ही संदेश कई बार मिल सकता है।
  • QoS 2 (आश्वस्त)- उपरोक्त के समान, लेकिन केवल एक बार वितरित किए जाने की गारंटी। इसका उपयोग अक्सर अधिक महत्वपूर्ण प्रणालियों के लिए किया जाता है जहां अधिक विश्वसनीयता की आवश्यकता होती है।

दूसरी ओर, के रूप में MQTT सुरक्षा, इस संबंध में अपनी ताकत सुनिश्चित करने के लिए विभिन्न उपायों का उपयोग किया जा सकता है। जैसा कि मैंने पहले ही उल्लेख किया है, उपयोगकर्ता नाम और पासवर्ड का प्रमाणीकरण, कई अन्य प्रोटोकॉल की तरह, एसएसएल / टीएलएस द्वारा सुनिश्चित किया जा सकता है। हालांकि इस प्रकार के सुरक्षित संचार का उपयोग करने पर कम क्षमता, या संसाधनों के साथ कई IoT डिवाइस काम के अधिभार के साथ समस्या हो सकती हैं ...

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

Arduino के साथ MQTT का उपयोग करना

Arduino UNO MQTT के साथ

निःसंदेह तुमसे हो सकता है Arduino के साथ MQTT प्रोटोकॉल का उपयोग करें और अन्य विकास बोर्ड, साथ ही रैप्सबेरी पाई आदि। ऐसा करने के लिए, आपको अपने Arduino बोर्ड को कनेक्टिविटी के साथ प्रदान करना होगा, अगर इसके पास यह नहीं है। इसके अलावा, पुस्तकालय MQTT के लिए Arduino क्लाइंट यह आपको इन कार्यों में मदद करेगा। इस पुस्तकालय के साथ संगत है:

आप पहले से ही जानते हैं कि आप कमांड का उपयोग करके अपने Arduino IDE में लाइब्रेरी को डाउनलोड और इंस्टॉल कर सकते हैं: git क्लोन

जैसे ही MQTT का उपयोग करने के लिए कोड के लिए कुछ आवेदन में, सच्चाई यह है कि यह सरल है। फ्रिटिंग छवि में आप एक पट्टिका देख सकते हैं Arduino UNO जो Arduino ईथरनेट द्वारा कनेक्टिविटी को जोड़ा गया है और यह भी जुड़ा हुआ है एक DHT22 आर्द्रता और तापमान सेंसर, हालांकि यह कुछ और हो सकता था ...

ठीक है, उस के साथ कहा, कोड के लिए आप में उत्पन्न करने के लिए है अरुडिनो आईडीई Arduino पर MQTT प्रोटोकॉल के साथ काम करने के लिए, यह इतना आसान है:

  • पैरा संदेश भेजें MQTT
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT22

// Direccion MAC del adaptador Ethernet
byte mac[] = { 0xCE, 0xAB, 0x0E, 0x3F, 0xFE, 0xD4 };

// IP del servidor (broker)
IPAddress mqtt_server(192, 168, 1, 4);

// Topic o tema con el que se trabaja
const char* topicName = "test";

DHT dht(DHTPIN, DHTTYPE);
EthernetClient ethClient;
PubSubClient client(ethClient);

void setup()
{
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Fallo en Ethernet usando DHCP");
  }
// Puerto 1883 de comunicación
  client.setServer(mqtt_server, 1883);
  dht.begin();
}

void loop()
{
  if (!client.connected()) {
    Serial.print("Conectando ...\n");
    client.connect("Cliente Arduino");
  }
  else {
    // Envío de informacion del sensor de temperatura y humedad
    float temp = dht.readTemperature();
    char buffer[10];
    dtostrf(temp,0, 0, buffer);
    client.publish(topicName, buffer);
  }
  // Tiempo entre envíos en ms (cada 10 segundos)
  delay(10000);
}

  • पैरा संदेश प्राप्त करते हैं MQTT द्वारा आपको केवल प्लेट की आवश्यकता है Arduino UNO और Arduino ईथरनेट या किसी अन्य तत्व के साथ कनेक्शन। कोड के लिए, एक उदाहरण होगा:
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

// Direccion MAC del adaptador Ethernet
byte mac[] = { 0xCE, 0xAB, 0x0E, 0x3F, 0xFE, 0xD4 };

// IP del servidor (broker)
IPAddress mqtt_server(192, 168, 1, 4);

// Topic o tema con el que trabajr
const char* topicName = "test";

EthernetClient ethClient;
PubSubClient client(ethClient);

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("El mensaje ha llegado [");
  Serial.print(topic);
  Serial.print("] ");
  int i=0;
  for (i=0;i<length;i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();
}

void setup()
{
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Fallo en Ethernet al usar configuración DHCP");
  }
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback)
}

void loop()
{
  if (!client.connected()) {
      Serial.print("Conectando ...");
      if (client.connect("rece_arduino")) {
        Serial.println("conectado");
        client.subscribe(topicName);
      } else {
        delay(10000);
      }
  }
  // Cliente a la escucha
  client.loop();
}

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

अधिक जानकारी के लिए, आप कर सकते हैं मुफ्त में डाउनलोड करें हमारे पीडीएफ मैनुअल प्रोग्रामिंग शुरू करने के लिए Arduino IDE कोर्स के साथ।


पहली टिप्पणी करने के लिए

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।