Kaip nustatyti ESP32 statinį IP adresą

Kaip Nustatyti Esp32 Statini Ip Adresa



IP adresas yra unikali skaičių serija, galinti identifikuoti įrenginį tinkle. Keli įrenginiai ir kompiuteriai naudoja IP adresus, kad galėtų bendrauti vienas su kitu. Statinis IP adresas yra kaip fiksuotas adresas, kaip ir gatvės adresas. Tai rodo, kad statiniai IP adresai nesikeičia ir padeda kitiems įrenginiams patikrinti, kur yra konkretus įrenginys ar kompiuteris.

Šiame straipsnyje mes nustatysime ESP32 statinį IP adresą, kurį gali atsiminti kiti įrenginiai.

Įvadas į ESP32 IP adresą

Dirbant su ESP32 gali prireikti atskiro statinio IP adreso, nes kurdami ESP32 žiniatinklio serverį pasiekiame tą žiniatinklio serverį naudodami ESP32 IP adresą. Šį IP adresą priskiria WiFi tinklas, prie kurio prijungtas ESP32.







Tai gali sukelti problemų dirbant su ESP32 projekte, nes kiekvieną kartą ESP32 išjungus arba iš naujo nustatant naują IP adresą jam priskiria „WiFi“ tinklas. Dėl to mums reikia naujo IP adreso žiniatinklio serveriui. Taigi, greitas sprendimas yra nustatyti statinį ESP32 IP adresą, kuris lieka nepakitęs, net jei ESP32 yra išjungtas arba nustatytas iš naujo.



Paprastai DHCP (Dynamic Host Configuration Protocol) tinklo valdymo įrankis priskiria IP adresus visiems įrenginiams, prijungtiems prie WiFi tinklo. DHCP yra naudingas, nes tinklo administratoriams nereikia rankiniu būdu priskirti IP adresų visiems įrenginiams, prijungtiems prie tinklo. Namų tinkle „WiFi“ maršrutizatorius paprastai veikia kaip DHCP serveris.



Kartu su IP adresu DHCP taip pat priskiria kai kuriuos kitus parametrus, įskaitant:





  • Potinklio kaukė: Tai 32 bitų skaičius, kuris užmaskuoja IP adresus ir padalija juos į tinklo ir pagrindinio kompiuterio adresus.
  • Vartų adresas: Tai yra įrenginio IP adresas, jungiantis vietinio tinklo įrenginius su internetu, paprastai namuose, tai yra „WiFi“ maršrutizatorius.
  • DNS: Tai domeno vardų serverio IP adresas.

Visi šie parametrai yra svarbūs norint pasiekti ESP32 žiniatinklio serverį. Kai ESP32 naudosime statinį IP adresą, visi šie parametrai turi būti perduoti, kitaip ESP32 nepavyks užmegzti ryšio.

Kai ESP32 bus priskirtas statinis IP adresas, jis nenaudos DHCP serverio ir nepateiks reikiamų duomenų. Taigi, norėdami prijungti ESP32 WiFi tinkle su statiniu IP adresu, turime žinoti aukščiau nurodytus parametrus, tam pirmiausia prijungsime jį prie WiFi tinklo ir patikrinsime visus tinklo parametrus, įskaitant potinklio kaukė, šliuzo adresas ir DNS IP adresu.



Sužinoję parametrus galime priskirti statinį IP adresą.

Numatytųjų tinklo parametrų radimas

Kaip aptarta ankstesniame skyriuje, ESP32 sujungsime su WiFi tinklu, kad gautume visus to tinklo parametrus. Taigi, apibrėžę tinklo SSID ir slaptažodį bei naudodami WiFi.h biblioteką, galime prijungti ESP32 prie tinklo.

Kodas

Įkelkite toliau pateiktą kodą į ESP32 plokštę ir nepamirškite pakeisti SSID ir slaptažodžio naudodami savo tinklo kredencialus.

#include


konst char * ssid = „jūsų tinklo pavadinimas“ ;
konst char * Slaptažodis = „yourNetworkPass“ ;

tuštuma sąranka ( ) {
Serijinis. pradėti ( 115 200 ) ;

Bevielis internetas. pradėti ( ssid , Slaptažodis ) ;

kol ( Bevielis internetas. statusą ( ) != WL_CONNECTED ) {
uždelsimas ( 500 ) ;
Serijinis. spausdinti ( 'Prisijungiama... \n \n ) ;
}

Serijinis. spausdinti ( 'Vietinis IP:' ) ;
Serijinis. println ( Bevielis internetas. vietinis IP ( ) ) ;
Serijinis. spausdinti ( 'Potinklio kaukė:' ) ;
Serijinis. println ( Bevielis internetas. potinklio kaukė ( ) ) ;
Serijinis. spausdinti ( 'Vartai IP:' ) ;
Serijinis. println ( Bevielis internetas. vartai IP ( ) ) ;
Serijinis. spausdinti ( 'DNS 1:' ) ;
Serijinis. println ( Bevielis internetas. dnsIP ( 0 ) ) ;
Serijinis. spausdinti ( 'DNS 2:' ) ;
Serijinis. println ( Bevielis internetas. dnsIP ( 1 ) ) ;
}

tuštuma kilpa ( ) { }

Kodas prasidėjo įtraukiant WiFi.h biblioteką. Tada apibrėžėme SSID ir slaptažodį. Čia ESP32 yra prijungtas prie WiFi tinklo ir visus reikalingus parametrus nustatys DHCP serveris.

Antroje kodo dalyje išspausdinome DHCP serverio priskirtą IP adresą kartu su papildomais parametrais: potinklio kauke, šliuzo IP ir abiejų DNS serverių IP.

Išvestis

Išvestyje matome visus tinklo parametrus, atspausdintus serijiniame monitoriuje.

Dabar nustatysime statinį IP į ESP32. Išskyrus vietinius IP adresus, visi likę parametrai bus naudojami kitame skyriuje.

ESP32 statinio IP adreso nustatymas

Kaip jau žinome tinklo, prie kurio prijungtas ESP32, parametrus dabar naudosime pasirinktinį IP adresą ESP32 prijungimui tame pačiame tinkle, o kitus parametrus naudosime nepakeistus, kaip gavome ankstesnėje išvestyje.

Bet prieš tai turime įdiegti ESP32Ping.h biblioteka Arduino IDE. Naudodami šią biblioteką galime patikrinti, ar veikia mūsų statinis IP adresas, ar ne. Spustelėkite norėdami atsisiųsti ESP32Ping.h biblioteka.

Atsisiuntę zip failą, eikite į: Eskizas> Įtraukti biblioteką> Pridėti .Zip biblioteką

  Grafinė vartotojo sąsaja, tekstas, programa Aprašymas generuojamas automatiškai

Kodas

Dabar įkelkite toliau pateiktą kodą ESP32. Šis kodas nustatys statinį ESP32 IP adresą. Nepamirškite pakeisti tinklo SSID ir slaptažodžio.

#include

#include

konst char * ssid = „jūsų tinklo pavadinimas“ ;
konst char * Slaptažodis = „yourNetworkPass“ ;

Statinis IP adresas ( 192 , 168 , 18 , 53 ) ;
IP adreso šliuzas ( 192 , 168 , 18 , 1 ) ;
IP adreso potinklis ( 255 , 255 , 255 , 0 ) ;
IP adresas dns ( 101 , penkiasdešimt , 101 , penkiasdešimt ) ;

tuštuma sąranka ( ) {
Serijinis. pradėti ( 115 200 ) ;

jeigu ( Bevielis internetas. konfig ( statinis IP , vartai , potinklis , dns , dns ) == klaidinga ) {
Serijinis. println ( „Konfigūracija nepavyko“. ) ;
}

Bevielis internetas. pradėti ( ssid , Slaptažodis ) ;

kol ( Bevielis internetas. statusą ( ) != WL_CONNECTED ) {
uždelsimas ( 500 ) ;
Serijinis. spausdinti ( 'Prisijungiama... \n \n ) ;
}

Serijinis. spausdinti ( 'Vietinis IP:' ) ;
Serijinis. println ( Bevielis internetas. vietinis IP ( ) ) ;
Serijinis. spausdinti ( 'Potinklio kaukė:' ) ;
Serijinis. println ( Bevielis internetas. potinklio kaukė ( ) ) ;
Serijinis. spausdinti ( 'Vartai IP:' ) ;
Serijinis. println ( Bevielis internetas. vartai IP ( ) ) ;
Serijinis. spausdinti ( 'DNS 1:' ) ;
Serijinis. println ( Bevielis internetas. dnsIP ( 0 ) ) ;
Serijinis. spausdinti ( 'DNS 2:' ) ;
Serijinis. println ( Bevielis internetas. dnsIP ( 1 ) ) ;

puiki sėkmė = Ping. ping ( „www.google.com“ , 3 ) ;

jeigu ( ! sėkmė ) {
Serijinis. println ( \n Ping nepavyko' ) ;
grąžinti ;
}

Serijinis. println ( \n Ping sėkmingai“. ) ;
}

tuštuma kilpa ( ) { }

Kodas prasidėjo įtraukiant „WiFi“ ir „Ping“ biblioteką. Tada nustatėme „WiFi“ tinklo SSID ir slaptažodį.

Po to apibrėžėme visus parametrus, įskaitant statinį IP adresą kartu su DNS, IP šliuzu ir potinkliu. Atminkite, kad priskyrėme IP adresą (192, 168, 18, 53) kuris yra tame pačiame IP adreso potinklyje, kurį gavome anksčiau ankstesniame kode. Įsitikinkite, kad šio IP adreso nenaudoja joks kitas tinklo įrenginys.

Prijungę „WiFi“, išspausdinome visus tinklo parametrus ir išbandėme „Ping“ naudodami „Google“. Jei visi parametrai apibrėžti teisingai Ping sėkmingas pasirodys pranešimas.

Išvestis

Dabar, kai atjungę ESP32 plokštę vėl prijungėme prie kompiuterio, jos statinis IP adresas buvo dar kartą sukonfigūruotas, o tai rodo, kad jis nepasikeis net dingus maitinimui.

ESP32 sėkmingai suteikėme statinį IP adresą.

Išvada

Dirbant su ESP32 projektuojant projektus, būtinas statinis IP adresas. Kai keliems įrenginiams reikia prisijungti naudojant ESP32 statinius IP adresus, visas procesas bus sklandus. Naudodami tinklo parametrus galime apibrėžti bet kokį statinį IP adresą. Šiame straipsnyje aptarėme veiksmus, kurių reikia norint apibrėžti statinį IP adresą.