Š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:
- ESP32 tīmekļa serveris
- Kā izveidot ESP32 tīmekļa serveri, izmantojot Arduino IDE
- ESP32 tīmekļa servera kods
- ESP32 tīmekļa servera IP adrese
- Gaismas diožu vadība, izmantojot ESP32 tīmekļa serveri
- Darbvirsmas saskarne
- Mobilais interfeiss
- Maiņstrāvas ierīču vadība, izmantojot ESP32 tīmekļa serveri
- Secinājums
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 kā 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 ( '