विषयसूची:

ESP8266 और ESP32 WiFiManager के साथ: 10 कदम
ESP8266 और ESP32 WiFiManager के साथ: 10 कदम

वीडियो: ESP8266 और ESP32 WiFiManager के साथ: 10 कदम

वीडियो: ESP8266 और ESP32 WiFiManager के साथ: 10 कदम
वीडियो: Connect ESP32 to WiFi - ESP32 Beginner's Guide 2024, जुलाई
Anonim
Image
Image
बाहर पिन
बाहर पिन

क्या आप WiFiManager से परिचित हैं? यह एक पुस्तकालय है जो वायरलेस कनेक्शन प्रबंधक के रूप में कार्य करता है, और इसके साथ, हमारे पास एक्सेस प्वाइंट और स्टेशन दोनों को कॉन्फ़िगर करने का एक आसान तरीका है। मुझे इस विषय पर चर्चा करने के लिए कई सुझाव मिले हैं; इसलिए आज मैं आपको इस पुस्तकालय और इसके कार्यों से परिचित कराऊंगा। मैं ESP32 और ESP8266 दोनों के साथ इसके उपयोग का प्रदर्शन भी करूँगा।

चरण 1: पिनआउट

बाहर पिन
बाहर पिन

यहां मैं उन दो उपकरणों का पिनआउट दिखाता हूं जिनका हम उपयोग करेंगे:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

चरण 2: वाईफाई प्रबंधक

WiFiManager वास्तव में वायरलेस कनेक्शन के आसान प्रबंधन के लिए WiFi.h के शीर्ष पर लिखी गई लाइब्रेरी से ज्यादा कुछ नहीं है। याद रखें कि इसके साथ, हमारे पास एक्सेस प्वाइंट और स्टेशन दोनों को कॉन्फ़िगर करने की अधिक सुविधा है। स्टेशन मोड के लिए, हम ब्राउज़र में एक पोर्टल के माध्यम से कॉन्फ़िगर करते हैं।

कुछ सुविधाएं:

• यह स्वचालित कनेक्टिविटी पर निर्भर करता है

• गैर-स्वचालित कॉन्फ़िगरेशन पोर्टल का प्रारंभ

• दोहरे मोड में चुनिंदा रूप से संचालित होता है

चरण 3: यह कैसे काम करता है

यह काम किस प्रकार करता है
यह काम किस प्रकार करता है
यह काम किस प्रकार करता है
यह काम किस प्रकार करता है

ईएसपी कनेक्ट होने पर एक वाईफाई कॉन्फ़िगरेशन पोर्टल शुरू करेगा और कॉन्फ़िगरेशन डेटा को गैर-वाष्पशील मेमोरी में सहेजेगा। इसके बाद, ईएसपी मॉड्यूल में एक बटन दबाए जाने पर ही कॉन्फ़िगरेशन पोर्टल फिर से शुरू होगा।

यहां आप कॉन्फ़िगरेशन प्रवाह की जांच कर सकते हैं और इस चरण का चरण दर चरण अनुसरण कर सकते हैं:

1. ब्राउज़र के साथ किसी भी वाईफाई-सक्षम डिवाइस का उपयोग करके, नए बनाए गए एक्सेस प्वाइंट से कनेक्ट करें और पता 192.168.4.1 दर्ज करें।

2. स्क्रीन पर आपके पास मौजूदा नेटवर्क से जुड़ने के लिए दो विकल्प होंगे:

• वाईफाई कॉन्फ़िगर करें

• वाईफाई कॉन्फ़िगर करें (कोई स्कैन नहीं)

3. नेटवर्क में से एक चुनें और पासवर्ड दर्ज करें (यदि आवश्यक हो)। फिर सहेजें और ईएसपी के पुनरारंभ होने की प्रतीक्षा करें।

4. बूट के अंत में, ESP सहेजे गए नेटवर्क से कनेक्ट करने का प्रयास करता है। यदि आप ऐसा नहीं कर सकते हैं, तो आप एक एक्सेस प्वाइंट को सक्षम कर देंगे।

चरण 4: पुस्तकालय

पुस्तकालयों
पुस्तकालयों

लाइब्रेरी "WifiManager-ESP32" जोड़ें।

github.com/zhouhan0126/WIFIMANAGER-ESP32 पर जाएं और लाइब्रेरी डाउनलोड करें।

फ़ाइल को अनज़िप करें और इसे Arduino IDE के लाइब्रेरी फ़ोल्डर में पेस्ट करें।

सी: / प्रोग्राम फ़ाइलें (x86) / Arduino / पुस्तकालय

"DNSServer-ESP32" लाइब्रेरी जोड़ें।

github.com/zhouhan0126/DNSServer---esp32 लिंक पर जाएं और लाइब्रेरी डाउनलोड करें।

फ़ाइल को अनज़िप करें और इसे Arduino IDE के लाइब्रेरी फ़ोल्डर में पेस्ट करें।

सी: / प्रोग्राम फ़ाइलें (x86) / Arduino / पुस्तकालय

"वेबसर्वर-ईएसपी32" लाइब्रेरी जोड़ें।

github.com/zhouhan0126/WebServer-esp32 लिंक पर जाएं और लाइब्रेरी डाउनलोड करें।

फ़ाइल को अनज़िप करें और इसे Arduino IDE के लाइब्रेरी फ़ोल्डर में पेस्ट करें।

सी: / प्रोग्राम फ़ाइलें (x86) / Arduino / पुस्तकालय

ध्यान दें:

WiFiManager-ESP32 लाइब्रेरी में पहले से ही ESP8266 के साथ काम करने वाली सेटिंग्स हैं, इसलिए हम इसका उपयोग केवल दो WiFiManager libs (प्रत्येक प्रकार की चिप के लिए एक) के बजाय करेंगे।

जैसा कि हम बाद में देखेंगे, ESP8266WiFi और ESP8266WebServer पुस्तकालय हैं जिन्हें हमें डाउनलोड करने की आवश्यकता नहीं है, क्योंकि वे पहले से ही आते हैं जब हम Arduino IDE में ESP8266 स्थापित करते हैं।

चरण 5: कार्य

कार्यों
कार्यों
कार्यों
कार्यों
कार्यों
कार्यों

यहां कुछ ऐसे कार्य दिए गए हैं जो WiFiManager हमें प्रदान करता है।

1. ऑटो कनेक्ट

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

• ऑटोकनेक्ट ("नेटवर्क का नाम", "पासवर्ड"); - परिभाषित नाम और पासवर्ड के साथ एक नेटवर्क बनाता है।

• ऑटोकनेक्ट ("नेटवर्क का नाम"); - परिभाषित नाम के साथ एक खुला नेटवर्क बनाता है।

• ऑटो कनेक्ट (); - 'ESP' + chipID नाम के साथ एक खुला और स्वचालित रूप से नामित नेटवर्क बनाता है।

2. startConfigPortal

startConfigPortal फ़ंक्शन पहले से सहेजे गए नेटवर्क से कनेक्ट करने का प्रयास किए बिना एक्सेस प्वाइंट बनाने के लिए ज़िम्मेदार है।

• startConfigPortal ("नेटवर्क का नाम", "पासवर्ड"); - परिभाषित नाम और पासवर्ड के साथ एक नेटवर्क बनाता है।

• startConfigPortal (); - 'ESP' + chipID नाम के साथ एक खुला और स्वचालित रूप से नामित नेटवर्क बनाता है।

3. getConfigPortalSSID

पोर्टल का SSID लौटाता है (एक्सेस प्वाइंट)

4. प्राप्त करेंएसएसआईडी

यह उस नेटवर्क का SSID लौटाता है जिससे वह जुड़ा हुआ है।

5. पासवर्ड प्राप्त करें

यह उस नेटवर्क का पासवर्ड लौटाता है जिससे वह जुड़ा हुआ है।

6. सेटडिबगआउटपुट

सीरियल मॉनिटर पर डिबग संदेशों को प्रिंट करने के लिए setDebugOutput फ़ंक्शन जिम्मेदार है। ये संदेश पहले से ही पुस्तकालय में परिभाषित हैं। जैसे ही आप कार्यों के माध्यम से जाते हैं, डेटा मुद्रित किया जाएगा।

डिफ़ॉल्ट रूप से, यह फ़ंक्शन TRUE पर सेट होता है। यदि आप संदेशों को अक्षम करना चाहते हैं, तो बस फ़ंक्शन को FALSE पर सेट करें।

7. न्यूनतम सिग्नल गुणवत्ता सेट करें

setMinimumSignalQuality फ़ंक्शन सिग्नल गुणवत्ता के आधार पर नेटवर्क को फ़िल्टर करने के लिए ज़िम्मेदार है। डिफ़ॉल्ट रूप से, WiFiManager 8% से कम साइन-ऑन नेटवर्क नहीं दिखाएगा।

8. सेट हटाएंडुप्लिकेटएपी

नेटवर्क डुप्लिकेट को हटाने के लिए setRemoveDuplicateAPs फ़ंक्शन जिम्मेदार है।

डिफ़ॉल्ट रूप से यह TRUE पर सेट होता है।

9. सेटAPStaticIPConfig

setAPStaticIPConfig फ़ंक्शन एक्सेस पॉइंट मोड में स्थिर पता सेटिंग सेट करने के लिए ज़िम्मेदार है।

(आईपी, गेटवे, सबनेट)

10. सेटस्टैटिकआईपीकॉन्फिग

स्टेशन मोड में स्थिर पता सेटिंग्स सेट करने के लिए setSTAStaticIPConfig फ़ंक्शन जिम्मेदार है।

(आईपी, गेटवे, सबनेट)

ऑटोकनेक्ट से पहले आपको कमांड जोड़ना होगा !!!

11. सेटएपीकॉलबैक

सेटएपीकॉलबैक फ़ंक्शन आपको यह सूचित करने के लिए ज़िम्मेदार है कि एपी मोड शुरू हो गया है।

पैरामीटर एक फ़ंक्शन है जिसे इसे कॉलबैक के रूप में इंगित करने के लिए बनाया जाना चाहिए;

12. सेटसेवकॉन्फिग कॉलबैक

setSaveConfigCallback फ़ंक्शन आपको यह सूचित करने के लिए ज़िम्मेदार है कि एक नया कॉन्फ़िगरेशन सहेजा गया है और कनेक्शन सफलतापूर्वक पूरा हो गया है।

पैरामीटर इसे बनाने के लिए एक फ़ंक्शन है और इसे ऑलबैक के रूप में इंगित करता है।

ऑटोकनेक्ट से पहले आपको कमांड जोड़ना होगा !!!

चरण 6: विधानसभा

सभा
सभा

उदाहरण

हमारे उदाहरण में, हम ESP के साथ एक एक्सेस प्वाइंट बनाएंगे (कोड ESP8266 और ESP32 दोनों की सेवा करेगा)। एपी के निर्माण के बाद, हम आईपी 192.168.4.1 (जो इसे एक्सेस करने के लिए डिफ़ॉल्ट है) के माध्यम से पोर्टल तक पहुंचेंगे। तो चलिए उपलब्ध नेटवर्क प्राप्त करते हैं, एक का चयन करें और सहेजें। वहां से, ईएसपी फिर से शुरू होगा और उससे जुड़ने का प्रयास करेगा, और फिर यह एक स्टेशन के रूप में काम करेगा और अब एक्सेस प्वाइंट के रूप में नहीं होगा।

स्टेशन मोड में प्रवेश करने के बाद, आप केवल बटन के माध्यम से ईएसपी को एक्सेस प्वाइंट मोड में वापस कर सकते हैं।

चरण 7: कोड

पुस्तकालयों

आइए पहले उन पुस्तकालयों को परिभाषित करें जिनका हम उपयोग करेंगे।

ध्यान दें कि हमारे पास #if परिभाषित, #else, और #endif कमांड हैं। वे चिप से संबंधित आवश्यक पुस्तकालयों को शामिल करने के लिए सशर्त हैं। ESP8266 और ESP32 दोनों पर समान कोड चलाने के लिए यह भाग अत्यंत महत्वपूर्ण है।

#if परिभाषित (ESP8266)

#include //ESP8266 कोर वाईफाई लाइब्रेरी #else #include //ESP32 कोर वाईफाई लाइब्रेरी #endif

#if परिभाषित (ESP8266)

#शामिल//स्थानीय वेबसर्वर कॉन्फ़िगरेशन पोर्टल की सेवा के लिए उपयोग किया जाता है

#अन्यथा

#include // स्थानीय DNS सर्वर का उपयोग सभी अनुरोधों को कॉन्फ़िगरेशन पोर्टल पर पुनर्निर्देशित करने के लिए किया जाता है (https://github.com/zhouhan0126/DNSServer---esp32)

#अगर अंत

#include // स्थानीय वेबसर्वर कॉन्फ़िगरेशन पोर्टल (https://github.com/zhouhan0126/DNSServer---esp32) की सेवा के लिए उपयोग किया जाता है #include // वाईफाई कॉन्फ़िगरेशन मैजिक (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (मूल)

चरण 8: सेटअप

सेटअप में, हम अपने WiFiManager को सबसे सरल तरीके से कॉन्फ़िगर कर रहे हैं। आइए केवल कॉलबैक को परिभाषित करें और नेटवर्क बनाएं।

कॉन्स्ट इंट पिन_एपी = 2;

शून्य सेटअप () {Serial.begin (९६००); पिनमोड (पिन_एपी, इनपुट); //declaração do objeto wifiManager WiFiManager wifiManager;

// उपयोग करें निबंध कोमांडो, जैसा कि configurações são apagadas da memória // caso tiver salvo alguma rede para conectar Automaticamente, ela é apagada. // वाईफाईमैनेजर.रीसेटसेटिंग्स (); // कॉलबैक के लिए सभी विकल्पों में से एक को कॉन्फ़िगर करें एपी वाईफाईमैनेजर.सेटएपीकॉलबैक (कॉन्फिगमोडकॉलबैक); // कॉलबैक के लिए आपको क्या करना चाहिए, कहां से, क्वांडो पासा और इस तरह से वाईफाई मैनेजर.सेटसेवकॉन्फिगकॉलबैक(सेवकॉन्फिगकॉलबैक); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

चरण 9: लूप

लूप में, हम बटन पिन को यह देखने के लिए पढ़ेंगे कि क्या इसे दबाया गया है, और फिर हम एपी मोड को फिर से सक्षम करने के लिए विधि को कॉल करेंगे।

शून्य लूप () {

वाईफाई प्रबंधक वाईफाई प्रबंधक; // से o botão foi pressionado if (digitalRead(PIN_AP) == HIGH) { Serial.println("resetar"); // टेंटा अबरीर ओ पोर्टल if(!wifiManager.startConfigPortal("ESP_AP", "12345678")){ Serial.println("Falha ao conectar"); देरी (2000); ईएसपी.पुनरारंभ (); देरी (1000); } Serial.println("Conectou ESP_AP!!!"); }

जब आप बटन दबाते हैं, तो ईएसपी स्टेशन मोड से बाहर निकल जाएगा और आपका एक्सेस प्वाइंट और पोर्टल खोल देगा।

याद रखें कि हम रीसेट सेटिंग्स () कमांड का उपयोग नहीं करते हैं। अगली बार ESP बूट के लिए सेटिंग्स अभी भी सहेजी गई हैं।

चरण 10: कॉलबैक

कॉलबैक फ़ंक्शन, जो घटनाओं से जुड़े होते हैं, आपके लिए ऑपरेशन के सटीक क्षण की सेवा करते हैं, हमारे मामले में, एपी मोड और स्टेशन मोड में प्रवेश करना। फिर हम कुछ वांछित दिनचर्या को लागू कर सकते हैं, जैसे कि कनेक्टेड नेटवर्क से एसएसआईडी को पुनः प्राप्त करना, उदाहरण के लिए।

// कॉलबैक क्यू इंडिका क्यू या ईएसपी प्रवेश नो मोडो एपी

शून्य configModeCallback (WiFiManager * myWiFiManager) {// Serial.println ("कॉन्फ़िगरेशन मोड में प्रवेश किया"); Serial.println ("एंट्रो नो मोडो डी कॉन्फिगुराकाओ"); Serial.println(WiFi.softAPIP ()); // इंप्राइम या आईपी एपी सीरियल.प्रिंट्लन (myWiFiManager-> getConfigPortalSSID ()); // इंप्राइम या एसएसआईडी क्रिआडो दा रेडे

}

// कॉलबैक क्यू इंडिका क्यू सल्वामोस उमा नोवा रेडे पैरा से कनेक्टर (मोडो एस्टाकाओ)

शून्य saveConfigCallback () {// Serial.println ("कॉन्फ़िगरेशन सहेजना चाहिए"); Serial.println ("कॉन्फ़िगुराकाओ साल्वा"); Serial.println(WiFi.softAPIP ()); // इंप्राइम या आईपी डू एपी }

सिफारिश की: