I denne ESP32-artikkelen vil vi utforske hvordan vi kan koble et ESP32-kort med et tilgangspunkt og designe webserveren. Ved å bruke den webserveren vil vi kontrollere lysdioder og AC-apparater ved hjelp av en relémodul.
Innhold:
- ESP32 webserver
- Hvordan lage ESP32 Web Server ved hjelp av Arduino IDE
- ESP32 webserverkode
- ESP32 Web Server IP-adresse
- Styre lysdioder ved hjelp av ESP32 Web Server
- Skrivebordsgrensesnitt
- Mobilt grensesnitt
- Kontrollere AC-apparater ved hjelp av ESP32 Web Server
- Konklusjon
1. ESP32 Web Server
Webserveren har et spesielt program som kan behandle og sende nettsider til nettklienter. For å åpne et nettsted bruker vi en nettleser. Denne nettleseren kalles også en nettklient. Nettstedet du vil se er lagret på en annen datamaskin kalt en webserver.
For å snakke med hverandre bruker webserveren og webklienten et felles språk kalt HTTP. Slik fungerer det: nettklienten ber webserveren om en nettside ved hjelp av en HTTP-forespørsel. Nettserveren sender tilbake nettsiden som er forespurt. Hvis nettsiden ikke er til stede, vil du se en feilmelding.
I ESP32 kan vi designe en webserver, ettersom ESP32 ikke bare kan koble til andre enheter over et nettverk, men også kan lage sin webserver og svare på mottatte forespørsler. Dette er alt mulig fordi ESP32 kan operere i tre forskjellige moduser:
- Stasjon
- Tilgangspunkt
- Både stasjon og tilgangspunkt
Du kan sjekke ut denne artikkelen for å få et innblikk i alle tre modusene til ESP32:
Slik angir du et ESP32-tilgangspunkt (AP) ved hjelp av Arduino IDE
2. Hvordan lage ESP32 Web Server ved hjelp av Arduino IDE
For å lage en ESP32-webserver ved å bruke Arduino IDE, kan du koble ESP32 til et tilgangspunkt og generere en IP-adresse for webserveren. Du kan bruke litt HTML og CSS for å designe servergrensesnittet ditt.
Når du forstår at ESP32-tilgangspunktet fungerer, kan du enkelt designe en ESP32-webserver ved å bruke Arduino IDE-koden. ESP32-nettserverkoden bruker ESP32 Wi-Fi-biblioteket. Dette gjør arbeidet vårt enklere, siden dette biblioteket inneholder alle viktige funksjoner som trengs for å koble ESP32 til et tilgangspunkt.
La oss designe en ESP32-webserver ved å bruke Arduino IDE-kode.
3. ESP32 Web Server Code
ESP32-nettserverkoden involverer ESP32-forbindelsen med tilgangspunktet og hente IP-adressen til serveren. Når du har fått IP-adressen, må du koble til det samme nettverket for å få tilgang til ESP32-nettserveren. Derfra kan du kontrollere lysdioder og andre enheter.
Åpne Arduino IDE og koble ESP32-kortet til det:
Installere ESP32-kortet i Arduino IDE
Når ESP32-kortet er koblet til, last opp følgende kode til kortet ditt.
/**************Linuxhint.com
ESP32 webserver for å kontrollere lysdioder
**************/
// Importer biblioteket til Wi-Fi-tilkobling
#include
// Skriv inn Wi-Fi-navnet og passordet ditt
const røye * ssid = 'ESP32' ;
const røye * passord = '123456789' ;
// Velg portnummeret til webserveren
WiFiServer server ( 80 ) ;
// Opprett en variabel for å lagre nettforespørselen
Overskrift for streng;
// Lag variabler for å lagre statusen til utgangene
String output26State = 'AV' ;
String output27State = 'AV' ;
// Tilordne utgangspinnene til variablene
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = millis ( ) ;
unsigned long previousTime = 0 ;
// Velg tid grense til nettforespørselen i millisekunder
konstant lang tidsavbruddTid = 2000 ;
ugyldig oppsett ( ) {
Serial.begin ( 115200 ) ;
// Sett utgangspinnene som utganger
pin-modus ( utgang26, UTGANG ) ;
pin-modus ( utgang27, UTGANG ) ;
// Slå av utgangene
digitalWrite ( output26, LAV ) ;
digitalWrite ( output27, LAV ) ;
// Koble til Wi-Fi-nettverket
Serial.print ( 'Kobler til ' ) ;
Serial.println ( ssid ) ;
WiFi.begynn ( ssid, passord ) ;
// Vente før forbindelsen er etablert
samtidig som ( WiFi.status ( ) ! = WL_CONNECTED ) {
forsinkelse ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi tilkoblet.' ) ;
Serial.println ( 'IP adresse: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}
ugyldig sløyfe ( ) {
WiFiClient-klient = server.tilgjengelig ( ) ; // Kryss av til nye kunder
hvis ( klient ) { // Hvis en klient er tilkoblet,
gjeldendeTid = millis ( ) ;
forrigeTid = gjeldendeTid;
Serial.println ( 'Ny klient.' ) ; // Gi beskjed til den serielle porten
String currentLine = '' ; // Opprett en streng for å lagre klientdataene
samtidig som ( klient.tilkoblet ( ) && gjeldende Tid - forrige Tid = 0 ) {
Serial.println ( 'GPIO 26 på' ) ;
output26State = 'PÅ' ;
digitalWrite ( output26, HØY ) ;
} ellers hvis ( header.indexOf ( 'FÅ /26/av' ) > = 0 ) {
Serial.println ( 'GPIO 26 av' ) ;
output26State = 'AV' ;
digitalWrite ( output26, LAV ) ;
} ellers hvis ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 på' ) ;
output27State = 'PÅ' ;
digitalWrite ( output27, HØY ) ;
} ellers hvis ( header.indexOf ( 'FÅ /27/av' ) > = 0 ) {
Serial.println ( 'GPIO 27 av' ) ;
output27State = 'AV' ;
digitalWrite ( output27, LAV ) ;
}
client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS for å style knappene
client.println ( '