IoT डिवाइस अच्छी चीजें कर सकते हैं, लेकिन समीकरण का एक अनिवार्य हिस्सा यह है कि वे कैसे संवाद करते हैं। आप इसे ESP-01 मॉड्यूल के साथ प्रबंधित कर सकते हैं।

बजट पर होने का मतलब यह नहीं है कि आप उन्नत DIY परियोजनाओं को नहीं ले सकते। यदि आप अपने IoT प्रोजेक्ट्स को बढ़ाने के लिए एक छोटे, किफायती और सुविधाजनक वाईफाई मॉड्यूल की तलाश कर रहे हैं, तो ESP-01 मॉड्यूल एक बढ़िया विकल्प है। हालाँकि, MQTT जैसे हल्के प्रोटोकॉल के साथ ऐसे मॉड्यूल को एकीकृत करना मुश्किल हो सकता है, खासकर यदि आप IoT विकास के लिए नए हैं।

ESP8266 श्रृंखला के अन्य मॉड्यूल की तुलना में अकेले ESP-01 बोर्ड की प्रोग्रामिंग करना चुनौतीपूर्ण हो सकता है। लेकिन मॉड्यूल का उपयोग शुरू करने के लिए आवश्यक सभी हार्डवेयर और सॉफ़्टवेयर सेटअप की मूल बातों पर ध्यान दें और साथ ही एक सरल और प्रक्रियात्मक तरीके से MQTT को कैसे सेट अप करें।

बोर्ड को जानना

ESP8266 ESP-01 एक छोटा और कॉम्पैक्ट वाईफाई मॉड्यूल है जो ESP8266EX चिप के साथ आता है, जो कि IoT अनुप्रयोगों के लिए डिज़ाइन किया गया एक उच्च एकीकृत SoC है।

मॉड्यूल में टीसीपी/आईपी प्रोटोकॉल स्टैक के साथ सिंगल-चिप वायरलेस माइक्रोकंट्रोलर शामिल है और वायरलेस नेटवर्क से कनेक्ट करने या एक्सेस प्वाइंट के रूप में कार्य करने में सक्षम है। ESP-01 मॉड्यूल में एक 2x4 पिन हेडर भी है जो इसके GPIO पिन, पावर और ग्राउंड और UART इंटरफ़ेस तक पहुंच प्रदान करता है।

हार्डवेयर की स्थापना

मॉड्यूल ब्रेडबोर्ड के अनुकूल बिल्कुल नहीं है। सुविधा के लिए, आप एक पूर्व-निर्मित एक्सटेंशन बोर्ड खरीद सकते हैं या जम्पर तारों और ब्रेडबोर्ड का उपयोग करके पुराने तरीके से जा सकते हैं।

एक समर्पित प्रोग्रामर, ESP8266 सीरियल मॉड्यूल बोर्ड है, जो आपके प्रोग्रामिंग अनुभव को आसान बना सकता है। यदि आप इस मार्ग पर जाना पसंद करते हैं, DIYHOBI प्रोग्रामर (USB से TTL CH340G कन्वर्टर मॉड्यूल एडेप्टर सहित) का उपयोग करके ESP-01 मॉड्यूल में प्रोग्राम को फ्लैश करने के तरीके पर एक आसान ट्यूटोरियल है।

लेकिन, आप अभी भी Arduino बोर्ड का उपयोग करके मॉड्यूल को प्रोग्राम कर सकते हैं। संदर्भ के लिए नीचे दिए गए सर्किट आरेख को देखें।

हालांकि यह आकर्षक लग सकता है, हम आम तौर पर मॉड्यूल को Arduino के 3.3v पिन से सीधे कनेक्ट करने की अनुशंसा नहीं करते हैं क्योंकि इसके लिए पिन प्रदान करने की तुलना में अधिक करंट की आवश्यकता होती है। इसके बजाय, Arduino को कनेक्ट करें 5वी LM1117/LD117 जैसे 3.3V वोल्टेज रेगुलेटर के लिए, फिर रेगुलेटर से WiFi मॉड्यूल को पावर दें।

कनेक्ट न करें वीसीसी और सीएच_पीडी ईएसपी के पिन 5वी Arduino का पिन। मॉड्यूल को कनेक्ट करना 5वी शक्ति इसे नुकसान पहुंचा सकती है।

सभी कैपेसिटर हैं 10uF और रोकनेवाला एक है 1K रोकनेवाला।

सॉफ़्टवेयर आवश्यकताएं

ESP-01 मॉड्यूल का उपयोग आमतौर पर Arduino प्लेटफॉर्म के साथ किया जाता है। जैसे, सॉफ़्टवेयर सेट करना बहुत सरल है, खासकर यदि आप Arduino C से परिचित हैं। हालाँकि, यदि आप रास्पबेरी से अधिक परिचित हैं, तो बहुत सारे हैं रास्पबेरी पाई आईओटी परियोजनाएं आप कोशिश कर सकते हैं।

ये हैं बुनियादी आवश्यकताएं :

  • एक MQTT ब्रोकर या सर्वर (जैसे Mosquitto या CloudMQTT)।
  • ESP8266 कोर लाइब्रेरी के साथ एक Arduino IDE।
  • Arduino के लिए PubSubClient लाइब्रेरी।

आपको यह याद रखना होगा कि स्थानीय रूप से आपका अपना MQTT सर्वर होने से आपको अपनी परियोजनाओं में लचीलापन मिलता है।

आवश्यक पुस्तकालयों की स्थापना

सबसे पहले Arduino IDE को अपने कंप्यूटर में डाउनलोड और इंस्टॉल करें। एक बार इंस्टॉल हो जाने पर, Arduino IDE खोलें, और पर जाएं फ़ाइल > पसंद.

में अतिरिक्त बोर्ड प्रबंधक यूआरएल फ़ील्ड में, निम्न URL दर्ज करें:

एचटीटीपी://arduino.esp8266.com/stable/package_esp8266com_index.json

क्लिक ठीक वरीयताएँ विंडो बंद करने के लिए।

अगला, पर जाएँ औजार > तख़्ता > मंडल प्रबंधक.

फिर सर्च करें esp8266 और esp8266 बोर्ड पैकेज स्थापित करें - इसमें ESP-01 मॉड्यूल के लिए सभी आवश्यक लाइब्रेरी शामिल हैं।

PubSubClient लायब्रेरी स्थापित करने के लिए, पर जाएँ स्केच > लाइब्रेरी शामिल करें > पुस्तकालयों का प्रबंधन करें.

निम्न को खोजें PubSubClient और इसे इंस्टॉल करने के लिए लाइब्रेरी पर क्लिक करें।

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

ESP-01 और MQTT ब्रोकर के बीच संबंध स्थापित करना

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

अपने ESP-01 मॉड्यूल को MQTT ब्रोकर से जोड़ने के लिए, आपको अपने कोड में ब्रोकर का IP पता और पोर्ट नंबर निर्दिष्ट करना होगा। आपको एक विशिष्ट क्लाइंट आईडी भी प्रदान करनी होगी जो ब्रोकर को आपके ESP-01 मॉड्यूल की पहचान कराती है।

सबसे पहले, अपने स्केच के शीर्ष पर आवश्यक लाइब्रेरी शामिल करें

#शामिल करना <ईएसपी8266 वाईफाई।एच>
#शामिल करना <PubSubClient।एच>

अगला, WiFi और MQTT कनेक्शन विवरण परिभाषित करें।

कॉन्स्टचार* एसएसआईडी = "आपका_एसएसआईडी";
कॉन्स्टचार*पासवर्ड = "आपका पासवर्ड";
कॉन्स्टचार* mqtt_server = "आपका_MQTT_SERVER";

प्लेसहोल्डर्स को अपने स्वयं के वाईफाई और एमक्यूटीटी कनेक्शन विवरण से बदलना न भूलें।

उसके बाद, वाईफाई क्लाइंट बनाएं और अपने स्थानीय वाईफाई नेटवर्क से कनेक्ट करें:

WiFiClient espClient;
खालीपनsetup_wifi(){
देरी (10);
WiFi.begin (एसएसआईडी, पासवर्ड);
जबकि (WiFi.status() != WL_CONNECTED) {
देरी (500);
}
}

इस समारोह में बुलाया जाना चाहिए स्थापित करना() आपके स्केच का कार्य।

इसके बाद, आपको एक MQTT क्लाइंट बनाना होगा और अपने MQTT ब्रोकर से जुड़ना होगा:

PubSubClient ग्राहक(एस्प क्लाइंट);
खालीपनपुनः कनेक्ट(){
जबकि (! क्लाइंट.कनेक्टेड ()) {
अगर (क्लाइंट.कनेक्ट ("ESP01", mqtt_user, mqtt_password)) {
// किसी विषय की सदस्यता लें
क्लाइंट.सब्सक्राइब ("परीक्षण/विषय");
} अन्य {
देरी (5000);
}
}
}

एक बार जब आप अपने MQTT ब्रोकर से जुड़ जाते हैं, तो आप विषयों का प्रकाशन और सदस्यता लेना शुरू कर सकते हैं।

ESP-01 से MQTT ब्रोकर को डेटा प्रकाशित करना

अब जब आपने अपने ESP01 मॉड्यूल को सफलतापूर्वक MQTT ब्रोकर से कनेक्ट कर लिया है, आइए देखें कि आप ESP-01 से ब्रोकर को डेटा कैसे प्रकाशित कर सकते हैं।

डेटा प्रकाशित करने के लिए, का उपयोग करें क्लाइंट.पब्लिश () के लिए एक संदेश प्रकाशित करने का कार्य करता है विषय में विषय।

क्लाइंट.पब्लिश ("विषय में", "ESP-01 से नमस्कार");

यह "हैलो फ्रॉम ESP-01" संदेश प्रकाशित करेगा विषय में विषय।

आप ESP-01 से ब्रोकर को सेंसर डेटा भी प्रकाशित कर सकते हैं। उदाहरण के लिए, यदि आपके पास आपके ESP-01 से जुड़ा एक तापमान सेंसर है, तो आप नीचे दिखाए गए अनुसार ब्रोकर को तापमान डेटा प्रकाशित कर सकते हैं।

तैरना तापमान = 25.5;
डोरी तापमान स्ट्रिंग = डोरी(तापमान);
चार तापमान चार [5];
तापमानस्ट्रिंग.toCharArray(तापमानचार, 5);
क्लाइंट.पब्लिश ("अस्थायी", तापमान चार);

यह तापमान डेटा को प्रकाशित करेगा अस्थायी विषय।

आपकी परियोजना की आवश्यकताओं के आधार पर, डेटा को लूप में या नियमित अंतराल पर प्रकाशित किया जा सकता है। सुनिश्चित करें कि आप ब्रोकर को बहुत अधिक डेटा से भर नहीं रहे हैं और आप एक उचित अंतराल पर प्रकाशित कर रहे हैं।

MQTT विषयों की सदस्यता लेना और ESP-01 पर डेटा प्राप्त करना

किसी विषय की सदस्यता लेने के लिए, का उपयोग करें क्लाइंट.सब्सक्राइब () समारोह। नीचे हमारे मामले के लिए, ग्राहक सदस्यता लेता है आउटटॉपिक विषय।

क्लाइंट.सब्सक्राइब ("विषय से बाहर");

एक बार जब आप किसी विषय की सदस्यता ले लेते हैं, तो आप इसका उपयोग करके उस विषय पर प्रकाशित संदेश प्राप्त कर सकते हैं क्लाइंट.लूप () में समारोह कुंडली() नीचे स्केच में कार्य करें:

खालीपनकुंडली(){
अगर (!ग्राहक।जुड़े हुए()) {
पुन: कनेक्ट करें ();
}
ग्राहक।कुंडली();
}

यह लगातार नए संदेशों की जांच करेगा और नया संदेश प्राप्त होने पर कॉलबैक फ़ंक्शन निष्पादित करेगा।

प्राप्त संदेशों को संभालने के लिए, कॉलबैक फ़ंक्शन को परिभाषित करें जैसा कि नीचे दिखाया गया है:

खालीपनवापस कॉल करें(चार* विषय, बाइट* पेलोड, अहस्ताक्षरित int यहाँ लंबाई){
// प्राप्त संदेश को प्रिंट करें
धारावाहिक।छपाई("विषय पर प्राप्त संदेश:");
धारावाहिक।छपाई(विषय);
धारावाहिक।छपाई(". संदेश: ");
के लिए (int यहाँ मैं =0;मैंधारावाहिकप्रिंट((चार)पेलोड[मैं]);
}
धारावाहिक.println();
}

सब्स्क्राइब किए गए विषय पर एक नया संदेश प्राप्त होने पर इस फ़ंक्शन को कॉल किया जाएगा। यह प्राप्त संदेश को सीरियल मॉनिटर को प्रिंट करेगा।

क्यूओएस (सेवा की गुणवत्ता) स्तर और सुरक्षा सुविधाओं का उपयोग करना

अनुरोधों को संभालने में उपयोग की जाने वाली सबसे महत्वपूर्ण तकनीकों में से एक आपके MQTT संदेशों के लिए QoS (सेवा की गुणवत्ता) स्तरों का उपयोग करना है। क्यूओएस स्तर परिभाषित करते हैं कि ब्रोकर और ग्राहकों को आपके संदेशों को कैसे संभालना चाहिए। QoS के तीन स्तर हैं: 0, 1 और 2।

QoS स्तर 0 सबसे कम विश्वसनीय है, क्योंकि संदेश केवल एक बार भेजे जाते हैं और ग्राहक को वितरित किए जाने की गारंटी नहीं होती है। क्यूओएस स्तर 1 अधिक विश्वसनीय है, क्योंकि संदेश कम से कम एक बार भेजे जाते हैं और ग्राहक को कम से कम एक बार वितरित करने की गारंटी दी जाती है। QoS स्तर 2 सबसे विश्वसनीय है, क्योंकि संदेश ठीक एक बार भेजे जाते हैं और ग्राहक को ठीक एक बार वितरित किए जाने की गारंटी होती है। आपके उपकरण कैसे संचार करते हैं, यह दूसरे के अनुरूप है सामान्य इंटरनेट ऑफ थिंग्स (IoT) सुरक्षा मुद्दे और समाधान आप शीर्ष पर रहना चाहते हैं।

क्यूओएस स्तरों का उपयोग करने के लिए, आप संदेश प्रकाशित करते समय वांछित स्तर निर्दिष्ट कर सकते हैं क्लाइंट.पब्लिश () समारोह:

क्लाइंट.पब्लिश ("विषय", "हैलो वर्ल्ड!", 1);

यह संदेश प्रकाशित करेगा हैलो वर्ल्ड! तक विषय क्यूओएस स्तर के साथ विषय 1.

एक और उन्नत तकनीक का उपयोग कर रहा है अंतिम इच्छा और वसीयतनामा (LWT) संदेश। एलडब्ल्यूटी संदेश वे संदेश होते हैं जो ब्रोकर द्वारा तब भेजे जाते हैं जब क्लाइंट अनपेक्षित रूप से डिस्कनेक्ट हो जाता है। हमारा मानना ​​है कि यह ऑफ़लाइन उपकरणों का पता लगाने या डिवाइस के डिस्कनेक्ट होने पर कार्रवाई को ट्रिगर करने के लिए महत्वपूर्ण है।

एलडब्ल्यूटी संदेशों का उपयोग करने के लिए, ब्रोकर से कनेक्ट करते समय आप एलडब्ल्यूटी संदेश निर्दिष्ट कर सकते हैं क्लाइंट.सेटविल () समारोह:

क्लाइंट.सेटविल("दर्जा", "ऑफ़लाइन", 1, सत्य);

यह LWT संदेश को सेट कर देगा ऑफलाइन पर दर्जा QoS स्तर 1 के साथ विषय और बनाए रखने के लिए फ्लैग सेट सत्य.

अपने अगले IoT प्रोजेक्ट के लिए तैयारी करें

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