ESP32 tīmekļa serveris, izmantojot Arduino IDE

Esp32 Timekla Serveris Izmantojot Arduino Ide



ESP32 ir mikrokontrollera plate, kas var izveidot savienojumu ar vairākām ierīcēm, izmantojot tās GPIO tapas. Tam ir divkodolu procesors ar iebūvētu Wi-Fi un Bluetooth interfeisu. Abas šīs funkcijas padara ESP32 par piemērotu plati IoT projektu izstrādei. Viena no ESP32 plates galvenajām iezīmēm ir tās spēja izveidot savienojumu ar esošo piekļuves punktu. Ne tikai tas, bet arī var izveidot savu piekļuves punktu, lai citas ierīces varētu ar to izveidot savienojumu.

Šajā ESP32 rakstā mēs izpētīsim, kā mēs varam savienot ESP32 plati ar piekļuves punktu un izveidot tā tīmekļa serveri. Izmantojot šo tīmekļa serveri, mēs vadīsim gaismas diodes un maiņstrāvas ierīces ar releja moduļa palīdzību.

Saturs:

1. ESP32 tīmekļa serveris

Web serverim ir īpaša programma, kas var apstrādāt un nosūtīt tīmekļa lapas tīmekļa klientiem. Lai atvērtu vietni, mēs izmantojam tīmekļa pārlūkprogrammu. Šo tīmekļa pārlūkprogrammu sauc arī par tīmekļa klientu. Vietne, kuru vēlaties skatīt, tiek saglabāta citā datorā, ko sauc par tīmekļa serveri.







Lai sarunātos viens ar otru, tīmekļa serveris un tīmekļa klients izmanto kopīgu valodu, ko sauc par HTTP. Tas darbojas šādi: tīmekļa klients pieprasa tīmekļa serverim tīmekļa lapu, izmantojot HTTP pieprasījumu. Tīmekļa serveris nosūta atpakaļ pieprasīto tīmekļa lapu. Ja tīmekļa lapas nav, tiks parādīts kļūdas ziņojums.



ESP32 mēs varam izveidot tīmekļa serveri, jo ESP32 var ne tikai izveidot savienojumu ar citām ierīcēm tīklā, bet arī izveidot savu tīmekļa serveri un atbildēt uz saņemtajiem pieprasījumiem. Tas viss ir iespējams, jo ESP32 var darboties trīs dažādos režīmos:



  • Stacija
  • Piekļuves punkts
  • Gan stacija, gan piekļuves punkts

Varat skatīt šo rakstu, lai gūtu ieskatu visos trīs ESP32 režīmos:





Kā iestatīt ESP32 piekļuves punktu (AP), izmantojot Arduino IDE

2. Kā izveidot ESP32 tīmekļa serveri, izmantojot Arduino IDE

Lai izveidotu ESP32 tīmekļa serveri, izmantojot Arduino IDE, varat savienot ESP32 ar piekļuves punktu un ģenerēt tīmekļa servera IP adresi. Lai izstrādātu servera saskarni, varat izmantot dažus HTML un CSS.



Kad esat sapratis ESP32 piekļuves punkta darbību, varat viegli izveidot ESP32 tīmekļa serveri, izmantojot Arduino IDE kodu. ESP32 tīmekļa servera kods izmanto ESP32 Wi-Fi bibliotēku. Tas atvieglo mūsu darbu, jo šajā bibliotēkā ir visas svarīgās funkcijas, kas nepieciešamas ESP32 savienošanai ar piekļuves punktu.

Izstrādāsim ESP32 tīmekļa serveri, izmantojot Arduino IDE kodu.

3. ESP32 tīmekļa servera kods

ESP32 tīmekļa servera kods ietver ESP32 savienojumu ar piekļuves punktu un servera IP adreses iegūšanu. Kad esat saņēmis IP adresi, jums ir jāizveido savienojums ar to pašu tīklu, lai piekļūtu ESP32 tīmekļa serverim. No turienes jūs varat vadīt gaismas diodes un citas ierīces.

Atveriet Arduino IDE un pievienojiet ESP32 plati ar to:

ESP32 plates instalēšana Arduino IDE

Kad ESP32 plate ir pievienota, augšupielādējiet savā platē šādu kodu.

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

Linuxhint.com
ESP32 tīmekļa serveris, lai kontrolētu gaismas diodes

**************/
// Importējiet bibliotēku priekš Wi-Fi savienojums
#include
// Ievadiet savu Wi-Fi vārdu un paroli
const char * ssid = 'ESP32' ;
const char * parole = '123456789' ;
// Izvēlieties porta numuru priekš tīmekļa serveris
WiFiServer serveris ( 80 ) ;
// Izveidojiet mainīgo, lai saglabātu tīmekļa pieprasījumu
Virknes galvene;
// Izveidojiet mainīgos, lai saglabātu izvadu statusu
Virknes izvade26State = 'IZSLĒGTS' ;
Virknes izvade27State = 'IZSLĒGTS' ;
// Piešķiriet izvades tapas mainīgajiem
const int output26 = 26 ;
const int output27 = 27 ;
neparakstīta garā strāvaLaiks = mili ( ) ;
neparakstīts sen iepriekšTime = 0 ;
// Izvēlies laiks ierobežojums priekš tīmekļa pieprasījums iekšā milisekundes
const ilgs taimautsLaiks = 2000. gads ;
tukša iestatīšana ( ) {
Sērija.sākt ( 115200 ) ;
// Iestatiet izvades tapas izejas
pinMode ( output26, OUTPUT ) ;
pinMode ( output27, OUTPUT ) ;
// Izslēdziet izejas
digitalWrite ( izvade26, LOW ) ;
digitalWrite ( izvade27, LOW ) ;
// Izveidojiet savienojumu ar Wi-Fi tīklu
Serial.print ( 'Savienošanās ar' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, parole ) ;
// Pagaidiet līdz savienojums ir izveidots
kamēr ( WiFi.status ( ) ! = WL_CONNECTED ) {
kavēšanās ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'Wi-Fi pieslēgts.' ) ;
Serial.println ( 'IP adrese: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
serveris.sākt ( ) ;
}

tukša cilpa ( ) {
WiFiClient klients = server.available ( ) ; // Pārbaudiet priekš jauni klienti
ja ( klients ) { // Ja klients ir savienots,
pašreizējais laiks = mili ( ) ;
previousTime = pašreizējais laiks;
Serial.println ( 'Jauns klients.' ) ; // Paziņojiet seriālajam portam
String currentLine = '' ; // Izveidojiet virkni, lai saglabātu klienta datus
kamēr ( client.connected ( ) && currentTime — previousTime = 0 ) {
Serial.println ( 'GPIO 26 ieslēgts' ) ;
izvade26State = 'IESLĒGTS' ;
digitalWrite ( izvade26, AUGSTS ) ;
} cits ja ( header.indexOf ( 'SAŅEMT /26/atlaidi' ) > = 0 ) {
Serial.println ( 'GPIO 26 off' ) ;
izvade26State = 'IZSLĒGTS' ;
digitalWrite ( izvade26, LOW ) ;
} cits ja ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 ieslēgts' ) ;
izvade27State = 'IESLĒGTS' ;
digitalWrite ( izvade27, AUGSTS ) ;
} cits ja ( header.indexOf ( 'SAŅEMT /27/atlaidi' ) > = 0 ) {
Serial.println ( 'GPIO 27 off' ) ;
izvade27State = 'IZSLĒGTS' ;
digitalWrite ( izvade27, LOW ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS, lai veidotu pogas
client.println ( '