Logo LAFVINESP32 Starter di base
Kit

Lista imballaggio

Kit di base per principianti LAFVIN ESP32 - PackingList

Introduzione a ESP32

Nuovo su ESP32? Inizia qui! ESP32 è una serie di microcontrollori System on a Chip (SoC) a basso costo e basso consumo sviluppati da Espressif che includono funzionalità wireless Wi-Fi e Bluetooth e un processore dual-core. Se hai familiarità con ESP8266, ESP32 è il suo successore, ricco di tante nuove funzionalità.Kit di base per principianti LAFVIN ESP32 - Introduzione a ESP32Specifiche ESP32
Se vuoi essere un po' più tecnico e specifico, puoi dare un'occhiata alle seguenti specifiche dettagliate dell'ESP32 (fonte: http://esp32.net/)—per maggiori dettagli, controlla la scheda tecnica):

  • Connettività wireless WiFi: velocità dati 150.0 Mbps con HT40
  • Bluetooth: BLE (Bluetooth Low Energy) e Bluetooth Classico
  • Processore: microprocessore Tensilica Xtensa Dual-Core LX32 a 6 bit, funzionante a 160 o 240 MHz
  • Memoria:
  • ROM: 448 KB (per l'avvio e le funzioni principali)
  • SRAM: 520 KB (per dati e istruzioni)
  • RTC fas SRAM: 8 KB (per l'archiviazione dei dati e la CPU principale durante l'avvio RTC dalla modalità deep-sleep)
  • RTC slow SRAM: 8 KB (per l'accesso del coprocessore durante la modalità deep-sleep) eFuse: 1 Kbit (di cui 256 bit sono utilizzati per il sistema (indirizzo MAC e configurazione del chip) e i restanti 768 bit sono riservati per le applicazioni del cliente, tra cui Flash-Encryption e Chip-ID)

Flash incorporata: flash collegata internamente tramite IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 e SD_DATA_1 su ESP32-D2WD ed ESP32-PICO-D4.

  • 0 MiB (chip ESP32-D0WDQ6, ESP32-D0WD e ESP32-S0WD)
  • 2 MiB (chip ESP32-D2WD)
  • 4 MiB (modulo SiP ESP32-PICO-D4)

Bassa potenza: assicura che sia ancora possibile utilizzare le conversioni ADC, ad esempioample, durante il sonno profondo.
Input/output periferico:

  • interfaccia periferica con DMA che include touch capacitivo
  • ADC (convertitore analogico-digitale)
  • DAC (convertitore digitale-analogico)
  • I²C (circuito inter-integrato)
  • UART (ricevitore/trasmettitore asincrono universale)
  • SPI (interfaccia periferica seriale)
  • I²S (suono integrato interchip)
  • RMII (Interfaccia indipendente dal supporto ridotto)
  • PWM (modulazione di larghezza di impulso)

Sicurezza: acceleratori hardware per AES e SSL/TLS

Schede di sviluppo ESP32

ESP32 si riferisce al chip ESP32 nudo. Tuttavia, il termine "ESP32" è utilizzato anche per fare riferimento alle schede di sviluppo ESP32. Utilizzare chip ESP32 nudi non è facile o pratico, specialmente quando si impara, si testa e si crea un prototipo. Nella maggior parte dei casi, si desidera utilizzare una scheda di sviluppo ESP32.
Utilizzeremo la scheda ESP32 DEVKIT V1 come riferimento. L'immagine seguente mostra la scheda ESP32 DEVKIT V1, versione con 30 pin GPIO.Kit di base per principianti ESP32 LAFVIN - Schede di sviluppo ESP32Specifiche – ESP32 DEVKIT V1
La tabella seguente mostra un riepilogo delle caratteristiche e delle specifiche della scheda ESP32 DEVKIT V1 DOIT:

Numero di core 2 (doppio nucleo)
Wifi 2.4 GHz fino a 150 Mbit/s
Bluetooth BLE (Bluetooth Low Energy) e Bluetooth legacy
Architettura 32 bit
Frequenza di clock Fino a 240 MHz
Memoria RAM 512 KB
Spilli 30 (a seconda del modello)
Periferiche Touch capacitivo, ADC (convertitore analogico-digitale), DAC (convertitore digitale-analogico), 12C (circuito interintegrato), UART (ricevitore/trasmettitore asincrono universale), CAN 2.0 (Controller Area Network), SPI (interfaccia periferica seriale), 12S (circuito interintegrato integrato
Suono), RMII (Reduced Media-Independent Interface), PWM (modulazione di larghezza di impulso) e altro ancora.
Pulsanti incorporati Pulsanti RESET e BOOT
LED integrati LED blu integrato collegato a GPIO2; LED rosso integrato che indica che la scheda è alimentata
USB a UART
ponte
CP2102

Kit di base per principianti LAFVIN ESP32 - ESP32 DEVKITÈ dotato di un'interfaccia microUSB che puoi utilizzare per collegare la scheda al computer per caricare il codice o alimentarla.
Utilizza il chip CP2102 (USB a UART) per comunicare con il computer tramite una porta COM usando un'interfaccia seriale. Un altro chip popolare è il CH340. Controlla qual è il convertitore di chip USB a UART sulla tua scheda perché dovrai installare i driver richiesti in modo che il computer possa comunicare con la scheda (ulteriori informazioni su questo più avanti in questa guida).
Questa scheda è dotata anche di un pulsante RESET (potrebbe essere etichettato EN) per riavviare la scheda e di un pulsante BOOT per mettere la scheda in modalità lampeggiante (disponibile per ricevere codice). Nota che alcune schede potrebbero non avere un pulsante BOOT.
È inoltre dotato di un LED blu integrato che è collegato internamente al GPIO 2. Questo LED è utile per il debug per fornire una sorta di output fisico visivo. C'è anche un LED rosso che si accende quando si fornisce alimentazione alla scheda.Kit di base per principianti LAFVIN ESP32 - schedaPinout ESP32
Le periferiche ESP32 includono:

  • 18 canali di conversione analogico-digitale (ADC)
  • 3 interfacce SPI
  • 3 interfacce UART
  • 2 interfacce I2C
  • 16 canali di uscita PWM
  • 2 convertitori digitale-analogico (DAC)
  • 2 interfacce I2S
  • 10 GPIO di rilevamento capacitivo

Le funzionalità ADC (convertitore analogico-digitale) e DAC (convertitore digitale-analogico) sono assegnate a specifici pin statici. Tuttavia, puoi decidere quali pin sono UART, I2C, SPI, PWM, ecc.: devi solo assegnarli nel codice. Ciò è possibile grazie alla funzionalità di multiplexing del chip ESP32.
Sebbene sia possibile definire le proprietà dei pin sul software, ci sono pin assegnati per impostazione predefinita come mostrato nella figura seguenteKit di base per principianti LAFVIN ESP32 - Pinout ESP32Inoltre, ci sono pin con caratteristiche specifiche che li rendono adatti o meno per un progetto particolare. La seguente tabella mostra quali pin sono i migliori da usare come input, output e quali devi usare con cautela.
I pin evidenziati in verde sono OK da usare. Quelli evidenziati in giallo sono OK da usare, ma devi prestare attenzione perché potrebbero avere un comportamento inaspettato principalmente all'avvio. I pin evidenziati in rosso non sono consigliati per l'uso come input o output.

GPIO Ingresso Produzione Appunti
0 tirato su OK emette il segnale PWM all'avvio, deve essere BASSO per entrare in modalità lampeggiante
1 perno TX OK output di debug all'avvio
2 OK OK collegato al LED di bordo, deve essere lasciato flottante o BASSO per entrare in modalità lampeggiante
3 OK perno RX ALTO all'avvio
4 OK OK
5 OK OK emette il segnale PWM all'avvio, pin di fissaggio
12 OK OK lo stivale non funziona se tirato in alto, perno di fissaggio
13 OK OK
14 OK OK emette il segnale PWM all'avvio
15 OK OK emette il segnale PWM all'avvio, pin di fissaggio
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK solo ingresso
35 OK solo ingresso
36 OK solo ingresso
39 OK solo ingresso

Continua a leggere per un'analisi più dettagliata e approfondita dei GPIO ESP32 e delle sue funzioni.
Solo pin di input
I GPIO da 34 a 39 sono GPI, ovvero pin di solo input. Questi pin non hanno resistori pull-up o pull-down interni. Non possono essere usati come output, quindi usa questi pin solo come input:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

Flash SPI integrato su ESP-WROOM-32
GPIO 6 a GPIO 11 sono esposti in alcune schede di sviluppo ESP32. Tuttavia, questi pin sono collegati alla flash SPI integrata sul chip ESP-WROOM-32 e non sono consigliati per altri usi. Quindi, non utilizzare questi pin nei tuoi progetti:

  • GPIO 6 (SCP/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

GPIO touch capacitivi
L'ESP32 ha 10 sensori touch capacitivi interni. Questi possono rilevare variazioni in qualsiasi cosa che contenga una carica elettrica, come la pelle umana. Quindi possono rilevare variazioni indotte quando si toccano i GPIO con un dito. Questi pin possono essere facilmente integrati in pad capacitivi e sostituire pulsanti meccanici. I pin touch capacitivi possono anche essere utilizzati per riattivare l'ESP32 dal deep sleep. Questi sensori touch interni sono collegati a questi GPIO:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Convertitore da analogico a digitale (ADC)
L'ESP32 ha 18 canali di input ADC da 12 bit (mentre l'ESP8266 ha solo 1 ADC da 10 bit). Questi sono i GPIO che possono essere utilizzati come ADC e i rispettivi canali:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

Nota: I pin ADC2 non possono essere utilizzati quando si utilizza il Wi-Fi. Quindi, se si utilizza il Wi-Fi e si hanno problemi a ottenere il valore da un GPIO ADC2, si può prendere in considerazione l'utilizzo di un GPIO ADC1. Ciò dovrebbe risolvere il problema.
I canali di input ADC hanno una risoluzione di 12 bit. Ciò significa che puoi ottenere letture analogiche che vanno da 0 a 4095, in cui 0 corrisponde a 0 V e 4095 a 3.3 V. Puoi anche impostare la risoluzione dei tuoi canali sul codice e sull'intervallo ADC.
I pin ADC ESP32 non hanno un comportamento lineare. Probabilmente non sarai in grado di distinguere tra 0 e 0.1 V, o tra 3.2 e 3.3 V. Devi tenerlo a mente quando usi i pin ADC. Otterrai un comportamento simile a quello mostrato nella figura seguente.Kit di base per principianti LAFVIN ESP32 - comportamentoConvertitore digitale-analogico (DAC)
Ci sono 2 canali DAC a 8 bit sull'ESP32 per convertire i segnali digitali in segnali analogicitage uscite di segnale. Questi sono i canali DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO RTC
L'ESP32 supporta RTC GPIO. I GPIO indirizzati al sottosistema RTC a basso consumo possono essere utilizzati quando l'ESP32 è in modalità deep sleep. Questi RTC GPIO possono essere utilizzati per riattivare l'ESP32 dalla modalità deep sleep quando l'Ultra Low
Il coprocessore Power (ULP) è in esecuzione. I seguenti GPIO possono essere utilizzati come sorgente di wake up esterna.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

Movimentazione continua
Il controller PWM LED ESP32 ha 16 canali indipendenti che possono essere configurati per generare segnali PWM con proprietà diverse. Tutti i pin che possono fungere da output possono essere utilizzati come pin PWM (i GPIO da 34 a 39 non possono generare PWM).
Per impostare un segnale PWM, è necessario definire questi parametri nel codice:

  • Frequenza del segnale;
  • Ciclo di lavoro;
  • Canale PWM;
  • GPIO dove si desidera inviare il segnale.

I2C
L'ESP32 ha due canali I2C e qualsiasi pin può essere impostato come SDA o SCL. Quando si utilizza l'ESP32 con l'IDE Arduino, i pin I2C predefiniti sono:

  • GPIO21 (SDA)
  • GPIO22 (SCL)

Se si desidera utilizzare altri pin quando si utilizza la libreria wire, è sufficiente chiamare:
Filo.begin(SDA, SCL);
SPI
Per impostazione predefinita, la mappatura dei pin per SPI è:

SPI MOSI MISO Orologio CS
VSPI GPIO23 GPIO19 GPIO18 GPIO5
HSPI GPIO13 GPIO12 GPIO14 GPIO15

interrupt
Tutti i GPIO possono essere configurati come interrupt.
Perni di reggiatura
Il chip ESP32 ha i seguenti pin di fissaggio:

  • GPIO 0 (deve essere BASSO per entrare in modalità di avvio)
  • GPIO 2 (deve essere flottante o BASSO durante l'avvio)
  • GPIO4
  • GPIO 5 (deve essere ALTO durante l'avvio)
  • GPIO 12 (deve essere BASSO durante l'avvio)
  • GPIO 15 (deve essere ALTO durante l'avvio)

Questi servono per mettere l'ESP32 in modalità bootloader o flashing. Sulla maggior parte delle schede di sviluppo con USB/seriale integrata, non devi preoccuparti dello stato di questi pin. La scheda mette i pin nello stato corretto per la modalità flashing o boot. Ulteriori informazioni sulla selezione della modalità di avvio ESP32 sono disponibili qui.
Tuttavia, se hai delle periferiche collegate a quei pin, potresti avere problemi a caricare un nuovo codice, a flashare l'ESP32 con un nuovo firmware o a reimpostare la scheda. Se hai delle periferiche collegate ai pin di strapping e hai problemi a caricare il codice o a flashare l'ESP32, potrebbe essere perché quelle periferiche impediscono all'ESP32 di entrare nella modalità corretta. Leggi la documentazione di Boot Mode Selection per orientarti nella giusta direzione. Dopo il reset, il flashing o l'avvio, quei pin funzionano come previsto.
Pin ALTI all'avvio
Alcuni GPIO cambiano il loro stato in HIGH o emettono segnali PWM all'avvio o al ripristino.
Ciò significa che se si hanno uscite collegate a questi GPIO, si potrebbero ottenere risultati inaspettati quando l'ESP32 si ripristina o si avvia.

  • GPIO1
  • GPIO3
  • GPIO5
  • Da GPIO 6 a GPIO 11 (collegato alla memoria flash SPI integrata nell'ESP32, se ne sconsiglia l'uso).
  • GPIO14
  • GPIO15

Abilita (IT)
Enable (EN) è il pin di abilitazione del regolatore da 3.3 V. È attivato, quindi collegalo a terra per disabilitare il regolatore da 3.3 V. Ciò significa che puoi usare questo pin collegato a un pulsante per riavviare il tuo ESP32, ad esempioamplui.
Corrente GPIO assorbita
La corrente massima assoluta assorbita per GPIO è di 40 mA secondo la sezione "Condizioni operative consigliate" nella scheda tecnica dell'ESP32.
Sensore ad effetto Hall integrato ESP32
L'ESP32 è inoltre dotato di un sensore ad effetto Hall integrato che rileva i cambiamenti nel campo magnetico circostante
ESP32 Arduino IDE
Esiste un componente aggiuntivo per l'IDE Arduino che consente di programmare l'ESP32 utilizzando l'IDE Arduino e il suo linguaggio di programmazione. In questo tutorial ti mostreremo come installare la scheda ESP32 nell'IDE Arduino, indipendentemente dal fatto che tu stia utilizzando Windows, Mac OS X o Linux.
Prerequisiti: Arduino IDE installato
Prima di iniziare questa procedura di installazione, devi avere Arduino IDE installato sul tuo computer. Ci sono due versioni di Arduino IDE che puoi installare: versione 1 e versione 2.
Puoi scaricare e installare Arduino IDE cliccando sul seguente link: arduino.cc/it/Principale/Software
Quale versione di Arduino IDE consigliamo? Al momento, ce ne sono alcune plugins per l'ESP32 (come lo SPIFFS FilePlugin Uploader di sistema) che non sono ancora supportati su Arduino 2. Quindi, se intendi utilizzare il plugin SPIFFS in futuro, ti consigliamo di installare la versione legacy 1.8.X. Devi solo scorrere verso il basso nella pagina del software Arduino per trovarla.
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Per installare la scheda ESP32 nel tuo IDE Arduino, segui queste istruzioni:

  1. Nel tuo IDE Arduino, vai a File> PreferenzeKit di base per l'avvio LAFVIN ESP32 - Preferenze
  2. Inserisci quanto segue nel “Additional Board Manager” URLcampo s”:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Quindi, fare clic sul pulsante "OK":Kit di base per l'avviamento LAFVIN ESP32 - Pulsante "OK"Nota: se hai già le schede ESP8266 URL, puoi separare il file URLs con una virgola come segue:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Apri Boards Manager. Vai su Strumenti > Board > Boards Manager…Kit di base per principianti LAFVIN ESP32 - EspressifCercare ESP32 and press install button for the “ESP32 by Espressif Systems“:Kit di base per principianti LAFVIN ESP32 - EspressifEcco fatto. Dovrebbe essere installato dopo pochi secondi.Kit di base di avviamento LAFVIN ESP32 - installato

Carica il codice di prova

Collega la scheda ESP32 al tuo computer. Con il tuo IDE Arduino aperto, segui questi passaggi:

  1. Seleziona la tua scheda nel menu Strumenti > Scheda (nel mio caso è il modulo ESP32 DEV)Kit di base per principianti LAFVIN ESP32 - Scheda degli strumenti
  2. Seleziona la porta (se non vedi la porta COM nel tuo IDE Arduino, devi installare i driver VCP CP210x USB to UART Bridge):Kit di base per principianti LAFVIN ESP32 - Ponte UART
  3. Aprire il seguente esempioampsotto File > Es.ample > WiFi
    (ESP32) > Scansione WiFiKit di base per principianti LAFVIN ESP32 - WiFiScanKit di base di avviamento LAFVIN ESP32 - WiFiScan 1
  4. Si apre un nuovo sketch nel tuo IDE Arduino:Kit di base per principianti LAFVIN ESP32 - Arduino IDE
  5. Premi il pulsante Upload nell'IDE Arduino. Attendi qualche secondo mentre il codice viene compilato e caricato sulla tua scheda.Kit di base per principianti LAFVIN ESP32 - scheda
  6. Se tutto è andato come previsto, dovresti vedere il messaggio "Caricamento completato".Kit di base per l'avvio LAFVIN ESP32 - Caricamento completato
  7. Aprire il monitor seriale dell'IDE Arduino a una velocità in baud di 115200:Kit di base per principianti LAFVIN ESP32 - Monitor
  8. Premi il pulsante Enable integrato nell'ESP32 e dovresti vedere le reti disponibili vicino al tuo ESP32:Kit di base per principianti LAFVIN ESP32 - Pulsante di abilitazione

Risoluzione dei problemi

Se provi a caricare un nuovo sketch sul tuo ESP32 e ricevi questo messaggio di errore "Si è verificato un errore fatale: Impossibile connettersi a ESP32: Timeout... Connessione in corso...". Significa che il tuo ESP32 non è in modalità flashing/upload.
Dopo aver selezionato il nome della scheda e la porta COM corretti, seguire questi passaggi:
Tieni premuto il pulsante "BOOT" sulla tua scheda ESP32Kit di base di avviamento LAFVIN ESP32 - “BOOT”

  • Premi il pulsante "Carica" ​​nell'IDE Arduino per caricare il tuo sketch:Kit di base di avviamento LAFVIN ESP32 - ICON 6
  • Dopo aver visualizzato il messaggio "Connessione in corso..." nell'IDE Arduino, rilascia il dito dal pulsante "BOOT":Kit di avvio di base LAFVIN ESP32 - "Caricamento completato
  • Dopodiché dovresti vedere il messaggio "Caricamento completato"
    Ecco fatto. Il tuo ESP32 dovrebbe avere il nuovo sketch in esecuzione. Premi il pulsante "ENABLE" per riavviare l'ESP32 ed eseguire il nuovo sketch caricato.
    Dovrai ripetere la sequenza di pulsanti ogni volta che vorrai caricare un nuovo schizzo.

Progetto 1 ESP32 Ingressi Uscite

In questa guida introduttiva imparerai come leggere gli input digitali, come un interruttore a pulsante, e controllare gli output digitali, come un LED, utilizzando l'ESP32 con Arduino IDE.
Prerequisiti
Programmeremo l'ESP32 usando Arduino IDE. Quindi, assicurati di aver installato l'add-on ESP32 boards prima di procedere:

  • Installazione del componente aggiuntivo ESP32 nell'IDE Arduino

Uscite digitali di controllo ESP32
Per prima cosa, devi impostare il GPIO che vuoi controllare come OUTPUT. Usa la funzione pinMode() come segue:
pinMode(GPIO, USCITA);
Per controllare un'uscita digitale è sufficiente utilizzare la funzione digitalWrite(), che accetta come argomenti il ​​GPIO (numero int) a cui si fa riferimento e lo stato, HIGH o LOW.
digitalWrite(GPIO, STATO);
Tutti i GPIO possono essere utilizzati come output, ad eccezione dei GPIO da 6 a 11 (collegati alla flash SPI integrata) e dei GPIO 34, 35, 36 e 39 (GPIO solo di input);
Scopri di più sui GPIO ESP32: Guida di riferimento GPIO ESP32
ESP32 legge gli ingressi digitali
Per prima cosa, imposta il GPIO che vuoi leggere come INPUT, utilizzando la funzione pinMode() come segue:
pinMode(GPIO, INPUT);
Per leggere un input digitale, come un pulsante, si utilizza la funzione digitalRead(), che accetta come argomento il GPIO (numero int) a cui si fa riferimento.
lettura digitale(GPIO);
Tutti i GPIO ESP32 possono essere utilizzati come input, ad eccezione dei GPIO da 6 a 11 (collegati alla flash SPI integrata).
Scopri di più sui GPIO ESP32: Guida di riferimento GPIO ESP32
Progetto Esample
Per mostrarti come utilizzare gli ingressi e le uscite digitali, creeremo un semplice progetto esample con un pulsante e un LED. Leggeremo lo stato del pulsante e accenderemo il LED di conseguenza, come illustrato nella figura seguente.Kit di base per principianti LAFVIN ESP32 - Progetto Example

Parti richieste
Ecco un elenco dei componenti necessari per costruire il circuito:

  • ESP32 DEVKIT V1
  • LED da 5 mm
  • Resistenza da 220 Ohm
  • Premi il bottone
  • Resistenza da 10kOhm
  • Tagliere
  • Fili di collegamento

Diagramma schematico
Prima di procedere, è necessario assemblare un circuito con un LED e un pulsante.
Collegheremo il LED al GPIO 5 e il pulsante al GPIO 4.Kit di base di avviamento LAFVIN ESP32 - Diagramma schematicoCodice
Aprire il codice Project_1_ESP32_Inputs_Outputs.ino nell'IDE ArduinoKit di base per l'avvio LAFVIN ESP32 - CodiceKit di base di avviamento LAFVIN ESP32 - Codice 1Come funziona il codice
Nelle due righe seguenti, crei variabili per assegnare i pin:

Kit di base per principianti LAFVIN ESP32 - Code WorksIl pulsante è collegato al GPIO 4 e il LED è collegato al GPIO 5. Quando si utilizza l'IDE Arduino con l'ESP32, 4 corrisponde al GPIO 4 e 5 corrisponde al GPIO 5.
Poi, crei una variabile per contenere lo stato del pulsante. Di default, è 0 (non premuto).
int statopulsante = 0;
Nel setup() si inizializza il pulsante come INPUT e il LED come OUTPUT.
Per farlo, si utilizza la funzione pinMode() che accetta il pin a cui si fa riferimento e la modalità: INPUT o OUTPUT.
pinMode(pulsantePin, INPUT);
pinMode(ledPin, USCITA);
Nel loop() è dove si legge lo stato del pulsante e si imposta il LED di conseguenza.
Nella riga successiva, leggi lo stato del pulsante e lo salvi nella variabile buttonState.
Come abbiamo visto in precedenza, si utilizza la funzione digitalRead().
buttonState = digitalRead(buttonPin);
La seguente istruzione if controlla se lo stato del pulsante è HIGH. Se lo è, accende il LED usando la funzione digitalWrite() che accetta come argomento il ledPin e lo stato HIGH.
se (buttonState == HIGH)Kit di base per principianti LAFVIN ESP32 - Code Works 1Se lo stato del pulsante non è HIGH, si spegne il LED. Basta impostare LOW come secondo argomento nella funzione digitalWrite().Kit di base per principianti LAFVIN ESP32 - digitalWriteCaricamento del codice
Prima di cliccare sul pulsante di caricamento, vai su Strumenti > Scheda e seleziona la scheda: DOIT ESP32 DEVKIT V1.
Vai su Strumenti > Porta e seleziona la porta COM a cui è connesso l'ESP32. Quindi, premi il pulsante di caricamento e attendi il messaggio "Caricamento completato".Kit di base di avviamento LAFVIN ESP32 - ICON 7Nota: se vedi molti punti (connessione…__…__) nella finestra di debug e il messaggio "Impossibile connettersi a ESP32: timeout in attesa dell'intestazione del pacchetto", significa che devi premere il pulsante BOOT integrato nell'ESP32 dopo i punti
iniziano ad apparire.Risoluzione dei problemi

Dimostrazione

Dopo aver caricato il codice, testa il tuo circuito. Il tuo LED dovrebbe accendersi quando premi il pulsante:Kit di base di avviamento LAFVIN ESP32 - DimostrazioneE disattivalo quando lo rilasci:Kit di avviamento di base LAFVIN ESP32 - spegnimento

Progetto 2 Ingressi analogici ESP32

Questo progetto mostra come leggere gli ingressi analogici con l'ESP32 utilizzando Arduino IDE.
La lettura analogica è utile per leggere i valori da resistori variabili come potenziometri o sensori analogici.
Ingressi analogici (ADC)
Leggere un valore analogico con l'ESP32 significa che è possibile misurare volumi variabilitage livelli compresi tra 0 V e 3.3 V.
il volumetage misurato viene quindi assegnato a un valore compreso tra 0 e 4095, in cui 0 V corrisponde a 0 e 3.3 V corrisponde a 4095. Qualsiasi voltage tra 0 V e 3.3 V verrà assegnato il valore corrispondente intermedio.Kit di base per principianti LAFVIN ESP32 - Ingressi analogiciADC non è lineare
Idealmente, ci si aspetterebbe un comportamento lineare quando si utilizzano i pin ADC ESP32.
Tuttavia, ciò non accade. Ciò che otterrai è un comportamento come quello mostrato nel seguente grafico:Kit di base per principianti LAFVIN ESP32 - Non lineareQuesto comportamento significa che l'ESP32 non è in grado di distinguere 3.3 V da 3.2 V.
Otterrai lo stesso valore per entrambi i volumitages: 4095.
Lo stesso accade per volumi molto bassitage valori: per 0 V e 0.1 V otterrai lo stesso valore: 0. Devi tenerlo a mente quando usi i pin ADC ESP32.
Funzione analogRead()
Leggere un input analogico con l'ESP32 usando l'IDE Arduino è semplice come usare la funzione analogRead(). Accetta come argomento il GPIO che vuoi leggere:
analogRead(GPIO);
Nella scheda DEVKIT V15 (versione con 1 GPIO) ne sono disponibili solo 30.
Prendi il pinout della tua scheda ESP32 e individua i pin ADC. Questi sono evidenziati con un bordo rosso nella figura sottostante.Kit di base per principianti LAFVIN ESP32 - bordoQuesti pin di input analogici hanno una risoluzione di 12 bit. Ciò significa che quando si legge un input analogico, il suo intervallo può variare da 0 a 4095.
Nota: i pin ADC2 non possono essere utilizzati quando si utilizza il Wi-Fi. Quindi, se si utilizza il Wi-Fi e si hanno problemi a ottenere il valore da un GPIO ADC2, si può prendere in considerazione l'utilizzo di un GPIO ADC1, che dovrebbe risolvere il problema.
Per vedere come tutto si collega, faremo un semplice esempioampper leggere un valore analogico da un potenziometro.
Parti richieste
Per questo exampecco, ti servono le seguenti parti:

  • Scheda ESP32 DEVKIT V1
  • potenziometro
  • Tagliere
  • Fili di collegamento

Schema
Collega un potenziometro al tuo ESP32. Il pin centrale del potenziometro deve essere collegato al GPIO 4. Puoi usare il seguente schema come riferimento.Kit di base per principianti LAFVIN ESP32 - SchemaCodice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Aprire il codice Project_2_ESP32_Inputs_Outputs.ino nell'IDE ArduinoKit di base di avviamento LAFVIN ESP32 - Codice 2Questo codice legge semplicemente i valori dal potenziometro e li stampa nel monitor seriale.
Nel codice, si inizia definendo il GPIO a cui è collegato il potenziometro. In questo esempioample, GPIO 4.Kit di avviamento di base LAFVIN ESP32 - exampleNel setup(), inizializza una comunicazione seriale a una velocità in baud di 115200.Kit di avviamento di base LAFVIN ESP32 - exampil 1Nel loop(), utilizzare la funzione analogRead() per leggere l'input analogico dal potPin.Kit di avviamento di base LAFVIN ESP32 - exampil 2Infine, stampare i valori letti dal potenziometro sul monitor seriale.Kit di avviamento di base LAFVIN ESP32 - exampil 3Carica il codice fornito sul tuo ESP32. Assicurati di aver selezionato la scheda e la porta COM corrette nel menu Strumenti.
Testare l'Example
Dopo aver caricato il codice e premuto il pulsante di reset ESP32, apri il Serial Monitor a una velocità in baud di 115200. Ruota il potenziometro e osserva i valori cambiare.Il valore massimo che otterrai è 4095 e il valore minimo è 0.Kit di base di avviamento LAFVIN ESP32 - valore massimo

Conclusione

In questo articolo hai imparato come leggere gli input analogici usando l'ESP32 con l'IDE Arduino. In sintesi:

  • La scheda ESP32 DEVKIT V1 DOIT (versione con 30 pin) è dotata di 15 pin ADC che puoi utilizzare per leggere gli ingressi analogici.
  • Questi pin hanno una risoluzione di 12 bit, il che significa che è possibile ottenere valori da 0 a 4095.
  • Per leggere un valore nell'IDE Arduino, è sufficiente utilizzare la funzione analogRead().
  • I pin ADC ESP32 non hanno un comportamento lineare. Probabilmente non sarai in grado di distinguere tra 0 e 0.1 V, o tra 3.2 e 3.3 V. Devi tenerlo a mente quando usi i pin ADC.

Progetto 3 ESP32 PWM (uscita analogica)

In questo tutorial ti mostreremo come generare segnali PWM con ESP32 usando Arduino IDE. Come exampOra realizzeremo un semplice circuito che oscura un LED utilizzando il controller LED PWM dell'ESP32.Kit di base per principianti LAFVIN ESP32 - AnalogOutputControllore PWM LED ESP32
L'ESP32 è dotato di un controller LED PWM con 16 canali indipendenti che possono essere configurati per generare segnali PWM con proprietà diverse.
Ecco i passaggi da seguire per oscurare un LED con PWM utilizzando l'IDE Arduino:

  1. Per prima cosa, devi scegliere un canale PWM. Ci sono 16 canali da 0 a 15.
  2. Quindi, devi impostare la frequenza del segnale PWM. Per un LED, una frequenza di 5000 Hz è perfetta da usare.
  3. Devi anche impostare la risoluzione del duty cycle del segnale: hai risoluzioni da 1 a 16 bit. Useremo una risoluzione a 8 bit, il che significa che puoi controllare la luminosità del LED usando un valore da 0 a 255.
  4.  Successivamente, devi specificare su quale GPIO o GPIO apparirà il segnale. Per farlo, utilizzerai la seguente funzione:
    ledcAttachPin(GPIO, canale)
    Questa funzione accetta due argomenti. Il primo è il GPIO che emetterà il segnale, e il secondo è il canale che genererà il segnale.
  5. Infine, per controllare la luminosità del LED tramite PWM, si utilizza la seguente funzione:

ledcWrite(canale, ciclo di lavoro)
Questa funzione accetta come argomenti il ​​canale che genera il segnale PWM e il ciclo di lavoro.
Parti richieste
Per seguire questo tutorial hai bisogno di queste parti:

  • Scheda ESP32 DEVKIT V1
  • 5mm LED
  • Resistenza da 220 Ohm
  •  Tagliere
  • Fili di collegamento

Schema
Collega un LED al tuo ESP32 come nel seguente schema. Il LED dovrebbe essere collegato al GPIO 4.Kit di base per principianti LAFVIN ESP32 - SchemaNota: puoi usare qualsiasi pin tu voglia, purché possa fungere da output. Tutti i pin che possono fungere da output possono essere usati come pin PWM. Per maggiori informazioni sui GPIO ESP32, leggi: ESP32 Pinout Reference: Which GPIO pins should you use?
Codice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Aprire il codice Project_3_ESP32_PWM.ino nell'IDE ArduinoKit di base di avviamento LAFVIN ESP32 - Codice 3Kit di base di avviamento LAFVIN ESP32 - Codice 4Si inizia definendo il pin a cui è collegato il LED. In questo caso il LED è collegato al GPIO 4.Kit di base di avviamento LAFVIN ESP32 - Codice 5Quindi, imposti le proprietà del segnale PWM. Definisci una frequenza di 5000 Hz, scegli il canale 0 per generare il segnale e imposta una risoluzione di 8 bit. Puoi scegliere altre proprietà, diverse da queste, per generare segnali PWM diversi.Kit di base di avviamento LAFVIN ESP32 - Codice 6Nel setup(), è necessario configurare LED PWM con le proprietà definite in precedenza utilizzando la funzione ledcSetup() che accetta come argomenti ledChannel, la frequenza e la risoluzione, come segue:Kit di base di avviamento LAFVIN ESP32 - Codice 8Successivamente, devi scegliere il GPIO da cui otterrai il segnale. Per farlo, usa la funzione ledcAttachPin() che accetta come argomenti il ​​GPIO da cui vuoi ottenere il segnale e il canale che sta generando il segnale. In questo esempioample, otterremo il segnale nel GPIO ledPin, che corrisponde al GPIO 4. Il canale che genera il segnale è il ledChannel, che corrisponde al canale 0.Kit di base di avviamento LAFVIN ESP32 - Codice 9Nel ciclo, varierai il ciclo di lavoro tra 0 e 255 per aumentare la luminosità del LED.Kit di base per principianti LAFVIN ESP32 - luminositàE poi, tra 255 e 0 per diminuire la luminosità.Kit di base per principianti LAFVIN ESP32 - luminosità 1Per impostare la luminosità del LED è sufficiente utilizzare la funzione ledcWrite() che accetta come argomenti il ​​canale che genera il segnale e il duty cycle.Kit di base per principianti LAFVIN ESP32 - luminosità 2Poiché utilizziamo una risoluzione a 8 bit, il duty cycle verrà controllato utilizzando un valore da 0 a 255. Nota che nella funzione ledcWrite() utilizziamo il canale che genera il segnale e non il GPIO.

Testare l'Example

Carica il codice sul tuo ESP32. Assicurati di aver selezionato la scheda e la porta COM corrette. Guarda il tuo circuito. Dovresti avere un LED dimmer che aumenta e diminuisce la luminosità.Kit di base per principianti LAFVIN ESP32 - Test dell'Example

Progetto 4 Sensore di movimento PIR ESP32

Questo progetto mostra come rilevare il movimento con l'ESP32 utilizzando un sensore di movimento PIR. Il cicalino emetterà un allarme quando viene rilevato un movimento e interromperà l'allarme quando non viene rilevato alcun movimento per un tempo preimpostato (ad esempio 4 secondi)
Come funziona il sensore di movimento HC-SR501
.Kit di base per principianti LAFVIN ESP32 - Funziona con il sensore di movimentoIl principio di funzionamento del sensore HC-SR501 si basa sulla variazione della radiazione infrarossa sull'oggetto in movimento. Per essere rilevato dal sensore HC-SR501, l'oggetto deve soddisfare due requisiti:

  • L'oggetto emette raggi infrarossi.
  • L'oggetto si muove o trema

COSÌ:
Se un oggetto emette raggi infrarossi ma non si muove (ad esempio una persona è ferma senza muoversi), non viene rilevato dal sensore.
Se un oggetto si muove ma non emette raggi infrarossi (ad esempio un robot o un veicolo), NON viene rilevato dal sensore.
Introduzione ai timer
In questo example introdurremo anche i timer. Vogliamo che il LED resti acceso per un numero predeterminato di secondi dopo che è stato rilevato un movimento. Invece di usare una funzione delay() che blocca il tuo codice e non ti consente di fare nient'altro per un numero determinato di secondi, dovremmo usare un timer.Kit di base per principianti LAFVIN ESP32 - Introduzione ai timerLa funzione delay()
Dovresti avere familiarità con la funzione delay(), poiché è ampiamente utilizzata. Questa funzione è piuttosto semplice da usare. Accetta un singolo numero int come argomento.
Questo numero rappresenta il tempo in millisecondi che il programma deve attendere prima di passare alla riga di codice successiva.Kit di base per l'avviamento LAFVIN ESP32 - codiceQuando esegui delay(1000) il programma si ferma su quella riga per 1 secondo.
delay() è una funzione di blocco. Le funzioni di blocco impediscono a un programma di fare qualsiasi altra cosa finché quel particolare task non è completato. Se hai bisogno che più task si verifichino contemporaneamente, non puoi usare delay().
Per la maggior parte dei progetti dovresti evitare di usare ritardi e usare invece i timer.
La funzione millis()
Utilizzando la funzione millis() è possibile restituire il numero di millisecondi trascorsi dal primo avvio del programma.Kit di base per l'avviamento LAFVIN ESP32 - programma avviato per la prima voltaPerché questa funzione è utile? Perché usando un po' di matematica, puoi facilmente verificare quanto tempo è passato senza bloccare il tuo codice.
Parti richieste
Per seguire questo tutorial hai bisogno delle seguenti parti

  • Scheda ESP32 DEVKIT V1
  • Sensore di movimento PIR (HC-SR501)
  • Buzzer attivo
  • Fili di collegamento
  • Tagliere

SchemaKit di base di avviamento LAFVIN ESP32 - Schema 1Nota: Il volume di lavorotage dell'HC-SR501 è 5V. Utilizzare il pin Vin per alimentarlo.
Codice
Prima di procedere con questo tutorial dovresti aver installato l'add-on ESP32 nel tuo Arduino IDE. Segui uno dei seguenti tutorial per installare ESP32 sull'Arduino IDE, se non lo hai già fatto. (Se hai già eseguito questo passaggio, puoi passare al passaggio successivo.)
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Aprire il codice Project_4_ESP32_PIR_Motion_Sensor.ino nell'IDE Arduino.
Dimostrazione
Carica il codice sulla tua scheda ESP32. Assicurati di aver selezionato la scheda e la porta COM corrette. Carica i passaggi di riferimento del codice.
Aprire il monitor seriale a una velocità in baud di 115200.Kit di base di avviamento LAFVIN ESP32 - Dimostrazione 1Sposta la mano davanti al sensore PIR. Il cicalino dovrebbe accendersi e sul Serial Monitor viene stampato il messaggio "Movimento rilevato! Allarme cicalino".
Dopo 4 secondi il cicalino dovrebbe spegnersi.Kit di base per principianti LAFVIN ESP32 - cicalino

Progetto 5 Interruttore ESP32 Web Server

In questo progetto creerai un'applicazione autonoma web server con un ESP32 che controlla le uscite (due LED) utilizzando l'ambiente di programmazione Arduino IDE. Il web server è mobile responsive e può essere utilizzato con qualsiasi dispositivo che funzioni come browser sulla rete locale. Ti mostreremo come creare il web server e come funziona il codice passo dopo passo.
Progetto finitoview
Prima di passare direttamente al progetto, è importante delineare ciò che il nostro web server, in modo che sia più facile seguire i passaggi successivi.

  • IL web il server che costruirai controlla due LED collegati ai GPIO 32 e GPIO 26 dell'ESP27;
  • Puoi accedere all'ESP32 web server digitando l'indirizzo IP ESP32 su un browser nella rete locale;
  • Cliccando sui pulsanti sul tuo web server è possibile modificare istantaneamente lo stato di ciascun LED.

Parti richieste
Per questo tutorial avrai bisogno dei seguenti componenti:

  • Scheda ESP32 DEVKIT V1
  • 2x LED da 5 mm
  • 2 resistenza da 200 Ohm
  • Tagliere
  • Fili di collegamento

Schema
Inizia costruendo il circuito. Collega due LED all'ESP32 come mostrato nel seguente diagramma schematico: un LED collegato al GPIO 26 e l'altro al GPIO 27.
Nota: Stiamo utilizzando la scheda ESP32 DEVKIT DOIT con 36 pin. Prima di assemblare il circuito, assicurati di controllare il pinout della scheda che stai utilizzando.Kit di base per principianti LAFVIN ESP32 - SchemaCodice
Qui forniamo il codice che crea l'ESP32 web server. Apri il codice Project_5_ESP32_Switch _Web_Server.ino in arduino IDE, ma non caricarlo ancora. Devi apportare alcune modifiche per farlo funzionare per te.
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Impostazione delle credenziali di rete
Devi modificare le seguenti righe con le tue credenziali di rete: SSID e password. Il codice è ben commentato su dove dovresti apportare le modifiche.Kit di base per l'avvio LAFVIN ESP32 - Credenziali di reteCaricamento del codice
Ora puoi caricare il codice e il web il server funzionerà immediatamente.
Per caricare il codice sull'ESP32, seguire i passaggi successivi:

  1. Collega la scheda ESP32 al computer;
  2. Nell'IDE Arduino seleziona la tua scheda in Strumenti > Scheda (nel nostro caso stiamo utilizzando la scheda ESP32 DEVKIT DOIT);Kit di base per l'avvio di LAFVIN ESP32 - Caricamento del codice
  3. Selezionare la porta COM in Strumenti > Porta.Kit di base per principianti LAFVIN ESP32 - Porta strumenti
  4. Premi il pulsante Carica nell'IDE Arduino e attendi qualche secondo mentre il codice viene compilato e caricato sulla scheda.Kit di base di avviamento LAFVIN ESP32 - ICON 7
  5. Attendi il messaggio "Caricamento completato".Kit di base per l'avvio LAFVIN ESP32 - Caricamento completato 1

Trovare l'indirizzo IP ESP
Dopo aver caricato il codice, aprire il monitor seriale a una velocità in baud di 115200.Kit di base per principianti LAFVIN ESP32 - Indirizzo IP ESPPremi il pulsante ESP32 EN (reset). L'ESP32 si connette al Wi-Fi e invia l'indirizzo IP ESP sul Serial Monitor. Copia quell'indirizzo IP, perché ti serve per accedere all'ESP32 web server.Kit di base per principianti LAFVIN ESP32 - web serverAccesso al Web Server
Per accedere al web server, apri il browser, incolla l'indirizzo IP dell'ESP32 e vedrai la seguente pagina.
Nota: Il browser e l'ESP32 devono essere connessi alla stessa LAN.Kit di base per l'avvio LAFVIN ESP32 - Accesso al Web ServerSe dai un'occhiata al Serial Monitor, puoi vedere cosa sta succedendo sullo sfondo. L'ESP riceve una richiesta HTTP da un nuovo client (in questo caso, il tuo browser).Kit di base per principianti LAFVIN ESP32 - Richiesta HTTPPuoi anche vedere altre informazioni sulla richiesta HTTP.
Dimostrazione
Ora puoi verificare se il tuo web il server funziona correttamente. Fai clic sui pulsanti per controllare i LED.Kit di base per l'avviamento LAFVIN ESP32 - backgroundAllo stesso tempo, puoi dare un'occhiata al Monitor seriale per vedere cosa sta succedendo in background. Ad esempioample, quando fai clic sul pulsante per attivare GPIO 26, ESP32 riceve una richiesta su /26/on URL.Kit di base per principianti LAFVIN ESP32 - URLQuando l'ESP32 riceve tale richiesta, accende il LED collegato al GPIO 26 e aggiorna il suo stato sul web pagina.Kit di base per principianti LAFVIN ESP32 - web paginaIl pulsante per GPIO 27 funziona in modo simile. Verifica che funzioni correttamente.Kit di base di avviamento LAFVIN ESP32 - funziona correttamente

Come funziona il codice

In questa sezione analizzeremo più da vicino il codice per vedere come funziona.
La prima cosa da fare è includere la libreria WiFi.LAFVIN ESP32 Basic Starter Kit - Libreria WiFiCome accennato in precedenza, è necessario inserire il proprio SSID e la password nelle righe seguenti, tra virgolette doppie.Kit di base per l'avviamento LAFVIN ESP32 - virgolette doppieQuindi, imposti il ​​tuo web server sulla porta 80.Kit di base per principianti LAFVIN ESP32 - web serverLa riga seguente crea una variabile per memorizzare l'intestazione della richiesta HTTP:Kit di base per principianti LAFVIN ESP32 - HTTPrequestSuccessivamente, crei variabili ausiliarie per memorizzare lo stato corrente dei tuoi output. Se vuoi aggiungere altri output e salvarne lo stato, devi creare altre variabili.Kit di base per l'avviamento LAFVIN ESP32 - variabiliDevi anche assegnare un GPIO a ciascuna delle tue uscite. Qui stiamo usando GPIO 26 e GPIO 27. Puoi usare qualsiasi altro GPIO adatto.Kit di avviamento di base LAFVIN ESP32 - altro adattoimpostare()
Ora, andiamo nel setup(). Per prima cosa, avviamo una comunicazione seriale a una velocità in baud di 115200 per scopi di debug.Kit di base per l'avviamento LAFVIN ESP32 - scopiDefinisci anche i tuoi GPIO come OUTPUT e impostali su LOW.Kit di base per principianti LAFVIN ESP32 - GPIO come OUTPUTLe righe seguenti avviano la connessione Wi-Fi con WiFi.begin(ssid, password), attendono una connessione riuscita e stampano l'indirizzo IP ESP nel monitor seriale.Kit di base per principianti LAFVIN ESP32 - SerialeKit di base di avviamento LAFVIN ESP32 - Seriale 1ciclo continuo()
Nel loop() programmiamo cosa succede quando un nuovo client stabilisce una connessione con il web server.
L'ESP32 è sempre in ascolto dei client in arrivo con la seguente riga:Kit di base per principianti LAFVIN ESP32 - loopQuando si riceve una richiesta da un client, salveremo i dati in arrivo. Il ciclo while che segue sarà in esecuzione finché il client rimane connesso. Non consigliamo di modificare la parte seguente del codice a meno che non si sappia esattamente cosa si sta facendo.Kit di base per l'avviamento LAFVIN ESP32 - esattamenteKit di base per principianti LAFVIN ESP32 - esattamente 1Kit di base per principianti LAFVIN ESP32 - esattamente 2La sezione successiva delle istruzioni if ​​ed else controlla quale pulsante è stato premuto nel tuo web pagina, e controlla gli output di conseguenza. Come abbiamo visto in precedenza, facciamo una richiesta su diversi URLa seconda del pulsante premuto.Kit di base per l'avviamento LAFVIN ESP32 - pulsante premutoKit di base di avviamento LAFVIN ESP32 - pulsante premuto 1Per esempioample, se hai premuto il pulsante GPIO 26 ON, l'ESP32 riceve una richiesta sul /26/ON URL (possiamo vedere che queste informazioni sono nell'intestazione HTTP sul Serial Monitor). Quindi, possiamo controllare se l'intestazione contiene l'espressione GET /26/on. Se contiene, cambiamo la variabile output26state in ON e l'ESP32 accende il LED.
Funziona in modo simile per gli altri pulsanti. Quindi, se vuoi aggiungere più output, dovresti modificare questa parte del codice per includerli.
Visualizzazione dell'HTML web pagina
La prossima cosa che devi fare è creare il web pagina. L'ESP32 invierà una risposta al tuo browser con del codice HTML per costruire la web pagina.
IL web la pagina viene inviata al client usando questo expressing client.println(). Dovresti inserire cosa vuoi inviare al client come argomento.
La prima cosa che dovremmo inviare è sempre la riga seguente, che indica che stiamo inviando HTML.LAFVIN ESP32 Basic Starter Kit - invio HTMLQuindi, la seguente riga rende il web pagina reattiva in qualsiasi web browser.Kit di base per principianti LAFVIN ESP32 - web navigatoreE quanto segue viene utilizzato per impedire richieste sulla favicon. – Non devi preoccuparti di questa riga.Kit di base per l'avvio di LAFVIN ESP32 - client.println

Stile del Web Pagina

Successivamente, abbiamo del testo CSS per definire lo stile dei pulsanti e web aspetto della pagina.
Scegliamo il font Helvetica, definiamo il contenuto da visualizzare come un blocco e lo allineiamo al centro.Kit di base per principianti LAFVIN ESP32 - Stile del Web PaginaDiamo uno stile ai nostri pulsanti con il colore #4CAF50, senza bordo, testo in bianco e con questa spaziatura: 16px 40px. Impostiamo anche text-decoration su none, definiamo la dimensione del carattere, il margine e il cursore su un puntatore.Kit di base per principianti LAFVIN ESP32 - puntatoreDefiniamo anche lo stile per un secondo pulsante, con tutte le proprietà del pulsante che abbiamo definito in precedenza, ma con un colore diverso. Questo sarà lo stile per il pulsante off.Kit di base per principianti LAFVIN ESP32 - client.println 1

Impostazione del Web Pagina prima intestazione
Nella riga successiva puoi impostare la prima intestazione del tuo web pagina. Qui abbiamo “ESP32 Web Server", ma puoi modificare questo testo come preferisci.Kit di base per principianti LAFVIN ESP32 - Web Intestazione della paginaVisualizzazione dei pulsanti e dello stato corrispondente
Poi, scrivi un paragrafo per visualizzare lo stato attuale del GPIO 26. Come puoi vedere, utilizziamo la variabile output26State, in modo che lo stato si aggiorni istantaneamente quando questa variabile cambia.Kit di base LAFVIN ESP32 - modifiche variabiliQuindi, visualizziamo il pulsante on o off, a seconda dello stato corrente del GPIO. Se lo stato corrente del GPIO è off, visualizziamo il pulsante ON, altrimenti visualizziamo il pulsante OFF.Kit di base per l'avviamento LAFVIN ESP32 - visualizza il pulsante OFFUtilizziamo la stessa procedura per GPIO 27.
Chiusura della connessione
Infine, quando la risposta termina, cancelliamo la variabile di intestazione e interrompiamo la connessione con il client con client.stop().Kit di base per l'avvio LAFVIN ESP32 - Chiusura della connessione

Conclusione

In questo tutorial ti abbiamo mostrato come costruire un web server con ESP32. Vi abbiamo mostrato un semplice esempioample che controlla due LED, ma l'idea è di sostituire quei LED con un relè o qualsiasi altra uscita che si desidera controllare.

Progetto 6 RGB LED Web Server

In questo progetto ti mostreremo come controllare da remoto un LED RGB con una scheda ESP32 utilizzando un web server con selettore colore.
Progetto finitoview
Prima di iniziare, vediamo come funziona questo progetto:Kit di base per l'avviamento LAFVIN ESP32 - Progetto terminatoview

  • L'ESP32 web il server visualizza un selettore colore.
  • Quando scegli un colore, il tuo browser effettua una richiesta su un URL che contiene i parametri R, G e B del colore selezionato.
  • L'ESP32 riceve la richiesta e suddivide il valore per ciascun parametro colore.
  • Quindi invia un segnale PWM con il valore corrispondente ai GPIO che controllano il LED RGB.

Come funzionano i LED RGB?
In un LED RGB a catodo comune, tutti e tre i LED condividono una connessione negativa (catodo). Tutti i LED inclusi nel kit sono RGB a catodo comune.Kit di base per principianti LAFVIN ESP32 - I LED RGB funzionanoCome creare colori diversi?
Con un LED RGB puoi, naturalmente, produrre luce rossa, verde e blu e, configurando l'intensità di ciascun LED, puoi produrre anche altri colori.
Per esempioample, per produrre pura luce blu, imposteresti il ​​LED blu alla massima intensità e i LED verde e rosso alla minima intensità. Per una luce bianca, imposteresti tutti e tre i LED alla massima intensità.
Mescolare i colori
Per produrre altri colori, puoi combinare i tre colori in diverse intensità. Per regolare l'intensità di ogni LED puoi usare un segnale PWM.
Poiché i LED sono molto vicini tra loro, i nostri occhi vedono il risultato della combinazione dei colori, anziché i tre colori singolarmente.
Per avere un'idea di come abbinare i colori, date un'occhiata alla seguente tabella.
Questa è la tabella di miscelazione dei colori più semplice, ma fornisce un'idea di come funziona e di come produrre colori diversi.Kit di base per principianti LAFVIN ESP32 - diversi coloriParti richieste
Per questo progetto sono necessari i seguenti componenti:

  • Scheda ESP32 DEVKIT V1
  • LED RGB
  • 3 resistenze da 220 ohm
  • Fili di collegamento
  • Tagliere

SchemaKit di base per principianti LAFVIN ESP32 - SchemaCodice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).

  • Installazione del componente aggiuntivo ESP32 nell'IDE Arduino

Dopo aver assemblato il circuito, apri il codice
Progetto_6_RGB_LED_Web_Server.ino nell'IDE Arduino.
Prima di caricare il codice, non dimenticare di inserire le credenziali di rete in modo che l'ESP possa connettersi alla tua rete locale.Kit di base LAFVIN ESP32 - rete localeCome funziona il codice
Lo sketch ESP32 utilizza la libreria WiFi.h.Kit di base per principianti LAFVIN ESP32 - Libreria WiFi.hLe righe seguenti definiscono le variabili stringa per contenere i parametri R, G e B dalla richiesta.Kit di base per principianti LAFVIN ESP32 - String redStringLe quattro variabili successive vengono utilizzate per decodificare in seguito la richiesta HTTP.Kit di base per principianti LAFVIN ESP32 - Richiesta HTTPCrea tre variabili per i GPIO che controlleranno i parametri R, G e B della striscia. In questo caso stiamo usando GPIO 13, GPIO 12 e GPIO 14.Kit di base per principianti LAFVIN ESP32 - Necessità di GPIOQuesti GPIO devono emettere segnali PWM, quindi dobbiamo prima configurare le proprietà PWM. Imposta la frequenza del segnale PWM a 5000 Hz. Quindi, associa un canale PWM per ogni coloreKit di base LAFVIN ESP32 - ogni coloreE infine, imposta la risoluzione dei canali PWM a 8 bitKit di base per principianti LAFVIN ESP32 - Canali PWMNel setup(), assegna le proprietà PWM ai canali PWMKit di base per principianti LAFVIN ESP32 - Canali PWMCollegare i canali PWM ai GPIO corrispondentiKit di base per principianti LAFVIN ESP32 - GPIO corrispondentiLa seguente sezione di codice visualizza il selettore colore nel tuo web pagina e fa una richiesta in base al colore che hai scelto.Kit di base di avviamento LAFVIN ESP32 - sceltoKit di base per l'avvio di LAFVIN ESP32 - client.printlnKit di base per principianti LAFVIN ESP32 - client.println 1Quando scegli un colore, ricevi una richiesta con il seguente formato.Kit di base per l'avviamento LAFVIN ESP32 - formato seguente

Quindi, dobbiamo dividere questa stringa per ottenere i parametri R, G e B. I parametri vengono salvati nelle variabili redString, greenString e blueString e possono avere valori compresi tra 0 e 255.Kit di base per l'avviamento LAFVIN ESP32 - intestazioneKit di base per l'avviamento LAFVIN ESP32 - intestazione 1Per controllare la striscia con ESP32, utilizzare la funzione ledcWrite() per generare segnali PWM con i valori decodificati dall'HTTP richiesta.Kit di base per l'avvio LAFVIN ESP32 - Richiesta HTTP 1Nota: Scopri di più su PWM con ESP32: Progetto 3 ESP32 PWM (uscita analogica)
Per controllare la striscia con l'ESP8266, dobbiamo solo usare
la funzione analogWrite() per generare segnali PWM con i valori decodificati dalla richiesta HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Poiché otteniamo i valori in una variabile stringa, dobbiamo convertirli in numeri interi utilizzando il metodo toInt().
Dimostrazione
Dopo aver inserito le credenziali di rete, seleziona la scheda e la porta COM corrette e carica il codice sul tuo ESP32. Carica i passaggi di riferimento del codice.
Dopo l'upload, apri il Serial Monitor a una velocità in baud di 115200 e premi il pulsante ESP Enable/Reset. Dovresti ottenere l'indirizzo IP della scheda.Kit di base per principianti LAFVIN ESP32 - stessa LANApri il tuo browser e inserisci l'indirizzo IP ESP. Ora, usa il selettore colore per scegliere un colore per il LED RGB.
Quindi, è necessario premere il pulsante "Cambia colore" affinché il colore abbia effetto.Kit di base per principianti LAFVIN ESP32 - LED RGBPer spegnere il LED RGB, selezionare il colore nero.
I colori più forti (nella parte superiore del selettore colori) sono quelli che produrranno risultati migliori.Kit di base per principianti LAFVIN ESP32: risultati migliori

Progetto 7 ESP32 Relay Web Server

Utilizzare un relè con l'ESP32 è un ottimo modo per controllare gli elettrodomestici AC da remoto. Questo tutorial spiega come controllare un modulo relè con l'ESP32.
Daremo un'occhiata al funzionamento di un modulo relè, a come collegare il relè all'ESP32 e a come costruirne uno web server per controllare un relè da remoto.
Introduzione ai relè
Un relè è un interruttore azionato elettricamente e, come qualsiasi altro interruttore, può essere acceso o spento, lasciando passare la corrente o meno. Può essere controllato con bassa voltages, come i 3.3 V forniti dai GPIO ESP32 e ci consentono di controllare alti volumitagcome 12V, 24V o tensione di retetage (230 V in Europa e 120 V negli Stati Uniti).Kit di base per principianti LAFVIN ESP32 - Introduzione ai relèSul lato sinistro, ci sono due serie di tre prese per collegare l'alto volumetages, e i pin sul lato destro (basso volumetage) connettersi ai GPIO ESP32.
Volume di retetage ConnessioniKit di base per principianti LAFVIN ESP32 - Mains Voltage ConnessioniIl modulo relè mostrato nella foto precedente ha due connettori, ciascuno con tre prese: comune (COM), normalmente chiuso (NC) e normalmente aperto (NO).

  • COM: collega la corrente che vuoi controllare (tensione di retetagE).
  • NC (Normalmente chiuso): la configurazione normalmente chiusa viene utilizzata quando si desidera che il relè sia chiuso per impostazione predefinita. I pin NC sono COM collegati, il che significa che la corrente scorre a meno che non si invii un segnale dall'ESP32 al modulo relè per aprire il circuito e interrompere il flusso di corrente.
  • NO (normalmente aperto): la configurazione normalmente aperta funziona al contrario: non c'è connessione tra i pin NO e COM, quindi il circuito è interrotto a meno che non si invii un segnale dall'ESP32 per chiuderlo.

Pin di controlloKit di base per principianti LAFVIN ESP32 - Pin di controlloIl basso volumetagIl lato ha un set di quattro pin e un set di tre pin. Il primo set è composto da VCC e GND per alimentare il modulo, e input 1 (IN1) e input 2 (IN2) per controllare rispettivamente i relè inferiore e superiore.
Se il tuo modulo relè ha un solo canale, avrai un solo pin IN. Se hai quattro canali, avrai quattro pin IN e così via.
Il segnale che invii ai pin IN determina se il relè è attivo o meno. Il relè viene attivato quando l'input scende sotto circa 2V. Ciò significa che avrai i seguenti scenari:

  • Configurazione normalmente chiusa (NC):
  • Segnale ALTO – la corrente scorre
  • Segnale BASSO: la corrente non scorre
  • Configurazione normalmente aperta (NO):
  • Segnale ALTO: la corrente non scorre
  • Segnale BASSO – corrente in flusso

Si dovrebbe usare una configurazione normalmente chiusa quando la corrente deve scorrere per la maggior parte del tempo e si desidera interromperla solo occasionalmente.
Utilizzare una configurazione normalmente aperta quando si desidera che la corrente scorra occasionalmente (ad esempioample, accendi tuttoamp occasionalmente).
Selezione dell'alimentazioneKit di base per principianti LAFVIN ESP32 - Selezione dell'alimentatoreIl secondo set di pin è costituito dai pin GND, VCC e JD-VCC.
Il pin JD-VCC alimenta l'elettromagnete del relè. Nota che il modulo ha un cappuccio jumper che collega i pin VCC e JD-VCC; quello mostrato qui è giallo, ma il tuo potrebbe essere di un colore diverso.
Con il cappuccio del jumper inserito, i pin VCC e JD-VCC sono collegati. Ciò significa che l'elettromagnete del relè è alimentato direttamente dal pin di alimentazione dell'ESP32, quindi il modulo relè e i circuiti dell'ESP32 non sono fisicamente isolati l'uno dall'altro.
Senza il jumper cap, è necessario fornire una fonte di alimentazione indipendente per alimentare l'elettromagnete del relè tramite il pin JD-VCC. Questa configurazione isola fisicamente i relè dall'ESP32 con l'optoaccoppiatore integrato del modulo, che impedisce danni all'ESP32 in caso di picchi elettrici.
SchemaKit di base per principianti LAFVIN ESP32 - SchemaAvvertimento: Utilizzo di alto volumetagGli alimentatori possono causare gravi lesioni.
Pertanto, vengono utilizzati LED da 5 mm al posto di quelli ad alta tensione di alimentazionetage lampadine nell'esperimento. Se non hai familiarità con la tensione di retetage chiedi a qualcuno che può aiutarti. Mentre programmi l'ESP o cabli il tuo circuito assicurati che tutto sia scollegato dalla rete elettricatage.Kit di base per principianti LAFVIN ESP32 - volume di retetageInstallazione della libreria per ESP32
Per costruire questo web server, utilizziamo ESPAsyncWebLibreria server e libreria AsyncTCP.
Installazione di ESPAsyncWebLibreria del server
Segui i passaggi successivi per installare il Sincronizzazione ESPAWebServer biblioteca:

  1. Clicca qui per scaricare ESPAsyncWebLibreria server. Dovresti avere
    una cartella .zip nella cartella Download
  2. Decomprimi la cartella .zip e dovresti ottenere ESPAsyncWebCartella server-master
  3. Rinomina la tua cartella da ESPAsyncWebServer-master per ESPAsyncWebServer
  4. Spostare ESPAsyncWebCartella del server nella cartella delle librerie di installazione dell'IDE Arduino

In alternativa, nel tuo IDE Arduino, puoi andare su Sketch > Includi
Libreria > Aggiungi libreria .ZIP… e seleziona la libreria che hai appena scaricato.
Installazione della libreria AsyncTCP per ESP32
IL Sincronizzazione ESPAWebServer la biblioteca richiede la AsincronoTCP biblioteca per lavorare. Segui
i prossimi passi per installare quella libreria:

  1. Fai clic qui per scaricare la libreria AsyncTCP. Dovresti avere una cartella .zip nella tua cartella Downloads
  2. Decomprimi la cartella .zip e dovresti ottenere la cartella AsyncTCP-master
    1. Rinomina la tua cartella da AsyncTCP-master ad AsyncTCP
    3. Sposta la cartella AsyncTCP nella cartella delle librerie di installazione dell'IDE Arduino
    4. Infine, riapri il tuo IDE Arduino

In alternativa, nel tuo IDE Arduino, puoi andare su Sketch > Includi
Libreria > Aggiungi libreria .ZIP… e seleziona la libreria che hai appena scaricato.
Codice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Dopo aver installato le librerie richieste, aprire il codice Project_7_ESP32_Relay_Web_Server.ino nell'IDE Arduino.
Prima di caricare il codice, non dimenticare di inserire le credenziali di rete in modo che l'ESP possa connettersi alla tua rete locale.Kit di base per principianti LAFVIN ESP32 - rete localeDimostrazione
Dopo aver apportato le modifiche necessarie, carica il codice nei passaggi di riferimento del codice ESP32.Upload.
Aprire il monitor seriale a una velocità in baud di 115200 e premere il pulsante ESP32 EN per ottenere il suo indirizzo IP. Quindi, aprire un browser nella rete locale e digitare l'indirizzo IP ESP32 per accedere a web server.
Aprire il monitor seriale a una velocità in baud di 115200 e premere il pulsante ESP32 EN per ottenere il suo indirizzo IP. Quindi, aprire un browser nella rete locale e digitare l'indirizzo IP ESP32 per accedere a web server.Kit di base per principianti LAFVIN ESP32 - web serverNota: Il browser e l'ESP32 devono essere connessi alla stessa LAN.
Dovresti ottenere qualcosa del genere, con due pulsanti quanti sono i relè definiti nel codice.Kit di base per principianti LAFVIN ESP32 - smartphoneOra puoi usare i pulsanti per controllare i tuoi relè tramite il tuo smartphone.Kit di base di avviamento LAFVIN ESP32 - smartphone 1

Progetto_8_Sincronizzazione_dello_stato_di_output_ Web_Server

Questo progetto mostra come controllare le uscite ESP32 o ESP8266 utilizzando un web server e un pulsante fisico contemporaneamente. Lo stato di output viene aggiornato sul web pagina se viene modificata tramite pulsante fisico o web server.
Progetto finitoview
Diamo un'occhiata veloce al funzionamento del progetto.Kit di base per l'avviamento LAFVIN ESP32 - Progetto terminatoviewL'ESP32 o ESP8266 ospita un web server che consente di controllare lo stato di un output;

  • Lo stato di uscita corrente viene visualizzato su web server;
  • L'ESP è anche collegato a un pulsante fisico che controlla la stessa uscita;
  • Se si modifica lo stato dell'output utilizzando il pulsante fisico, anche il suo stato corrente viene aggiornato sul web server.

In sintesi, questo progetto consente di controllare lo stesso output utilizzando un web server e un pulsante contemporaneamente. Ogni volta che cambia lo stato di output, il web il server è aggiornato.
Parti richieste
Ecco un elenco dei componenti necessari per costruire il circuito:

  • Scheda ESP32 DEVKIT V1
  • LED da 5 mm
  • Resistenza da 220 Ohm
  • Premi il bottone
  • Resistenza da 10kOhm
  • Tagliere
  • Fili di collegamento

SchemaKit di base di avviamento LAFVIN ESP32 - Schema 1Installazione della libreria per ESP32
Per costruire questo web server, utilizziamo ESPAsyncWebLibreria server e libreria AsyncTCP. (Se hai già eseguito questo passaggio, puoi passare al passaggio successivo.)
Installazione di ESPAsyncWebLibreria del server
Segui i passaggi successivi per installare ESPAsyncWebLibreria server:

  1. Clicca qui per scaricare ESPAsyncWebLibreria server. Dovresti avere
    una cartella .zip nella cartella Download
  2. Decomprimi la cartella .zip e dovresti ottenere ESPAsyncWebCartella server-master
  3. Rinomina la tua cartella da ESPAsyncWebServer-master per ESPAsyncWebServer
  4. Spostare ESPAsyncWebCartella del server nella cartella delle librerie di installazione dell'IDE Arduino
    In alternativa, nel tuo IDE Arduino, puoi andare su Sketch > Includi
    Libreria > Aggiungi libreria .ZIP… e seleziona la libreria che hai appena scaricato.

Installazione della libreria AsyncTCP per ESP32
L'ESPAsyncWebLa libreria server richiede la libreria AsyncTCP per funzionare. Segui i passaggi successivi per installare quella libreria:

  1. Fai clic qui per scaricare la libreria AsyncTCP. Dovresti avere una cartella .zip nella tua cartella Downloads
  2. Decomprimi la cartella .zip e dovresti ottenere la cartella AsyncTCP-master
  3. Rinomina la tua cartella da AsyncTCP-master ad AsyncTCP
  4. Sposta la cartella AsyncTCP nella cartella delle librerie di installazione dell'IDE Arduino
  5. Infine, riapri il tuo IDE Arduino
    In alternativa, nel tuo IDE Arduino, puoi andare su Sketch > Includi
    Libreria > Aggiungi libreria .ZIP… e seleziona la libreria che hai appena scaricato.

Codice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Dopo aver installato le librerie richieste, apri il codice
Progetto_8_Sincronizzazione_dello_stato_di_output_Web_Server.ino nell'IDE Arduino.
Prima di caricare il codice, non dimenticare di inserire le credenziali di rete in modo che l'ESP possa connettersi alla tua rete locale.Kit di base per l'avvio LAFVIN ESP32 - Codice

Come funziona il codice

Stato del pulsante e stato dell'output
La variabile ledState contiene lo stato di output del LED. Per impostazione predefinita, quando web all'avvio del server, è BASSO.Kit di base per principianti LAFVIN ESP32 - Code Works

buttonState e lastButtonState vengono utilizzati per rilevare se il pulsante è stato premuto o meno.LAFVIN ESP32 Basic Starter Kit - è stato premutoPulsante (web server)
Non abbiamo incluso l'HTML per creare il pulsante nella variabile index_html.
Questo perché vogliamo poterlo modificare in base allo stato attuale del LED, che può essere modificato anche tramite il pulsante.
Abbiamo quindi creato un segnaposto per il pulsante %BUTTONPLACEHOLDER% che verrà sostituito con del testo HTML per creare il pulsante in seguito nel codice (ciò avviene nella funzione processor()).Kit di base per l'avviamento LAFVIN ESP32 - è stato premuto 1processore()
La funzione processor() sostituisce tutti i segnaposto nel testo HTML con valori effettivi. Innanzitutto, controlla se i testi HTML contengono
segnaposto %BUTTONPLACEHOLDER%.Kit di base per principianti LAFVIN ESP32 - processoreQuindi, chiama la funzione outputState() che restituisce lo stato di output corrente. Lo salviamo nella variabile outputStateValue.Kit di base per principianti LAFVIN ESP32 - outputStateDopodiché, utilizza quel valore per creare il testo HTML per visualizzare il pulsante con lo stato corretto:Kit di base di avviamento LAFVIN ESP32 - codice 4Richiesta HTTP GET per modificare lo stato di output (JavaScript)
Quando si preme il pulsante, viene chiamata la funzione toggleCheckbox(). Questa funzione effettuerà una richiesta su diversi URLs per accendere o spegnere il LED.Kit di base per principianti LAFVIN ESP32 - JavaScriptPer accendere il LED, effettua una richiesta su /update?state=1 URL:Kit di base per principianti LAFVIN ESP32 - element.checkedAltrimenti, effettua una richiesta su /update?state=0 URL.
Richiesta HTTP GET per aggiornare lo stato (JavaScript)
Per mantenere aggiornato lo stato dell'output su web server, chiamiamo la seguente funzione che effettua una nuova richiesta sullo /state URL ogni secondo.Kit di base per l'avvio LAFVIN ESP32 - Stato di aggiornamentoKit di base per l'avvio LAFVIN ESP32 - Stato di aggiornamento 1Gestire le richieste
Quindi, dobbiamo gestire cosa succede quando ESP32 o ESP8266 riceve richieste su questi URLs.
Quando viene ricevuta una richiesta sulla radice /URL, inviamo sia la pagina HTML che il processore.Kit di base per principianti LAFVIN ESP32 - Gestisci le richiesteKit di base per principianti LAFVIN ESP32 - Gestisci richieste 1Le seguenti righe verificano se hai ricevuto una richiesta su /update?state=1 o /update?state=0 URL e modifica di conseguenza ledState.Kit di base per principianti LAFVIN ESP32 - ledStateKit di base per principianti LAFVIN ESP32 - inputParamQuando viene ricevuta una richiesta sullo /stato URL, inviamo lo stato di output corrente:Kit di base per principianti LAFVIN ESP32 - stato di uscitaciclo continuo()
Nel loop(), rimbalziamo il pulsante e accendiamo o spegniamo il LED a seconda del valore di ledState variabile.Kit di base per principianti LAFVIN ESP32 - loop 1Dimostrazione
Carica il codice sulla tua scheda ESP32. Carica i passaggi di riferimento del codice.
Quindi, aprire il monitor seriale a una velocità in baud di 115200. Premere il pulsante EN/RST integrato per ottenere l'indirizzo IP.Kit di base di avviamento LAFVIN ESP32 - DimostrazioneApri un browser sulla tua rete locale e digita l'indirizzo IP ESP. Dovresti avere accesso a web server come mostrato di seguito.
Nota: Il browser e l'ESP32 devono essere connessi alla stessa LAN.Kit di base per principianti LAFVIN ESP32 - browserÈ possibile attivare/disattivare il pulsante su web server per accendere il LED.Kit di base per principianti LAFVIN ESP32 - web Server 1Puoi anche controllare lo stesso LED con il pulsante fisico. Il suo stato verrà sempre aggiornato automaticamente sul web server.

Progetto 9 ESP32 DHT11 Web Server

In questo progetto imparerai come costruire un ESP32 asincrono web server con DHT11 che visualizza temperatura e umidità utilizzando Arduino IDE.
Prerequisiti
IL web il server che creeremo aggiornerà le letture automaticamente senza la necessità di aggiornare il web pagina.
Con questo progetto imparerai:

  • Come leggere la temperatura e l'umidità dai sensori DHT;
  • Costruisci un asincrono web server che utilizza il Sincronizzazione ESPAWebLibreria del server;
  • Aggiorna automaticamente le letture del sensore senza la necessità di aggiornare il web pagina.

Asincrono Web Server
Per costruire il web server useremo il Sincronizzazione ESPAWebLibreria del server che fornisce un modo semplice per costruire un asincrono web server. Creazione di un server asincrono web il server ha diversi vantaggitagcome menzionato nella pagina GitHub della biblioteca, come:

  • “Gestire più di una connessione contemporaneamente”;
  • "Quando invii la risposta, sei immediatamente pronto a gestire altre connessioni mentre il server si occupa di inviare la risposta in background";
  • “Semplice motore di elaborazione dei template per gestire i template”;

Parti richieste
Per completare questo tutorial sono necessarie le seguenti parti:

  • Scheda di sviluppo ESP32
  • Modulo DHT11
  • Tagliere
  • Fili di collegamento

SchemaKit di base di avviamento LAFVIN ESP32 - Schema 2Installazione delle librerie
Per questo progetto è necessario installare un paio di librerie:

Installazione della libreria del sensore DHT
Per leggere dal sensore DHT utilizzando Arduino IDE, è necessario installare Libreria di sensori DHTPer installare la libreria, seguire i passaggi successivi.

  1. Fai clic qui per scaricare la libreria DHT Sensor. Dovresti avere una cartella .zip nella cartella Downloads
  2. Decomprimi la cartella .zip e dovresti ottenere la cartella DHT-sensor-library-master
  3. Rinomina la tua cartella da DHT-sensor-library-master a DHT_sensor
  4. Sposta la cartella DHT_sensor nella cartella delle librerie di installazione dell'IDE Arduino
  5. Infine, riapri il tuo IDE Arduino

Installazione del driver del sensore unificato Adafruit
È inoltre necessario installare il Libreria driver sensore unificato Adafruit per lavorare con il sensore DHT. Segui i passaggi successivi per installare la libreria.

  1. Fai clic qui per scaricare la libreria Adafruit Unified Sensor. Dovresti avere una cartella .zip nella cartella Downloads
  2. Decomprimi la cartella .zip e dovresti ottenere la cartella Adafruit_sensor-master
  3. Rinomina la tua cartella da Adafruit_sensor-master a Adafruit_sensor
  4. Sposta la cartella Adafruit_sensor nella cartella delle librerie di installazione dell'IDE Arduino
  5. Infine, riapri il tuo IDE Arduino

Installazione di ESPAsyncWebLibreria del server

Segui i passaggi successivi per installare il Sincronizzazione ESPAWebServer biblioteca:

  1. Clicca qui per scaricare ESPAsyncWebLibreria server. Dovresti avere
    una cartella .zip nella cartella Download
  2. Decomprimi la cartella .zip e dovresti
    Ottieni ESPAsyncWebCartella server-master
  3. Rinomina la tua cartella da ESPAsyncWebServer-master per ESPAsyncWebServer
  4. Spostare ESPAsyncWebCartella del server nella cartella delle librerie di installazione dell'IDE Arduino

Installazione della libreria TCP asincrona per ESP32
IL Sincronizzazione ESPAWebServer la biblioteca richiede la AsincronoTCP libreria per funzionare. Segui i passaggi successivi per installare quella libreria:

  1. Fai clic qui per scaricare la libreria AsyncTCP. Dovresti avere una cartella .zip nella tua cartella Downloads
  2. Decomprimi la cartella .zip e dovresti ottenere la cartella AsyncTCP-master
  3. Rinomina la tua cartella da AsyncTCP-master ad AsyncTCP
  4. Sposta la cartella AsyncTCP nella cartella delle librerie di installazione dell'IDE Arduino
  5. Infine, riapri il tuo IDE Arduino

Codice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo).
Installazione del componente aggiuntivo ESP32 nell'IDE Arduino
Dopo aver installato le librerie richieste, apri il codice
Progetto_9_ESP32_DHT11_Web_Server.ino nell'IDE Arduino.
Prima di caricare il codice, non dimenticare di inserire le credenziali di rete in modo che l'ESP possa connettersi alla tua rete locale.Kit di base per l'avvio LAFVIN ESP32 - CodiceCome funziona il codice
Nei paragrafi seguenti spiegheremo come funziona il codice. Continua a leggere se vuoi saperne di più o passa alla sezione Dimostrazione per vedere il risultato finale.
Importazione di librerie
Per prima cosa, importa le librerie richieste. WiFi, ESPAsyncWebIl server e l'ESPAsyncTCP sono necessari per costruire il web server. Le librerie Adafruit_Sensor e DHT sono necessarie per leggere dai sensori DHT11 o DHT22.LAFVIN ESP32 Basic Starter Kit - Importazione di librerieKit di base per principianti LAFVIN ESP32 - Come funziona il codiceDefinizione delle variabili
Definisci il GPIO a cui è collegato il pin dati DHT. In questo caso, è collegato al GPIO 4.LAFVIN ESP32 Basic Starter Kit - Definizione delle variabiliQuindi, seleziona il tipo di sensore DHT che stai utilizzando. Nel nostro esempioample, stiamo usando il DHT22. Se stai usando un altro tipo, devi solo togliere il commento al tuo sensore e commentare tutti gli altri.LAFVIN ESP32 Basic Starter Kit - Definizione delle variabili 1

Crea un'istanza di un oggetto DHT con il tipo e il pin definiti in precedenza.LAFVIN ESP32 Basic Starter Kit - Definizione delle variabili 2Crea un AsyncWebOggetto server sulla porta 80.LAFVIN ESP32 Basic Starter Kit - Definizione delle variabili 3Leggi le funzioni di temperatura e umidità
Abbiamo creato due funzioni: una per leggere la temperatura (readDHTTemperature()) e l'altra per leggere l'umidità (readDHTHumidity()).Kit di base per principianti LAFVIN ESP32 - readDHTHumidityKit di base per principianti LAFVIN ESP32 - letture del sensoreOttenere le letture dei sensori è semplice come usare i metodi readTemperature() e readHumidity() sull'oggetto dht.Kit di base per l'avviamento LAFVIN ESP32 - oggettoAbbiamo anche una condizione che restituisce due trattini (–) nel caso in cui il sensore non riesca a ottenere le letture.Kit di base per principianti LAFVIN ESP32 - lettureLe letture vengono restituite come tipo stringa. Per convertire un float in una stringa, utilizzare la funzione String()Kit di base per principianti LAFVIN ESP32 - StringaDi default, stiamo leggendo la temperatura in gradi Celsius. Per ottenere la temperatura in gradi Fahrenheit, commenta la temperatura in gradi Celsius e rimuovi il commento dalla temperatura in gradi Fahrenheit, in modo da avere quanto segue:Kit di base per principianti LAFVIN ESP32 - FahrenheitKit di base di avviamento LAFVIN ESP32 - Fahrenheit 1Carica il codice
Ora, carica il codice sul tuo ESP32. Assicurati di aver selezionato la scheda e la porta COM corrette. Carica i passaggi di riferimento del codice.
Dopo l'upload, apri Serial Monitor a una velocità in baud di 115200. Premi il pulsante di reset ESP32. L'indirizzo IP ESP32 dovrebbe essere stampato nel seriale monitorare.Kit di base per l'avvio di LAFVIN ESP32 - Carica il codiceDimostrazione
Apri un browser e digita l'indirizzo IP ESP32. Il tuo web il server dovrebbe visualizzare le ultime letture dei sensori.
Nota: Il browser e l'ESP32 devono essere connessi alla stessa LAN.
Si noti che le letture della temperatura e dell'umidità vengono aggiornate automaticamente senza la necessità di aggiornare il web pagina.Kit di base di avviamento LAFVIN ESP32 - Dimostrazione 1

Progetto_10_ESP32_Display_OLED

Questo progetto mostra come utilizzare il display OLED SSD0.96 da 1306 pollici con ESP32 tramite Arduino IDE.
Presentazione del display OLED da 0.96 pollici
IL Schermo OLED Il modello che utilizzeremo in questo tutorial è SSD1306: un display monocromatico da 0.96 pollici con 128×64 pixel, come mostrato nella figura seguente.Kit di base per principianti LAFVIN ESP32 - OLEDDisplayIl display OLED non necessita di retroilluminazione, il che si traduce in un contrasto molto gradevole in ambienti bui. Inoltre, i suoi pixel consumano energia solo quando sono accesi, quindi il display OLED consuma meno energia rispetto ad altri display.
Poiché il display OLED utilizza il protocollo di comunicazione I2C, il cablaggio è molto semplice. È possibile utilizzare la seguente tabella come riferimento.

Perno OLED ESP32
Vino 3.3V
Terra Terra
SCL GPIO22
SDA GPIO21

SchemaKit di base per principianti LAFVIN ESP32 - SchemaInstallazione della libreria OLED SSD1306 – ESP32
Sono disponibili diverse librerie per controllare il display OLED con ESP32.
In questo tutorial utilizzeremo due librerie Adafruit: Libreria Adafruit_SSD1306 E Libreria Adafruit_GFX.
Per installare queste librerie, seguire i passaggi successivi.

  1. Apri il tuo IDE Arduino e vai su Sketch > Include Library > Manage Libraries. Il Library Manager dovrebbe aprirsi.
  2. Digitare “SSD1306” nella casella di ricerca e installare la libreria SSD1306 di Adafruit.Kit di base per principianti LAFVIN ESP32 - OLEDLibrary–
  3. Dopo aver installato la libreria SSD1306 di Adafruit, digitare "GFX" nella casella di ricerca e installare la libreria.Kit di base per l'avviamento LAFVIN ESP32 - biblioteca
  4. Dopo aver installato le librerie, riavvia l'IDE Arduino.

Codice
Dopo aver installato le librerie richieste, aprire il Project_10_ESP32_OLED_Display.ino nell'IDE Arduino. codice
Programmeremo l'ESP32 utilizzando Arduino IDE, quindi assicurati di aver installato il componente aggiuntivo ESP32 prima di procedere: (se hai già eseguito questo passaggio, puoi passare direttamente al passaggio successivo.)
Installazione del componente aggiuntivo ESP32 nell'IDE ArduinoKit di base di avviamento LAFVIN ESP32 - Codice 1Kit di base di avviamento LAFVIN ESP32 - Codice 2Kit di base di avviamento LAFVIN ESP32 - Codice 3Come funziona il codice
Importazione di librerie
Per prima cosa, devi importare le librerie necessarie. La libreria Wire per usare I2C e le librerie Adafruit per scrivere sul display: Adafruit_GFX e Adafruit_SSD1306.Kit di base per principianti LAFVIN ESP32 - Code Works 1Kit di base per principianti LAFVIN ESP32 - Code Works 2Inizializza il display OLED
Quindi, definisci la larghezza e l'altezza del tuo OLED. In questo esempioample, stiamo usando un display OLED 128×64. Se stai usando altre dimensioni, puoi cambiarle nelle variabili SCREEN_WIDTH e SCREEN_HEIGHT.Kit di base per principianti LAFVIN ESP32 - Display OLEDQuindi, inizializzare un oggetto di visualizzazione con la larghezza e l'altezza definite in precedenza con il protocollo di comunicazione I2C (&Wire).Kit di base per principianti LAFVIN ESP32 - protocollo di comunicazioneIl parametro (-1) significa che il tuo display OLED non ha un pin RESET. Se il tuo display OLED ha un pin RESET, dovrebbe essere collegato a un GPIO. In tal caso, dovresti passare il numero GPIO come parametro.
Nel setup(), inizializza il monitor seriale a una velocità di 115200 baud per scopi di debug.Kit di base per l'avviamento LAFVIN ESP32 - scopiInizializzare il display OLED con il metodo begin() come segue:Kit di base per l'avvio di LAFVIN ESP32 - display.beginKit di base per principianti LAFVIN ESP32 - Serial.printlnQuesto frammento stampa anche un messaggio sul monitor seriale, nel caso in cui non riuscissimo a connetterci al display.

Kit di base per principianti LAFVIN ESP32 - Serial.println 1Nel caso in cui si utilizzi un display OLED diverso, potrebbe essere necessario modificare l'indirizzo OLED. Nel nostro caso, l'indirizzo è 0x3C.Kit di base per l'avviamento LAFVIN ESP32 - indirizzoDopo aver inizializzato il display, aggiungere un ritardo di due secondi, in modo che l'OLED abbia abbastanza tempo per inizializzarsi prima di scrivere il testo:Kit di base per principianti LAFVIN ESP32 - ritardoDisplay chiaro, imposta dimensione carattere, colore e scrivi testo
Dopo aver inizializzato il display, cancellare il buffer di visualizzazione con il metodo clearDisplay():Kit di base per principianti LAFVIN ESP32 - display

Prima di scrivere il testo, è necessario impostare la dimensione del testo, il colore e la posizione in cui verrà visualizzato sull'OLED.
Imposta la dimensione del carattere utilizzando il metodo setTextSize():Kit di base per l'avviamento LAFVIN ESP32 - display 1Imposta il colore del carattere con il metodo setTextColor():
BIANCO imposta il carattere bianco e lo sfondo nero.
Definisci la posizione in cui inizia il testo usando il metodo setCursor(x,y). In questo caso, stiamo impostando il testo in modo che inizi alle coordinate (0,0), nell'angolo in alto a sinistra.Kit di base per principianti LAFVIN ESP32 - setTextColor 1Infine, puoi inviare il testo al display utilizzando il metodo println(), come segueKit di base di avviamento LAFVIN ESP32 - codice 5Quindi, è necessario chiamare il metodo display() per visualizzare effettivamente il testo sullo schermo.Kit di base per principianti LAFVIN ESP32 - display

La libreria OLED di Adafruit fornisce metodi utili per scorrere facilmente il testo.

  • startscrollright(0x00, 0x0F): scorre il testo da sinistra a destra
  • startscrollleft(0x00, 0x0F): scorre il testo da destra a sinistra
  • startscrolldiagright(0x00, 0x07): scorre il testo dall'angolo in basso a sinistra all'angolo in alto a destra startscrolldiagleft(0x00, 0x07): scorre il testo dall'angolo in basso a destra all'angolo in alto a sinistra

Carica il codice
Ora carica il codice nei passaggi di riferimento del codice ESP32.Upload.
Dopo aver caricato il codice, l'OLED visualizzerà del testo scorrevole.Kit di base per principianti LAFVIN ESP32 - testo scorrevoleLogo LAFVIN

Documenti / Risorse

Kit di base per principianti LAFVIN ESP32 [pdf] Manuale di istruzioni
Kit di base per principianti ESP32, ESP32, Kit di base per principianti, Kit di base per principianti

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *