Spletni strežnik ESP32 z uporabo Arduino IDE

Spletni Streznik Esp32 Z Uporabo Arduino Ide



ESP32 je mikrokrmilniška plošča, ki se lahko poveže z več napravami s svojimi nožicami GPIO. Ima dvojedrni procesor z vgrajenim vmesnikom Wi-Fi in Bluetooth. Zaradi obeh lastnosti je ESP32 primerna plošča za načrtovanje IoT projektov. Ena od glavnih značilnosti plošče ESP32 je njena sposobnost povezovanja z obstoječo dostopno točko. Ne samo to, ampak lahko tudi ustvari svojo dostopno točko, tako da se druge naprave lahko povežejo z njo.

V tem članku ESP32 bomo raziskali, kako lahko povežemo ploščo ESP32 z dostopno točko in oblikujemo njen spletni strežnik. S tem spletnim strežnikom bomo s pomočjo relejnega modula krmilili LED in AC aparate.

Vsebina:

1. Spletni strežnik ESP32

Spletni strežnik ima poseben program, ki lahko obdeluje in pošilja spletne strani spletnim odjemalcem. Za odpiranje spletne strani uporabljamo spletni brskalnik. Ta spletni brskalnik se imenuje tudi spletni odjemalec. Spletno mesto, ki si ga želite ogledati, je shranjeno v drugem računalniku, imenovanem spletni strežnik.







Za medsebojno komunikacijo spletni strežnik in spletni odjemalec uporabljata skupni jezik, imenovan HTTP. Takole deluje: spletni odjemalec prek zahteve HTTP vpraša spletni strežnik za spletno stran. Spletni strežnik pošlje nazaj zahtevano spletno stran. Če spletna stran ni prisotna, boste videli sporočilo o napaki.



V ESP32 lahko oblikujemo spletni strežnik, saj se ESP32 ne more samo povezovati z drugimi napravami preko omrežja, ampak lahko tudi ustvari svoj spletni strežnik in odgovarja na prejete zahteve. Vse to je mogoče, ker lahko ESP32 deluje v treh različnih načinih:



  • Postaja
  • Dostopna točka
  • Tako postaja kot dostopna točka

Za vpogled v vse tri načine ESP32 si lahko ogledate ta članek:





Kako nastaviti dostopno točko (AP) ESP32 z uporabo Arduino IDE

2. Kako ustvariti spletni strežnik ESP32 z uporabo Arduino IDE

Če želite ustvariti spletni strežnik ESP32 z uporabo Arduino IDE, lahko ESP32 povežete z dostopno točko in ustvarite naslov IP za spletni strežnik. Za oblikovanje strežniškega vmesnika lahko uporabite nekaj HTML in CSS.



Ko razumete delovanje dostopne točke ESP32, lahko preprosto oblikujete spletni strežnik ESP32 z uporabo kode Arduino IDE. Koda spletnega strežnika ESP32 uporablja knjižnico Wi-Fi ESP32. To nam olajša delo, saj ta knjižnica vsebuje vse pomembne funkcije, potrebne za povezavo ESP32 z dostopno točko.

Oblikujmo spletni strežnik ESP32 z uporabo kode Arduino IDE.

3. Koda spletnega strežnika ESP32

Koda spletnega strežnika ESP32 vključuje povezavo ESP32 z dostopno točko in pridobivanje naslova IP za strežnik. Ko dobite naslov IP, se morate za dostop do spletnega strežnika ESP32 povezati v isto omrežje. Od tam lahko upravljate LED in druge naprave.

Odprite Arduino IDE in z njim povežite svojo ploščo ESP32:

Namestitev plošče ESP32 v Arduino IDE

Ko je plošča ESP32 povezana, naložite naslednjo kodo na svojo ploščo.

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

Linuxhint.com
Spletni strežnik ESP32 za nadzor LED diod

*************/
// Uvozi knjižnico za Wi-Fi povezava
#include
// Vnesite svoje ime in geslo za Wi-Fi
const char * ssid = 'ESP32' ;
const char * geslo = '123456789' ;
// Izberite številko vrat za spletni strežnik
strežnik WiFiServer ( 80 ) ;
// Ustvarite spremenljivko za shranjevanje spletne zahteve
Glava niza;
// Ustvarite spremenljivke za shranjevanje stanja izhodov
String output26State = 'IZKLOP' ;
String output27State = 'IZKLOP' ;
// Dodelite izhodne zatiče spremenljivkam
const int izhod26 = 26 ;
const int izhod27 = 27 ;
nepredznačeni dolgi trenutni čas = milisekunde ( ) ;
unsigned long previousTime = 0 ;
// Izberite čas omejitev za spletno zahtevo v milisekundah
const long timeoutTime = 2000 ;
nastavitev praznine ( ) {
Serial.begin ( 115200 ) ;
// Nastavite izhodne zatiče kot izhodi
pinMode ( izhod26, IZHOD ) ;
pinMode ( izhod27, IZHOD ) ;
// Izklopite izhode
digitalWrite ( izhod26, NIZEK ) ;
digitalWrite ( izhod27, NIZEK ) ;
// Povežite se z omrežjem Wi-Fi
Serijski.natis ( 'Povezovanje z' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, geslo ) ;
// Počakaj dokler povezava je vzpostavljena
medtem ( WiFi.stanje ( ) ! = WL_POVEZAN ) {
zamuda ( 500 ) ;
Serijski.natis ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi je povezan.' ) ;
Serial.println ( 'IP naslov: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}

prazna zanka ( ) {
WiFiClient client = server.available ( ) ; // Preverite za nove stranke
če ( stranka ) { // Če je odjemalec povezan,
trenutni čas = milisekunde ( ) ;
prejšnjiČas = trenutniČas;
Serial.println ( 'Nova stranka.' ) ; // Obvesti serijska vrata
String currentLine = '' ; // Ustvarite niz za shranjevanje podatkov odjemalca
medtem ( odjemalec.povezan ( ) && trenutni čas - prejšnji čas = 0 ) {
Serial.println ( 'GPIO 26 vklopljen' ) ;
izhod26Stanje = 'ON' ;
digitalWrite ( izhod26, VISOKO ) ;
} drugače če ( header.indexOf ( 'GET /26/off' ) > = 0 ) {
Serial.println ( 'GPIO 26 izklopljen' ) ;
izhod26Stanje = 'IZKLOP' ;
digitalWrite ( izhod26, NIZEK ) ;
} drugače če ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 vklopljen' ) ;
output27State = 'ON' ;
digitalWrite ( izhod27, VISOKO ) ;
} drugače če ( header.indexOf ( 'GET /27/off' ) > = 0 ) {
Serial.println ( 'GPIO 27 izklopljen' ) ;
output27State = 'IZKLOP' ;
digitalWrite ( izhod27, NIZEK ) ;
}

odjemalec.println ( '' ) ;
odjemalec.println ( '' ) ;
odjemalec.println ( '' ) ;
// CSS za oblikovanje gumbov
odjemalec.println ( '