ESP32 Web Server som bruker Arduino IDE

Esp32 Web Server Som Bruker Arduino Ide



ESP32 er et mikrokontrollerkort som kan kobles til flere enheter ved hjelp av GPIO-pinnene. Den har en dual-core prosessor med innebygd Wi-Fi og Bluetooth-grensesnitt. Begge disse funksjonene gjør ESP32 til et egnet brett for å designe IoT-prosjekter. En av hovedtrekkene til ESP32-kortet er dens evne til å koble til det eksisterende tilgangspunktet. Ikke bare det, men det kan også opprette tilgangspunktet, slik at andre enheter kan koble til det.

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:

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 ( '