V tomto článku ESP32 preskúmame, ako môžeme pripojiť dosku ESP32 s prístupovým bodom a navrhnúť jej webový server. Pomocou tohto webového servera budeme ovládať LED a AC spotrebiče pomocou reléového modulu.
Obsah:
- Webový server ESP32
- Ako vytvoriť webový server ESP32 pomocou Arduino IDE
- Kód webového servera ESP32
- IP adresa webového servera ESP32
- Ovládanie LED pomocou webového servera ESP32
- Rozhranie pracovnej plochy
- Mobilné rozhranie
- Ovládanie AC spotrebičov pomocou ESP32 Web Server
- Záver
1. Webový server ESP32
Webový server má špeciálny program, ktorý dokáže spracovať a odoslať webové stránky webovým klientom. Na otvorenie webovej stránky používame webový prehliadač. Tento webový prehliadač sa tiež nazýva webový klient. Webová lokalita, ktorú chcete zobraziť, je uložená na inom počítači, ktorý sa nazýva webový server.
Na vzájomnú komunikáciu webový server a webový klient používajú spoločný jazyk nazývaný HTTP. Funguje to takto: webový klient požiada webový server o webovú stránku pomocou požiadavky HTTP. Webový server odošle späť požadovanú webovú stránku. Ak webová stránka neexistuje, zobrazí sa chybové hlásenie.
V ESP32 dokážeme navrhnúť webový server, keďže ESP32 sa dokáže nielen spojiť s inými zariadeniami cez sieť, ale dokáže aj vytvoriť svoj webový server a reagovať na prijaté požiadavky. To všetko je možné, pretože ESP32 môže pracovať v troch rôznych režimoch:
- Stanica
- Prístupový bod
- Stanica aj prístupový bod
Môžete si prečítať tento článok, aby ste získali prehľad o všetkých troch režimoch ESP32:
Ako nastaviť prístupový bod (AP) ESP32 pomocou Arduino IDE
2. Ako vytvoriť ESP32 Web Server pomocou Arduino IDE
Ak chcete vytvoriť webový server ESP32 pomocou Arduino IDE, môžete pripojiť ESP32 k prístupovému bodu a vygenerovať IP adresu pre webový server. Na návrh serverového rozhrania môžete použiť niektoré HTML a CSS.
Keď pochopíte fungovanie prístupového bodu ESP32, môžete jednoducho navrhnúť webový server ESP32 pomocou kódu Arduino IDE. Kód webového servera ESP32 používa knižnicu Wi-Fi ESP32. To nám uľahčuje prácu, pretože táto knižnica obsahuje všetky dôležité funkcie potrebné na pripojenie ESP32 k prístupovému bodu.
Poďme navrhnúť webový server ESP32 pomocou kódu Arduino IDE.
3. Kód webového servera ESP32
Kód webového servera ESP32 zahŕňa spojenie ESP32 s prístupovým bodom a získanie IP adresy pre server. Akonáhle získate IP adresu, musíte sa pripojiť k rovnakej sieti, aby ste získali prístup k webovému serveru ESP32. Odtiaľ môžete ovládať LED diódy a ďalšie zariadenia.
Otvorte Arduino IDE a pripojte k nemu dosku ESP32:
Inštalácia dosky ESP32 v Arduino IDE
Po pripojení dosky ESP32 nahrajte na svoju dosku nasledujúci kód.
/**************Linuxhint.com
Webový server ESP32 na ovládanie LED diód
**************/
// Importujte knižnicu pre Wi-Fi pripojenie
#include
// Zadajte názov a heslo siete Wi-Fi
const char * ssid = 'ESP32' ;
const char * heslo = '123456789' ;
// Vyberte číslo portu pre webový server
Server WiFi Server ( 80 ) ;
// Vytvorte premennú na uloženie webovej požiadavky
Hlavička reťazca;
// Vytvorte premenné na uloženie stavu výstupov
Výstup reťazca26State = 'VYPNUTÉ' ;
Výstup reťazca27State = 'VYPNUTÉ' ;
// Priraďte výstupné kolíky k premenným
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = milis ( ) ;
unsigned long previousTime = 0 ;
// Vyber čas limit pre webovú požiadavku v milisekúnd
const long timeoutTime = 2000 ;
neplatné nastavenie ( ) {
Serial.začať ( 115200 ) ;
// Nastavte výstupné kolíky ako výstupov
pinMode ( výstup 26, VÝSTUP ) ;
pinMode ( výstup 27, VÝSTUP ) ;
// Vypnite výstupy
digitalWrite ( výstup 26, NÍZKY ) ;
digitalWrite ( výstup 27, NÍZKY ) ;
// Pripojte sa k sieti Wi-Fi
Sériová.tlač ( 'Pripája sa k' ) ;
Serial.println ( ssid ) ;
WiFi.začať ( ssid, heslo ) ;
// počkaj kým spojenie sa vytvorí
zatiaľ čo ( Stav WiFi ( ) ! = WL_CONNECTED ) {
meškanie ( 500 ) ;
Sériová.tlač ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi pripojené.' ) ;
Serial.println ( 'IP adresa: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.začať ( ) ;
}
prázdna slučka ( ) {
Klient WiFiClient = server.available ( ) ; // Skontrolujte pre nových klientov
ak ( zákazník ) { // Ak je pripojený klient,
aktuálny čas = milis ( ) ;
predchádzajúciČas = aktuálnyČas;
Serial.println ( 'Nový klient.' ) ; // Informujte sériový port
String currentLine = '' ; // Vytvorte reťazec na uloženie údajov klienta
zatiaľ čo ( klient.pripojený ( ) && currentTime - previousTime = 0 ) {
Serial.println ( 'GPIO 26 zapnuté' ) ;
output26State = 'ON' ;
digitalWrite ( výstup 26, VYSOKÝ ) ;
} inak ak ( hlavička.indexZ ( 'GET /26/off' ) > = 0 ) {
Serial.println ( 'GPIO 26 vypnuté' ) ;
output26State = 'VYPNUTÉ' ;
digitalWrite ( výstup 26, NÍZKY ) ;
} inak ak ( hlavička.indexZ ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 zapnuté' ) ;
output27State = 'ON' ;
digitalWrite ( výstup 27, VYSOKÝ ) ;
} inak ak ( hlavička.indexZ ( 'GET /27/off' ) > = 0 ) {
Serial.println ( 'GPIO 27 vypnuté' ) ;
output27State = 'VYPNUTÉ' ;
digitalWrite ( výstup 27, NÍZKY ) ;
}
client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS na štýl tlačidiel
client.println ( '