WiFiMulti Function का उपयोग करके ESP32 में सबसे मजबूत वाईफाई नेटवर्क से कनेक्ट करें

Wifimulti Function Ka Upayoga Karake Esp32 Mem Sabase Majabuta Va Ipha I Netavarka Se Kanekta Karem



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

ESP32 वाईफाई मल्टी फंक्शन के साथ

यदि हमारे पास एक से अधिक नेटवर्क तक पहुंच है, तो ESP32 कई नेटवर्क से जुड़ सकता है, हमें कोड के अंदर उनके SSID और पासवर्ड को परिभाषित करने की आवश्यकता है। यह उपलब्ध नेटवर्क की खोज करेगा और हमारे द्वारा कोड में परिभाषित सबसे मजबूत वाई-फाई नेटवर्क से कनेक्ट होगा।







टिप्पणी: याद रखें कि यह एक समय में एक नेटवर्क से कनेक्ट होगा यदि उस नेटवर्क से कनेक्शन खो जाता है तो ESP32 अन्य उपलब्ध वाईफाई नेटवर्क से कनेक्ट हो जाएगा।



हम Arduino IDE में WiFiMulti उदाहरण खोल सकते हैं:



के लिए जाओ : फ़ाइल > उदाहरण > वाईफाई > WifiMulti





ESP32 में मल्टीपल वाईफाई नेटवर्क कैसे जोड़ें

ESP32 बोर्ड में कई वाईफाई नेटवर्क जोड़ने के लिए। हम उपयोग करेंगे WifiMulti के साथ कार्य करें एडएपी () . ऐडएपी () फ़ंक्शन एक तर्क के रूप में कई एसएसआईडी और पासवर्ड स्वीकार कर सकता है। एकाधिक नेटवर्क जोड़ने के लिए उनके एसएसआईडी और पासवर्ड को अलग से परिभाषित किया जाना चाहिए। एक से अधिक नेटवर्क का उपयोग करने के लिए सिंटैक्स निम्नलिखित है WifiMulti के साथ कार्य करें एडएपी () :



wifiMulti. app ( 'एसएसआईडी नेटवर्क1' , 'पासवर्ड1' ) ;

wifiMulti. app ( 'एसएसआईडी नेटवर्क 2' , 'पासवर्ड2' ) ;

wifiMulti. app ( 'एसएसआईडी नेटवर्क3' , 'पासवर्ड3' ) ;

ESP32 में सबसे मजबूत वाईफाई नेटवर्क से कैसे जुड़ें

ESP32 को सबसे मजबूत उपलब्ध नेटवर्क से जोड़ने के लिए हम ESP32 वाईफाई स्कैन और वाईफाई मल्टी उदाहरण को मिलाएंगे। हम Arduino IDE में एक कोड लिखेंगे जो निम्नलिखित कदम उठाएगा:

  • उपलब्ध नेटवर्क के लिए स्कैन करें
  • उनके RSSI (सिग्नल स्ट्रेंथ) को सीरियल मॉनीटर पर प्रिंट करें। इसलिए, हम सबसे मजबूत उपलब्ध नेटवर्क की जांच कर सकते हैं
  • स्वचालित रूप से सबसे मजबूत नेटवर्क से जुड़ता है
  • यदि यह कनेक्शन खो देता है, तो यह स्वचालित रूप से अगले उपलब्ध सबसे मजबूत नेटवर्क से जुड़ जाएगा

कोड का परीक्षण करने के लिए, हम एक का उपयोग करेंगे स्मार्टफोन हॉटस्पॉट और एक वाईफाई नेटवर्क। किसी भी त्रुटि से बचने के लिए हमेशा मोबाइल हॉटस्पॉट नेटवर्क को एक साधारण नाम दें।

अब Arduino IDE का उपयोग करके ESP32 बोर्ड में दिए गए कोड को अपलोड करें।

कोड

Arduino IDE खोलें और ESP32 में कोड अपलोड करें। COM पोर्ट का चयन करना याद रखें।

#शामिल /*WIFI लाइब्रेरी शामिल*/

#शामिल /*मल्टी वाईफाई लाइब्रेरी शामिल*/

वाईफाई मल्टी वाईफाई मल्टी ;
/ * प्रति एपी कनेक्ट समय। ESP32 कनेक्शन के लिए अधिक समय लगने पर वृद्धि करें*/
स्थिरांक uint32_t connectTimeoutMs = 10000 ;
शून्य स्थापित करना ( ) {
धारावाहिक। शुरू करना ( 115200 ) ; /*सीरियल कम्युनिकेशन शुरू*/
देरी ( 10 ) ;
वाई - फाई। तरीका ( WIFI_STA ) ; /*ESP32 WIFI को स्टेशन के रूप में प्रारंभ किया गया*/
/*सभी ज्ञात SSID और उनके पासवर्ड टाइप करें*/
wifiMulti. app ( 'आपका एसएसआईडी' , 'पासवर्ड' ) ; /*नेटवर्क 1 जिसे हम कनेक्ट करना चाहते हैं*/
wifiMulti. app ( 'फ़ोन' ) ; /*नेटवर्क 2 जिसे हम कनेक्ट करना चाहते हैं*/
// WiFi.scanNetworks कुल नेटवर्क देगा
पूर्णांक एन = वाई - फाई। स्कैननेटवर्क ( ) ; /*उपलब्ध नेटवर्क के लिए स्कैन करें*/
धारावाहिक। println ( 'स्कैन किया' ) ;
यदि ( एन == 0 ) {
धारावाहिक। println ( 'कोई उपलब्ध नेटवर्क नहीं' ) ; /*नेटवर्क नहीं मिलने पर प्रिंट करता है*/
}
वरना {
धारावाहिक। प्रिंट ( एन ) ;
धारावाहिक। println ( 'नेटवर्क मिला' ) ; /*नेटवर्क मिलने पर प्रिंट करता है*/
के लिये ( पूर्णांक मैं = 0 ; मैं < एन ; ++ मैं ) {
धारावाहिक। प्रिंट ( मैं + 1 ) ; /*उपलब्ध नेटवर्क का SSID और RSSI प्रिंट करें*/
धारावाहिक। प्रिंट ( ':' ) ;
धारावाहिक। प्रिंट ( वाई - फाई। एसएसआईडी ( मैं ) ) ;
धारावाहिक। प्रिंट ( '(' ) ;
धारावाहिक। प्रिंट ( वाई - फाई। आरएसएसआई ( मैं ) ) ;
धारावाहिक। प्रिंट ( ')' ) ;
धारावाहिक। println ( ( वाई - फाई। एन्क्रिप्शन प्रकार ( मैं ) == WIFI_AUTH_OPEN ) ? '' : '*' ) ;
देरी ( 10 ) ;
}
}
/*उपलब्ध एसएसआईडी और पासवर्ड के साथ सबसे मजबूत उपलब्ध परिभाषित नेटवर्क से जुड़ता है*/
धारावाहिक। println ( 'वाईफ़ाई से कनेक्ट हो रहा है...' ) ;
यदि ( wifiMulti. दौड़ना ( ) == WL_कनेक्टेड ) {
धारावाहिक। println ( '' ) ;
धारावाहिक। println ( 'वाईफ़ाई नेटवर्क से जुड़ा' ) ;
धारावाहिक। println ( 'कनेक्टेड नेटवर्क का आईपी पता:' ) ;
धारावाहिक। println ( वाई - फाई। localIP ( ) ) ; /*जुड़े नेटवर्क का IP पता प्रिंट करता है*/
}
}
शून्य फंदा ( ) {
यदि ( wifiMulti. दौड़ना ( connectTimeoutMs ) == WL_कनेक्टेड ) { / * यदि कनेक्शन टूट गया है तो यह अगले नेटवर्क से जुड़ जाएगा * /
धारावाहिक। प्रिंट ( 'वाईफ़ाई जुड़ा हुआ है:' ) ;
धारावाहिक। प्रिंट ( वाई - फाई। एसएसआईडी ( ) ) ;
धारावाहिक। प्रिंट ( '' ) ;
धारावाहिक। println ( वाई - फाई। आरएसएसआई ( ) ) ;
}
वरना {
धारावाहिक। println ( 'वाईफाई कनेक्ट नहीं!' ) ; / * यदि सभी शर्तें विफल होती हैं तो इसे प्रिंट करें * /
}
देरी ( 1000 ) ;
}

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

अगला, उपयोग करना वाईफाईमल्टी.रन () कमांड ESP32 उपलब्ध सबसे मजबूत नेटवर्क से कनेक्ट होगा। वाईफाई कनेक्ट होने के बाद कोड कनेक्टेड नेटवर्क एसएसआईडी, आईपी एड्रेस और आरएसएसआई प्रिंट करेगा।

उत्पादन

ESP32 पर कोड अपलोड करने के बाद पहले यह उपलब्ध नेटवर्क के लिए स्कैन करेगा फिर यह सबसे मजबूत उपलब्ध नेटवर्क से कनेक्ट होगा। यहां हम प्रत्येक नेटवर्क के लिए RSSI मान देख सकते हैं, कम RSSI का मतलब है कि नेटवर्क मजबूत है।

  टेक्स्ट विवरण स्वचालित रूप से जेनरेट किया गया

हम देख सकते हैं कि ESP32 से जुड़ा है फोन नेटवर्क क्योंकि इसमें एक है आरएसएसआई का मूल्य -62 और दूसरा नेटवर्क जिसका एसएसआईडी और पासवर्ड परिभाषित किया गया है टीम सैम जिसका मूल्य है -73। यहाँ मोबाइल हॉटस्पॉट नेटवर्क का RSSI मान शून्य के करीब है जिसका अर्थ है एक मजबूत कनेक्शन।

अब स्मार्टफ़ोन हॉटस्पॉट को डिस्कनेक्ट करें। ESP32 खुद को अन्य मजबूत उपलब्ध नेटवर्क से जोड़ेगा। जैसा कि आउटपुट में हम देख सकते हैं कि ESP32 अब अगले सबसे मजबूत उपलब्ध नेटवर्क से जुड़ा है। जिस नेटवर्क से यह जुड़ा है वह टीम एसएएम है जिसका आरएसएसआई मान 0f -65 है।

निष्कर्ष

ESP32 अपने सर्कल में उपलब्ध सबसे मजबूत नेटवर्क से जुड़ सकता है। हमें कोड के अंदर कई नेटवर्क SSID और पासवर्ड को परिभाषित करने की आवश्यकता है। का उपयोग करते हुए WiFiMulti फ़ंक्शन ESP32 उपलब्ध नेटवर्क के लिए स्कैन करेगा और जब कनेक्शन खो जाएगा तो यह ESP32 रेंज के अंदर अन्य उपलब्ध नेटवर्क से कनेक्ट हो जाएगा।