ESP32 Basic Starter
Kit
Lista di imballaggio
Introduzione ESP32
Novu à ESP32? Cuminciate quì! L'ESP32 hè una serie di microcontrollers System on a Chip (SoC) di pocu costu è di bassa putenza sviluppati da Espressif chì includenu capacità wireless Wi-Fi è Bluetooth è processore dual-core. Sè vo site familiarizatu cù l'ESP8266, l'ESP32 hè u so successore, carricu di parechje funziunalità novi.Specificazioni ESP32
Se vulete ottene un pocu più tecnicu è specificu, pudete piglià un ochju à e seguenti specificazioni dettagliate di l'ESP32 (fonte: http://esp32.net/) - per più dettagli, verificate a datasheet):
- Connettività wireless WiFi: 150.0 Mbps data rate cù HT40
- Bluetooth: BLE (Bluetooth Low Energy) è Bluetooth Classic
- Processore: Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor, running at 160 or 240 MHz
- Memoria:
- ROM: 448 KB (per l'avvio è funzioni core)
- SRAM: 520 KB (per dati è istruzioni)
- RTC fas SRAM: 8 KB (per u almacenamentu di dati è CPU principale durante u RTC Boot da u modu di sonnu profondu)
- RTC slow SRAM: 8KB (per l'accessu di co-processore durante u modu di sonnu profondu) eFuse: 1 Kbit (di quale 256 bit sò usati per u sistema (indirizzu MAC è cunfigurazione di chip) è i 768 bit restante sò riservati per l'applicazioni di i clienti, cumprese Crittografia Flash è Chip-ID)
Flash integratu: flash cunnessu internamente via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 è SD_DATA_1 nantu à ESP32-D2WD è ESP32-PICO-D4.
- 0 MiB (chips ESP32-D0WDQ6, ESP32-D0WD è ESP32-S0WD)
- 2 MiB (chip ESP32-D2WD)
- 4 MiB (modulu SiP ESP32-PICO-D4)
Low Power: assicura chì pudete sempre aduprà cunversione ADC, per example, durante u sonnu prufondu.
Input / Output perifericu:
- interfaccia periferica cù DMA chì include u toccu capacitivu
- Convertitore analogico-digitale (ADC)
- DAC (Convertitore Digitale-Analogicu)
- I²C (Circuit Inter-Integrated)
- UART (Ricevitore / Trasmettitore asincronu universale)
- SPI (Interfaccia periferica seriale)
- I²S (Sound Interchip Integrated)
- RMII (Interfaccia Indipendente da Media Ridotta)
- PWM (Modulazione di larghezza di impulsu)
Sicurezza: acceleratori hardware per AES è SSL / TLS
Cunsigliu di sviluppu ESP32
ESP32 si riferisce à u chip ESP32 nudu. Tuttavia, u terminu "ESP32" hè ancu usatu per riferite à i schede di sviluppu ESP32. L'usu di chips nudi ESP32 ùn hè micca faciule o praticu, soprattuttu quandu l'apprenu, a prova è a prototipazione. A maiò parte di u tempu, vi vulete aduprà una scheda di sviluppu ESP32.
Seremu aduprà a scheda ESP32 DEVKIT V1 cum'è riferimentu. A stampa sottu mostra a scheda ESP32 DEVKIT V1, versione cù pins 30 GPIO.Specificazioni - ESP32 DEVKIT V1
A tabella seguente mostra un riassuntu di e caratteristiche è e specificazioni di a scheda ESP32 DEVKIT V1 DOIT:
Numero di core | 2 (dual core) |
Wi-Fi | 2.4 GHz finu à 150 Mbits/s |
Bluetooth | BLE (Bluetooth Low Energy) è Bluetooth legatu |
Architettura | 32 bits |
Frequenza di u clock | Finu à 240 MHz |
RAM | 512 KB |
Pins | 30 (secondu u mudellu) |
periferiche | Touch capacitivu, ADC (convertitore analogicu à digitale), DAC (convertitore digitale à analogicu), 12C (Circuit Inter-Integrated), UART (ricevitore / trasmettitore asincronu universale), CAN 2.0 (Controller Area Network), SPI (Interfaccia periferica seriale) , 12S (Inter-IC integratu Sound), RMII (Reduced Media-Independent Interface), PWM (modulazione di larghezza di impulsu), è più. |
Buttuni integrati | Pulsanti RESET è BOOT |
LED integrati | LED blu integratu cunnessu à GPIO2; LED rossu integratu chì mostra chì a scheda hè alimentata |
USB à UART ponte |
CP2102 |
Veni cun una interfaccia microUSB chì pudete aduprà per cunnette u bordu à u vostru urdinatore per carica u codice o applicà u putere.
Utilizà u chip CP2102 (USB à UART) per cumunicà cù u vostru urdinatore attraversu un portu COM utilizendu una interfaccia seriale. Un altru chip populari hè u CH340. Verificate quale hè u cunvertitore di chip USB à UART in u vostru bordu perchè avete bisognu di stallà i drivers necessarii per chì u vostru urdinatore pò cumunicà cù a scheda (più infurmazione nantu à questu più tardi in sta guida).
Questa scheda vene ancu cun un buttone RESET (pò esse marcatu EN) per riavvia a scheda è un buttone BOOT per mette a scheda in modalità lampeggiante (disponibile per riceve codice). Nota chì certi tavulini ùn anu micca un buttone BOOT.
Hè ancu cun un LED blu integratu chì hè cunnessu internamente à GPIO 2. Stu LED hè utile per debugging per dà una sorta di output fisicu visuale. Ci hè ancu un LED rossu chì si accende quandu furnisce u putere à u bordu.Pinout ESP32
I periferichi ESP32 includenu:
- 18 canali Convertitore analogicu à digitale (ADC).
- 3 interfacce SPI
- 3 interfacce UART
- 2 interfacce I2C
- 16 canali di output PWM
- 2 Convertitori da digitale à analogicu (DAC)
- 2 interfacce I2S
- 10 GPIO di rilevazione capacitiva
E caratteristiche ADC (convertitore analogicu à digitale) è DAC (convertitore digitale à analogicu) sò attribuite à pin statichi specifichi. Tuttavia, pudete decide chì pins sò UART, I2C, SPI, PWM, etc. - basta à assignà in u codice. Questu hè pussibule per via di a funzione di multiplexing di u chip ESP32.
Ancu s'ellu pudete definisce e proprietà di pins nantu à u software, ci sò pins assignati per difettu cum'è mostra in a figura seguenteInoltre, ci sò pins cù caratteristiche specifiche chì li facenu adattati o micca per un prughjettu particulari. A tavula seguente mostra quali pins sò megliu aduprà cum'è inputs, outputs è quelli chì avete bisognu à esse prudente.
I pins evidenziati in verde sò bè da utilizà. Quelli evidenziati in giallu sò bè per utilizà, ma avete bisognu di attentu perchè ponu avè un cumpurtamentu inesperu principarmenti à u boot. I pins evidenziati in rossu ùn sò micca cunsigliatu per utilizà cum'è inputs o outputs.
GP IO | Input | Output | Notes |
0 | tiratu in su | OK | emette un signalu PWM à u boot, deve esse BASSU per entre in u modu lampeggiante |
1 | pin TX | OK | debug output à u boot |
2 | OK | OK | cunnessu à u LED di bordu, deve esse lasciatu flottante o BASSU per entra in u modu lampeggiante |
3 | OK | pin RX | HIGH in boot |
4 | OK | OK | |
5 | OK | OK | emette un signalu PWM à u boot, pin strapping |
12 | OK | OK | stivali falla se tiratu altu, strapping pin |
13 | OK | OK | |
14 | OK | OK | emette un signalu PWM à u boot |
15 | OK | OK | emette un signalu PWM à u boot, pin strapping |
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 | input solu | |
35 | OK | input solu | |
36 | OK | input solu | |
39 | OK | input solu |
Cuntinuà a leghje per un analisi più detallatu è approfonditu di l'ESP32 GPIO è e so funzioni.
Ingressu solu pins
I GPIO da 34 à 39 sò GPI - input solu pins. Questi pin ùn anu micca resistori interni di pull-up o pull-down. Ùn ponu micca esse aduprati cum'è outputs, cusì utilizate questi pins solu cum'è inputs:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
Flash SPI integratu nantu à l'ESP-WROOM-32
GPIO 6 à GPIO 11 sò esposti in certi schede di sviluppu ESP32. Tuttavia, sti pins sò cunnessi à u flash SPI integratu nantu à u chip ESP-WROOM-32 è ùn sò micca cunsigliatu per altri usi. Dunque, ùn aduprate micca questi pin in i vostri prughjetti:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Touch capacitive GPIOs
L'ESP32 hà 10 sensori capacitivi interni di u toccu. Questi ponu sente variazioni in tuttu ciò chì cuntene una carica elettrica, cum'è a pelle umana. Cusì ponu detectà variazioni induce à toccu i GPIO cù un dettu. Questi pins ponu esse facilmente integrati in pads capacitivi è rimpiazzà i buttoni meccanichi. I pins touch capacitivi ponu ancu esse aduprati per svegliate l'ESP32 da u sonnu prufondu. Quelli sensori di toccu interni sò cunnessi à 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 analogicu à digitale (ADC)
L'ESP32 hà 18 x 12 bit ADC canali di input (mentre l'ESP8266 hà solu 1x 10 bit ADC). Quessi sò i GPIO chì ponu esse aduprati cum'è ADC è canali rispettivi:
- 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 ùn ponu micca esse usatu quandu Wi-Fi hè utilizatu. Allora, sè vo site cù Wi-Fi è avete prublemi à ottene u valore da un ADC2 GPIO, pudete cunsiderà aduprà un ADC1 GPIO invece. Chì duverebbe risolve u vostru prublema.
I canali di input ADC anu una risoluzione di 12 bit. Questu significa chì pudete uttene lettura analogica chì varieghja da 0 à 4095, in quale 0 currisponde à 0V è 4095 à 3.3V. Pudete ancu stabilisce a risoluzione di i vostri canali nantu à u codice è a gamma ADC.
I pins ESP32 ADC ùn anu micca un cumpurtamentu lineale. Probabilmente ùn sarete micca capaci di distingue trà 0 è 0.1V, o trà 3.2 è 3.3V. Avete bisognu di mantene in mente quandu utilizate i pin ADC. Averete un cumpurtamentu simili à quellu chì mostra in a figura seguente.Convertitore digitale à analogicu (DAC)
Ci sò canali DAC 2 x 8 bits nantu à l'ESP32 per cunvertisce segnali digitali in voltage outputs di signale. Eccu i canali DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
Ci hè un supportu RTC GPIO nantu à l'ESP32. I GPIO diretti à u sottosistema RTC di bassa putenza pò esse usatu quandu l'ESP32 hè in u sonnu prufondu. Questi RTC GPIO ponu esse aduprati per svegliate l'ESP32 da u sonnu prufondu quandu u Ultra Low
U coprocessore Power (ULP) hè in esecuzione. I seguenti GPIO ponu esse aduprati cum'è una fonte di sveglia 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)
PWM
U controller ESP32 LED PWM hà 16 canali indipendenti chì ponu esse cunfigurati per generà signali PWM cù diverse proprietà. Tutti i pin chì ponu agisce cum'è output pò esse usatu cum'è pin PWM (GPIOs 34 à 39 ùn ponu micca generà PWM).
Per stabilisce un signalu PWM, avete bisognu di definisce questi parametri in u codice:
- freccia di u signale;
- ciclu duty;
- canale PWM;
- GPIO induve vulete emette u signale.
I2C
L'ESP32 hà dui canali I2C è qualsiasi pin pò esse stabilitu cum'è SDA o SCL. Quandu si usa l'ESP32 cù l'IDE Arduino, i pin I2C predeterminati sò:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Se vulete usà altri pins quandu utilizate a biblioteca di filu, basta à chjamà:
Wire.begin (SDA, SCL);
SPI
Per automaticamente, u pin mapping per SPI hè:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Interruzzioni
Tutti i GPIO ponu esse cunfigurati cum'è interruzioni.
Pin di cinghia
U chip ESP32 hà i seguenti pin strapping:
- GPIO 0 (deve esse BASSU per entre in u modu di boot)
- GPIO 2 (deve esse flottante o LOW durante u boot)
- GPIO 4
- GPIO 5 (deve esse ALTA durante u boot)
- GPIO 12 (deve esse BASSU durante u boot)
- GPIO 15 (deve esse ALTA durante u boot)
Quessi sò usati per mette l'ESP32 in u modu di bootloader o lampeggiante. Nant'à a maiò parte di i pannelli di sviluppu cù USB / Serial integratu, ùn avete micca bisognu di preoccupassi di u statu di sti pin. U tavulinu mette i pins in u statu ghjustu per lampassi o modalità di boot. Più infurmazione nantu à a Selezzione di u Modu di Boot ESP32 pò esse truvata quì.
In ogni casu, sè vo avete periferichi cunnessi à quelli pin, pudete avè prublemi à pruvà à carica un novu codice, lampendu l'ESP32 cù un novu firmware, o resetting the board. Sì avete qualchì periferica cunnessu à i pins strapping è avete prublemi à carica u codice o lampendu l'ESP32, pò esse perchè quelli periferichi impediscenu à l'ESP32 di entre in u modu ghjustu. Leghjite a documentazione di Selezzione di u Modu Boot per guidà in a direzione ghjusta. Dopu à resetting, lampeggiante, o booting, quelli pins travaglia cum'è previstu.
Pins HIGH à Boot
Certi GPIO cambianu u so statu à HIGH o emettenu signali PWM à u boot o reset.
Questu significa chì, sè vo avete uscite cunnessi à questi GPIO, pudete ottene risultati inespettati quandu l'ESP32 resetta o stivali.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 à GPIO 11 (cunnessu à a memoria flash SPI integrata ESP32 - ùn hè micca cunsigliatu d'utilizà).
- GPIO 14
- GPIO 15
Activer (FR)
Enable (EN) hè u pin di attivazione di u regulatore 3.3V. Hè tiratu, cusì cunnette à a terra per disattivà u regulatore 3.3V. Questu significa chì pudete aduprà stu pin cunnessu à un buttone per riavvià u vostru ESP32, per esempiuample.
GPIO current draw
A corrente massima assoluta disegnata per GPIO hè 40mA secondu a sezione "Condizioni Operative Recommended" in a scheda ESP32.
Sensore d'effettu Hall integratu ESP32
L'ESP32 hà ancu un sensoru d'effettu di hall integratu chì rileva cambiamenti in u campu magneticu in u so circondu
ESP32 Arduino IDE
Ci hè un add-on per l'IDE Arduino chì permette di programà l'ESP32 utilizendu l'IDE Arduino è a so lingua di prugrammazione. In questu tutoriale vi mustraremu cumu installà a scheda ESP32 in l'IDE Arduino sia chì site Windows, Mac OS X o Linux.
Prerequisites: Arduino IDE installatu
Prima di principià sta prucedura di stallazione, avete bisognu di avè l'Arduino IDE installatu in u vostru urdinatore. Ci hè duie versioni di l'IDE Arduino chì pudete installà: versione 1 è versione 2.
Pudete scaricà è installà Arduino IDE clicchendu nant'à u ligame seguente: arduino.cc/en/Main/Software
Quale versione Arduino IDE raccomandiamo? À u mumentu, ci sò qualchi plugins per l'ESP32 (cum'è SPIFFS FileSystem Uploader Plugin) chì ùn sò ancu supportati in Arduino 2. Allora, se avete intenzione di utilizà u plugin SPIFFS in u futuru, ricumandemu di installà a versione legacy 1.8.X. Basta à scorri in a pagina di u software Arduino per truvà lu.
Installazione di ESP32 Add-on in Arduino IDE
Per installà a scheda ESP32 in u vostru IDE Arduino, seguite e seguenti istruzioni:
- In u vostru IDE Arduino, andate à File> Preferenze
- Inserite i seguenti in u "Gestore di u Cunsigliu Addizionale URLs" campu:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Dopu, cliccate nant'à u buttone "OK":Nota: s'è vo avete digià i schede ESP8266 URL, pudete separà u URLs cù una virgola cusì:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Aprite u Manager di Boards. Andà à Strumenti> Board> Boards Manager...Cerca ESP32 and press install button for the “ESP32 by Espressif Systems“:
Eccu. Si deve esse stallatu dopu à qualchi seconde.
Caricate u codice di prova
Cunnette a scheda ESP32 à u vostru urdinatore. Cù u vostru Arduino IDE apertu, seguite questi passi:
- Selezziunate u vostru Board in Strumenti> Menu Board (in u mo casu hè u Modulu ESP32 DEV)
- Selezziunate u Portu (se ùn vede micca u Portu COM in u vostru Arduino IDE, avete bisognu di stallà u CP210x USB à UART Bridge VCP Drivers):
- Aprite i seguenti example sottu File > Esamples > WiFi
(ESP32) > WiFiScan - Un novu sketch si apre in u vostru IDE Arduino:
- Premete u buttone Upload in l'IDE Arduino. Aspettate uni pochi di seconde mentre u codice compila è carica à u vostru bordu.
- Se tuttu hè andatu cum'è previstu, duvete vede un "Caricamentu fattu". missaghju.
- Ouvrez l'Arduino IDE Serial Monitor à une vitesse de baud de 115200 :
- Pulse u buttone Habilita ESP32 à bordu è duvete vede e rete dispunibili vicinu à u vostru ESP32:
Risoluzione di prublemi
Se pruvate à carica un novu sketch à u vostru ESP32 è riceve stu missaghju d'errore "Un errore fatale hè accadutu: Fallu à cunnette à ESP32: Timed out... Connecting...". Significa chì u vostru ESP32 ùn hè micca in u modu di lampeggiante / uploading.
Dopu avè u nome di u bordu ghjustu è u COM por sceltu, seguitate sti passi:
Mantene premutu u buttone "BOOT" in a vostra scheda ESP32
- Premete u buttone "Carica" in l'IDE Arduino per carica u vostru sketch:
- Dopu chì vede u "Connecting...". messagiu in u vostru Arduino IDE, liberate u dito da u buttone "BOOT":
- Dopu à quessa, vi duvite vede u missaghju "Fattu uploading".
Eccu. U vostru ESP32 deve avè u novu sketch in esecuzione. Pulse u buttone "ENABLE" per riavvia l'ESP32 è eseguite u novu sketch uploaded.
Duverete ancu ripetiri quella sequenza di buttone ogni volta chì vulete carricà un novu sketch.
Prughjettu 1 ESP32 Inputs Outputs
In questa guida di partenza, amparate à leghje l'ingressi digitali cum'è un interruttore di buttone è cuntrullà l'output digitale cum'è un LED utilizendu l'ESP32 cù l'IDE Arduino.
Prerequisites
Programmeremu l'ESP32 cù l'IDE Arduino. Dunque, assicuratevi di avè installatu l'add-on ESP32 prima di procedere:
- Installazione di ESP32 Add-on in Arduino IDE
ESP32 Control Outputs Digital
Prima, avete bisognu di stabilisce u GPIO chì vulete cuntrullà cum'è OUTPUT. Aduprate a funzione pinMode() cum'è seguente:
pinMode (GPIO, OUTPUT);
Per cuntrullà un output digitale, basta à utilizà a funzione digitalWrite(), chì accetta cum'è argumenti, u GPIO (numeru int) chì vi riferite, è u statu, o HIGH o LOW.
DigitalWrite (GPIO, STATE);
Tutti i GPIO ponu esse utilizati cum'è outputs eccettu GPIO 6 à 11 (cunnessu à u flash SPI integratu) è GPIO 34, 35, 36 è 39 (input solu GPIO);
Sapete più nantu à l'ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 Leghjite l'input digitale
Prima, stabilisce u GPIO chì vulete leghje cum'è INPUT, utilizendu a funzione pinMode() cum'è seguente:
pinMode (GPIO, INPUT);
Per leghje un input digitale, cum'è un buttone, utilizate a funzione digitalRead(), chì accetta cum'è argumentu, u GPIO (numeru int) chì vi riferite.
Lettura digitale (GPIO);
Tutti i GPIO ESP32 ponu esse utilizati cum'è input, eccettu i GPIO 6 à 11 (cunnessi à u flash SPI integratu).
Sapete più nantu à l'ESP32 GPIOs: ESP32 GPIO Reference Guide
Prughjettu Example
Per vede cumu utilizà l'input digitale è l'output digitale, custruiremu un prughjettu simplice example cù un pushbutton è un LED. Leghjemu u statu di u buttone è accendemu u LED in cunseguenza cum'è illustratu in a figura seguente.
Parti necessarie
Eccu una lista di e parti chì avete bisognu di custruisce u circuitu:
- ESP32 DEVKIT V1
- LED 5 mm
- Resistenza 220 Ohm
- Pulsante
- Resistenza 10k Ohm
- Breadboard
- Fili jumper
Diagramma schematicu
Prima di prucede, avete bisognu di assemblà un circuitu cù un LED è un buttone.
Cunnetteremu u LED à GPIO 5 è u buttone à GPIO 4.Codice
Aprite u codice Project_1_ESP32_Inputs_Outputs.ino in arduino IDECumu Funziona u Codice
In e duie linee seguenti, create variàbili per assignà pin:
U buttone hè cunnessu à GPIO 4 è u LED hè cunnessu à GPIO 5. Quandu si usa l'IDE Arduino cù l'ESP32, 4 currisponde à GPIO 4 è 5 currisponde à GPIO 5.
In seguitu, create una variabile per mantene u statu di u buttone. Per automaticamente, hè 0 (micca pressatu).
int buttonState = 0;
In u setup(), inizializzate u buttone cum'è INPUT, è u LED cum'è OUTPUT.
Per quessa, aduprate a funzione pinMode() chì accetta u pin chì vi riferite, è u modu: INPUT o OUTPUT.
pinMode (buttonPin, INPUT);
pinMode (ledPin, OUTPUT);
In u loop () hè induve leghje u statu di u buttone è stabilisce u LED in cunseguenza.
In a linea dopu, leghjite u statu di u buttone è salvate in a variabile buttonState.
Comu avemu vistu prima, utilizate a funzione digitalRead().
ButtonState = DigitalRead (buttonPin);
A seguente dichjarazione si verifica se u statu di u buttone hè HIGH. S'ellu hè, accende u LED cù a funzione digitalWrite () chì accetta cum'è argumentu ledPin, è u statu HIGH.
if (buttonState == HIGH)Se u statu di u buttone ùn hè micca ALTA, fate u LED off. Basta stabilisce LOW cum'è un secondu argumentu in a funzione digitalWrite ().
Caricà u codice
Prima di cliccà u buttone di carica, andate à Strumenti> Board, è selezziunate a scheda: DOIT ESP32 DEVKIT V1 board.
Andà à Tools> Port è selezziunate u portu COM à u quale l'ESP32 hè cunnessu. Allora, appughjà u buttone upload è aspittà per u missaghju "Fattu uploading".Nota: Se vede assai punti (cunnessu ...__…__) in a finestra di debugging è u missaghju "Failed to connect to ESP32: Timed out waiting for packet header" significa chì avete bisognu di appughjà u ESP32 à bordu BOOT. buttone dopu à i punti
principià à apparisce.Troubleshooting
Dimustrazione
Dopu à carica u codice, pruvà u vostru circuit. U vostru LED deve accende quandu appughjà u buttone:È spegne quandu u liberate:
Prughjettu 2 ESP32 Inputs Analogici
Stu prughjettu mostra cumu leghje inputs analogichi cù l'ESP32 utilizendu Arduino IDE.
A lettura analogica hè utile per leghje i valori da resistori variabili cum'è potentiometri, o sensori analogichi.
Ingressi analogici (ADC)
A lettura di un valore analogicu cù l'ESP32 significa chì pudete misurà diversi voltage livelli trà 0 V è 3.3 V.
U voltagE misurata hè allora attribuita à un valore trà 0 è 4095, in quale 0 V currisponde à 0, è 3.3 V currisponde à 4095.tage trà 0 V è 3.3 V serà datu u valore currispundenti trà.ADC hè Non-lineare
Ideale, avete aspittatu un cumpurtamentu lineale quandu utilizate i pins ESP32 ADC.
Tuttavia, ùn succede micca. Ciò chì uttene hè un cumpurtamentu cum'è mostratu in u graficu seguente:Stu cumpurtamentu significa chì u vostru ESP32 ùn hè micca capaci di distingue 3.3 V da 3.2 V.
Truverete u listessu valore per i dui voltages: 4095.
U stessu passa per u volu assai bassutage valori: per 0 V è 0.1 V avete da ottene u listessu valore: 0. Avete bisognu di mantene questu in mente quandu utilizate i pins ESP32 ADC.
analogRead() Funzione
A lettura di un input analogicu cù l'ESP32 utilizendu l'IDE Arduino hè simplice quant'è aduprà a funzione analogRead(). Accepta cum'è argumentu, u GPIO chì vulete leghje:
analogRead (GPIO);
Solu 15 sò dispunibuli in u DEVKIT V1board (versione cù 30 GPIO).
Pigliate a vostra scheda ESP32 pinout è localizza i pin ADC. Quessi sò evidenziati cù un bordu rossu in a figura sottu.Questi pin di input analogicu anu una risoluzione di 12 bit. Questu significa chì quandu leghje un input analogicu, u so intervallu pò varià da 0 à 4095.
Nota: I pin ADC2 ùn ponu micca esse usatu quandu Wi-Fi hè utilizatu. Allora, sè vo site cù Wi-Fi è avete prublemi per ottene u valore da un ADC2 GPIO, pudete cunsiderà aduprà un ADC1 GPIO invece, chì duverebbe risolve u vostru prublema.
Per vede cumu tuttu ligami inseme, faremu un ex simpliceample per leghje un valore analogicu da un potentiometru.
Parti necessarie
Per questu example, avete bisognu di e seguenti parti:
- Scheda ESP32 DEVKIT V1
- Potenziometru
- Breadboard
- Fili jumper
Schematicu
Wire un potenziometru à u vostru ESP32. U pin di u potenziometru mediu deve esse cunnessu à GPIO 4. Pudete utilizà u schema schematicu seguente cum'è riferimentu.Codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Aprite u codice Project_2_ESP32_Inputs_Outputs.ino in arduino IDEStu codice leghje solu i valori da u potentiometru è imprime quelli valori in u Monitor Serial.
In u codice, avete principiatu da definisce u GPIO chì u potenziometru hè cunnessu. In questu example, GPIO 4.In u setup (), inizializza una cumunicazione seriale à una baud rate di 115200.
In u loop (), utilizate a funzione analogRead () per leghje l'input analogicu da u potPin.
Infine, stampate i valori letti da u potentiometru in u monitor seriale.
Caricate u codice furnitu à u vostru ESP32. Assicuratevi di avè u bordu ghjustu è u portu COM sceltu in u menù di Strumenti.
Pruvate l'Example
Dopu avè caricatu u codice è pressu u buttone di resettore ESP32, apre u Monitor Serial à un baud rate di 115200. Rotate u potentiometru è vede i valori cambiassi.U valore massimu chì uttene hè 4095 è u valore minimu hè 0.
Avvolgimentu
In questu articulu avete amparatu à leghje inputs analogichi cù l'ESP32 cù l'IDE Arduino. In riassuntu:
- A scheda ESP32 DEVKIT V1 DOIT (versione cù 30 pins) hà 15 pin ADC chì pudete aduprà per leghje inputs analogichi.
- Questi pins anu una risoluzione di 12 bit, chì significa chì pudete ottene valori da 0 à 4095.
- Per leghje un valore in l'IDE Arduino, basta aduprà a funzione analogRead().
- I pins ESP32 ADC ùn anu micca un cumpurtamentu lineale. Probabilmente ùn sarete micca capaci di distingue trà 0 è 0.1V, o trà 3.2 è 3.3V. Avete bisognu di mantene in mente quandu utilizate i pin ADC.
Prughjettu 3 ESP32 PWM (uscita analogica)
In questu tutoriale vi mustraremu cumu generà signali PWM cù l'ESP32 utilizendu Arduino IDE. Cum'è exampcustruiremu un circuitu simplice chì dims un LED utilizendu u controller LED PWM di l'ESP32.Controller ESP32 LED PWM
L'ESP32 hà un controller PWM LED cù 16 canali indipendenti chì ponu esse cunfigurati per generà signali PWM cù diverse proprietà.
Eccu i passi chì duvete seguità per dim un LED cù PWM cù l'IDE Arduino:
- Prima, avete bisognu di sceglie un canale PWM. Ci sò 16 canali da 0 à 15.
- Allora, avete bisognu di stabilisce a frequenza di u signale PWM. Per un LED, una frequenza di 5000 Hz hè bella per utilizà.
- Avete ancu bisognu di stabilisce a risoluzione di u ciculu di u segnu: avete risoluzioni da 1 à 16 bits. Adupremu una risoluzione di 8-bit, chì significa chì pudete cuntrullà a luminosità LED utilizendu un valore da 0 à 255.
- Dopu, avete bisognu di specificà à quale GPIO o GPIO appariscerà u signale. Per quessa, avete aduprà a seguente funzione:
ledcAttachPin (GPIO, canale)
Sta funzione accetta dui argumenti. U primu hè u GPIO chì pruducerà u signale, è u sicondu hè u canali chì generà u signale. - Infine, per cuntrullà a luminosità LED cù PWM, utilizate a seguente funzione:
ledcWrite (canale, dutycycle)
Questa funzione accetta cum'è argumenti u canali chì genera u signale PWM, è u ciculu duty.
Parti necessarie
Per seguità stu tutoriale avete bisognu di sti parti:
- Scheda ESP32 DEVKIT V1
- LED da 5 mm
- Resistenza 220 Ohm
- Breadboard
- Fili jumper
Schematicu
Wire un LED à u vostru ESP32 cum'è in u schema schematicu seguente. U LED deve esse cunnessu à GPIO 4.Nota: pudete aduprà ogni pin chì vulete, finu à ch'ellu pò agisce cum'è output. Tutti i pins chì ponu agisce cum'è output pò esse usatu cum'è pin PWM. Per più infurmazione nantu à l'ESP32 GPIO, leghjite: ESP32 Pinout Reference: Quali pin GPIO duvete aduprà?
Codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Aprite u codice Project_3_ESP32_PWM.ino in arduino IDECumincià da definisce u pin à u LED hè attaccatu. In questu casu, u LED hè attaccatu à GPIO 4.
Allora, stabilisce e proprietà di signale PWM. Definite una frequenza di 5000 Hz, sceglite u canali 0 per generà u segnu, è stabilisce una risoluzione di 8 bits. Pudete sceglie altre proprietà, diverse da queste, per generà diversi signali PWM.
In u setup (), avete bisognu di cunfigurà LED PWM cù e proprietà chì avete definitu prima utilizendu a funzione ledcSetup () chì accetta cum'è argumenti, ledChannel, a freccia è a risoluzione, cum'è seguita:
Next, vi tocca à sceglie u GPIO vi Mulateri Di L'ottene u signali da. Per quessa, utilizate a funzione ledcAttachPin() chì accetta cum'è argumenti u GPIO induve vulete ottene u signale, è u canali chì genera u signale. In questu example, avemu da ottene u signale in u ledPin GPIO, chì currisponde à GPIO 4. U canali chì genera u signale hè u ledChannel, chì currisponde à u canali 0.
In u ciclu, varierete u ciclu di duty trà 0 è 255 per aumentà a luminosità LED.
È dopu, trà 255 è 0 per diminuisce a luminosità.
Per stabilisce a luminosità di u LED, avete bisognu di utilizà a funzione ledcWrite () chì accetta cum'è argumenti u canali chì genera u signale, è u ciculu duty.
Cumu avemu aduprà a risuluzione di 8-bit, u ciculu di duty serà cuntrullatu cù un valore da 0 à 255. Nota chì in a funzione ledcWrite() usemu u canali chì genera u signale, è micca u GPIO.
Pruvate l'Example
Caricate u codice à u vostru ESP32. Assicuratevi di avè u bordu ghjustu è u portu COM sceltu. Fighjate à u vostru circuitu. Duvete avè un LED dimmer chì aumenta è diminuisce a luminosità.
Prughjettu 4 ESP32 PIR Sensor Motion
Stu prughjettu mostra cumu detectà u muvimentu cù l'ESP32 utilizendu un sensoru di muvimentu PIR. U buzzer sonarà una alarma quandu u muvimentu hè rilevatu, è ferma l'alarma quandu ùn hè rilevatu nisun muvimentu per un tempu predeterminatu (cum'è 4 seconde)
Cumu Funziona u Sensore di Movimentu HC-SR501
.U principiu di funziunamentu di u sensoru HC-SR501 hè basatu annantu à u cambiamentu di a radiazione infrarossa nantu à l'ughjettu in muvimentu.
- L'ughjettu emette a via infrared.
- L'ughjettu si move o tremula
Allora:
Se un oggettu emette u ragiu infrarossu ma ùn si move micca (per esempiu, una persona ferma senza muvimenti), ùn hè micca rilevatu da u sensoru.
Se un ughjettu si move ma ùn emette micca u ragiu infrarossu (per esempiu, robot o veiculu), ùn hè micca rilevatu da u sensoru.
Presentazione di i Timers
In questu exampl'avemu ancu introduttu i timers. Vulemu chì u LED si ferma per un numeru predeterminatu di seconde dopu chì u muvimentu hè rilevatu. Invece di utilizà una funzione delay () chì blucca u vostru còdice è ùn vi permette micca di fà nunda di più per un determinatu numeru di sicondi, duvemu aduprà un timer.A funzione delay ().
Duvete esse familiarizatu cù a funzione delay () perchè hè largamente usata. Sta funzione hè abbastanza sèmplice à aduprà. Accepta un unicu numeru int cum'è argumentu.
Stu numeru rapprisenta u tempu in millisecondi chì u prugramma hà da aspittà finu à passà à a prossima linea di codice.Quandu fate ritardu (1000) u vostru prugramma si ferma nantu à quella linea per 1 secondu.
delay () hè una funzione di bloccu. E funzioni di bloccu impediscenu à un prugramma di fà qualcosa altru finu à chì u compitu particulari hè cumpletu. Sè avete bisognu di parechje attività per esse à u stessu tempu, ùn pudete micca aduprà delay ().
Per a maiò parte di i prughjetti, duvete evità l'usu di ritardi è aduprà timer invece.
A funzione millis().
Utilizendu una funzione chjamata millis() pudete rinvià u numeru di millisecondi chì sò passati da u principiu di u prugramma.Perchè sta funzione hè utile? Perchè usendu qualchì matematica, pudete facilmente verificà quantu tempu hè passatu senza bluccà u vostru codice.
Parti necessarie
Per seguità stu tutoriale avete bisognu di e seguenti parti
- Scheda ESP32 DEVKIT V1
- Sensore di muvimentu PIR (HC-SR501)
- Buzzer Attivo
- Fili jumper
- Breadboard
SchematicuNota: U travagliu voltage di HC-SR501 hè 5V. Aduprà u Pin Vin à putenza lu.
Codice
Prima di prucede cù stu tutoriale, duvete avè u ESP32 add-on installatu in u vostru Arduino IDE. Segui unu di i seguenti tutoriali per installà l'ESP32 nantu à l'IDE Arduino, se ùn avete micca digià. (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Aprite u codice Project_4_ESP32_PIR_Motion_Sensor.ino in arduino IDE.
Dimustrazione
Caricate u codice à a vostra scheda ESP32. Fate sicuru chì vo avete u bordu dritta è portu COM selected.Upload codice riferimentu passi.
Apertura u Monitor Serial à un baud rate di 115200.Move a manu davanti à u sensor PIR. U buzzer deve accende, è u missaghju hè stampatu in u Monitor Serial dicendu "Motion detected! Buzzer alarm".
Dopu à 4 seconde, u buzzer deve esse spegne.
Prughjettu 5 ESP32 Switch Web Servitore
In questu prughjettu, creerete un standalone web servitore cù un ESP32 chì cuntrolla i outputs (dui LED) utilizendu l'ambiente di prugrammazione Arduino IDE. U web u servitore hè responsive mobile è pò esse accessu cù qualsiasi dispositivu chì cum'è un navigatore in a reta lucale. Vi mustraremu cumu creà u web servitore è cumu u codice funziona passu per passu.
Prughjettu Finituview
Prima di andà drittu à u prugettu, hè impurtante di spiegà ciò chì u nostru web servitore farà, cusì chì hè più faciule per seguità i passi più tardi.
- U web servitore vi custruisce cuntrolli dui LED cunnessi à l'ESP32 GPIO 26 è GPIO 27;
- Pudete accede à l'ESP32 web servitore scrivendu l'indirizzu IP ESP32 in un navigatore in a reta lucale;
- Cliccà i buttoni nant'à u vostru web servitore pudete cambià istantaneamente u statu di ogni LED.
Parti necessarie
Per stu tutoriale avete bisognu di e seguenti parti:
- Scheda ESP32 DEVKIT V1
- 2x 5mm LED
- 2 x resistenza 200 Ohm
- Breadboard
- Fili jumper
Schematicu
Cumincià per custruisce u circuitu. Cunnette dui LED à l'ESP32 cum'è mostra in u schema schematicu seguente - un LED cunnessu à GPIO 26, è l'altru à GPIO 27.
Nota: Avemu aduprà a scheda ESP32 DEVKIT DOIT cù 36 pin. Prima di assemblà u circuitu, assicuratevi di cuntrollà u pinout per a tavola chì stai aduprate.Codice
Quì furnimu u codice chì crea l'ESP32 web servitore. Aprite u codice Project_5_ESP32_Switch _Web_Server.ino in arduino IDE, ma ùn u caricate ancu. Avete bisognu di fà alcuni cambiamenti per fà u travagliu per voi.
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Configurazione di e vostre credenziali di rete
Avete bisognu di mudificà e seguenti linee cù e vostre credenziali di rete: SSID è password. U codice hè bè cummentatu induve duvete fà i cambiamenti.Caricà u codice
Avà, vi ponu carica u codice è è u web u servitore funziona subitu.
Segui i prossimi passi per carica u codice à l'ESP32:
- Cunnette a vostra scheda ESP32 in u vostru urdinatore;
- In l'Arduino IDE selezziunate a vostra scheda in Strumenti> Board (in u nostru casu usemu a scheda ESP32 DEVKIT DOIT);
- Selezziunà u portu COM in Tools> Port.
- Pulsà u buttone Upload in l'IDE Arduino è aspettate uni pochi di sicondi mentre u codice compila è carica à a vostra scheda.
- Aspettate di u missaghju "Fine uploading".
Truvà l'indirizzu IP ESP
Dopu avè caricatu u codice, apre u Monitor Serial à un baud rate di 115200.Press u buttone ESP32 EN (reset). L'ESP32 si cunnetta à u Wi-Fi, è emette l'indirizzu IP ESP in u Monitor Serial. Copia l'indirizzu IP, perchè avete bisognu à accede à l'ESP32 web servitore.
Accessu à u Web Servitore
Per accede à u web servitore, apre u vostru navigatore, incollà l'indirizzu IP ESP32, è vi vede a pagina seguente.
Nota: U vostru navigatore è ESP32 deve esse cunnessi à a stessa LAN.Se fate un ochju à u Monitor Serial, pudete vede ciò chì succede nantu à u fondu. L'ESP riceve una dumanda HTTP da un novu cliente (in questu casu, u vostru navigatore).
Pudete ancu vede altre informazioni nantu à a dumanda HTTP.
Dimustrazione
Avà pudete pruvà se u vostru web u servitore funziona bè. Cliccate i buttoni per cuntrullà i LED.À u listessu tempu, pudete piglià un ochju à u Monitor Serial per vede ciò chì succede in u fondu. Per esample, quandu cliccate u buttone per accende GPIO 26, ESP32 riceve una dumanda nantu à /26/on URL.
Quandu l'ESP32 riceve sta dumanda, accende u LED attaccatu à GPIO 26 ON è aghjurnà u so statu nantu à u web pagina.
U buttone per GPIO 27 funziona in modu simili. Pruvate chì funziona bè.
Cumu Funziona u Codice
In sta rùbbrica, piglià un ochju più vicinu à u codice per vede cumu funziona.
A prima cosa chì duvete fà hè di include a biblioteca WiFi.Comu diciatu prima, avete bisognu di inserisce u vostru ssid è password in e seguenti linee in e virgulette doppie.
Allora, avete stabilitu u vostru web servitore à u portu 80.
A linea seguente crea una variabile per almacenà l'intestazione di a dumanda HTTP:
In seguitu, create variabili ausiliarii per almacenà u statu attuale di i vostri outputs. Se vulete aghjunghje più outputs è salvà u so statu, avete bisognu di creà più variàbili.
Avete ancu bisognu di assignà un GPIO à ognunu di i vostri outputs. Quì avemu aduprà GPIO 26 è GPIO 27. Pudete utilizà qualsiasi altri GPIO adattati.
istituisci()
Avà, andemu in u setup (). Prima, cuminciamu una cumunicazione seriale à una velocità di baud di 115200 per scopi di debugging.Definite ancu i vostri GPIO cum'è OUTPUT è li mette à LOW.
I seguenti linii cumincianu a cunnessione Wi-Fi cù WiFi.begin (ssid, password), aspettate una cunnessione successu è stampate l'indirizzu IP ESP in u Monitor Serial.
loop ()
In u loop () prugrammu ciò chì succede quandu un novu cliente stabilisce una cunnessione cù u web servitore.
L'ESP32 hè sempre à sente i clienti entranti cù a seguente linea:Quandu una dumanda hè ricevutu da un cliente, salveremu i dati entranti. U ciclu while chì seguita serà in esecuzione sempre chì u cliente resta cunnessu. Ùn ricumandemu micca di cambià a seguente parte di u codice, salvu chì ùn sapete esattamente ciò chì fate.
A prossima sezione di dichjarazioni se è altru cuntrolla quale buttone hè stata premuta in u vostru web pagina, è cuntrolla i outputs in cunseguenza. Cum'è avemu vistu prima, facemu una dumanda nantu à diverse URLs secondu u buttone pressatu.
Per esample, se avete appughjà u buttone GPIO 26 ON, l'ESP32 riceve una dumanda nantu à u /26/ON URL (pudemu vede chì quella infurmazione nantu à l'intestazione HTTP nantu à u Monitor Serial). Dunque, pudemu verificà se l'intestazione cuntene l'espressione GET /26/on. Se cuntene, cambiamu a variabile output26state à ON, è l'ESP32 accende u LED.
Questu travaglia in modu simili per l'altri buttoni. Allora, sè vo vulete aghjunghje più outputs, duvete mudificà sta parte di u codice per includeli.
Mostra l'HTML web pagina
A prossima cosa chì duvete fà, hè di creà web pagina. L'ESP32 hà da mandà una risposta à u vostru navigatore cù qualchì codice HTML per custruisce web pagina.
U web pagina hè mandata à u cliente utilizendu stu spressione client.println(). Duvete inserisce ciò chì vulete mandà à u cliente cum'è argumentu.
A prima cosa chì duvemu mandà hè sempre a seguente linea, chì indica chì avemu da mandà HTML.Allora, a seguente linea face u web pagina responsive in ogni web navigatore.
È u seguitu hè utilizatu per impedisce e dumande nantu à u favicon. – Ùn avete bisognu di preoccupassi di sta linea.
Styling u Web Pagina
Dopu, avemu qualchì testu CSS per stilà i buttoni è u web apparenza di pagina.
Avemu sceltu u font Helvetica, definisce u cuntenutu per esse affissatu cum'è un bloccu è allinatu à u centru.Stilemu i nostri buttoni cù u culore #4CAF50, senza cunfini, testu in culore biancu, è cù questu padding: 16px 40px. Avemu ancu stabilitu a decorazione di testu à nimu, definisce a dimensione di font, u margine è u cursore à un puntatore.
Definimu ancu u stilu per un secondu buttone, cù tutte e pruprietà di u buttone chì avemu definitu prima, ma cù un culore diversu. Questu serà u stilu per u buttone off.
Impostazione di Web Pagina Prima Titulu
In a linea dopu pudete stabilisce u primu intestazione di u vostru web pagina. Quì avemu "ESP32 Web Server ", ma pudete cambià stu testu à ciò chì vulete.Visualizà i Buttons è u Statu Corrispondente
Allora, scrivite un paràgrafu per vede u statu attuale di GPIO 26. Comu pudete vede, usemu a variabile output26State, perchè u statu aghjurnà istantaneamente quandu sta variabile cambia.Dopu, avemu mostratu u buttone on o off, secondu u statu attuale di u GPIO. Se u statu attuale di u GPIO hè off, mostramu u buttone ON, se no, mostramu u buttone OFF.
Utilizemu a stessa prucedura per GPIO 27.
Chjudendu a cunnessione
Infine, quandu a risposta finisci, sguassate a variàbile di l'intestazione, è ferma a cunnessione cù u cliente cù client.stop().
Avvolgimentu
In questu tutoriale vi avemu dimustratu cumu custruisce un web servitore cù l'ESP32. Vi avemu mostratu un ex simpliceample chì cuntrolla dui LEDs, ma l'idea hè di rimpiazzà quelli LED cù un relay, o qualsiasi altra pruduzzioni chì vulete cuntrullà.
Prughjettu 6 RGB LED Web Servitore
In questu prughjettu, vi mustraremu cumu cuntrullà remotamente un LED RGB cù una scheda ESP32 utilizendu a web servitore cù un selettore di culore.
Prughjettu Finituview
Prima di principià, vedemu cumu funziona stu prughjettu:
- L'ESP32 web u servitore mostra un selettore di culore.
- Quandu avete sceltu un culore, u vostru navigatore face una dumanda nantu à a URL chì cuntene i paràmetri R, G è B di u culore sceltu.
- U vostru ESP32 riceve a dumanda è divide u valore per ogni paràmetru di culore.
- Allora, manda un signalu PWM cù u valore currispundente à i GPIO chì cuntrullanu u LED RGB.
Cumu funziona i LED RGB?
In un LED RGB di cathode cumuni, tutti i trè LED sparte una cunnessione negativa (catode). Tutti i inclusi in u kit sò RGB di cathode cumuni.Cumu creà diversi culori?
Cù un LED RGB pudete, sicuru, pruduce luce rossa, verde è blu, è cunfigurà l'intensità di ogni LED, pudete pruduce ancu altri culori.
Per esample, à pruducia puramente luce blu, tu avissi stabilitu u LED blu à u più altu intensità è i LED verde è rossu à u più bassu intensità. Per una luce bianca, avete stabilitu tutti i trè LED à a più alta intensità.
Mischjendu i culori
Per pruduce altri culori, pudete combine i trè culori in intensità differenti. Per aghjustà l'intensità di ogni LED pudete aduprà un signalu PWM.
Perchè i LED sò assai vicinu à l'altri, i nostri ochji vedenu u risultatu di a cumminazione di culori, invece di i trè culori individualmente.
Per avè una idea di cumu cunghjuntà i culori, fate un ochju à u graficu seguente.
Questu hè u graficu di mischju di culore più simplice, ma vi dà una idea di cumu si travaglia è cumu pruduce culori diffirenti.Parti necessarie
Per stu prughjettu, avete bisognu di e seguenti parti:
- Scheda ESP32 DEVKIT V1
- LED RGB
- 3 resistenze da 220 ohm
- Fili jumper
- Breadboard
SchematicuCodice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
- Installazione di ESP32 Add-on in Arduino IDE
Dopu avè assemblatu u circuitu, apre u codice
Prughjettu_6_RGB_LED_Web_Server.ino in arduino IDE.
Prima di cullà u codice, ùn vi scurdate di inserisce e vostre credenziali di rete per chì l'ESP pò cunnette à a vostra reta lucale.Cumu funziona u codice
U sketch ESP32 usa a biblioteca WiFi.h.I seguenti linii definiscenu variàbili di stringa per mantene i paràmetri R, G è B da a dumanda.
I seguenti quattru variàbili sò usati per decodificà a dumanda HTTP dopu.
Crea trè variàbili per i GPIO chì cuntrullà i paràmetri di a striscia R, G è B. In questu casu, usemu GPIO 13, GPIO 12 è GPIO 14.
Questi GPIO anu bisognu di emette signalazioni PWM, cusì avemu bisognu di cunfigurà e proprietà PWM prima. Pone a frequenza di u signale PWM à 5000 Hz. Allora, assucia un canale PWM per ogni culore
È infine, stabilisce a risoluzione di i canali PWM à 8-bit
In u setup(), assignate e proprietà PWM à i canali PWM
Aghjunghjite i canali PWM à i GPIO currispundenti
A sezione di codice seguente mostra u selettore di culore in u vostru web pagina è face una dumanda basatu nantu à u culore chì avete sceltu.
Quandu sceglite un culore, riceverete una dumanda cù u seguente formatu.
Dunque, avemu bisognu di sparte sta stringa per uttene i parametri R, G è B. I paràmetri sò salvati in variàbili redString, greenString è blueString è ponu avè valori trà 0 è 255.Per cuntrullà a striscia cù l'ESP32, utilizate a funzione ledcWrite () per generà signali PWM cù i valori decodificati da u HTTP. dumanda.
Nota: Sapete più nantu à PWM cù ESP32: Project 3 ESP32 PWM (Analog Output)
Per cuntrullà a striscia cù l'ESP8266, avemu solu aduprà
a funzione analogWrite () per generà signali PWM cù i valori decodificati da a dumanda HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Perchè avemu i valori in una variabile di stringa, avemu bisognu di cunvertisce in numeri interi cù u metudu toInt ().
Dimustrazione
Dopu à inserisce i vostri credentials reta, selezziunà u bordu dritta è u portu COM è cullà u codice à u vostru ESP32.Upload codice passi riferimentu.
Dopu a carica, apre u Monitor Serial à una velocità di baud di 115200 è appughjà u buttone ESP Enable / Reset. Duvete ottene l'indirizzu IP di u bordu.Aprite u vostru navigatore è inserisci l'indirizzu IP ESP. Avà, aduprate u selettore di culore per sceglie un culore per u LED RGB.
Allora, avete bisognu di appughjà u buttone "Cambià u culore" per u culore per piglià effettu.Per disattivà u LED RGB, selezziunate u culore neru.
I culori più forti (à a cima di u selettore di culore), sò quelli chì pruduceranu risultati megliu.
Prughjettu 7 ESP32 Relay Web Servitore
Utilizà un relé cù l'ESP32 hè un modu fantasticu per cuntrullà l'apparecchi domestici AC remotamente. Stu tutorialu spiega cumu cuntrullà un modulu di relay cù l'ESP32.
Fighjeremu cumu funziona un modulu di relay, cumu cunnette u relay à l'ESP32 è custruisce un web servitore per cuntrullà un relay remotamente.
Presentazione di Relays
Un relé hè un interruttore operatu elettricamente è cum'è qualsiasi altru switch, chì pò esse attivatu o disattivatu, lascendu u currente passà o micca. Pò esse cuntrullatu cù u bassu voltages, cum'è u 3.3V furnitu da l'ESP32 GPIO è ci permette di cuntrullà altu voltagsò cum'è 12V, 24V o rete voltage (230V in Europa è 120V in i Stati Uniti).À u latu manca, ci sò dui gruppi di trè sockets per cunnette high voltages, è i pins nantu à u latu drittu (bassu voltage) cunnette à i GPIO ESP32.
Mains Voltage CunnessioniU modulu di relè mostratu in a foto precedente hà dui connettori, ognunu cù trè sockets: cumuni (COM), Normalmente Chiusu (NC) è Normalmente Aperti (NO).
- COM: cunnette u currente chì vulete cuntrullà (reti voltagè).
- NC (Normally Closed): a cunfigurazione normalmente chjusa hè aduprata quandu vulete chì u relay sia chjusu per difettu. I NC sò i pins COM sò cunnessi, vale à dì chì u currente scorre, salvu chì ùn mandate un signalu da l'ESP32 à u modulu di relay per apre u circuitu è piantà u flussu di corrente.
- NO (Normalmente Apertu): a cunfigurazione normalmente aperta funziona à l'inversu: ùn ci hè micca una cunnessione trà i pin NO è COM, cusì u circuitu hè rottu, salvu ùn mandate un signalu da l'ESP32 per chjude u circuitu.
Pins di cuntrolluU bassu voltagU latu hà un set di quattru pin è un set di trè pin. U primu settore hè custituitu da VCC è GND per accende u modulu, è input 1 (IN1) è input 2 (IN2) per cuntrullà i relè inferiori è superiore, rispettivamente.
Se u vostru modulu di relay hà solu un canale, avete solu un pin IN. Sì avete quattru canali, avete quattru pins IN, è cusì.
U signale chì mandate à i pin IN, determina se u relay hè attivu o micca. U relé hè attivatu quandu l'input scende sottu à circa 2V. Questu significa chì avete i seguenti scenarii:
- Cunfigurazione Normalmente Chiusa (NC):
- Segnale ALTA - u currenti scorri
- LOW signal - currente ùn hè micca flussu
- Cunfigurazione normalmente aperta (NO):
- High signal - currente ùn hè micca flussu
- LOW signal - currente in flussu
Duvete aduprà una cunfigurazione nurmalmente chjusa quandu u currente deve esse scorri a maiò parte di i tempi, è vulete solu piantà in ocasioni.
Aduprate una cunfigurazione normalmente aperta quandu vulete chì u currente scorri occasionalmente (per esample, accende alamp occasionalmente).
Selezzione di l'alimentazioneU secondu settore di pins hè custituitu da pin GND, VCC è JD-VCC.
U pin JD-VCC alimenta l'elettromagnete di u relay. Avvisu chì u modulu hà un capu di jumper chì cunnetta i pin VCC è JD-VCC; quellu mostratu quì hè giallu, ma u vostru pò esse un culore diversu.
Cù u jumper cap, i pin VCC è JD-VCC sò cunnessi. Questu significa chì l'elettromagnete di relé hè alimentatu direttamente da u pin di putenza ESP32, cusì u modulu di relé è i circuiti ESP32 ùn sò micca fisicamente isolati l'una di l'altru.
Senza u capu di jumper, avete bisognu di furnisce una fonte di energia indipendente per accende l'elettromagnete di u relay attraversu u pin JD-VCC. Questa cunfigurazione isola fisicamente i relè da l'ESP32 cù l'optoaccoppiatore integratu di u modulu, chì impediscenu danni à l'ESP32 in casu di spike elettrici.
SchematicuAttenzione: L'usu di altu voltagL'alimentazione elettrica pò causà ferite gravi.
Per quessa, 5mm LEDs sò usati invece di altu supply voltage bulbi in l 'esperimentu. Sè vo ùn sò pràticu cù mains voltagE dumandate à qualchissia chì vi aiuterà. Mentre programate l'ESP o cablate u vostru circuitu assicuratevi chì tuttu hè scollegatu da a rete voltage.Installazione di a Biblioteca per ESP32
Per custruisce questu web servitore, usemu u ESPAsyncWebBiblioteca di u servitore è AsyncTCP Library.
Installazione di ESPAsyncWebBiblioteca di u servitore
Segui i seguenti passi per installà u ESPAsyncWebServitore biblioteca:
- Cliccate quì per scaricà l'ESPAsyncWebBiblioteca di u servitore. Duvete avè
un cartulare .zip in u vostru cartulare Downloads - Unzip u cartulare .zip è duvete ottene ESPAsyncWebU cartulare di u servitore-maestru
- Rinominate u vostru cartulare da ESPAsyncWebServer-master à ESPAsyncWebServitore
- Move u ESPAsyncWebU cartulare di u servitore in u vostru cartulare di librerie di installazione Arduino IDE
In alternativa, in u vostru Arduino IDE, pudete andà à Sketch> Include
Library> Add .ZIP library... è selezziunate a biblioteca chì avete appena telecaricatu.
Installazione di a Biblioteca AsyncTCP per ESP32
U ESPAsyncWebServitore biblioteca richiede u AsyncTCP biblioteca à travaglià. Segui
i prossimi passi per installà quella biblioteca:
- Cliccate quì per scaricà a libreria AsyncTCP. Tu avissi a hannu un cartulare .zip in u vostru cartulare Downloads
- Unzip u cartulare .zip è tu avissi a arrivare cartulare AsyncTCP-maestru
1. Rename u vostru cartulare da AsyncTCP-maestru à AsyncTCP
3. Sposta u cartulare AsyncTCP à u vostru cartulare di biblioteche di stallazione Arduino IDE
4. Finalmente, apre u vostru IDE Arduino
In alternativa, in u vostru Arduino IDE, pudete andà à Sketch> Include
Library> Add .ZIP library... è selezziunate a biblioteca chì avete appena telecaricatu.
Codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Dopu avè installatu e librerie richieste, apre u codice Project_7_ESP32_Relay_Web_Server.ino in arduino IDE.
Prima di cullà u codice, ùn vi scurdate di inserisce e vostre credenziali di rete per chì l'ESP pò cunnette à a vostra reta lucale.Dimustrazione
Dopu avè fattu i cambiamenti necessarii, caricate u codice in u vostru ESP32.Upload i passi di riferimentu di u codice.
Aprite u Monitor Serial à una velocità di baud di 115200 è appughjà u buttone ESP32 EN per uttene u so indirizzu IP. Allora, apre un navigatore in a vostra reta lucale è scrivite l'indirizzu IP ESP32 per accede à l'indirizzu IP. web servitore.
Aprite u Monitor Serial à una velocità di baud di 115200 è appughjà u buttone ESP32 EN per uttene u so indirizzu IP. Allora, apre un navigatore in a vostra reta lucale è scrivite l'indirizzu IP ESP32 per accede à l'indirizzu IP. web servitore.Nota: U vostru navigatore è ESP32 deve esse cunnessi à a stessa LAN.
Duvete ottene qualcosa cum'è seguitu cù dui buttoni cum'è u numeru di relè chì avete definitu in u vostru codice.Avà, pudete aduprà i buttoni per cuntrullà i vostri relè cù u vostru smartphone.
Project_8_Output_State_Synchronization_ Web_Server
Stu Prughjettu mostra cumu cuntrullà l'ESP32 o ESP8266 outputs usendu a web servitore è un buttone fisicu simultaneamente. U statu di output hè aghjurnatu nantu à u web pagina sia cambiata via buttone fisicu o web servitore.
Prughjettu Finituview
Fighjemu un rapidu sguardu à cumu funziona u prughjettu.L'ESP32 o l'ESP8266 ospita a web servitore chì permette di cuntrullà u statu di una output;
- U statu di output attuale hè visualizatu nantu à u web servitore;
- L'ESP hè ancu cunnessu à un buttone fisicu chì cuntrola u listessu output;
- Se cambiate u statu di output usendu u puhsbutton fisicu, u so statu attuale hè ancu aghjurnatu nantu à u web servitore.
In riassuntu, stu prughjettu permette à voi à cuntrullà u listessu output cù a web servitore è un buttone simultaneamente. Ogni volta chì u statu di output cambia, u web u servitore hè aghjurnatu.
Parti necessarie
Eccu una lista di e parti chì avete bisognu di custruisce u circuitu:
- Scheda ESP32 DEVKIT V1
- LED 5 mm
- Resistenza 220 Ohm
- Pulsante
- Resistenza 10k Ohm
- Breadboard
- Fili jumper
SchematicuInstallazione di a Biblioteca per ESP32
Per custruisce questu web servitore, usemu u ESPAsyncWebBiblioteca di u servitore è AsyncTCP Library. (Se avete digià fattu stu passu, pudete saltà à u prossimu passu.)
Installazione di ESPAsyncWebBiblioteca di u servitore
Segui i passi successivi per installà ESPAsyncWebBiblioteca di u servitore:
- Cliccate quì per scaricà l'ESPAsyncWebBiblioteca di u servitore. Duvete avè
un cartulare .zip in u vostru cartulare Downloads - Unzip u cartulare .zip è duvete ottene ESPAsyncWebU cartulare di u servitore-maestru
- Rinominate u vostru cartulare da ESPAsyncWebServer-master à ESPAsyncWebServitore
- Move u ESPAsyncWebU cartulare di u servitore in u vostru cartulare di librerie di installazione Arduino IDE
In alternativa, in u vostru Arduino IDE, pudete andà à Sketch> Include
Library> Add .ZIP library... è selezziunate a biblioteca chì avete appena telecaricatu.
Installazione di a Biblioteca AsyncTCP per ESP32
L'ESPAsyncWebA biblioteca di u servitore richiede a biblioteca AsyncTCP per travaglià. Segui i seguenti passi per installà quella biblioteca:
- Cliccate quì per scaricà a libreria AsyncTCP. Tu avissi a hannu un cartulare .zip in u vostru cartulare Downloads
- Unzip u cartulare .zip è tu avissi a arrivare cartulare AsyncTCP-maestru
- Rinominate u vostru cartulare da AsyncTCP-master à AsyncTCP
- Sposta u cartulare AsyncTCP à u vostru cartulare di biblioteche di installazione Arduino IDE
- Infine, riapertura u vostru IDE Arduino
In alternativa, in u vostru Arduino IDE, pudete andà à Sketch> Include
Library> Add .ZIP library... è selezziunate a biblioteca chì avete appena telecaricatu.
Codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Dopu à stallà e librerie nicissarii, apre u codice
Project_8_Output_State_Synchronization_Web_Server.ino in arduino IDE.
Prima di cullà u codice, ùn vi scurdate di inserisce e vostre credenziali di rete per chì l'ESP pò cunnette à a vostra reta lucale.
Cumu Funziona u Codice
Statu di buttone è Statu di output
A variabile ledState cuntene u statu di output LED. Per difettu, quandu u web u servitore principia, hè BASSU.
ButtonState è lastButtonState sò usati per detectà s'ellu hè statu pressatu o micca u buttone.buttone (web servitore)
Ùn avemu micca inclusu l'HTML per creà u buttone nantu à a variabile index_html.
Hè perchè vulemu esse capace di cambià sicondu u statu LED attuale chì pò ancu esse cambiatu cù u buttone.
Allora, avemu creatu un locu per u buttone %BUTTONPLACEHOLDER% chì serà rimpiazzatu cù testu HTML per creà u buttone dopu nantu à u codice (questu hè fattu in a funzione di processatore ()).processore ()
A funzione di processatore () rimpiazza ogni placeholder nantu à u testu HTML cù valori attuali. Prima, verifica se i testi HTML cuntenenu
placeholders %BUTTONPLACEHOLDER%.Allora, chjamate a funzione OutputState () chì torna u statu di output attuale. Salvemu in a variabile outputStateValue.
Dopu questu, utilizate stu valore per creà u testu HTML per vede u buttone cù u statu ghjustu:
HTTP GET Richiesta per cambià u Statu di Output (JavaScript)
Quandu pressu u buttone, a funzione toggleCheckbox () hè chjamata. Sta funzione farà una dumanda nant'à differente URLs per accende o spegne u LED.Per accende u LED, face una dumanda nantu à /update?state=1 URL:
Altrimenti, face una dumanda nantu à /update?state=0 URL.
HTTP GET Richiesta per aghjurnà u Statu (JavaScript)
Per mantene u statu di output aghjurnatu nantu à u web servitore, chjamemu a seguente funzione chì face una nova dumanda nantu à / state URL ogni siconda.Gestisce e dumande
Allora, avemu bisognu di trattà ciò chì succede quandu l'ESP32 o l'ESP8266 riceve richieste nantu à quelli URLs.
Quandu una dumanda hè ricevuta nantu à a radica /URL, mandemu a pagina HTML è ancu u processatore.E seguenti linee verificate se avete ricevutu una dumanda nantu à /update?state=1 o /update?state=0 URL è cambia u ledState in cunseguenza.
Quandu una dumanda hè ricevutu nantu à u / state URL, mandemu u statu di output attuale:
loop ()
In u loop (), deboncemu u buttone è accendemu o spegnemu u LED secondu u valore di ledState. variabile.Dimustrazione
Caricate u codice à u vostru ESP32 board.Upload passi di riferimentu codice.
Allora, apre u Monitor Serial à una baud rate di 115200. Press u buttone EN / RST à bordu per uttene l'indirizzu IP.Aprite un navigatore in a vostra reta lucale, è scrivite l'indirizzu IP ESP. Duvete avè accessu à u web servitore cum'è mostra quì sottu.
Nota: U vostru navigatore è ESP32 deve esse cunnessi à a stessa LAN.Pudete scambià u buttone nantu à u web servitore per accende u LED.
Pudete ancu cuntrullà u listessu LED cù u buttone fisicu. U so statu sarà sempre aghjurnatu automaticamente nantu à u web servitore.
Prughjettu 9 ESP32 DHT11 Web Servitore
In questu prughjettu, amparate cumu custruisce un ESP32 asincronu web serveur avec le DHT11 qui affiche la température et l'humidité grâce à l'IDE Arduino.
Prerequisites
U web servitore, custruiremu l'aghjurnamenti di e letture automaticamente senza bisognu di rinfriscà web pagina.
Cù stu prughjettu amparate:
- Cumu leghje a temperatura è l'umidità da i sensori DHT;
- Custruisce un asincronu web servitore utilizendu u ESPAsyncWebBiblioteca di u servitore;
- Aghjurnate automaticamente e letture di i sensori senza bisognu di rinfriscà web pagina.
Asynchronous Web Servitore
Per custruisce u web servitore avemu aduprà u ESPAsyncWebBiblioteca di u servitore chì furnisce un modu faciule per custruisce un asincronu web servitore. Custruì un asincronu web servitore hà parechji advantages cum'è citatu in a pagina di a biblioteca GitHub, cum'è:
- "Gestisce più di una cunnessione à u stessu tempu";
- "Quandu mandate a risposta, site immediatamente prontu à trattà altre cunnessione mentre u servitore hè cura di mandà a risposta in u fondu";
- "Semplice mutore di trasfurmazioni di mudelli per trattà i mudelli";
Parti necessarie
Per compie stu tutoriale avete bisognu di e seguenti parti:
- scheda di sviluppu ESP32
- Modulu DHT11
- Breadboard
- Fili jumper
SchematicuInstallazione di Biblioteche
Avete bisognu di stallà un paru di biblioteche per stu prughjettu:
- U DHT è u Adafruit Unified Sensor Biblioteche di driver per leghje da u sensor DHT.
- ESPAsyncWebServitore è Async TCP biblioteche per custruisce l'asynchronous web servitore.
Segui i seguenti struzzioni per installà queste librerie:
Installazione di a Biblioteca di Sensori DHT
Per leghje da u sensor DHT utilizendu Arduino IDE, avete bisognu di stallà Biblioteca di sensori DHT. Segui i seguenti passi per installà a biblioteca.
- Cliccate quì per scaricà a biblioteca DHT Sensor. Tu avissi a hannu un cartulare .zip in u vostru cartulare Downloads
- Unzip u cartulare .zip è duvete ottene u cartulare DHT-sensor-library-master
- Rinominate u vostru cartulare da DHT-sensor-library-master à DHT_sensor
- Sposta u cartulare DHT_sensor à u vostru cartulare di biblioteche di installazione Arduino IDE
- Infine, riapertura u vostru IDE Arduino
Installazione di Adafruit Unified Sensor Driver
Avete ancu bisognu di stallà u Adafruit Unified Sensor Driver biblioteca per travaglià cù u sensor DHT. Segui i seguenti passi per installà a biblioteca.
- Cliccate quì per scaricà a biblioteca di Adafruit Unified Sensor. Tu avissi a hannu un cartulare .zip in u vostru cartulare Downloads
- Unzip u cartulare .zip è tu avissi a arrivare cartulare Adafruit_sensor-master
- Rinominate u vostru cartulare da Adafruit_sensor-master à Adafruit_sensor
- Sposta u cartulare Adafruit_sensor à u vostru cartulare di biblioteche di installazione Arduino IDE
- Infine, riapertura u vostru IDE Arduino
Installazione di ESPAsyncWebBiblioteca di u servitore
Segui i seguenti passi per installà u ESPAsyncWebServitore biblioteca:
- Cliccate quì per scaricà l'ESPAsyncWebBiblioteca di u servitore. Duvete avè
un cartulare .zip in u vostru cartulare Downloads - Unzip u cartulare .zip è duvete
uttene ESPAsyncWebU cartulare di u servitore-maestru - Rinominate u vostru cartulare da ESPAsyncWebServer-master à ESPAsyncWebServitore
- Move u ESPAsyncWebU cartulare di u servitore in u vostru cartulare di librerie di installazione Arduino IDE
Installazione di a Biblioteca Async TCP per ESP32
U ESPAsyncWebServitore biblioteca richiede u AsyncTCP biblioteca à travaglià. Segui i seguenti passi per installà quella biblioteca:
- Cliccate quì per scaricà a libreria AsyncTCP. Tu avissi a hannu un cartulare .zip in u vostru cartulare Downloads
- Unzip u cartulare .zip è tu avissi a arrivare cartulare AsyncTCP-maestru
- Rinominate u vostru cartulare da AsyncTCP-master à AsyncTCP
- Sposta u cartulare AsyncTCP à u vostru cartulare di biblioteche di installazione Arduino IDE
- Infine, riapertura u vostru IDE Arduino
Codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDE
Dopu à stallà e librerie nicissarii, apre u codice
Project_9_ESP32_DHT11_Web_Server.ino in arduino IDE.
Prima di cullà u codice, ùn vi scurdate di inserisce e vostre credenziali di rete per chì l'ESP pò cunnette à a vostra reta lucale.Cumu Funziona u Codice
In i paragrafi seguenti spiegheremu cumu u codice funziona. Continua a leghje s'è vo vulete amparà di più o saltà à a sezione Dimustrazione per vede u risultatu finali.
Importazione di biblioteche
Prima, importate e librerie necessarie. U WiFi, ESPAsyncWebServitore è ESPAsyncTCP sò necessarii per custruisce u web servitore. L'Adafruit_Sensor è e librerie DHT sò necessarii per leghje da i sensori DHT11 o DHT22.Definizione di variabili
Definite u GPIO chì u pin di dati DHT hè cunnessu. In questu casu, hè cunnessu à GPIO 4.Allora, selezziunate u tipu di sensor DHT chì stai aduprate. In u nostru example, avemu aduprà u DHT22. Sè vo aduprate un altru tipu, basta à annullà u vostru sensoru è cummentà tutti l'altri.
Instanziate un oggettu DHT cù u tipu è u pin chì avemu definitu prima.Crea un AsyncWebUghjettu di u servitore nantu à u portu 80.
Leghjite Funzioni di temperatura è umidità
Avemu criatu duie funzioni : una per leghje a temperatura Avemu creatu duie funzioni : una per leghje a temperatura (readDHTTemperature()) è l'altra per leghje l'umidità (readDHTHumidity()).Ottene letture di i sensori hè simplice quant'è l'utilizazione Ottene e letture di i sensori hè simplice quant'è aduprà i metudi readTemperature () è readHumidity () nantu à l'ughjettu dht.
Avemu ancu una cundizione chì torna dui trattini (–) in casu chì u sensoru ùn riesce à ottene e letture.
E letture sò tornate cum'è tippu di stringa. Per cunvertisce un float in una stringa, utilizate a funzione String().
Per automaticamente, leghjemu a temperatura in gradi Celsius. Per piglià a temperatura in gradi Fahrenheit, cummentate a temperatura in Celsius è sguassate a temperatura in Fahrenheit, perchè avete i seguenti:
Caricate u codice
Avà, carica u codice à u vostru ESP32. Fate sicuru chì vo avete u bordu dritta è portu COM selected.Upload codice riferimentu passi.
Dopu a carica, apre u Monitor Serial à una baud rate di 115200. Press u buttone di resettore ESP32. L'indirizzu IP ESP32 deve esse stampatu in u seriale monitor.Dimustrazione
Aprite un navigatore è scrivite l'indirizzu IP ESP32. U vostru web u servitore deve visualizà l'ultime letture di u sensoru.
Nota: U vostru navigatore è ESP32 deve esse cunnessi à a stessa LAN.
Avvisate chì e letture di temperatura è umidità sò aghjurnate automaticamente senza bisognu di rinfriscà web pagina.
Project_10_ESP32_OLED_Display
Stu prughjettu mostra cumu utilizà a visualizazione OLED SSD0.96 1306 inch cù ESP32 cù Arduino IDE.
Introducendu 0.96 inch Display OLED
U Display OLED chì avemu aduprà in stu tutoriale hè u mudellu SSD1306: un monocolore, 0.96 inch display cù 128 × 64 pixels cum'è mostra in a figura seguente.A visualizazione OLED ùn hà micca bisognu di retroilluminazione, chì risulta in un cuntrastu assai bellu in ambienti scuri. Inoltre, i so pixel cunsumu energia solu quandu sò accesi, cusì a visualizazione OLED cunsuma menu energia in paragunà à l'altri display.
Perchè a visualizazione OLED usa u protocolu di cumunicazione I2C, u cablaggio hè assai simplice. Pudete aduprà a tavula seguente cum'è riferimentu.
Pin OLED | ESP 32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SchematicuInstallazione di SSD1306 OLED Library - ESP32
Ci hè parechje biblioteche dispunibuli per cuntrullà a visualizazione OLED cù l'ESP32.
In questu tutoriale useremu duie librerie Adafruit: Adafruit_SSD1306 biblioteca è Adafruit_GFX biblioteca.
Segui i seguenti passi per installà quelli biblioteche.
- Aprite u vostru Arduino IDE è andate à Sketch> Include Library> Manage Libraries. U Manager di Biblioteche deve esse apertu.
- Type "SSD1306" in a casella di ricerca è installate a biblioteca SSD1306 da Adafruit.
- Dopu avè installatu a biblioteca SSD1306 da Adafruit, scrivite "GFX" in a casella di ricerca è installate a biblioteca.
- Dopu avè installatu e librerie, riavvia u vostru IDE Arduino.
Codice
Dopu avè installatu e librerie richieste, apre u Project_10_ESP32_OLED_Display.ino in arduino IDE. codice
Prugrammaremu l'ESP32 utilizendu Arduino IDE, dunque assicuratevi di avè installatu l'add-on ESP32 prima di prucede: (Se avete digià fattu stu passu, pudete saltà à u passu prossimu).
Installazione di ESP32 Add-on in Arduino IDECumu Funziona u Codice
Importazione di biblioteche
Prima, avete bisognu di impurtà e librerie necessarie. A libreria Wire per utilizà I2C è e librerie Adafruit per scrive à a visualizazione: Adafruit_GFX è Adafruit_SSD1306.Inizializza a visualizazione OLED
Allora, definisce a vostra larghezza è altezza OLED. In questu example, avemu aduprà un display OLED 128 × 64. Sè vo aduprate altre dimensioni, pudete cambià in e variabili SCREEN_WIDTH è SCREEN_HEIGHT.Allora, inizializza un oggettu di visualizazione cù a larghezza è l'altezza definite prima cù u protocolu di cumunicazione I2C (&Wire).
U paràmetru (-1) significa chì u vostru display OLED ùn hà micca un pin RESET. Se u vostru display OLED hà un pin RESET, deve esse cunnessu à un GPIO. In questu casu, duvete passà u numeru GPIO cum'è paràmetru.
In u setup (), inizializza u Monitor Serial à un baud raute di 115200 per scopi di debugging.Inizializza a visualizazione OLED cù u metudu begin() cum'è seguente:
Stu snippet stampa ancu un missaghju nantu à u Monitor Serial, in casu chì ùn pudemu micca cunnette à a visualizazione.
In casu chì aduprate una visualizazione OLED diversa, pudete avè bisognu di cambià l'indirizzu OLED. In u nostru casu, l'indirizzu hè 0x3C.
Dopu avè inizializatu a visualizazione, aghjunghje un ritardu di dui secondi, perchè l'OLED hà abbastanza tempu per inizializza prima di scrive u testu:
Clear Display, stabilisce a dimensione di font, culore è scrive u testu
Dopu avè inizializatu a visualizazione, sguassate u buffer di visualizazione cù u metudu clearDisplay():
Prima di scrive u testu, avete bisognu di stabilisce a dimensione di u testu, u culore è induve u testu serà visualizatu in l'OLED.
Stabbilisce a dimensione di font usendu u metudu setTextSize ():Pone u culore di font cù u metudu setTextColor() :
WHITE stabilisce un font biancu è un fondo neru.
Definite a pusizione induve u testu principia cù u metudu setCursor(x,y). In questu casu, avemu stabilitu u testu per cumincià à e coordenate (0,0) - à l'angulu superiore manca.Infine, pudete mandà u testu à a visualizazione cù u metudu println() , cum'è seguita
Allora, avete bisognu di chjamà u metudu display () per vede veramente u testu nantu à u screnu.
A libreria Adafruit OLED furnisce metudi utili per scorrere facilmente u testu.
- startscrollright (0x00, 0x0F): scorri u testu da manca à diritta
- startscrollleft(0x00, 0x0F): scorri u testu da diritta à manca
- startscrolldiagright (0x00, 0x07): scorri u testu da l'angulu in fondu à a manca à l'angulu superiore destra startscrolldiagleft (0x00, 0x07): scorri u testu da l'angulu in fondu à a manca à l'angulu superiore manca
Caricate u codice
Avà, Caricà u codice à u vostru ESP32.Upload passi riferimentu codice.
Dopu à carica u codice, l'OLED mostrarà u testu di scorrimentu.
Documenti / Risorse
![]() |
LAFVIN ESP32 Basic Starter Kit [pdfManuale d'istruzzioni ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |