विषयसूची:
वीडियो: NodeMCU MQTT Iot प्रोजेक्ट - स्विच बटन: 4 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
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 क्लाइंट को कैसे कॉन्फ़िगर किया जाए, तो कृपया हमारे पिछले लेख पर जाएँ:
विषय सेटिंग: प्रकाशित करने के लिए विषय: OsoyooCommand
सदस्यता के लिए विषय: OsoyooData
चल रहा परिणाम
एक बार अपलोड हो जाने के बाद, यदि वाईफाई हॉटस्पॉट नाम और पासवर्ड सेटिंग ठीक है और एमक्यूटीटी ब्रोकर जुड़ा हुआ है, तो सीरियल मॉनिटर खोलें, आपको निम्न परिणाम दिखाई देगा: इस बटन को दबाए रखें, सीरियल मॉनिटर हर 2 सेकंड में "बटन स्थिति: दबाया" आउटपुट करेगा एक बार इस बटन को छोड़ने के बाद, सीरियल मॉनिटर हर 2 सेकंड में "बटन स्थिति: दबाया नहीं गया" आउटपुट करेगा।
सिफारिश की:
ग्लास IoT टच बटन: 10 कदम
ग्लास IoT टच बटन: मेरे पास दूसरे दिन दुकान के चारों ओर ITO ग्लास का एक टुकड़ा पड़ा था और मैंने इसे किसी अच्छे उपयोग के लिए रखने के बारे में सोचा। आईटीओ, इंडियम टिन ऑक्साइड, ग्लास आमतौर पर लिक्विड क्रिस्टल डिस्प्ले, सोलर सेल, एक हवाई जहाज के कॉकपिट विंडो आदि में पाया जाता है। अंतर ख
ESP8266 का उपयोग करके इंटरनेट से समय निकालना - ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: 5 कदम
ESP8266 का उपयोग करके इंटरनेट से समय निकालना | ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: इस ट्यूटोरियल में हम देखेंगे कि Arduino IDE के साथ ESP8266/nodemcu का उपयोग करके समय कैसे निकाला जाए। अपने रीडिंग को टाइमस्टैम्प करने के लिए डेटा लॉगिंग में समय प्राप्त करना विशेष रूप से उपयोगी है। यदि आपके ESP8266 प्रोजेक्ट की इंटरनेट तक पहुँच है, तो आप नेटवर्क T… का उपयोग करके समय प्राप्त कर सकते हैं।
टोटोरो प्रोजेक्ट - IoT और MQTT और ESP01: 7 चरण (चित्रों के साथ)
Totoro प्रोजेक्ट - IoT और MQTT और ESP01: Totoro प्रोजेक्ट यह एक अच्छा IoT प्रोजेक्ट है जिसे आप कई अन्य विभिन्न रूपों में कॉपी कर सकते हैं। ESP01 बोर्ड का उपयोग करके, MQTT प्रोटोकॉल के साथ, आप MQTT ब्रोकर को बटन की स्थिति के बारे में बता सकते हैं (मेरे में) मामला AdafruitIO)। MQTT और विज्ञापन के लिए एक उपयोगी मार्गदर्शिका
IoT पुश बटन (D1 मिनी): 6 कदम
IoT पुश बटन (D1 मिनी): मैंने एक IoT पुश बटन (अमेज़ॅन डैश चीजों के बारे में सोचें) बनाया है जिसका उपयोग आप अपने फोन पर नोटिफिकेशन पुश करने के लिए कर सकते हैं (उदाहरण के लिए बगीचे में आराम करते समय ड्रिंक रिफिल का अनुरोध करने के लिए)। आप कई अन्य उपकरणों के साथ बातचीत करने के लिए आसानी से पुन: कॉन्फ़िगर कर सकते हैं
NodeMCU के साथ आपातकालीन बटन: 7 कदम
NodeMCU के साथ आपातकालीन बटन: यदि कोई आपातकालीन स्थिति है तो आपातकालीन बटन आपको सहायता प्राप्त करने में मदद करता है, बस बटन दबाएं और यह फेसबुक या ट्विटर पर स्वचालित रूप से संदेश पोस्ट करेगा कि आप इसे कोड में डालते हैं, यदि आपके पास है तो आप एक और बटन जोड़ सकते हैं एक मेडिकल कंडीशन