ESP8266 के साथ अपनी खुद की वाई-फाई कनेक्टेड बटन कैसे बनाएं
विज्ञापन
इंटरनेट ऑफ थिंग्स में विशाल DIY क्षमता है। पर्याप्त जानकारी और कुछ सस्ते घटकों के साथ, आप जुड़े उपकरणों की एक जटिल प्रणाली का निर्माण कर सकते हैं।
कभी-कभी, हालांकि, आप कुछ सरल चाहते हैं। कोई घंटी या सीटी नहीं, बस एक बटन है जो एक ही कार्य करता है। आप पहले से ही कुछ इस तरह से परिचित हो सकते हैं यदि आपने कभी रोज़मर्रा के घरेलू सामानों को फिर से चालू करने के लिए अमेज़ॅन डैश बटन का उपयोग किया हो।
आज हम एक NodeMCU का उपयोग करके वाई-फाई सक्षम बटन बनाएंगे, और IFTTT का उपयोग करने के लिए इसे प्रोग्राम करेंगे ... अच्छा है, कुछ भी! यदि आप चाहें, तो वीडियो के बाद लिखित निर्देश।
आपको किस चीज़ की ज़रूरत पड़ेगी
आपको चाहिये होगा:
- 1 एक्स NodeMCU (ESP8266) बोर्ड, AliExpress पर $ 2-3 के लिए उपलब्ध है
- 1 एक्स पुशबटन
- 1 एक्स एलईडी (वैकल्पिक)
- 1 x 220 ओम अवरोधक (वैकल्पिक)
- ब्रेडबोर्ड और हुकअप तार
- प्रोग्रामिंग के लिए माइक्रो यूएसबी
- Arduino IDE के साथ कंप्यूटर स्थापित
NodeMCU के अलावा, आपको किसी भी Arduino स्टार्टर किट में इन भागों में से अधिकांश को खोजने में सक्षम होना चाहिए Arduino शुरुआती के लिए 4 सर्वश्रेष्ठ स्टार्टर किट Arduino शुरुआती के लिए 4 सर्वश्रेष्ठ स्टार्टर किट। बहुत से शुरुआती Arduino प्रोजेक्ट्स हैं जो आप आरंभ करने के लिए उपयोग कर सकते हैं। लेकिन आपको पहले Arduino और कुछ घटकों की आवश्यकता होगी। यहाँ ... के लिए सबसे अच्छा स्टार्टर किट के 4 में से एक है ... और पढ़ें यह ट्यूटोरियल आपको लगता है कि आप वैकल्पिक एलईडी और अवरोधक का उपयोग कर रहे हैं, लेकिन वे आवश्यक नहीं हैं।
चरण 1: सर्किट को स्थापित करना
इस परियोजना के लिए हार्डवेयर सेटअप बहुत सरल है। इस आरेख के अनुसार अपना बोर्ड सेट करें।
बैंगनी तार बटन के एक तरफ पिन D0 संलग्न करता है। हरे रंग का तार बटन के दूसरे पक्ष को आरएसटी पिन से जोड़ता है। ब्लू तार पिन डी 1 से रोकनेवाला और एलईडी तक चलता है। एलईडी का निगेटिव लेग एनओडीएमसीयू के जीएनडी पिन से जुड़ जाता है।
जब ब्रेडबोर्ड सेट किया जाता है तो उसे कुछ इस तरह देखना चाहिए:
यदि आप सोच रहे हैं कि कैसे मैंने अपने एलईडी को केबल के उन छोटे-छोटे हिस्सों का उपयोग करके ग्राउंड पिन पर ले जाया है, तो हमारा त्वरित ब्रेडबोर्ड क्रैश कोर्स ब्रेडबोर्ड क्या है और यह कैसे काम करता है? एक त्वरित क्रैश कोर्स एक ब्रेडबोर्ड क्या है और यह कैसे काम करता है? एक त्वरित क्रैश कोर्स DIY इलेक्ट्रॉनिक्स सीखना चाहते हैं? आपको अपने स्टार्टर किट में ब्रेडबोर्ड मिला होगा। लेकिन ब्रेडबोर्ड क्या है और यह कैसे काम करता है? और पढ़ें इसे साफ करने में मदद करनी चाहिए! अपने सेटअप की जाँच करें और USB के माध्यम से अपने NodeMCU को कंप्यूटर से संलग्न करें।
चरण 2: आईडीई की स्थापना
कोडिंग के साथ आने से पहले, आपको कुछ तैयारी करने की आवश्यकता है। यदि आप पहले से नहीं है, तो अपने NodeMCU बोर्ड को पहचानने के लिए Arduino IDE सेट करें। आप इसे फ़ाइल> प्राथमिकता के माध्यम से अपनी बोर्ड सूची में जोड़ सकते हैं।
आप हमारे NodeMCU परिचय लेख में इस कदम का अधिक विस्तृत विवरण पा सकते हैं।
इस परियोजना के लिए दो पुस्तकालयों की आवश्यकता है। स्केच पर जाएं> लाइब्रेरी शामिल करें> लाइब्रेरी प्रबंधित करें । इवान ग्रोखतकोव द्वारा ईएसपी 8266 डब्ल्यूआईएफआई की खोज करें और इसे स्थापित करें। इस लाइब्रेरी को NodeMCU बोर्ड के साथ वाई-फाई कनेक्शन बनाने के लिए लिखा गया है।
जॉन रोमकी द्वारा IFTTTWebhook की अगली खोज और नवीनतम संस्करण स्थापित करें। इस लाइब्रेरी को IFTTT को वेबहुक भेजने की प्रक्रिया को आसान बनाने के लिए बनाया गया है।
वह सारी तैयारी जो हमें चाहिए, कोड देता है!
कोड कैसे काम करेगा
हम वाई-फाई कनेक्शन स्थापित करने के लिए ESP8266WIFI लाइब्रेरी का उपयोग करेंगे। IFTTTWebhooks लाइब्रेरी ट्विटर पर पोस्ट करने के लिए, इस मामले में IFTTT से अनुरोध करता है। फिर, बिजली बचाने के लिए उपयोग में नहीं होने पर NodeMCU बोर्ड को सोने का निर्देश दें।
जब बटन दबाया जाता है, तो यह D0 और RST पिन को लिंक करेगा। यह बोर्ड को रीसेट करता है, और प्रक्रिया फिर से होती है।
इस ट्यूटोरियल के अधिकांश कोड शुरुआती लोगों के लिए काफी सरल हैं। उस ने कहा, यदि आप शुरू कर रहे हैं, तो आपको हमारे Arduino शुरुआती गाइड का अनुसरण करने के बाद समझने में बहुत आसान लगेगा।
यह ट्यूटोरियल समझ के साथ मदद करने के लिए चंक्स में कोड के माध्यम से जाता है। यदि आप सीधे व्यापार करना चाहते हैं, तो आप पास्बेइन पर पूरा कोड पा सकते हैं। ध्यान दें कि आपको अभी भी इस कोड में अपने वाई-फाई और IFTTT क्रेडेंशियल्स को भरना होगा ताकि यह काम कर सके!
चरण 3: परीक्षण गहरी नींद
शुरू करने के लिए, हम यह दिखाने के लिए एक साधारण परीक्षा बनाएंगे कि गहरी नींद कैसे काम करती है। Arduino IDE में एक नया स्केच खोलें। निम्नलिखित दो कोड दर्ज करें।
#include #include #define ledPin 5 #define wakePin 16 #define ssid "YOUR_WIFI_SSID" #define password "YOUR_WIFI_PASSWORD" #define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT_EVENT_NAME "IFTTT_EVENT_NAME_HERE"
यहां, हम अपने पुस्तकालयों को शामिल करते हैं, साथ ही कुछ स्केबल्स को परिभाषित करते हुए हमें अपने स्केच में आवश्यकता होगी। आप देखेंगे कि ledPin और awPin ऊपर दिए गए Fritzing आरेख की तुलना में यहां अलग-अलग क्रमांकित हैं। NodeMCU के पास Arduino बोर्डों के लिए एक अलग पिनआउट है। हालांकि, इस आसान आरेख के कारण यह कोई समस्या नहीं है:
अब एक सेटअप फंक्शन बनाएं:
void setup() { Serial.begin(115200); while(!Serial) { } Serial.println(" ");// print an empty line before and after Button Press Serial.println("Button Pressed"); Serial.println(" ");// print an empty line ESP.deepSleep(wakePin); }
यहां, हम अपने सीरियल पोर्ट को सेट करते हैं, और थोड़ी देर के लूप का उपयोग तब तक करते हैं जब तक यह शुरू न हो जाए। चूंकि यह कोड रीसेट बटन दबाने के बाद ट्रिगर होगा, हम सीरियल मॉनिटर पर "बटन दबाया" प्रिंट करते हैं। फिर, हम NodeMCU को गहरी नींद में जाने के लिए कहते हैं जब तक कि वेकपिन को RST पिन से जोड़ने वाले बटन को दबाया नहीं जाता।
अंत में, परीक्षण के लिए, इसे अपने लूप () विधि में जोड़ें:
void loop(){ //if deep sleep is working, this code will never run. Serial.println("This shouldn't get printed"); }
आमतौर पर, Arduino रेखाचित्र सेटअप के बाद लूप फ़ंक्शन को लगातार चलाते हैं। चूंकि हम बोर्ड को सेटअप समाप्त होने से पहले सोने के लिए भेजते हैं, लूप कभी नहीं चलता है।
अपना स्केच सहेजें और इसे बोर्ड पर अपलोड करें। सीरियल मॉनिटर खोलें और आपको "बटन दबाया" देखना चाहिए । हर बार बटन चालू होने पर, बोर्ड रीसेट करता है और संदेश फिर से प्रिंट होता है। यह काम करता हैं!
सीरियल मॉनिटर के बारे में एक नोट
आपने अपने कुछ प्रोजेक्ट्स के दौरान धारावाहिक मॉनीटर में कुछ बकवास चरित्र देखे होंगे। यह आमतौर पर सीरियल मॉनिटर को उसी बॉड दर के रूप में सेट करने के लिए नहीं होता है जैसे कि Serial.begin (XXXX) दर।
कई गाइड इस तरह के प्रोजेक्ट के लिए 115200 के बॉड रेट पर सीरियल कनेक्शन शुरू करने का सुझाव देते हैं। मैंने कई संयोजनों की कोशिश की, और उन सभी में धारावाहिक संदेशों से पहले और बाद में अलग-अलग डिग्री के गिब्रिश थे। विभिन्न फ़ोरम पोस्ट के अनुसार, यह एक दोषपूर्ण बोर्ड या सॉफ़्टवेयर संगतता समस्या के लिए नीचे हो सकता है। चूंकि यह परियोजना को बहुत बुरी तरह से प्रभावित नहीं करता है, इसलिए मैं दिखावा कर रहा हूं कि यह नहीं हो रहा है।
यदि आप धारावाहिक मॉनिटर के साथ समस्याएँ हैं, तो अलग-अलग बॉड दरों का प्रयास करें और देखें कि आपके लिए कौन सा सबसे अच्छा काम करता है।
चरण 4: वाई-फाई से कनेक्ट करना
अब अपने वाई-फाई नेटवर्क से कनेक्ट करने के लिए एक फ़ंक्शन बनाएं।
void connectToWifi() { Serial.print("Connecting to: SSID NAME"); //uncomment next line to show SSID name //Serial.print(ssid); WiFi.begin(ssid, password); Serial.println(" ");// print an empty line Serial.print("Attempting to connect: "); //try to connect for 10 seconds int i = 10; while(WiFi.status() != WL_CONNECTED && i >=0) { delay(1000); Serial.print(i); Serial.print(", "); i--; } Serial.println(" ");// print an empty line //print connection result if(WiFi.status() == WL_CONNECTED){ Serial.print("Connected."); Serial.println(" ");// print an empty line Serial.print("NodeMCU ip address: "); Serial.println(WiFi.localIP()); } else { Serial.println("Connection failed - check your credentials or connection"); } }
यह विधि आपके नेटवर्क को बीच में एक सेकंड के साथ दस बार कनेक्ट करने का प्रयास करती है। सीरियल मॉनीटर पर कनेक्शन प्रिंट की सफलता या विफलता।
चरण 5: कनेक्शन विधि को कॉल करना
अभी, connectToWifi () को कभी नहीं कहा जाता है। "बटन दबाया" संदेश और सोने के लिए बोर्ड भेजने के बीच अपने सेटअप फ़ंक्शन में कॉल जोड़ें।
connectToWifi();
यदि आप सोच रहे हैं कि यह कहाँ फिट बैठता है, तो इसे इस तरह दिखना चाहिए:
स्केच के शीर्ष पर ssid और पासवर्ड चर को अपने Wi-Fi क्रेडेंशियल के साथ बदलें। अपना स्केच सहेजें और बोर्ड पर अपलोड करें।
अब जब बोर्ड बूट करेगा तो यह सेटअप फ़ंक्शन पर लौटने से पहले आपके वाई-फाई नेटवर्क से कनेक्ट करने का प्रयास करेगा। अब, IFTTT एकीकरण सेट करने देता है।
चरण 6: IFTTT एकीकरण की स्थापना
IFTTT वेब सेवाओं की एक विशाल सरणी के साथ एकीकरण की अनुमति देता है। जब भी कोई नया ईमेल प्राप्त होता है, हम अलर्ट भेजने के लिए अपने वाई-फाई पीसी टॉवर एलईडी ट्यूटोरियल में इसका इस्तेमाल करते हैं। आज हम इसका उपयोग एक बटन के प्रेस पर एक ट्वीट भेजने के लिए करेंगे।
मेरे Apple पृष्ठ पर नेविगेट करें, और नया एप्लेट चुनें
+ इस पर क्लिक करें और Webhooks से कनेक्ट करें। "एक वेब अनुरोध प्राप्त करें " चुनें और अपने ईवेंट को नाम दें। इसे सरल रखें ! घटना के नाम पर ध्यान दें, आपको इसे बाद में अपने NodeMCU कोड में जोड़ना होगा। "ट्रिगर बनाएं" पर क्लिक करें।
अब + चयन करें। ट्विटर सेवा के लिए खोजें और इसे कनेक्ट करें - आपको इसे अपने ट्विटर अकाउंट पर पोस्ट करने के लिए अधिकृत करना होगा। "एक ट्वीट पोस्ट करें " चुनें और अपना संदेश चुनें।
अगली स्क्रीन आपको एप्लेट की समीक्षा करने के लिए कहेगी। समाप्त पर क्लिक करें। बस!
चरण 7: कोड में IFTTT क्रेडेंशियल्स जोड़ना
Arduino IDE में वापस आपको अपने IFTTT API कुंजी और ईवेंट नाम को अपने निर्धारित चर में जोड़ना होगा। एपीआई कुंजी को खोजने के लिए, मेरे Apple पर नेविगेट करें और सेवा टैब के तहत Webhooks चुनें। अपनी कुंजी तक पहुँचने के लिए प्रलेखन का चयन करें।
अपने कोड में कुंजी और ईवेंट नाम की प्रतिलिपि बनाएँ, उनके लिए बनाए गए अस्थायी नामों की जगह।
#define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT_EVENT_NAME "IFTTT_EVENT_NAME_HERE"
ध्यान दें, उल्टे अल्पविराम को रहना है, केवल पाठ को प्रतिस्थापित करें।
ConnectToWifi () को कॉल करने और बोर्ड को नींद में भेजने के बीच, IFTTTWebhook लाइब्रेरी ऑब्जेक्ट का एक उदाहरण बनाएं। गहरी नींद के फिर से शुरू होने से पहले एलईडी सिग्नल का काम पूरा हो जाता है।
//just connected to Wi-Fi IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME); hook.trigger(); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); //now sending board to sleep
हुक ऑब्जेक्ट पर ट्रिगर कॉलिंग IFTTT एप्लेट को बंद कर देता है, और आपके ट्विटर अकाउंट पर पोस्ट करना चाहिए। अपना स्केच सहेजें और इसे अपलोड करें। अब आपके पास पूरी तरह कार्यात्मक ट्वीट बटन होना चाहिए।
यदि यह काम नहीं कर रहा है, तो गलतियों के लिए अपने कोड और क्रेडेंशियल्स को ध्यान से देखें। यदि आप वास्तव में फंस गए हैं, तो ऊपर से पूर्ण कोड प्राप्त करें और इसे अपने आप से तुलना करें।
किया हुआ! आप इसे और कैसे सुधार सकते हैं?
यह वाई-फाई बटन का एक मूल संस्करण है, लेकिन ऐसे कई तरीके हैं जिनसे इसमें सुधार किया जा सकता है। सरलता के लिए, USB कनेक्शन का उपयोग यहां पावर के लिए किया जाता है। एक बैटरी इसे पूरी तरह से मोबाइल बनाती है, और सर्किट को पकड़ने वाला एक मामला सही शुरुआत करने वाला 3D प्रिंटिंग प्रोजेक्ट होगा।
गहरी नींद का उपयोग करने के बावजूद, आप पा सकते हैं कि एक बैटरी काफी तेज़ी से चलेगी। कई Arduino बिजली की बचत युक्तियाँ हैं जो इस प्रकार की परियोजनाओं में मदद करती हैं। इस ट्यूटोरियल की तुलना में अधिक कठिन है, अगर आपने स्क्रैच से अपना पावर-सचेत अरुडिनो बनाया है, तो बैटरी से चलने वाला वाई-फाई बटन महीनों तक चल सकता है!
यह प्रोजेक्ट स्मार्ट होम एप्लिकेशन के लिए रिमोट के लिए एकदम सही होगा। स्मार्ट होम ऑटोमेशन के लिए बेस्ट IFTTT रेसिपीज के लिए होम ऑटोमेशन एप्लेट्स 10 की पहले से ही काफी होम ऑटोमेशन एप्लेट्स मौजूद हैं। स्मार्ट होम ऑटोमेशन के लिए बेस्ट IFTTT रेसिपीज आपके स्मार्ट होम के लिए सही IFTTT रेसिपीज आपको समय, प्रयास और ऊर्जा बचा सकती हैं। आरंभ करने के लिए यहां हमारे दस पसंदीदा हैं। IFTTT पर और अधिक पढ़ें। एक बार जब आप मूल बातें नीचे कर लेते हैं, तो आप लगभग किसी भी सेंसर का उपयोग कर सकते हैं या व्यावहारिक रूप से किसी भी सेवा को ट्रिगर कर सकते हैं जिसकी आप कल्पना कर सकते हैं।
इमेज क्रेडिट: वड्मरी / डिपॉजिट
अधिक के बारे में अन्वेषण करें: Arduino, DIY प्रोजेक्ट ट्यूटोरियल।