ESP32 žiniatinklio serveris naudojant Arduino IDE

Esp32 Ziniatinklio Serveris Naudojant Arduino Ide



ESP32 yra mikrovaldiklio plokštė, kuri gali prisijungti prie kelių įrenginių naudojant GPIO kaiščius. Jame yra dviejų branduolių procesorius su įmontuota Wi-Fi ir Bluetooth sąsaja. Dėl abiejų šių savybių ESP32 yra tinkama plokštė kuriant daiktų interneto projektus. Viena iš pagrindinių ESP32 plokštės savybių yra jos galimybė prisijungti prie esamo prieigos taško. Ne tik tai, bet ir gali sukurti savo prieigos tašką, kad kiti įrenginiai galėtų prisijungti prie jo.

Šiame ESP32 straipsnyje mes išnagrinėsime, kaip galime prijungti ESP32 plokštę su prieigos tašku ir sukurti jos žiniatinklio serverį. Naudodami tą žiniatinklio serverį, relės modulio pagalba valdysime šviesos diodus ir kintamosios srovės prietaisus.

Turinys:

1. ESP32 žiniatinklio serveris

Žiniatinklio serveryje yra speciali programa, kuri gali apdoroti ir siųsti tinklalapius žiniatinklio klientams. Norėdami atidaryti svetainę, naudojame žiniatinklio naršyklę. Ši žiniatinklio naršyklė dar vadinama žiniatinklio klientu. Svetainė, kurią norite matyti, yra saugoma kitame kompiuteryje, vadinamame žiniatinklio serveriu.







Norėdami kalbėtis tarpusavyje, žiniatinklio serveris ir žiniatinklio klientas naudoja bendrą kalbą, vadinamą HTTP. Tai veikia taip: žiniatinklio klientas, naudodamas HTTP užklausą, žiniatinklio serverio prašo tinklalapio. Žiniatinklio serveris siunčia atgal tinklalapį, kurio prašoma. Jei tinklalapio nėra, pamatysite klaidos pranešimą.



ESP32 galime sukurti žiniatinklio serverį, nes ESP32 gali ne tik prisijungti prie kitų įrenginių tinkle, bet ir sukurti savo žiniatinklio serverį bei atsakyti į gautas užklausas. Visa tai įmanoma, nes ESP32 gali veikti trimis skirtingais režimais:



  • Stotis
  • Prieigos taškas
  • Tiek stotis, tiek prieigos taškas

Galite peržiūrėti šį straipsnį, kad sužinotumėte apie visus tris ESP32 režimus:





Kaip nustatyti ESP32 prieigos tašką (AP) naudojant Arduino IDE

2. Kaip sukurti ESP32 žiniatinklio serverį naudojant Arduino IDE

Norėdami sukurti ESP32 žiniatinklio serverį naudodami Arduino IDE, galite prijungti ESP32 prie prieigos taško ir sugeneruoti žiniatinklio serverio IP adresą. Norėdami sukurti savo serverio sąsają, galite pritaikyti šiek tiek HTML ir CSS.



Kai suprasite, kaip veikia ESP32 prieigos taškas, galite lengvai sukurti ESP32 žiniatinklio serverį naudodami Arduino IDE kodą. ESP32 žiniatinklio serverio kodas naudoja ESP32 Wi-Fi biblioteką. Tai palengvina mūsų darbą, nes šioje bibliotekoje yra visos svarbios funkcijos, reikalingos ESP32 prijungimui prie prieigos taško.

Sukurkime ESP32 žiniatinklio serverį naudodami Arduino IDE kodą.

3. ESP32 žiniatinklio serverio kodas

ESP32 žiniatinklio serverio kodas apima ESP32 ryšį su prieigos tašku ir serverio IP adreso gavimą. Kai gausite IP adresą, turite prisijungti prie to paties tinklo, kad galėtumėte pasiekti ESP32 žiniatinklio serverį. Iš ten galite valdyti šviesos diodus ir kitus įrenginius.

Atidarykite „Arduino IDE“ ir prijunkite prie jos ESP32 plokštę:

ESP32 plokštės įdiegimas Arduino IDE

Prijungę ESP32 plokštę, įkelkite į savo plokštę šį kodą.

/****************

Linuxhint.com
ESP32 žiniatinklio serveris, skirtas valdyti šviesos diodus

**************/
// Importuoti biblioteką dėl Wi-Fi ryšys
#include
// Įveskite savo Wi-Fi vardą ir slaptažodį
const char * ssid = 'ESP32' ;
const char * slaptažodis = '123456789' ;
// Pasirinkite prievado numerį dėl žiniatinklio serveris
„WiFiServer“ serveris ( 80 ) ;
// Sukurkite kintamąjį žiniatinklio užklausai išsaugoti
Stygos antraštė;
// Sukurkite kintamuosius, kad išsaugotumėte išvesties būseną
Eilutės išvestis26Būsena = 'OFF' ;
Eilutės išvestis27Būsena = 'OFF' ;
// Priskirkite išvesties kaiščius kintamiesiems
const int output26 = 26 ;
const int output27 = 27 ;
nepasirašyta ilgoji srovėLaikas = mili ( ) ;
nepasirašytas seniai ankstesnisLaikas = 0 ;
// Pasirink laikas riba dėl žiniatinklio užklausą in milisekundės
const ilgas laikasLaikas = 2000 m ;
tuščias nustatymas ( ) {
Serialas.begin ( 115 200 ) ;
// Nustatykite išvesties kaiščius kaip išėjimai
pinMode ( output26, OUTPUT ) ;
pinMode ( output27, OUTPUT ) ;
// Išjunkite išvestis
digitalWrite ( išėjimas26, LOW ) ;
digitalWrite ( išėjimas27, LOW ) ;
// Prisijunkite prie „Wi-Fi“ tinklo
Serial.print ( 'Prisijungimas prie' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, slaptažodis ) ;
// Laukti iki ryšys užmegztas
kol ( WiFi.status ( ) ! = WL_CONNECTED ) {
delsimas ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( „Wi-Fi prijungtas“. ) ;
Serial.println ( 'IP adresas: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}

tuščia kilpa ( ) {
WiFiClient klientas = server.available ( ) ; // Patikrinti dėl naujų klientų
jeigu ( klientas ) { // Jei klientas yra prijungtas,
srovės laikas = mili ( ) ;
previousTime = dabartinis laikas;
Serial.println ( 'Naujas klientas'. ) ; // Praneškite nuosekliajam prievadui
Stygos srovėLine = '' ; // Sukurkite eilutę kliento duomenims saugoti
kol ( klientas.prisijungęs ( ) && currentTime – previousTime = 0 ) {
Serial.println ( „GPIO 26 įjungtas“ ) ;
output26Būsena = 'ON' ;
skaitmeninis rašymas ( išėjimas26, AUKŠTAS ) ;
} Kitas jeigu ( header.indexOf ( „GAUTI /26/nuolaida“ ) > = 0 ) {
Serial.println ( „GPIO 26 off“ ) ;
output26Būsena = 'OFF' ;
digitalWrite ( išėjimas26, LOW ) ;
} Kitas jeigu ( header.indexOf ( GET /27/on ) > = 0 ) {
Serial.println ( „GPIO 27 įjungtas“ ) ;
output27Būsena = 'ON' ;
skaitmeninis rašymas ( išėjimas27, AUKŠTAS ) ;
} Kitas jeigu ( header.indexOf ( „GAUTI /27/nuolaida“ ) > = 0 ) {
Serial.println ( „GPIO 27 off“ ) ;
output27Būsena = 'OFF' ;
skaitmeninis rašymas ( išėjimas27, LOW ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS, kad nustatytumėte mygtukų stilių
client.println ( '