ESP32 Web Server Gamit ang Arduino IDE

Esp32 Web Server Gamit Ang Arduino Ide



Ang ESP32 ay isang microcontroller board na maaaring kumonekta sa maraming device gamit ang mga GPIO pin nito. Mayroon itong dual-core processor na may built-in na Wi-Fi at Bluetooth interface. Ang parehong mga tampok na ito ay gumagawa ng ESP32 na isang angkop na board para sa pagdidisenyo ng mga proyekto ng IoT. Ang isa sa mga pangunahing tampok ng ESP32 board ay ang kakayahang kumonekta sa umiiral na access point. Hindi lang iyon, ngunit maaari rin itong lumikha ng access point nito, para makakonekta dito ang ibang mga device.

Sa artikulong ito ng ESP32, tutuklasin natin kung paano natin maikokonekta ang isang ESP32 board na may access point at idisenyo ang web server nito. Gamit ang web server na iyon, kokontrolin namin ang mga LED at AC appliances sa tulong ng isang relay module.

Nilalaman:

1. ESP32 Web Server

Ang Web server ay may espesyal na programa na maaaring magproseso at magpadala ng mga web page sa mga web client. Para magbukas ng website, gumagamit kami ng web browser. Ang web browser na ito ay tinatawag ding web client. Ang website na gusto mong makita ay nakaimbak sa isa pang computer na tinatawag na web server.







Upang makipag-usap sa isa't isa, ang web server at web client ay gumagamit ng isang karaniwang wika na tinatawag na HTTP. Ito ay kung paano ito gumagana: ang web client ay humihingi sa web server para sa isang web page gamit ang isang HTTP na kahilingan. Ibinabalik ng web server ang web page na hinihiling. Kung wala ang web page, makakakita ka ng mensahe ng error.



Sa ESP32, maaari kaming magdisenyo ng isang Web server, dahil ang ESP32 ay hindi lamang makakonekta sa iba pang mga aparato sa isang network ngunit maaari ring lumikha ng web server nito at tumugon sa mga natanggap na kahilingan. Posible ang lahat dahil ang ESP32 ay maaaring gumana sa tatlong magkakaibang mga mode:



  • Istasyon
  • Access point
  • Parehong Station at Access Point

Maaari mong tingnan ang artikulong ito para makakuha ng insight sa lahat ng tatlong mode ng ESP32:





Paano Magtakda ng ESP32 Access Point (AP) Gamit ang Arduino IDE

2. Paano Gumawa ng ESP32 Web Server Gamit ang Arduino IDE

Upang lumikha ng isang ESP32 web server gamit ang Arduino IDE, maaari mong ikonekta ang ESP32 sa isang Access point at bumuo ng isang IP address para sa Web server. Maaari kang maglapat ng ilang HTML at CSS upang idisenyo ang interface ng iyong server.



Kapag naunawaan mo na ang ESP32 access point na gumagana, madali kang makakapagdisenyo ng ESP32 web server gamit ang Arduino IDE code. Ang ESP32 web server code ay gumagamit ng ESP32 Wi-Fi library. Ginagawa nitong mas madali ang aming trabaho, dahil naglalaman ang library na ito ng lahat ng mahahalagang function na kailangan para sa pagkonekta ng ESP32 sa isang access point.

Magdisenyo tayo ng ESP32 Web server gamit ang Arduino IDE code.

3. ESP32 Web Server Code

Kasama sa ESP32 web server code ang koneksyon ng ESP32 sa access point at pagkuha ng IP address para sa server. Kapag nakuha mo na ang IP address, kailangan mong kumonekta sa parehong network upang ma-access ang ESP32 web server. Mula doon maaari mong kontrolin ang mga LED at iba pang mga device.

Buksan ang Arduino IDE at ikonekta ang iyong ESP32 board dito:

Pag-install ng ESP32 Board sa Arduino IDE

Kapag nakakonekta na ang ESP32 board, i-upload ang sumusunod na code sa iyong board.

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

Linuxhint.com
ESP32 Web Server Upang Kontrolin ang mga LED

*************/
// I-import ang library para sa Koneksyon sa Wi-Fi
#include
// Ilagay ang iyong Wi-Fi name at password
const char * ssid = 'ESP32' ;
const char * password = '123456789' ;
// Piliin ang numero ng port para sa ang web server
Server ng WiFiServer ( 80 ) ;
// Lumikha ng variable upang iimbak ang kahilingan sa web
Header ng string;
// Lumikha ng mga variable upang iimbak ang katayuan ng mga output
Output ng string26State = 'OFF' ;
Output ng string27State = 'OFF' ;
// Italaga ang mga output pin sa mga variable
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = millis ( ) ;
unsigned long previousTime = 0 ;
// Piliin ang oras limitasyon para sa ang kahilingan sa web sa millisecond
const mahabang timeoutTime = 2000 ;
walang bisang setup ( ) {
Serial.magsimula ( 115200 ) ;
// Itakda ang mga output pin bilang mga output
pinMode ( output26, OUTPUT ) ;
pinMode ( output27, OUTPUT ) ;
// I-off ang mga output
digitalWrite ( output26, MABA ) ;
digitalWrite ( output27, MABA ) ;
// Kumonekta sa Wi-Fi network
Serial.print ( 'Kumokonekta sa' ) ;
Serial.println ( ssid ) ;
WiFi.simulan ( ssid, password ) ;
// Teka hanggang sa ang koneksyon ay itinatag
habang ( WiFi.status ( ) ! = WL_CONNECTED ) {
pagkaantala ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'Nakakonekta ang WiFi.' ) ;
Serial.println ( 'IP address: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.magsimula ( ) ;
}

walang laman na loop ( ) {
WiFiClient client = server.available ( ) ; // Suriin para sa mga bagong kliyente
kung ( kliyente ) { // Kung ang isang kliyente ay konektado,
kasalukuyangOras = millis ( ) ;
nakaraangOras = kasalukuyangOras;
Serial.println ( 'Bagong Kliyente.' ) ; // Abisuhan ang serial port
String currentLine = '' ; // Lumikha ng String upang mag-imbak ng data ng kliyente
habang ( kliyente.nakakonekta ( ) && kasalukuyangOras - datingOras = 0 ) {
Serial.println ( 'GPIO 26 on' ) ;
output26State = 'NAKA-ON' ;
digitalWrite ( output26, MATAAS ) ;
} iba pa kung ( header.indexOf ( 'GET /26/off' ) > = 0 ) {
Serial.println ( 'GPIO 26 off' ) ;
output26State = 'OFF' ;
digitalWrite ( output26, MABA ) ;
} iba pa kung ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 on' ) ;
output27State = 'NAKA-ON' ;
digitalWrite ( output27, MATAAS ) ;
} iba pa kung ( header.indexOf ( 'GET /27/off' ) > = 0 ) {
Serial.println ( 'GPIO 27 off' ) ;
output27State = 'OFF' ;
digitalWrite ( output27, MABA ) ;
}

kliyente.println ( '' ) ;
kliyente.println ( '' ) ;
kliyente.println ( '' ) ;
// CSS upang i-istilo ang mga pindutan
kliyente.println ( '