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:
- Spletni strežnik ESP32
- Kako ustvariti spletni strežnik ESP32 z uporabo Arduino IDE
- Koda spletnega strežnika ESP32
- Naslov IP spletnega strežnika ESP32
- Upravljanje LED s spletnim strežnikom ESP32
- Namizni vmesnik
- Mobilni vmesnik
- Upravljanje AC naprav s spletnim strežnikom ESP32
- Zaključek
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 ( '