ESP32 web poslužitelj koji koristi Arduino IDE

Esp32 Web Posluzitelj Koji Koristi Arduino Ide



ESP32 je ploča mikrokontrolera koja se može povezati s više uređaja pomoću svojih GPIO pinova. Ima dvojezgreni procesor s ugrađenim Wi-Fi i Bluetooth sučeljem. Obje ove značajke čine ESP32 prikladnom pločom za dizajniranje IoT projekata. Jedna od glavnih značajki ESP32 ploče je njezina mogućnost povezivanja s postojećom pristupnom točkom. I ne samo to, već također može stvoriti svoju pristupnu točku, tako da se drugi uređaji mogu povezati s njim.

U ovom članku o ESP32 istražit ćemo kako možemo povezati ESP32 ploču s pristupnom točkom i dizajnirati njezin web poslužitelj. Pomoću tog web poslužitelja upravljat ćemo LED i AC uređajima uz pomoć relejnog modula.

Sadržaj:

1. ESP32 web poslužitelj

Web poslužitelj ima poseban program koji može obrađivati ​​i slati web stranice web klijentima. Za otvaranje web stranice koristimo web preglednik. Ovaj web preglednik naziva se i web klijent. Web stranica koju želite vidjeti pohranjena je na drugom računalu koje se naziva web poslužitelj.







Kako bi međusobno komunicirali, web poslužitelj i web klijent koriste zajednički jezik koji se zove HTTP. Ovako to funkcionira: web klijent traži od web poslužitelja web stranicu pomoću HTTP zahtjeva. Web poslužitelj šalje natrag traženu web stranicu. Ako web stranica nije prisutna, vidjet ćete poruku o pogrešci.



U ESP32 možemo dizajnirati web poslužitelj, budući da ESP32 ne samo da se može povezati s drugim uređajima preko mreže, već također može kreirati svoj web poslužitelj i odgovoriti na primljene zahtjeve. Sve je to moguće jer ESP32 može raditi u tri različita načina:



  • Stanica
  • Pristupna točka
  • I stanica i pristupna točka

Možete pogledati ovaj članak kako biste dobili uvid u sva tri načina ESP32:





Kako postaviti ESP32 pristupnu točku (AP) pomoću Arduino IDE

2. Kako stvoriti ESP32 web poslužitelj koristeći Arduino IDE

Za kreiranje ESP32 web poslužitelja koristeći Arduino IDE, možete spojiti ESP32 na pristupnu točku i generirati IP adresu za web poslužitelj. Možete primijeniti malo HTML-a i CSS-a za dizajn sučelja vašeg poslužitelja.



Nakon što shvatite kako ESP32 pristupna točka funkcionira, možete jednostavno dizajnirati ESP32 web poslužitelj koristeći Arduino IDE kod. Kod web poslužitelja ESP32 koristi ESP32 Wi-Fi biblioteku. To nam olakšava rad jer ova biblioteka sadrži sve važne funkcije potrebne za povezivanje ESP32 s pristupnom točkom.

Dizajnirajmo ESP32 web poslužitelj koristeći Arduino IDE kod.

3. ESP32 kod web poslužitelja

Kod ESP32 web poslužitelja uključuje ESP32 vezu s pristupnom točkom i dobivanje IP adrese za poslužitelj. Nakon što dobijete IP adresu, morate se spojiti na istu mrežu za pristup ESP32 web poslužitelju. Od tamo možete kontrolirati LED i druge uređaje.

Otvorite Arduino IDE i povežite svoju ESP32 ploču s njim:

Instaliranje ESP32 ploče u Arduino IDE

Nakon što se ESP32 ploča poveže, prenesite sljedeći kod na svoju ploču.

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

Linuxhint.com
ESP32 web poslužitelj za kontrolu LED dioda

*************/
// Uvezi biblioteku za Wi-Fi veza
#include
// Unesite svoje Wi-Fi ime i lozinku
const char * ssid = 'ESP32' ;
const char * lozinka = '123456789' ;
// Odaberite broj priključka za web poslužitelj
WiFiServer poslužitelj ( 80 ) ;
// Napravite varijablu za pohranu web zahtjeva
Zaglavlje niza;
// Stvorite varijable za pohranjivanje statusa izlaza
String output26State = 'ISKLJUČENO' ;
String output27State = 'ISKLJUČENO' ;
// Dodijelite izlazne pinove varijablama
const int izlaz26 = 26 ;
const int izlaz27 = 27 ;
unsigned long currentTime = milise ( ) ;
unsigned long previousTime = 0 ;
// Odaberi vrijeme ograničiti za web zahtjev u milisekundi
const long timeoutTime = 2000. godine ;
void setup ( ) {
Serijski.početi ( 115200 ) ;
// Postavite izlazne pinove kao izlazi
pinMode ( izlaz26, IZLAZ ) ;
pinMode ( izlaz27, IZLAZ ) ;
// Isključite izlaze
digitalWrite ( izlaz26, NISKO ) ;
digitalWrite ( izlaz27, NISKO ) ;
// Spojite se na Wi-Fi mrežu
Serijski.ispis ( 'Povezivanje s' ) ;
Serijski.println ( ssid ) ;
WiFi.početak ( ssid, lozinka ) ;
// Čekati do veza je uspostavljena
dok ( WiFi.status ( ) ! = WL_POVEZAN ) {
odgoditi ( 500 ) ;
Serijski.ispis ( '.' ) ;
}
Serijski.println ( '' ) ;
Serijski.println ( 'Wi-Fi povezan.' ) ;
Serijski.println ( 'IP adresa: ' ) ;
Serijski.println ( WiFi.localIP ( ) ) ;
poslužitelj.početi ( ) ;
}

void petlja ( ) {
WiFiClient klijent = server.dostupan ( ) ; // Ček za nove klijente
ako ( klijent ) { // Ako je klijent povezan,
trenutno vrijeme = milise ( ) ;
prethodnovrijeme = trenutnovrijeme;
Serijski.println ( 'Novi klijent.' ) ; // Obavijestite serijski port
String currentLine = '' ; // Stvorite niz za pohranjivanje podataka klijenta
dok ( klijent.povezan ( ) && trenutno vrijeme - prethodno vrijeme = 0 ) {
Serijski.println ( 'GPIO 26 uključen' ) ;
output26State = 'NA' ;
digitalWrite ( output26, VISOKO ) ;
} drugo ako ( zaglavlje.indexOf ( 'GET /26/off' ) > = 0 ) {
Serijski.println ( 'GPIO 26 isključen' ) ;
output26State = 'ISKLJUČENO' ;
digitalWrite ( izlaz26, NISKO ) ;
} drugo ako ( zaglavlje.indexOf ( 'GET /27/na' ) > = 0 ) {
Serijski.println ( 'GPIO 27 uključen' ) ;
output27State = 'NA' ;
digitalWrite ( output27, VISOKO ) ;
} drugo ako ( zaglavlje.indexOf ( 'GET /27/off' ) > = 0 ) {
Serijski.println ( 'GPIO 27 isključen' ) ;
output27State = 'ISKLJUČENO' ;
digitalWrite ( izlaz27, NISKO ) ;
}

klijent.println ( '' ) ;
klijent.println ( '' ) ;
klijent.println ( '' ) ;
// CSS za stiliziranje gumba
klijent.println ( '