ESP32-webserver, der bruger Arduino IDE

Esp32 Webserver Der Bruger Arduino Ide



ESP32 er et mikrocontrollerkort, der kan forbindes med flere enheder ved hjælp af dets GPIO-ben. Den har en dual-core processor med indbygget Wi-Fi og Bluetooth interface. Begge disse funktioner gør ESP32 til et velegnet board til at designe IoT-projekter. En af hovedfunktionerne ved ESP32-kortet er dets evne til at oprette forbindelse til det eksisterende adgangspunkt. Ikke kun det, men det kan også oprette sit adgangspunkt, så andre enheder kan oprette forbindelse til det.

I denne ESP32-artikel vil vi undersøge, hvordan vi kan forbinde et ESP32-kort med et adgangspunkt og designe dets webserver. Ved hjælp af den webserver vil vi styre LED'er og AC-apparater ved hjælp af et relæmodul.

Indhold:

1. ESP32 webserver

Webserveren har et specielt program, der kan behandle og sende websider til webklienter. For at åbne en hjemmeside bruger vi en webbrowser. Denne webbrowser kaldes også en webklient. Det websted, du ønsker at se, er gemt på en anden computer kaldet en webserver.







For at tale med hinanden bruger webserveren og webklienten et fælles sprog kaldet HTTP. Sådan fungerer det: Webklienten beder webserveren om en webside ved hjælp af en HTTP-anmodning. Webserveren sender den ønskede webside tilbage. Hvis websiden ikke er til stede, vil du se en fejlmeddelelse.



I ESP32 kan vi designe en webserver, da ESP32 ikke kun kan oprette forbindelse til andre enheder over et netværk, men også kan oprette sin webserver og svare på de modtagne anmodninger. Dette er alt muligt, fordi ESP32 kan fungere i tre forskellige tilstande:



  • Station
  • Adgangspunkt
  • Både Station og Access Point

Du kan tjekke denne artikel for at få et indblik i alle tre tilstande af ESP32:





Sådan indstilles et ESP32 Access Point (AP) ved hjælp af Arduino IDE

2. Sådan opretter du ESP32-webserver ved hjælp af Arduino IDE

For at oprette en ESP32-webserver ved hjælp af Arduino IDE, kan du forbinde ESP32 til et adgangspunkt og generere en IP-adresse til webserveren. Du kan anvende noget HTML og CSS til at designe din servergrænseflade.



Når du forstår, at ESP32-adgangspunktet fungerer, kan du nemt designe en ESP32-webserver ved hjælp af Arduino IDE-koden. ESP32-webserverkoden bruger ESP32 Wi-Fi-biblioteket. Dette gør vores arbejde lettere, da dette bibliotek indeholder alle de vigtige funktioner, der er nødvendige for at forbinde ESP32 til et adgangspunkt.

Lad os designe en ESP32-webserver ved hjælp af Arduino IDE-kode.

3. ESP32-webserverkode

ESP32-webserverkoden involverer ESP32-forbindelsen med adgangspunktet og henter IP-adressen til serveren. Når du har fået IP-adressen, skal du oprette forbindelse til det samme netværk for at få adgang til ESP32-webserveren. Derfra kan du styre LED'er og andre enheder.

Åbn Arduino IDE og tilslut dit ESP32-kort med det:

Installation af ESP32-kortet i Arduino IDE

Når ESP32-kortet er tilsluttet, skal du uploade følgende kode til dit board.

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

Linuxhint.com
ESP32 webserver til at styre lysdioder

**************/
// Importer biblioteket til Wi-Fi forbindelse
#include
// Indtast dit Wi-Fi-navn og din adgangskode
konst char * ssid = 'ESP32' ;
konst char * adgangskode = '123456789' ;
// Vælg portnummeret til webserveren
WiFiServer server ( 80 ) ;
// Opret en variabel til at gemme webanmodningen
String header;
// Opret variabler for at gemme status for udgangene
String output26State = 'AF' ;
String output27State = 'AF' ;
// Tildel udgangsbenene til variablerne
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = millis ( ) ;
unsigned long previousTime = 0 ;
// Vælg tid begrænse til webanmodningen i millisekunder
konstant lang timeoutTid = 2000 ;
ugyldig opsætning ( ) {
Serial.begin ( 115200 ) ;
// Indstil udgangsbenene som udgange
pinMode ( output26, OUTPUT ) ;
pinMode ( output27, OUTPUT ) ;
// Sluk for udgangene
digitalSkriv ( output26, LAV ) ;
digitalSkriv ( output27, LAV ) ;
// Opret forbindelse til Wi-Fi-netværket
Seriel.print ( 'Opretter forbindelse til' ) ;
Serial.println ( ssid ) ;
WiFi.begynd ( ssid, adgangskode ) ;
// Vente indtil forbindelsen er etableret
mens ( WiFi.status ( ) ! = WL_CONNECTED ) {
forsinke ( 500 ) ;
Seriel.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi tilsluttet.' ) ;
Serial.println ( 'IP-adresse: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begynd ( ) ;
}

ugyldig løkke ( ) {
WiFiClient-klient = server.tilgængelig ( ) ; // Kontrollere til nye kunder
hvis ( klient ) { // Hvis en klient er tilsluttet,
aktuelTid = millis ( ) ;
forrigeTid = aktuelTid;
Serial.println ( 'Ny klient.' ) ; // Giv den serielle port besked
String currentLine = '' ; // Opret en streng for at gemme klientdataene
mens ( klient.tilsluttet ( ) && nuværende Tid - forrige Tid = 0 ) {
Serial.println ( 'GPIO 26 tændt' ) ;
output26State = 'PÅ' ;
digitalSkriv ( output26, HØJ ) ;
} andet hvis ( header.indexOf ( 'FÅ /26/fra' ) > = 0 ) {
Serial.println ( 'GPIO 26 slukket' ) ;
output26State = 'AF' ;
digitalSkriv ( output26, LAV ) ;
} andet hvis ( header.indexOf ( 'FÅ /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 tændt' ) ;
output27State = 'PÅ' ;
digitalSkriv ( output27, HØJ ) ;
} andet hvis ( header.indexOf ( 'FÅ /27/fra' ) > = 0 ) {
Serial.println ( 'GPIO 27 slukket' ) ;
output27State = 'AF' ;
digitalSkriv ( output27, LAV ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS til at style knapperne
client.println ( '