विषयसूची:

NodeMCU MQTT Iot प्रोजेक्ट - स्विच बटन: 4 कदम
NodeMCU MQTT Iot प्रोजेक्ट - स्विच बटन: 4 कदम

वीडियो: NodeMCU MQTT Iot प्रोजेक्ट - स्विच बटन: 4 कदम

वीडियो: NodeMCU MQTT Iot प्रोजेक्ट - स्विच बटन: 4 कदम
वीडियो: Getting Started with MQTT on Arduino Using ESP8266 2024, नवंबर
Anonim
Image
Image

OSOYOO NodeMCU IOT स्टार्टर किट

कृपया हमें फेसबुक पर फॉलो करें, हमारे नए जारी किए गए आइटम को ढूंढें और हमारे उत्पादों का रचनात्मक रूप से उपयोग करने के तरीके पर अपने विचार और वीडियो साझा करें। आप हमसे कैश बैक या सस्ता प्राप्त कर सकते हैं! फेसबुक:

यूट्यूब:

इस पाठ में, हम एक स्विच बटन को NodeMCU से जोड़ेंगे, और एक MQTT ब्रोकर को स्विच स्थिति भेजेंगे। जब बटन दबाया जाता है, तो NodeMCU MQTT ब्रोकर को "दबाया गया" बटन स्थिति प्रकाशित करेगा और MQTT क्लाइंट इन संदेशों की सदस्यता लेगा। जब पुश बटन छोड़ा जाता है, तो "दबाया नहीं गया" भेजा जाएगा।

चरण 1: तैयारी

कनेक्शन ग्राफ
कनेक्शन ग्राफ

हार्डवेयर:

NodeMCU बोर्ड x 1

स्विच बटन x 1

1K रोकनेवाला x 1

ब्रेडबोर्ड x 1

जम्पर तार

सॉफ्टवेयर:

Arduino IDE (संस्करण 1.6.4+)

ESP8266 बोर्ड पैकेज और सीरियल पोर्ट ड्राइवर

एमक्यूटीटी क्लाइंट (यहां एमक्यूटीटीबॉक्स)

Arduino लाइब्रेरी: PubSubClient

चरण 2: कनेक्शन ग्राफ

इस पाठ में, हम स्विच को नियंत्रित करने के लिए D2 (GPIO4) का उपयोग करते हैं, कृपया हार्डवेयर को कनेक्शन ग्राफ के अनुसार सेटअप करें।

नोट: 1k रोकनेवाला पुल डाउन रेसिस्टर के रूप में उपयोग कर रहा है, ऐसे सर्किट में, जब स्विच बंद होता है, तो NodeMCU इनपुट एक तार्किक उच्च मान पर होता है, लेकिन जब स्विच खुला होता है, तो पुल-डाउन रेसिस्टर इनपुट वोल्टेज को खींचता है। डाउन टू ग्राउंड (तार्किक शून्य मान), इनपुट पर एक अपरिभाषित स्थिति को रोकना।

चरण 3: कोड

कोड
कोड
कोड
कोड

नीचे दिए गए कोड को Arduino IDE में कॉपी करें:

/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * का प्रयोग करें NodeMCU वाईफाई के माध्यम से MQTT क्लाइंट को स्विच बटन की स्थिति भेजें * ट्यूटोरियल यूआरएल: * कॉपीराइट www.osoyoo.com */ #include #include

इंट BUTTON_PIN = D2; // बटन GPIO पिन D1 से जुड़ा है

// इन्हें अपने नेटवर्क के लिए उपयुक्त मानों के साथ अपडेट करें। कॉन्स्ट चार* एसएसआईडी = "********";//अपना वाईफाई एसएसआईडी यहां डालें कॉन्स्ट चार* पासवर्ड = "********";//अपना वाईफाई पासवर्ड यहां डालें। const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

वाईफाई क्लाइंट एस्प क्लाइंट;

PubSubClient क्लाइंट (espClient); लंबे समय तक अंतिम संदेश = 0; चार संदेश [50];

शून्य सेटअप_वाईफाई () {

देरी (100); // हम एक वाईफाई नेटवर्क से कनेक्ट करके शुरू करते हैं Serial.print("Connecting to"); सीरियल.प्रिंट्लन (एसएसआईडी); वाईफाई.बेगिन (एसएसआईडी, पासवर्ड); जबकि (WiFi.status() != WL_CONNECTED) {देरी (500); सीरियल.प्रिंट ("।"); } यादृच्छिक बीज (माइक्रो ()); सीरियल.प्रिंट्लन (""); Serial.println ("वाईफाई कनेक्टेड"); Serial.println ("आईपी पता:"); Serial.println (वाईफाई.लोकलआईपी ()); }

शून्य कॉलबैक (चार * विषय, बाइट * पेलोड, अहस्ताक्षरित int लंबाई)

{ } // कॉलबैक समाप्त करें

शून्य पुन: कनेक्ट () {

// लूप जब तक हम फिर से कनेक्ट नहीं हो जाते, जबकि (!client.connected()) { Serial.print("MQTT कनेक्शन का प्रयास कर रहा है…"); // एक रैंडम क्लाइंट आईडी बनाएं स्ट्रिंग क्लाइंट आईडी = "ESP8266Client-"; क्लाइंट आईडी + = स्ट्रिंग (यादृच्छिक (0xffff), हेक्स); // कनेक्ट करने का प्रयास // यदि आपके पास MQTT ब्रोकर के पास क्लाइंट आईडी, यूजरनेम और पासवर्ड है // कृपया निम्नलिखित लाइन को if (client.connect(clientId, userName, passWord)) में बदलें यदि (client.connect(clientId.c_str())) { सीरियल.प्रिंट्लन ("कनेक्टेड"); // एक बार MQTT ब्रोकर से कनेक्ट होने के बाद, यदि कोई क्लाइंट है तो कमांड को सब्सक्राइब करें। सब्सक्राइब ("OsoyooCommand"); } और { सीरियल.प्रिंट ("विफल, आरसी ="); सीरियल.प्रिंट (क्लाइंट.स्टेट ()); Serial.println ("5 सेकंड में पुनः प्रयास करें"); // देरी से प्रयास करने से पहले 5 सेकंड प्रतीक्षा करें (5000); } } } // अंत फिर से कनेक्ट करें ()

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (115200); setup_wifi (); client.setServer(mqtt_server, 1883); क्लाइंट.सेट कॉलबैक (कॉलबैक); पिनमोड (बटन_पिन, इनपुट); }

शून्य लूप () {

अगर (! क्लाइंट। कनेक्टेड ()) {फिर से कनेक्ट करें (); } क्लाइंट.लूप (); अब लंबा = मिली (); अंतर स्थिति; // हर 2 सेकंड में संदेश भेजें अगर (अब - lastMsg> 2000) {lastMsg = now; स्थिति = डिजिटल रीड (बटन_पिन); स्ट्रिंग संदेश = "बटन स्थिति:"; अगर (स्थिति == उच्च) {संदेश = संदेश + "दबाया"; चार संदेश [58]; msg.toCharArray (संदेश, 58); Serial.println (संदेश); // MQTT ब्रोकर क्लाइंट को सेंसर डेटा प्रकाशित करें। प्रकाशित करें ("OsoyooData", संदेश); } और { msg = msg + "प्रेस नहीं"; चार संदेश [58]; msg.toCharArray (संदेश, 58); Serial.println (संदेश); // MQTT ब्रोकर क्लाइंट को सेंसर डेटा प्रकाशित करें। प्रकाशित करें ("OsoyooData", संदेश); } } }

निम्नलिखित कार्यों के रूप में अपने स्वयं के वाईफाई और एमक्यूटीटी सेटिंग्स को फिट करने के लिए कोड संपादित करें: 1) हॉटस्पॉट कॉन्फ़िगरेशन: कोड लाइन के नीचे खोजें, वहां अपना स्वयं का एसएसआईडी और पासवर्ड डालें।

const char* ssid = “your_hotspot_ssid”;const char* पासवर्ड = “your_hotspot_password”;

2)MQTT सर्वर एड्रेस सेटिंग: आप mqtt_server मान से ऊपर सेट करने के लिए अपने स्वयं के MQTT ब्रोकर URL या IP पते का उपयोग कर सकते हैं। आप परियोजना का परीक्षण करने के लिए कुछ प्रसिद्ध मुफ्त MQTT सर्वर का भी उपयोग कर सकते हैं जैसे "broker.mqtt-dashboard.com", "iot.eclipse.org" आदि।

const char* mqtt_server = "broker.mqtt-dashboard.com";

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

अगर (क्लाइंट.कनेक्ट (क्लाइंटआईड.c_str ()))

प्रति

if (client.connect(client.connect(clientId, userName, passWord)) // अपना क्लाइंट आईडी/उपयोगकर्ता नाम/पासवर्ड यहां रखें

यदि नहीं, तो बस उन्हें डिफ़ॉल्ट के रूप में रखें। ऐसा करने के बाद, नीचे दिए अनुसार संबंधित बोर्ड प्रकार और पोर्ट प्रकार चुनें, फिर स्केच को NodeMCU पर अपलोड करें।

  • बोर्ड: "नोडएमसीयू 0.9 (ईएसपी -12 मॉड्यूल)"
  • सीपीयू आवृत्ति: "80 मेगाहर्ट्ज" फ्लैश आकार:"
  • 4M (3M SPIFFS)”
  • अपलोड स्पीड:”115200″
  • पोर्ट: अपने NodeMCU के लिए अपना खुद का सीरियल पोर्ट चुनें

चरण 4: MQTT क्लाइंट सेटिंग्स

MQTT क्लाइंट सेटिंग्स
MQTT क्लाइंट सेटिंग्स
MQTT क्लाइंट सेटिंग्स
MQTT क्लाइंट सेटिंग्स

यदि आप नहीं जानते कि MQTT क्लाइंट को कैसे कॉन्फ़िगर किया जाए, तो कृपया हमारे पिछले लेख पर जाएँ:

विषय सेटिंग: प्रकाशित करने के लिए विषय: OsoyooCommand

सदस्यता के लिए विषय: OsoyooData

चल रहा परिणाम

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

सिफारिश की: