Arduino पर WLAN - Arduino के लिए ESP8266-01 से कनेक्ट करें और अपने स्मार्टफोन के साथ दूर से NodeMCU Amica को नियंत्रित करें
Arduino सबसे प्रसिद्ध डेवलपर बोर्डों में से एक है। दुर्भाग्य से, मानक मॉडल में वाई-फाई चिप स्थापित नहीं है। यह व्यावहारिक टिप आपको दिखाता है कि एक ईएसपी 8266-01 WLAN मॉड्यूल को Arduino से कैसे जोड़ा जाए और आप अपने स्मार्टफोन से NodeMCU Amica को कैसे दूर से नियंत्रित कर सकते हैं।
अपने स्मार्टफोन के साथ NodeMCU अमिका को नियंत्रित करें
NodeMCU एमिका में विभिन्न प्रकार के पिन हैं, साथ ही एक अंतर्निहित ईएसपी 8266 वाई-फाई चिप और एक माइक्रोयूएसबी सॉकेट है। इसलिए, यह डिवाइस को स्टैंडअलोन डिवाइस के रूप में अधिक उपयोग करने के लिए समझ में आता है। एक "क्लासिक" ESP8266 बोर्ड को Arduino से कैसे कनेक्ट किया जाए, इसका वर्णन लेख में बाद में किया गया है।
- ESP चिप्स को प्रोग्राम करने में सक्षम होने के लिए, आपको पहले सिलिकॉन लैब्स से सभी CP210er चिप्स के लिए ड्राइवरों को डाउनलोड और इंस्टॉल करना होगा। सौभाग्य से, यह अपेक्षाकृत जल्दी होता है।
- फिर Arduino IDE खोलें और सेटिंग में जाएं। अतिरिक्त बोर्ड व्यवस्थापक URL के लिए URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (बिना उद्धरण चिह्नों के) जोड़ें। फिर बोर्ड व्यवस्थापक शुरू करें, "ईएसपी 8266" दर्ज करें और पैकेज स्थापित करें।
- पुस्तकालय प्रबंधक पर भी जाएं, "बिलक" दर्ज करें और नवीनतम संस्करण स्थापित करें। सभी आवश्यक घटक अब स्थापित हो गए हैं।
- आपको अपने स्मार्टफोन के साथ NodeMCU को नियंत्रित करने के लिए Blynk ऐप की आवश्यकता है। यदि पहले से नहीं किया है, तो यहां एक नया खाता बनाएं या किसी मौजूदा के साथ लॉग इन करें। फिर एक नया प्रोजेक्ट बनाएं और बोर्ड के रूप में NodeMCU का चयन करें।
- Arduino IDE में नमूना कोड के साथ आपको NodeMCU पर Blynk (→ "Boards_WiFi") के लिए एक कोड भी खोजना चाहिए। बस यहाँ अपने प्रोजेक्ट का बिन्नक टोकन डालें, जिसे आप ईमेल द्वारा स्वचालित रूप से भेज चुके हैं। अपना SSID और पासवर्ड भी दर्ज करें।
- बोर्ड पर कोड लोड करने के लिए, आपको "टूल" टैब से इसे चुनना होगा। हमारे मामले में "NodeMCU 1.0 (ESP12E मॉड्यूल)" का चयन किया जाना था, आवृत्ति 80 मेगाहर्ट्ज, मेमोरी का आकार "4M (3M SPIFFS)" और बॉड दर 115200। हालांकि, कृपया ध्यान दें कि मॉडल के आधार पर जानकारी भिन्न हो सकती है।
- फिर आप कोड को बोर्ड पर लोड कर सकते हैं और इसे Blynk ऐप के साथ नियंत्रित कर सकते हैं। यहां आप आसानी से विभिन्न विजेट बना सकते हैं और, उदाहरण के लिए, एक बटन के साथ एलईडी को नियंत्रित करें।
Arduino पर WiFi कनेक्ट करें - ESP8266-01 Arduino पर
अगला हम Arduino के साथ ESP8266-01 मॉड्यूल को कनेक्ट और उपयोग करना चाहते हैं।
- यदि आप बोर्ड को चालू करते हैं ताकि यह गोल्डन एंटीना के साथ नीचे की ओर इंगित करे, तो आप शीर्ष बाईं ओर वीसीसी पिन पा सकते हैं, जिसे निश्चित रूप से हाई पर सेट करना होगा। दाईं ओर RST पिन है, जिसे आपको आमतौर पर उपयोग करने की आवश्यकता नहीं है। इसके आगे स्थित CH_PD पिन को भी फिर से हाई पर सेट करना होगा। शीर्ष दाईं ओर हमारे पास TXD पिन है जो संकेतों को आउटपुट करता है और नीचे बाईं ओर हमारे पास एक RXD पिन है जो संकेतों को प्राप्त करता है, निश्चित रूप से। हमारे पास GPIO0 और GPIO2, साथ ही क्लासिक ग्राउंड पिन भी है, जो नीचे दाईं ओर स्थित है।
- Arduino पर मॉड्यूल का उपयोग करने में सक्षम होने के लिए, यह SoftwareSerial का उपयोग करने के लिए समझ में आता है, क्योंकि HardwareSerial का उपयोग ज्यादातर Arduino और PC के बीच संचार के लिए किया जाता है। हमारे मामले में, हालांकि, मॉड्यूल बॉड दर के रूप में 115200 का उपयोग करता है, जिसका अर्थ है कि सॉफ्टवेयरसेरियल के माध्यम से ईएसपी और अरुडिनो के बीच संचार संभव नहीं है।
- बॉड दर को बदलने के लिए, कई उपयोगकर्ता बस नए फर्मवेयर को फ्लैश करते हैं जो एक अलग बॉड दर प्रदान करता है। हालाँकि, यह बिल्कुल आवश्यक नहीं है क्योंकि बॉड दर को एक कमांड का उपयोग करके भी बदला जा सकता है। यह कमांड "AT + UART_DEF" है। "AT + IPR" या "AT + CIOBAUD" जैसे अन्य कमांड भी इंटरनेट पर पाए जा सकते हैं, लेकिन यह उचित नहीं है, क्योंकि विशेष रूप से "AT + IPR" भी मॉड्यूल को क्रैश कर सकता है।
- मॉड्यूल को कमांड भेजने के लिए, इसे एक यूएसबी एडाप्टर के साथ पीसी से कनेक्ट करने की सिफारिश की जाती है, जिसे आमतौर पर नि: शुल्क आपूर्ति की जाती है या लगभग एक यूरो के लिए इंटरनेट पर पाया जा सकता है। यदि आपके पास USB एडॉप्टर नहीं है, तो आप या तो ऑनलाइन ऑर्डर कर सकते हैं, जो अत्यधिक अनुशंसित है, या एक सार्वभौमिक FTDI एडाप्टर का उपयोग करें, जो काफी जटिल है और अक्सर ठीक से काम नहीं करता है। वैकल्पिक रूप से, एक और संस्करण है जिसे बाद में समझाया जाएगा।
- यदि आपने एडाप्टर को पीसी से कनेक्ट किया है, तो आप बॉड दर 115200 और सीआर + एलएफ के साथ "AT + UART_DEF = 9600, 8, 1, 0, 0" कमांड भेज सकते हैं। फिर आप मॉड्यूल को फिर से कनेक्ट कर सकते हैं और बॉड रेट 9600 पर कमांड भेज सकते हैं।
- आगे आपको Arduino का प्रोग्राम करना है। कोड अपेक्षाकृत सरल है। हम सबसे पहले कमांड के साथ एक खाली स्ट्रिंग को परिभाषित करते हैं »स्ट्रिंग s =" ";«; सॉफ्टवेयरसेरियल आयात करें (»#include«) और एक नया सॉफ्टवेयरसेयरियल ऑब्जेक्ट बनाएं (»सॉफ्टवेयरसिरियल सीरियल_एएसपी (2, 3);«)। सेटअप विधि में, ESP (»Serial_ESP.begin (9600);«) और पीसी (»Serial.begin (9600);«) से कनेक्शन शुरू किया गया है। यदि ईएसपी एक संकेत भेजता है, तो इसे स्ट्रिंग में जोड़ा जाता है और स्ट्रिंग तब सीरियल मॉनीटर में आउटपुट होता है (»जबकि (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} (s) ! = "") {Serial.println (s); s = "";} «)। इसके विपरीत, सीरियल मॉनीटर, यानी पीसी द्वारा भेजे गए सिग्नल, ESP पर भी पास किए जाते हैं ("जबकि (Serial.available ()> 0) {Serial_ESP.write (Serial.read) ();}")। हालांकि, यह बहुत महत्वपूर्ण है कि ईएसपी नंबरों को वापस भेजने के बाद से पूरी चीज एक चर में बदल जाती है। आप लेख के अंत में चित्र गैलरी में फिर से कोड पा सकते हैं।
- एक बार जब आप Arduino पर कोड लोड कर लेते हैं, तो आपको ESP कनेक्ट करना होगा। चेतावनी! ईएसपी 5 वी के बजाय 3.3 वोल्ट का उपयोग करता है। 5V इसे पूरी तरह से तोड़ते हैं। हालांकि, चूंकि Arduino 5V तर्क के साथ काम करता है, इसलिए वोल्टेज को तदनुसार समायोजित करना होगा।
- सिद्धांत रूप में, आप प्रतिरोधों के साथ एक वोल्टेज विभक्त का उपयोग कर सकते हैं, लेकिन व्यवहार में पूरी चीज काफी अभेद्य है और आसानी से परेशान हो सकती है। इसलिए, आपको Arduino और ESP के बीच एक तर्क स्तर कनवर्टर स्विच करने की आवश्यकता है।
- Arduino के 5V पिन को HV से कनेक्ट करें, अर्थात कनवर्टर पर उच्च-वोल्टेज पिन, और कनवर्टर का LV पिन ESP के VCC पिन से। इसके अलावा एलवी पिन को ESP के CH_PD पिन के समानांतर कनेक्ट करें ताकि चिप भी स्विच ऑन हो। इसके अलावा, पर्याप्त करंट प्राप्त करने के लिए, आपको Arduino के 3.3V पिन को कनवर्टर के LV पिन से जोड़ना चाहिए, इस प्रकार VCC और ESP के CH_PD। अब SoftwareSerial से TX पिन कनेक्ट करें - हमारे मामले में Arduino पर पिन 3 - HV 1, 2, 3 या 4 और ESV पर RXD पिन के साथ विपरीत LV पिन। Arduino के RX पिन के लिए भी इस चरण को दोहराएं।
- अंत में, आपको जमीन को जोड़ना होगा। ऐसा करने के लिए, कनवर्टर के एचवी तरफ जमीन को अरुडिनो से जमीन से कनेक्ट करें। फिर एलवी की तरफ जमीन को ईएसपी के मैदान से कनेक्ट करें। अंत में आपको एचवी ग्राउंड और एलवी ग्राउंड को कनेक्ट करना होगा।
- अब आप अपने पीसी के साथ Arduino के माध्यम से ESP पर आसानी से एटी कमांड भेज सकते हैं। आप आसानी से Arduino को अपने वाईफाई से कनेक्ट कर सकते हैं, एक वेब सर्वर और बहुत कुछ बना सकते हैं। बस संबंधित एटी कमांड्स को Arduino कोड (सेटअप विधि में) में जोड़ें जो ईएसपी को भेजे जाने हैं, जिसे आप "एटी इंस्ट्रक्शन सेट" में भी पा सकते हैं।
- यदि आपके पास USB अडैप्टर तैयार नहीं है, तो आप Arduino's TX और RX पिन, अर्थात 0 और 1 का उपयोग करके उसी सर्किट का उपयोग करके HardwareSerial के माध्यम से बॉड रेट को बदलने के लिए कमांड भी भेज सकते हैं। हालांकि, बॉड दर को तदनुसार कोड में समायोजित करने के लिए मत भूलना।
अगले व्यावहारिक टिप में, हम आपको जावा प्रोग्रामिंग भाषा का परिचय देंगे।