Server Web ESP32 che utilizza l'IDE Arduino

Server Web Esp32 Che Utilizza L Ide Arduino



ESP32 è una scheda microcontrollore che può connettersi con più dispositivi utilizzando i suoi pin GPIO. Ha un processore dual-core con interfaccia Wi-Fi e Bluetooth integrata. Entrambe queste caratteristiche rendono ESP32 una scheda adatta per la progettazione di progetti IoT. Una delle caratteristiche principali della scheda ESP32 è la sua capacità di connettersi al punto di accesso esistente. Non solo, ma può anche creare il proprio punto di accesso, in modo che altri dispositivi possano connettersi ad esso.

In questo articolo ESP32, esploreremo come connettere una scheda ESP32 con un punto di accesso e progettare il suo server web. Utilizzando quel server web, controlleremo i LED e gli apparecchi CA con l'aiuto di un modulo relè.

Contenuti:

1. Server Web ESP32

Il server Web dispone di un programma speciale in grado di elaborare e inviare pagine Web ai client Web. Per aprire un sito web, utilizziamo un browser web. Questo browser Web è anche chiamato client Web. Il sito web che desideri vedere è archiviato su un altro computer chiamato server web.







Per comunicare tra loro, il server web e il client web utilizzano un linguaggio comune chiamato HTTP. Funziona così: il client Web richiede al server Web una pagina Web utilizzando una richiesta HTTP. Il server web restituisce la pagina web richiesta. Se la pagina web non è presente, verrà visualizzato un messaggio di errore.



In ESP32 possiamo progettare un server Web, poiché ESP32 non solo può connettersi con altri dispositivi su una rete, ma può anche creare il proprio server Web e rispondere alle richieste ricevute. Tutto questo è possibile perché l'ESP32 può funzionare in tre diverse modalità:



  • Stazione
  • Punto di accesso
  • Sia Stazione che Access Point

Puoi consultare questo articolo per avere un'idea di tutte e tre le modalità di ESP32:





Come impostare un punto di accesso (AP) ESP32 utilizzando l'IDE Arduino

2. Come creare un server Web ESP32 utilizzando l'IDE Arduino

Per creare un server Web ESP32 utilizzando l'IDE Arduino, è possibile connettere ESP32 a un punto di accesso e generare un indirizzo IP per il server Web. Puoi applicare alcuni HTML e CSS per progettare l'interfaccia del tuo server.



Una volta compreso il funzionamento del punto di accesso ESP32, puoi facilmente progettare un server Web ESP32 utilizzando il codice IDE di Arduino. Il codice del server Web ESP32 utilizza la libreria Wi-Fi ESP32. Ciò semplifica il nostro lavoro, poiché questa libreria contiene tutte le funzioni importanti necessarie per connettere ESP32 a un punto di accesso.

Progettiamo un server Web ESP32 utilizzando il codice IDE Arduino.

3. Codice del server Web ESP32

Il codice del server web ESP32 prevede la connessione ESP32 con il punto di accesso e l'ottenimento dell'indirizzo IP per il server. Una volta ottenuto l'indirizzo IP, devi connetterti alla stessa rete per accedere al server web ESP32. Da lì puoi controllare i LED e altri dispositivi.

Apri l'IDE Arduino e collega la tua scheda ESP32 ad essa:

Installazione della scheda ESP32 nell'IDE Arduino

Una volta collegata la scheda ESP32, carica il seguente codice sulla scheda.

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

Linuxhint.com
Server Web ESP32 per controllare i LED

**************/
// Importa la libreria per Connessione wifi
#include
// Inserisci il nome e la password del Wi-Fi
const car * ssid = 'ESP32' ;
const car * parola d'ordine = '123456789' ;
// Scegli il numero di porta per il server web
Server WiFiServer ( 80 ) ;
// Crea una variabile per archiviare la richiesta web
Intestazione della stringa;
// Creare variabili per memorizzare lo stato delle uscite
Stringa output26State = 'SPENTO' ;
Stringa output27State = 'SPENTO' ;
// Assegnare i pin di output alle variabili
const int output26 = 26 ;
const int output27 = 27 ;
currentTime lungo senza segno = millis ( ) ;
senza segno lungo previousTime = 0 ;
// Scegli il tempo limite per la richiesta web In millisecondi
const lungo timeoutTime = 2000 ;
configurazione nulla ( ) {
Serial.begin ( 115200 ) ;
// Imposta i pin di uscita COME uscite
​ modalità pin ( uscita26, USCITA ) ;
​ modalità pin ( uscita27, USCITA ) ;
// Disattiva le uscite
digitalWrite ( uscita26, BASSO ) ;
digitalWrite ( uscita27, BASSO ) ;
// Connettersi alla rete Wi-Fi
Stampa.seriale ( 'Connessione a' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, password ) ;
// Aspettare Fino a la connessione è stabilita
Mentre ( WiFi.status ( ) ! = WL_CONNESSO ) {
ritardo ( 500 ) ;
Stampa.seriale ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'Wi-Fi connesso.' ) ;
Serial.println ( 'Indirizzo IP: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}

ciclo vuoto ( ) {
Client WiFiClient = server.disponibile ( ) ; // Controllo per nuovi clienti
Se ( cliente ) { // Se un client è connesso,
currentTime = millis ( ) ;
ora precedente = ora corrente;
Serial.println ( 'Nuovo cliente.' ) ; // Avvisare la porta seriale
StringaRigacorrente = '' ; // Crea una stringa per archiviare i dati del client
Mentre ( client.connesso ( ) && ora corrente - ora precedente = 0 ) {
Serial.println ( 'GPIO 26 acceso' ) ;
output26Stato = 'SU' ;
digitalWrite ( uscita26, ALTA ) ;
} altro Se ( intestazione.indexOf ( 'OTTIENI /26/sconto' ) > = 0 ) {
Serial.println ( 'GPIO 26 spento' ) ;
output26Stato = 'SPENTO' ;
digitalWrite ( uscita26, BASSO ) ;
} altro Se ( intestazione.indexOf ( 'OTTIENI /27/il' ) > = 0 ) {
Serial.println ( 'GPIO 27 acceso' ) ;
output27Stato = 'SU' ;
digitalWrite ( uscita27, ALTA ) ;
} altro Se ( intestazione.indexOf ( 'OTTIENI /27/sconto' ) > = 0 ) {
Serial.println ( 'GPIO 27 spento' ) ;
output27Stato = 'SPENTO' ;
digitalWrite ( uscita27, BASSO ) ;
}

cliente.println ( '' ) ;
cliente.println ( '' ) ;
cliente.println ( ' icona 'href=' dati:, '>' ) ;
// CSS per modellare i pulsanti
cliente.println ( '