Webový server ESP32 pomocou Arduino IDE

Webovy Server Esp32 Pomocou Arduino Ide



ESP32 je doska mikrokontroléra, ktorá sa môže pripojiť k viacerým zariadeniam pomocou pinov GPIO. Disponuje dvojjadrovým procesorom so zabudovaným rozhraním Wi-Fi a Bluetooth. Obe tieto vlastnosti robia z ESP32 vhodnú dosku na navrhovanie projektov internetu vecí. Jednou z hlavných vlastností dosky ESP32 je jej schopnosť pripojiť sa k existujúcemu prístupovému bodu. Nielen to, ale môže tiež vytvoriť svoj prístupový bod, takže sa k nemu môžu pripojiť ďalšie zariadenia.

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:

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 ( '