WiFiMulti ఫంక్షన్తో ESP32
ESP32 మనకు ఒకటి కంటే ఎక్కువ నెట్వర్క్లకు ప్రాప్యత కలిగి ఉంటే బహుళ నెట్వర్క్లకు కనెక్ట్ చేయగలదు, మేము కోడ్ లోపల వారి SSID మరియు పాస్వర్డ్ను నిర్వచించవలసి ఉంటుంది. ఇది అందుబాటులో ఉన్న నెట్వర్క్ కోసం శోధిస్తుంది మరియు మేము కోడ్లో నిర్వచించిన బలమైన Wi-Fi నెట్వర్క్కి కనెక్ట్ చేస్తుంది.
గమనిక: ఆ నెట్వర్క్కు కనెక్షన్ పోయినట్లయితే అది ఒక సమయంలో ఒక నెట్వర్క్కి కనెక్ట్ అవుతుందని గుర్తుంచుకోండి, ఆపై ESP32 అందుబాటులో ఉన్న ఇతర WiFi నెట్వర్క్లకు కనెక్ట్ అవుతుంది.
మేము Arduino IDEలో WiFiMulti ఉదాహరణను తెరవవచ్చు:
వెళ్ళండి : ఫైల్ > ఉదాహరణలు > WiFi > WifiMulti
ESP32లో బహుళ వైఫై నెట్వర్క్లను ఎలా జోడించాలి
ESP32 బోర్డులో బహుళ WiFi నెట్వర్క్లను జోడించడానికి. మేము ఉపయోగిస్తాము WifiMulti తో ఫంక్షన్ addAP() . addAP() ఫంక్షన్ బహుళ SSIDలు మరియు పాస్వర్డ్లను ఆర్గ్యుమెంట్గా అంగీకరించగలదు. బహుళ నెట్వర్క్లను జోడించడానికి వాటి SSID మరియు పాస్వర్డ్లు ప్రత్యేకంగా నిర్వచించబడాలి. ఉపయోగించిన ఒకటి కంటే ఎక్కువ నెట్వర్క్లను జోడించడానికి క్రింది వాక్యనిర్మాణం ఉంది WifiMulti తో ఫంక్షన్ addAP() :
wifiMulti. addAP ( 'SSID నెట్వర్క్1' , 'పాస్వర్డ్1' ) ;
wifiMulti. addAP ( 'SSID నెట్వర్క్2' , 'పాస్వర్డ్ 2' ) ;
wifiMulti. addAP ( 'SSID నెట్వర్క్3' , 'పాస్వర్డ్ 3' ) ;
ESP32లో బలమైన WiFi నెట్వర్క్కి ఎలా కనెక్ట్ చేయాలి
అందుబాటులో ఉన్న బలమైన నెట్వర్క్తో ESP32ని కనెక్ట్ చేయడానికి మేము ESP32 WiFi స్కాన్ మరియు WiFi బహుళ ఉదాహరణలను మిళితం చేస్తాము. మేము Arduino IDEలో ఒక కోడ్ను వ్రాస్తాము, అది క్రింది దశలను చేస్తుంది:
- అందుబాటులో ఉన్న నెట్వర్క్ల కోసం స్కాన్ చేయండి
- సీరియల్ మానిటర్లో వారి RSSI (సిగ్నల్ స్ట్రెంత్)ని ప్రింట్ చేయండి. కాబట్టి, మేము అందుబాటులో ఉన్న బలమైన నెట్వర్క్ని తనిఖీ చేయవచ్చు
- బలమైన నెట్వర్క్కి ఆటోమేటిక్గా కనెక్ట్ అవుతుంది
- ఇది కనెక్షన్ని కోల్పోతే, అది స్వయంచాలకంగా అందుబాటులో ఉన్న తదుపరి బలమైన నెట్వర్క్కి కనెక్ట్ అవుతుంది
కోడ్ని పరీక్షించడానికి, మేము aని ఉపయోగిస్తాము స్మార్ట్ఫోన్ హాట్స్పాట్ మరియు WiFi నెట్వర్క్. ఏదైనా లోపాన్ని నివారించడానికి మొబైల్ హాట్స్పాట్ నెట్వర్క్కు ఎల్లప్పుడూ సాధారణ పేరును కేటాయించండి.
ఇప్పుడు Arduino IDE ఉపయోగించి ESP32 బోర్డులో ఇచ్చిన కోడ్ను అప్లోడ్ చేయండి.
కోడ్
Arduino IDEని తెరిచి ESP32లో కోడ్ని అప్లోడ్ చేయండి. COM పోర్ట్ను ఎంచుకోవడం గుర్తుంచుకోండి.
#include#include
WiFiMulti wifiMulti ;
/*ప్రతి AP కనెక్ట్ సమయం. ESP32 కనెక్షన్ కోసం ఎక్కువ సమయం తీసుకున్నప్పుడు పెంచండి*/
స్థిరంగా uint32_t టైమ్అవుట్ఎంలను కనెక్ట్ చేయండి = 10000 ;
శూన్యం సెటప్ ( ) {
క్రమ. ప్రారంభం ( 115200 ) ; /*సీరియల్ కమ్యూనికేషన్ ప్రారంభమవుతుంది*/
ఆలస్యం ( 10 ) ;
వైఫై. మోడ్ ( WIFI_STA ) ; /*ESP32 WIFI స్టేషన్గా ప్రారంభించబడింది*/
/*తెలిసిన అన్ని SSID మరియు వాటి పాస్వర్డ్లను టైప్ చేయండి*/
wifiMulti. addAP ( 'మీ SSID' , 'పాస్వర్డ్' ) ; /*నెట్వర్క్ 1ని మేము కనెక్ట్ చేయాలనుకుంటున్నాము*/
wifiMulti. addAP ( 'ఫోన్' ) ; /*నెట్వర్క్ 2 మేము కనెక్ట్ చేయాలనుకుంటున్నాము*/
// WiFi.scanNetworks మొత్తం నెట్వర్క్లను అందిస్తుంది
int n = వైఫై. స్కాన్ నెట్వర్క్లు ( ) ; /*అందుబాటులో ఉన్న నెట్వర్క్ కోసం స్కాన్ చేయండి*/
క్రమ. println ( 'స్కాన్ పూర్తయింది' ) ;
ఉంటే ( n == 0 ) {
క్రమ. println ( 'అందుబాటులో లేని నెట్వర్క్లు లేవు' ) ; /*నెట్వర్క్ కనుగొనబడకపోతే ప్రింట్లు*/
}
లేకపోతే {
క్రమ. ముద్రణ ( n ) ;
క్రమ. println ( 'నెట్వర్క్లు కనుగొనబడ్డాయి' ) ; /*నెట్వర్క్ దొరికితే ప్రింట్ చేస్తుంది*/
కోసం ( int i = 0 ; i < n ; ++ i ) {
క్రమ. ముద్రణ ( i + 1 ) ; /*అందుబాటులో ఉన్న నెట్వర్క్ యొక్క SSID మరియు RSSIని ప్రింట్ చేయండి*/
క్రమ. ముద్రణ ( ':' ) ;
క్రమ. ముద్రణ ( వైఫై. SSID ( i ) ) ;
క్రమ. ముద్రణ ( '(' ) ;
క్రమ. ముద్రణ ( వైఫై. RSSI ( i ) ) ;
క్రమ. ముద్రణ ( ')' ) ;
క్రమ. println ( ( వైఫై. ఎన్క్రిప్షన్ రకం ( i ) == WIFI_AUTH_OPEN ) ? '' : '*' ) ;
ఆలస్యం ( 10 ) ;
}
}
/* అందుబాటులో ఉన్న SSID మరియు పాస్వర్డ్తో అందుబాటులో ఉన్న బలమైన నిర్వచించిన నెట్వర్క్కి కనెక్ట్ చేస్తుంది*/
క్రమ. println ( 'Wifiకి కనెక్ట్ అవుతోంది...' ) ;
ఉంటే ( wifiMulti. పరుగు ( ) == WL_CONNECTED ) {
క్రమ. println ( '' ) ;
క్రమ. println ( 'WIFI నెట్వర్క్కి కనెక్ట్ చేయబడింది' ) ;
క్రమ. println ( 'కనెక్ట్ చేయబడిన నెట్వర్క్ యొక్క IP చిరునామా:' ) ;
క్రమ. println ( వైఫై. స్థానిక ఐపి ( ) ) ; /*కనెక్ట్ చేయబడిన నెట్వర్క్ యొక్క IP చిరునామాను ముద్రిస్తుంది*/
}
}
శూన్యం లూప్ ( ) {
ఉంటే ( wifiMulti. పరుగు ( టైమ్అవుట్ఎంలను కనెక్ట్ చేయండి ) == WL_CONNECTED ) { /*కనెక్షన్ పోతే అది తదుపరి నెట్వర్క్కి కనెక్ట్ అవుతుంది*/
క్రమ. ముద్రణ ( 'WiFi కనెక్ట్ చేయబడింది:' ) ;
క్రమ. ముద్రణ ( వైఫై. SSID ( ) ) ;
క్రమ. ముద్రణ ( '' ) ;
క్రమ. println ( వైఫై. RSSI ( ) ) ;
}
లేకపోతే {
క్రమ. println ( 'WiFi కనెక్ట్ కాలేదు!' ) ; /*అన్ని షరతులు విఫలమైతే దీన్ని ప్రింట్ చేయండి*/
}
ఆలస్యం ( 1000 ) ;
}
ESP32 కోసం WiFi లైబ్రరీలను నిర్వచించడం ద్వారా కోడ్ ప్రారంభించబడింది, ఆపై మేము a సృష్టించాము WiFiMulti వస్తువు. తరువాత, సెటప్ భాగంలో మేము రెండు నెట్వర్క్లను జోడించాము. ఒకటి పాస్వర్డ్ ఎన్క్రిప్ట్ చేయబడిన WiFi నెట్వర్క్ కాబట్టి స్మార్ట్ఫోన్ హాట్స్పాట్ అయిన రెండవ నెట్వర్క్ తెరిచినప్పుడు మేము పాస్వర్డ్ను అందించాలి, కాబట్టి నెట్వర్క్ SSID టైప్ చేసిన పాస్వర్డ్ మాకు అవసరం లేదు.
తరువాత, ఉపయోగించడం wifiMulti.run() కమాండ్ ESP32 అందుబాటులో ఉన్న బలమైన నెట్వర్క్కి కనెక్ట్ అవుతుంది. WiFi కనెక్ట్ చేయబడిన తర్వాత కోడ్ కనెక్ట్ చేయబడిన నెట్వర్క్ SSID, IP చిరునామా మరియు RSSIని ప్రింట్ చేస్తుంది.
అవుట్పుట్
ESP32కి కోడ్ని అప్లోడ్ చేసిన తర్వాత అది అందుబాటులో ఉన్న నెట్వర్క్ కోసం స్కాన్ చేస్తుంది, ఆపై అందుబాటులో ఉన్న బలమైన నెట్వర్క్కి కనెక్ట్ అవుతుంది. ఇక్కడ మనం ప్రతి నెట్వర్క్కు RSSI విలువను చూడవచ్చు, తక్కువ RSSI అంటే నెట్వర్క్ బలంగా ఉంటుంది.
ESP32 కి కనెక్ట్ చేయబడిందని మనం చూడవచ్చు ఫోన్ నెట్వర్క్ ఎందుకంటే దానికి ఒక ఉంది RSSI యొక్క విలువ -62 మరియు SSID మరియు పాస్వర్డ్ నిర్వచించబడిన ఇతర నెట్వర్క్ జట్టు SAM దీని విలువ -73. ఇక్కడ మొబైల్ హాట్స్పాట్ నెట్వర్క్ సున్నాకి దగ్గరగా ఉన్న RSSI విలువను కలిగి ఉంది అంటే బలమైన కనెక్షన్.
ఇప్పుడు స్మార్ట్ఫోన్ హాట్స్పాట్ను డిస్కనెక్ట్ చేయండి. ESP32 ఇతర బలమైన అందుబాటులో ఉన్న నెట్వర్క్లకు కనెక్ట్ అవుతుంది. అవుట్పుట్లో వలె ESP32 ఇప్పుడు అందుబాటులో ఉన్న తదుపరి బలమైన నెట్వర్క్కి కనెక్ట్ చేయబడిందని మనం చూడవచ్చు. ఇది కనెక్ట్ చేయబడిన నెట్వర్క్ RSSI విలువ 0f -65 కలిగి ఉన్న టీమ్ SAM.
ముగింపు
ESP32 దాని సర్కిల్లో అందుబాటులో ఉన్న బలమైన నెట్వర్క్కు కనెక్ట్ చేయగలదు. మేము బహుళ నెట్వర్క్ల SSID మరియు కోడ్ లోపల పాస్వర్డ్ను నిర్వచించవలసి ఉంటుంది. ఉపయోగించి WiFiMulti ఫంక్షన్ ESP32 అందుబాటులో ఉన్న నెట్వర్క్ల కోసం స్కాన్ చేస్తుంది మరియు కనెక్షన్ కోల్పోయినప్పుడు అది ESP32 పరిధిలో ఉన్న ఇతర అందుబాటులో ఉన్న నెట్వర్క్లకు కనెక్ట్ అవుతుంది.