Logotip LAFVINOsnovni zaganjalnik ESP32
Komplet

Pakirni seznam

Osnovni začetni komplet LAFVIN ESP32 - Pakirni seznam

ESP32 Uvod

Ste novi pri ESP32? Začni tukaj! ESP32 je serija nizkocenovnih in nizkoenergijskih mikrokrmilnikov sistema na čipu (SoC), ki jih je razvil Espressif in vključujejo brezžične zmogljivosti Wi-Fi in Bluetooth ter dvojedrni procesor. Če poznate ESP8266, je ESP32 njegov naslednik, poln številnih novih funkcij.Osnovni začetni komplet LAFVIN ESP32 - Predstavitev ESP32Specifikacije ESP32
Če želite biti bolj tehnični in specifični, si lahko ogledate naslednje podrobne specifikacije ESP32 (vir: http://esp32.net/)—za več podrobnosti, preveri podatkovni list):

  • Brezžična povezljivost WiFi: hitrost prenosa podatkov 150.0 Mbps s HT40
  • Bluetooth: BLE (Bluetooth Low Energy) in Bluetooth Classic
  • Procesor: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprocesor, ki deluje na 160 ali 240 MHz
  • Pomnilnik:
  • ROM: 448 KB (za zagon in osnovne funkcije)
  • SRAM: 520 KB (za podatke in navodila)
  • RTC hitri SRAM: 8 KB (za shranjevanje podatkov in glavni CPE med zagonom RTC iz načina globokega spanja)
  • RTC počasen SRAM: 8 KB (za dostop koprocesorja med načinom globokega spanja) eFuse: 1 Kbit (od tega se 256 bitov uporablja za sistem (naslov MAC in konfiguracija čipa), preostalih 768 bitov pa je rezerviranih za uporabniške aplikacije, vključno z Šifriranje Flash in ID čipa)

Vdelana bliskavica: bliskavica je interno povezana prek IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 in SD_DATA_1 na ESP32-D2WD in ESP32-PICO-D4.

  • 0 MiB (čipi ESP32-D0WDQ6, ESP32-D0WD in ESP32-S0WD)
  • 2 MiB (čip ESP32-D2WD)
  • 4 MiB (ESP32-PICO-D4 SiP modul)

Low Power: zagotavlja, da lahko še vedno uporabljate pretvorbe ADC, nprample, med globokim spanjem.
Periferni vhod/izhod:

  • periferni vmesnik z DMA, ki vključuje kapacitivni dotik
  • ADC (analogno-digitalni pretvornik)
  • DAC (Digitalno-analogni pretvornik)
  • I²C (interintegrirano vezje)
  • UART (univerzalni asinhroni sprejemnik/oddajnik)
  • SPI (serijski periferni vmesnik)
  • I²S (Integrated Interchip Sound)
  • RMII (zmanjšan vmesnik, neodvisen od medijev)
  • PWM (širinsko impulzna modulacija)

Varnost: strojni pospeševalci za AES in SSL/TLS

Razvojne plošče ESP32

ESP32 se nanaša na goli čip ESP32. Vendar se izraz "ESP32" uporablja tudi za razvojne plošče ESP32. Uporaba golih čipov ESP32 ni enostavna ali praktična, zlasti pri učenju, testiranju in izdelavi prototipov. Večino časa boste želeli uporabiti razvojno ploščo ESP32.
Kot referenco bomo uporabili ploščo ESP32 DEVKIT V1. Spodnja slika prikazuje ploščo ESP32 DEVKIT V1, različica s 30 nožicami GPIO.Osnovni začetni komplet LAFVIN ESP32 - razvojne plošče ESP32Specifikacije – ESP32 DEVKIT V1
Naslednja tabela prikazuje povzetek funkcij in specifikacij plošče ESP32 DEVKIT V1 DOIT:

Število jeder 2 (dvojedrni)
Wi-Fi 2.4 GHz do 150 Mbit/s
Bluetooth BLE (Bluetooth Low Energy) in starejši Bluetooth
Arhitektura 32 bitov
Urna frekvenca Do 240 MHz
RAM 512 KB
Zatiči 30 (odvisno od modela)
periferne naprave Kapacitivni na dotik, ADC (analogno-digitalni pretvornik), DAC (digitalno-analogni pretvornik), 12C (Interintegrirano vezje), UART (univerzalni asinhroni sprejemnik/oddajnik), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrirani Inter-IC
Zvok), RMII (zmanjšan vmesnik, neodvisen od medijev), PWM (modulacija širine impulza) in več.
Vgrajeni gumbi Gumba RESET in BOOT
Vgrajene LED diode vgrajena modra LED, povezana z GPIO2; vgrajena rdeča LED, ki prikazuje, da se plošča napaja
USB v UART
most
CP2102

LAFVIN ESP32 Osnovni začetni komplet - ESP32 DEVKITNa voljo je z vmesnikom microUSB, ki ga lahko uporabite za povezavo plošče z računalnikom za nalaganje kode ali napajanje.
Uporablja čip CP2102 (USB v UART) za komunikacijo z vašim računalnikom prek vrat COM z uporabo serijskega vmesnika. Drug priljubljen čip je CH340. Preverite, kakšen je pretvornik čipa USB v UART na vaši plošči, ker boste morali namestiti potrebne gonilnike, da bo vaš računalnik lahko komuniciral s ploščo (več informacij o tem kasneje v tem priročniku).
Ta plošča ima tudi gumb RESET (lahko je označen z EN) za ponovni zagon plošče in gumb BOOT za preklop plošče v način utripanja (na voljo za sprejem kode). Upoštevajte, da nekatere plošče morda nimajo gumba BOOT.
Ima tudi vgrajeno modro LED, ki je interno povezana z GPIO 2. Ta LED je uporabna za razhroščevanje, da daje nekakšen vizualni fizični izhod. Obstaja tudi rdeča LED, ki zasveti, ko napajate ploščo.LAFVIN ESP32 Basic Starter Kit - ploščaPinout ESP32
Zunanje naprave ESP32 vključujejo:

  • 18 kanalov analogno-digitalnega pretvornika (ADC).
  • 3 SPI vmesniki
  • 3 UART vmesnika
  • 2 I2C vmesnika
  • 16 PWM izhodni kanali
  • 2 digitalno-analogna pretvornika (DAC)
  • 2 I2S vmesnika
  • 10 GPIO s kapacitivnim zaznavanjem

Funkciji ADC (analogno-digitalni pretvornik) in DAC (digitalno-analogni pretvornik) sta dodeljeni posebnim statičnim zatičem. Lahko pa se odločite, kateri pini so UART, I2C, SPI, PWM itd. – le dodeliti jih morate v kodi. To je mogoče zaradi funkcije multipleksiranja čipa ESP32.
Čeprav lahko določite lastnosti zatičev v programski opremi, so privzeto dodeljeni zatiči, kot je prikazano na naslednji slikiLAFVIN ESP32 Osnovni začetni komplet - ESP32 PinoutPoleg tega obstajajo zatiči s posebnimi lastnostmi, zaradi katerih so primerni ali ne za določen projekt. Naslednja tabela prikazuje, katere zatiče je najbolje uporabiti kot vhode, izhode in pri katerih morate biti previdni.
Žebljički, označeni z zeleno, so primerni za uporabo. Tisti, označeni z rumeno, so primerni za uporabo, vendar morate biti pozorni, ker se lahko nepričakovano obnašajo predvsem ob zagonu. Zatičev, označenih z rdečo, ni priporočljivo uporabljati kot vhode ali izhode.

GP IO Vnos Izhod Opombe
0 potegnil gor OK oddaja signal PWM ob zagonu, mora biti LOW za vstop v način utripanja
1 TX zatič OK izhod za odpravljanje napak ob zagonu
2 OK OK priključen na vgrajeno LED, mora pustiti lebdeči ali LOW, da preidete v način utripanja
3 OK RX zatič VISOK ob zagonu
4 OK OK
5 OK OK oddaja signal PWM ob zagonu, zatič za pritrditev
12 OK OK prtljažnik odpove, če ga visoko potegnemo, jermenski zatič
13 OK OK
14 OK OK odda signal PWM ob zagonu
15 OK OK oddaja signal PWM ob zagonu, zatič za pritrditev
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 samo vnos
35 OK samo vnos
36 OK samo vnos
39 OK samo vnos

Nadaljujte z branjem za podrobnejšo in poglobljeno analizo ESP32 GPIO in njegovih funkcij.
Vnesite samo žebljičke
GPIO-ji od 34 do 39 so GPI-ji – zatiči samo za vnos. Ti zatiči nimajo notranjih pull-up ali pull-down uporov. Ni jih mogoče uporabiti kot izhode, zato uporabite te nožice le kot vhode:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

SPI bliskavica, integrirana v ESP-WROOM-32
GPIO 6 do GPIO 11 so izpostavljeni v nekaterih razvojnih ploščah ESP32. Vendar pa so ti zatiči povezani z integrirano bliskavico SPI na čipu ESP-WROOM-32 in niso priporočljivi za druge namene. Torej, ne uporabljajte teh žebljičkov v svojih projektih:

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

Kapacitivni GPIO na dotik
ESP32 ima 10 notranjih kapacitivnih senzorjev na dotik. Ti lahko zaznavajo razlike v vsem, kar ima električni naboj, kot je človeška koža. Tako lahko zaznajo variacije, ki nastanejo ob dotiku GPIO s prstom. Te zatiče je mogoče preprosto integrirati v kapacitivne ploščice in nadomestiti mehanske gumbe. Kapacitivne zatiče na dotik lahko uporabite tudi za prebujanje ESP32 iz globokega spanca. Ti notranji senzorji za dotik so povezani s temi 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)

Analogno-digitalni pretvornik (ADC)
ESP32 ima 18 x 12-bitne ADC vhodne kanale (medtem ko ima ESP8266 le 1x 10-bitni ADC). To so GPIO-ji, ki se lahko uporabljajo kot ADC in ustrezni kanali:

  • 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)

Opomba: Zatičev ADC2 ni mogoče uporabiti, ko se uporablja Wi-Fi. Torej, če uporabljate Wi-Fi in imate težave pri pridobivanju vrednosti iz ADC2 GPIO, lahko namesto tega razmislite o uporabi ADC1 GPIO. To bi moralo rešiti vaš problem.
Vhodni kanali ADC imajo 12-bitno ločljivost. To pomeni, da lahko dobite analogne odčitke v razponu od 0 do 4095, pri čemer 0 ustreza 0 V in 4095 do 3.3 V. Prav tako lahko nastavite ločljivost svojih kanalov na kodo in območje ADC.
Zatiči ADC ESP32 nimajo linearnega obnašanja. Verjetno ne boste mogli razlikovati med 0 in 0.1 V ali med 3.2 in 3.3 V. To morate upoštevati pri uporabi zatičev ADC. Dobili boste podobno vedenje, kot je prikazano na naslednji sliki.LAFVIN ESP32 Basic Starter Kit - obnašanjeDigitalno-analogni pretvornik (DAC)
Na ESP2 sta 8 x 32-bitna kanala DAC za pretvorbo digitalnih signalov v analogne voltage signalni izhodi. To so kanali DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
Na ESP32 obstaja podpora za RTC GPIO. GPIO-ji, usmerjeni v podsistem nizke porabe RTC, se lahko uporabljajo, ko je ESP32 v stanju globokega spanja. Te RTC GPIO-je lahko uporabite za prebujanje ESP32 iz globokega spanja, ko je Ultra Low
Power (ULP) koprocesor deluje. Naslednje GPIO-je je mogoče uporabiti kot zunanji vir bujenja.

  • 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
Krmilnik ESP32 LED PWM ima 16 neodvisnih kanalov, ki jih je mogoče konfigurirati za generiranje signalov PWM z različnimi lastnostmi. Vsi zatiči, ki lahko delujejo kot izhodi, se lahko uporabljajo kot zatiči PWM (GPIO-ji 34 do 39 ne morejo ustvariti PWM).
Če želite nastaviti signal PWM, morate v kodi definirati te parametre:

  • frekvenca signala;
  • Delovni cikel;
  • PWM kanal;
  • GPIO, kjer želite oddati signal.

I2C
ESP32 ima dva kanala I2C in katerikoli pin je mogoče nastaviti kot SDA ali SCL. Pri uporabi ESP32 z Arduino IDE so privzeti zatiči I2C:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Če želite pri uporabi žične knjižnice uporabiti druge zatiče, morate le poklicati:
Wire.begin(SDA, SCL);
SPI
Privzeto je preslikava pinov za SPI:

SPI DAWDLE MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Prekinitve
Vse GPIO je mogoče konfigurirati kot prekinitve.
Zatiči za vezanje
Čip ESP32 ima naslednje pritrdilne zatiče:

  • GPIO 0 (mora biti LOW za vstop v način zagona)
  • GPIO 2 (mora biti lebdeč ali LOW med zagonom)
  • GPIO 4
  • GPIO 5 (med zagonom mora biti HIGH)
  • GPIO 12 (mora biti LOW med zagonom)
  • GPIO 15 (med zagonom mora biti HIGH)

Ti se uporabljajo za preklop ESP32 v zagonski ali utripajoči način. Pri večini razvojnih plošč z vgrajenim USB/Serial vam ni treba skrbeti za stanje teh nožic. Plošča postavi nožice v pravo stanje za način utripanja ali zagona. Več informacij o izbiri načina zagona ESP32 najdete tukaj.
Vendar, če imate zunanje naprave povezane s temi zatiči, boste morda imeli težave pri poskusu nalaganja nove kode, utripanja ESP32 z novo vdelano programsko opremo ali ponastavitve plošče. Če imate nekaj zunanjih naprav povezanih z zatiči za pripenjanje in imate težave pri nalaganju kode ali utripanju ESP32, je to morda zato, ker te zunanje naprave preprečujejo, da bi ESP32 vstopil v pravi način. Preberite dokumentacijo o izbiri načina zagona, ki vas bo vodila v pravo smer. Po ponastavitvi, utripanju ali zagonu ti zatiči delujejo po pričakovanjih.
Zatiči VISOKI pri zagonu
Nekateri GPIO spremenijo svoje stanje v HIGH ali oddajo signale PWM ob zagonu ali ponastavitvi.
To pomeni, da če imate izhode, povezane s temi GPIO, lahko dobite nepričakovane rezultate, ko se ESP32 ponastavi ali zažene.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 do GPIO 11 (povezan z vgrajenim bliskovnim pomnilnikom SPI ESP32 – uporaba ni priporočljiva).
  • GPIO 14
  • GPIO 15

Omogoči (EN)
Enable (EN) je zatič za omogočanje 3.3 V regulatorja. Povlečen je navzgor, zato ga povežite z ozemljitvijo, da onemogočite regulator 3.3 V. To pomeni, da lahko uporabite ta zatič, povezan s tipko za ponovni zagon vašega ESP32, nprample.
Poraba toka GPIO
Absolutni največji tok, ki ga porabi GPIO, je 40 mA v skladu z razdelkom »Priporočeni pogoji delovanja« v podatkovnem listu ESP32.
ESP32 Vgrajen Hallov senzor
ESP32 ima tudi vgrajen Hallov senzor, ki zaznava spremembe v magnetnem polju v okolici
ESP32 Arduino IDE
Obstaja dodatek za Arduino IDE, ki vam omogoča programiranje ESP32 z uporabo Arduino IDE in njegovega programskega jezika. V tej vadnici vam bomo pokazali, kako namestite ploščo ESP32 v Arduino IDE, ne glede na to, ali uporabljate Windows, Mac OS X ali Linux.
Predpogoji: nameščen Arduino IDE
Preden začnete ta postopek namestitve, morate imeti v računalniku nameščen Arduino IDE. Obstajata dve različici Arduino IDE, ki ju lahko namestite: različica 1 in različica 2.
Arduino IDE lahko prenesete in namestite s klikom na naslednjo povezavo: arduino.cc/en/Main/Programska oprema
Katero različico Arduino IDE priporočamo? Trenutno jih je nekaj plugins za ESP32 (kot SPIFFS FileSystem Uploader Plugin), ki še niso podprti v Arduinu 2. Torej, če nameravate v prihodnosti uporabljati vtičnik SPIFFS, priporočamo namestitev starejše različice 1.8.X. Samo pomakniti se morate navzdol po strani programske opreme Arduino, da jo najdete.
Namestitev dodatka ESP32 v Arduino IDE
Za namestitev plošče ESP32 v vaš Arduino IDE sledite tem navodilom:

  1. V vašem Arduino IDE pojdite na File> PreferenceOsnovni začetni komplet LAFVIN ESP32 – nastavitve
  2. Vnesite naslednje v »Additional Board Manager URLs” polje:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Nato kliknite gumb »V redu«:LAFVIN ESP32 Basic Starter Kit - gumb “OK”.Opomba: če že imate plošče ESP8266 URL, lahko ločite URLs z vejico, kot sledi:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Odprite upravitelja plošč. Pojdite na Orodja > Tabla > Upravitelj plošč…LAFVIN ESP32 Osnovni začetni komplet - EspressifIskanje ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Osnovni začetni komplet - EspressifTo je vse. Po nekaj sekundah bi moral biti nameščen.LAFVIN ESP32 Basic Starter Kit - nameščen

Naloži preskusno kodo

Priključite ploščo ESP32 na računalnik. Ko je Arduino IDE odprt, sledite tem korakom:

  1. Izberite svojo ploščo v meniju Orodja > Plošča (v mojem primeru je to modul ESP32 DEV)LAFVIN ESP32 Osnovni začetni komplet - plošča z orodji
  2. Izberite vrata (če v vašem Arduino IDE ne vidite vrat COM, morate namestiti gonilnike VCP CP210x USB to UART Bridge):Osnovni začetni komplet LAFVIN ESP32 - most UART
  3. Odprite naslednji example pod File > Npramples > WiFi
    (ESP32) > WiFiScanOsnovni začetni komplet LAFVIN ESP32 - WiFiScanOsnovni začetni komplet LAFVIN ESP32 - WiFiScan 1
  4. V vašem Arduino IDE se odpre nova skica:Osnovni začetni komplet LAFVIN ESP32 - Arduino IDE
  5. Pritisnite gumb Naloži v Arduino IDE. Počakajte nekaj sekund, da se koda prevede in naloži na vašo tablo.LAFVIN ESP32 Basic Starter Kit - plošča
  6. Če je šlo vse po pričakovanjih, bi morali videti »Nalaganje končano«. sporočilo.Osnovni začetni komplet LAFVIN ESP32 – nalaganje končano
  7. Odprite Arduino IDE Serial Monitor pri hitrosti prenosa 115200:LAFVIN ESP32 Osnovni začetni komplet - Monitor
  8. Pritisnite vgrajeni gumb ESP32 Enable in videli bi omrežja, ki so na voljo v bližini vašega ESP32:LAFVIN ESP32 Basic Starter Kit – gumb za omogoči

Odpravljanje težav

Če poskušate naložiti novo skico v svoj ESP32 in dobite to sporočilo o napaki »Prišlo je do usodne napake: Povezava z ESP32 ni uspela: Časovna omejitev je potekla… Povezovanje…«. To pomeni, da vaš ESP32 ni v načinu utripanja/nalaganja.
Ko ste izbrali pravo ime plošče in COM por, sledite tem korakom:
Držite gumb "BOOT" na vaši plošči ESP32Osnovni začetni komplet LAFVIN ESP32 - “BOOT”

  • Pritisnite gumb »Naloži« v Arduino IDE, da naložite svojo skico:LAFVIN ESP32 Osnovni začetni komplet - ICON 6
  • Ko vidite "Povezovanje ...." sporočilo v vašem Arduino IDE, spustite prst z gumba »BOOT«:Osnovni začetni komplet LAFVIN ESP32 - »Nalaganje končano
  • Po tem bi morali videti sporočilo »Končano nalaganje«.
    To je to. Vaš ESP32 bi moral imeti zagnano novo skico. Pritisnite gumb "OMOGOČI", da znova zaženete ESP32 in zaženete novo naloženo skico.
    To zaporedje gumbov boste morali ponoviti tudi vsakič, ko želite naložiti novo skico.

Projekt 1 ESP32 Vhodi Izhodi

V tem vodniku za začetek se boste naučili brati digitalne vhode, kot je stikalo z gumbi, in upravljati digitalne izhode, kot je LED, z uporabo ESP32 z Arduino IDE.
Predpogoji
ESP32 bomo programirali z uporabo Arduino IDE. Zato se prepričajte, da imate nameščen dodatek za plošče ESP32, preden nadaljujete:

  • Namestitev dodatka ESP32 v Arduino IDE

ESP32 Nadzor digitalnih izhodov
Najprej morate nastaviti GPIO, ki ga želite nadzorovati kot IZHOD. Uporabite funkcijo pinMode() na naslednji način:
pinMode(GPIO, IZHOD);
Za nadzor digitalnega izhoda morate uporabiti samo funkcijo digitalWrite(), ki kot argumente sprejme GPIO (število int), na katerega se sklicujete, in stanje, bodisi HIGH ali LOW.
digitalWrite(GPIO, STANJE);
Vsi GPIO-ji se lahko uporabljajo kot izhodi, razen GPIO-ji 6 do 11 (povezani z vgrajeno bliskavico SPI) in GPIO-ji 34, 35, 36 in 39 (GPIO-ji samo za vhod);
Izvedite več o ESP32 GPIO: Referenčni vodnik ESP32 GPIO
ESP32 Branje digitalnih vhodov
Najprej nastavite GPIO, ki ga želite prebrati kot INPUT, s funkcijo pinMode() na naslednji način:
pinMode (GPIO, INPUT);
Za branje digitalnega vhoda, kot je gumb, uporabite funkcijo digitalRead(), ki kot argument sprejme GPIO (število int), na katerega se sklicujete.
digitalno branje (GPIO);
Vse GPIO-je ESP32 je mogoče uporabiti kot vhode, razen GPIO-jev 6 do 11 (povezanih z integrirano bliskavico SPI).
Izvedite več o ESP32 GPIO: Referenčni vodnik ESP32 GPIO
Projekt Example
Da bi vam pokazali, kako uporabljati digitalne vhode in digitalne izhode, bomo zgradili preprost projekt, nprample s tipkalom in LED. Odčitali bomo stanje tipke in ustrezno prižgali LED, kot je prikazano na naslednji sliki.LAFVIN ESP32 Basic Starter Kit - Project Example

Zahtevani deli
Tukaj je seznam delov, ki jih potrebujete za izdelavo vezja:

  • ESP32 DEVKIT V1
  • 5 mm LED
  • 220 Ohm upor
  • Pritisni gumb
  • 10k Ohm upor
  • Breadboard
  • Premostitvene žice

Shematski diagram
Preden nadaljujete, morate sestaviti vezje z LED in gumbom.
LED bomo povezali z GPIO 5 in gumb z GPIO 4.Osnovni začetni komplet LAFVIN ESP32 - shematski diagramKoda
Odprite kodo Project_1_ESP32_Inputs_Outputs.ino v arduino IDELAFVIN ESP32 Osnovni začetni komplet - kodaLAFVIN ESP32 Osnovni začetni komplet - koda 1Kako koda deluje
V naslednjih dveh vrsticah ustvarite spremenljivke za dodeljevanje zatičev:

Osnovni začetni komplet LAFVIN ESP32 – koda delujeGumb je povezan z GPIO 4, LED pa z GPIO 5. Ko uporabljate Arduino IDE z ESP32, 4 ustreza GPIO 4 in 5 ustreza GPIO 5.
Nato ustvarite spremenljivko, ki zadrži stanje gumba. Privzeto je 0 (ni pritisnjeno).
int buttonState = 0;
V setup() inicializirate gumb kot VHOD, LED pa kot IZHOD.
Za to uporabite funkcijo pinMode(), ki sprejme pin, na katerega se sklicujete, in način: INPUT ali OUTPUT.
pinMode(gumbPin, INPUT);
pinMode(ledPin, IZHOD);
V zanki() preberete stanje gumba in ustrezno nastavite LED.
V naslednji vrstici preberete stanje gumba in ga shranite v spremenljivko buttonState.
Kot smo že videli, uporabljate funkcijo digitalRead().
buttonState = digitalRead(buttonPin);
Naslednji stavek if preveri, ali je stanje gumba VISOKO. Če je, vklopi LED s funkcijo digitalWrite(), ki kot argument sprejme ledPin in stanje HIGH.
if (buttonState == HIGH)Osnovni začetni komplet LAFVIN ESP32 – koda deluje 1Če stanje gumba ni VISOKO, izklopite LED. Samo nastavite LOW kot drugi argument v funkciji digitalWrite().Osnovni začetni komplet LAFVIN ESP32 - digitalWriteNalaganje kode
Preden kliknete gumb za nalaganje, pojdite na Orodja > Tabla in izberite ploščo :DOIT ESP32 DEVKIT V1.
Pojdite na Orodja > Vrata in izberite vrata COM, na katera je povezan ESP32. Nato pritisnite gumb za nalaganje in počakajte na sporočilo »Nalaganje končano«.LAFVIN ESP32 Osnovni začetni komplet - ICON 7Opomba: Če vidite veliko pik (povezovanje…__…__) v oknu za razhroščevanje in sporočilo »Povezava z ESP32 ni uspela: čakanje na glavo paketa je poteklo«, to pomeni, da morate pritisniti ESP32 na plošči ZAGON gumb za pikami
se začnejo pojavljati. Odpravljanje težav

Demonstracija

Po nalaganju kode preizkusite svoje vezje. Ko pritisnete gumb, bi morala LED zasvetiti:Osnovni začetni komplet LAFVIN ESP32 - predstavitevIn izklopite, ko ga spustite:Osnovni začetni komplet LAFVIN ESP32 - izklop

Projekt 2 Analogni vhodi ESP32

Ta projekt prikazuje, kako brati analogne vhode z ESP32 z uporabo Arduino IDE.
Analogno branje je uporabno za branje vrednosti iz spremenljivih uporov, kot so potenciometri ali analogni senzorji.
Analogni vhodi (ADC)
Branje analogne vrednosti z ESP32 pomeni, da lahko merite različne voltage med 0 V in 3.3 V.
VoltagIzmerjeni e je nato dodeljen vrednosti med 0 in 4095, pri čemer 0 V ustreza 0, 3.3 V pa ustreza 4095.tage med 0 V in 3.3 V bo dodeljena ustrezna vrednost vmes.LAFVIN ESP32 Osnovni začetni komplet - analogni vhodiADC je nelinearen
V idealnem primeru bi pričakovali linearno obnašanje pri uporabi zatičev ESP32 ADC.
Vendar se to ne zgodi. Dobili boste vedenje, kot je prikazano v naslednji tabeli:LAFVIN ESP32 Osnovni začetni komplet - nelinearniTo vedenje pomeni, da vaš ESP32 ne more razlikovati 3.3 V od 3.2 V.
Dobili boste enako vrednost za oba voltages: 4095.
Enako se zgodi pri zelo nizki voltage vrednosti: za 0 V in 0.1 V boste dobili enako vrednost: 0. To morate upoštevati pri uporabi zatičev ESP32 ADC.
funkcija analogRead().
Branje analognega vhoda z ESP32 z uporabo Arduino IDE je tako preprosto kot uporaba funkcije analogRead(). Kot argument sprejme GPIO, ki ga želite prebrati:
analogno branje (GPIO);
Samo 15 jih je na voljo v plošči DEVKIT V1board (različica s 30 GPIO).
Zgrabite pinout vaše plošče ESP32 in poiščite zatiče ADC. Ti so na spodnji sliki označeni z rdečo obrobo.LAFVIN ESP32 Basic Starter Kit - obrobaTi analogni vhodni zatiči imajo 12-bitno ločljivost. To pomeni, da ko berete analogni vhod, se lahko njegov obseg spreminja od 0 do 4095.
Opomba: zatičev ADC2 ni mogoče uporabiti, ko se uporablja Wi-Fi. Torej, če uporabljate Wi-Fi in imate težave pri pridobivanju vrednosti iz ADC2 GPIO, lahko razmislite o uporabi ADC1 GPIO namesto tega, kar bi moralo rešiti vašo težavo.
Da bi videli, kako se vse povezuje, bomo naredili preprost example za branje analogne vrednosti s potenciometra.
Zahtevani deli
Za tega bivšegaample, potrebujete naslednje dele:

  • Plošča ESP32 DEVKIT V1
  • Potenciometer
  • Breadboard
  • Premostitvene žice

shematski
Priključite potenciometer na vaš ESP32. Srednji zatič potenciometra mora biti priključen na GPIO 4. Kot referenco lahko uporabite naslednji shematski diagram.Osnovni začetni komplet LAFVIN ESP32 - shemaKoda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Odprite kodo Project_2_ESP32_Inputs_Outputs.ino v arduino IDELAFVIN ESP32 Osnovni začetni komplet - koda 2Ta koda preprosto prebere vrednosti s potenciometra in jih natisne v serijski monitor.
V kodi začnete z definiranjem GPIO, na katerega je priključen potenciometer. V tem bivšemample, GPIO 4.Osnovni začetni komplet LAFVIN ESP32 - exampleV setup() inicializirajte serijsko komunikacijo s hitrostjo prenosa 115200 baud.Osnovni začetni komplet LAFVIN ESP32 - example 1V loop() uporabite funkcijo analogRead(), da preberete analogni vhod iz potPin.Osnovni začetni komplet LAFVIN ESP32 - example 2Na koncu natisnite vrednosti, prebrane s potenciometra v serijskem monitorju.Osnovni začetni komplet LAFVIN ESP32 - example 3Naložite priloženo kodo v svoj ESP32. Prepričajte se, da imate v meniju Orodja izbrano pravo ploščo in vrata COM.
Testiranje Example
Ko naložite kodo in pritisnete gumb za ponastavitev ESP32, odprite serijski monitor pri hitrosti prenosa 115200. Zavrtite potenciometer in si oglejte, kako se vrednosti spreminjajo.Največja vrednost, ki jo boste dobili, je 4095, najmanjša vrednost pa 0.Osnovni začetni komplet LAFVIN ESP32 - največja vrednost

Zaključek

V tem članku ste se naučili brati analogne vhode z uporabo ESP32 z Arduino IDE. Če povzamemo:

  • Plošča ESP32 DEVKIT V1 DOIT (različica s 30 zatiči) ima 15 zatičev ADC, ki jih lahko uporabite za branje analognih vhodov.
  • Ti zatiči imajo ločljivost 12 bitov, kar pomeni, da lahko dobite vrednosti od 0 do 4095.
  • Če želite prebrati vrednost v Arduino IDE, preprosto uporabite funkcijo analogRead().
  • Zatiči ADC ESP32 nimajo linearnega obnašanja. Verjetno ne boste mogli razlikovati med 0 in 0.1 V ali med 3.2 in 3.3 V. To morate upoštevati pri uporabi zatičev ADC.

Projekt 3 ESP32 PWM (analogni izhod)

V tej vadnici vam bomo pokazali, kako ustvariti signale PWM z ESP32 z uporabo Arduino IDE. Kot bivšiampizdelali bomo preprosto vezje, ki zatemni LED z uporabo krmilnika LED PWM ESP32.LAFVIN ESP32 Osnovni začetni komplet - AnalogOutputESP32 LED PWM krmilnik
ESP32 ima krmilnik LED PWM s 16 neodvisnimi kanali, ki jih je mogoče konfigurirati za generiranje signalov PWM z različnimi lastnostmi.
Tukaj so koraki, ki jih boste morali upoštevati, da zatemnite LED s PWM z uporabo Arduino IDE:

  1. Najprej morate izbrati kanal PWM. Na voljo je 16 kanalov od 0 do 15.
  2. Nato morate nastaviti frekvenco signala PWM. Za LED je primerna frekvenca 5000 Hz.
  3. Nastaviti morate tudi ločljivost delovnega cikla signala: imate ločljivosti od 1 do 16 bitov. Uporabili bomo 8-bitno ločljivost, kar pomeni, da lahko svetlost LED nadzirate z vrednostjo od 0 do 255.
  4.  Nato morate določiti, na katerem GPIO ali GPIO se bo prikazal signal. Za to boste uporabili naslednjo funkcijo:
    ledcAttachPin(GPIO, kanal)
    Ta funkcija sprejme dva argumenta. Prvi je GPIO, ki bo oddajal signal, drugi pa je kanal, ki bo generiral signal.
  5. Nazadnje, za nadzor svetlosti LED s pomočjo PWM uporabite naslednjo funkcijo:

ledcWrite(kanal, delovni cikel)
Ta funkcija sprejme kot argumenta kanal, ki generira signal PWM, in delovni cikel.
Zahtevani deli
Če želite slediti tej vadnici, potrebujete te dele:

  • Plošča ESP32 DEVKIT V1
  • 5mm LED
  • 220 Ohm upor
  •  Breadboard
  • Premostitvene žice

shematski
Povežite LED na vaš ESP32, kot je prikazano na naslednjem shematskem diagramu. LED mora biti priključen na GPIO 4.Osnovni začetni komplet LAFVIN ESP32 - shemaOpomba: lahko uporabite kateri koli zatič, ki ga želite, če lahko deluje kot izhod. Vsi zatiči, ki lahko delujejo kot izhodi, se lahko uporabljajo kot zatiči PWM. Za več informacij o ESP32 GPIO-jih preberite: ESP32 Pinout Reference: Katere zatiče GPIO naj uporabite?
Koda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Odprite kodo Project_3_ESP32_PWM.ino v arduino IDELAFVIN ESP32 Osnovni začetni komplet - koda 3LAFVIN ESP32 Osnovni začetni komplet - koda 4Začnete z določitvijo zatiča, na katerega je LED pritrjena. V tem primeru je LED priključen na GPIO 4.LAFVIN ESP32 Osnovni začetni komplet - koda 5Nato nastavite lastnosti signala PWM. Določite frekvenco 5000 Hz, izberete kanal 0 za ustvarjanje signala in nastavite ločljivost 8 bitov. Za ustvarjanje različnih signalov PWM lahko izberete druge lastnosti, ki se razlikujejo od teh.LAFVIN ESP32 Osnovni začetni komplet - koda 6V setup() morate konfigurirati LED PWM z lastnostmi, ki ste jih definirali prej, z uporabo funkcije ledcSetup(), ki kot argumente sprejme ledChannel, frekvenco in ločljivost, kot sledi:LAFVIN ESP32 Osnovni začetni komplet - koda 8Nato morate izbrati GPIO, iz katerega boste prejemali signal. Za to uporabite funkcijo ledcAttachPin(), ki kot argumenta sprejme GPIO, kjer želite dobiti signal, in kanal, ki generira signal. V tem bivšemample, bomo dobili signal v ledPin GPIO, ki ustreza GPIO 4. Kanal, ki generira signal, je ledChannel, ki ustreza kanalu 0.LAFVIN ESP32 Osnovni začetni komplet - koda 9V zanki boste spreminjali delovni cikel med 0 in 255, da povečate svetlost LED.LAFVIN ESP32 Basic Starter Kit - svetlostIn nato med 255 in 0, da zmanjšate svetlost.LAFVIN ESP32 Basic Starter Kit - svetlost 1Če želite nastaviti svetlost LED, morate uporabiti funkcijo ledcWrite(), ki kot argumenta sprejme kanal, ki generira signal, in delovni cikel.LAFVIN ESP32 Basic Starter Kit - svetlost 2Ker uporabljamo 8-bitno ločljivost, bo delovni cikel nadzorovan z vrednostjo od 0 do 255. Upoštevajte, da v funkciji ledcWrite() uporabljamo kanal, ki generira signal, in ne GPIO.

Testiranje Example

Naložite kodo v svoj ESP32. Prepričajte se, da ste izbrali pravo ploščo in vrata COM. Poglejte svoje vezje. Morali bi imeti zatemnjeno LED, ki poveča in zmanjša svetlost.LAFVIN ESP32 Basic Starter Kit - Testiranje Example

Projekt 4 ESP32 PIR senzor gibanja

Ta projekt prikazuje, kako zaznati gibanje z ESP32 z uporabo senzorja gibanja PIR. Brenčalo bo sprožilo alarm, ko bo zaznano gibanje, in ustavilo alarm, ko vnaprej nastavljen čas (na primer 4 sekunde) ne bo zaznal gibanja.
Kako deluje senzor gibanja HC-SR501
.Osnovni začetni komplet LAFVIN ESP32 - senzor gibanja delujeNačelo delovanja senzorja HC-SR501 temelji na spremembi infrardečega sevanja na premikajočem se predmetu. Da ga senzor HC-SR501 zazna, mora predmet izpolnjevati dve zahtevi:

  • Predmet oddaja infrardečo svetlobo.
  • Predmet se premika ali trese

Torej:
Če predmet oddaja infrardeče žarke, vendar se ne premika (npr. oseba miruje, ne da bi se premaknila), ga senzor ne zazna.
Če se predmet premika, vendar ne oddaja infrardečih žarkov (npr. robot ali vozilo), ga senzor NE zazna.
Predstavljamo časovnike
V tem bivšemampPredstavili bomo tudi časovnike. Želimo, da lučka LED ostane prižgana vnaprej določeno število sekund po zaznavi gibanja. Namesto uporabe funkcije delay(), ki blokira vašo kodo in vam določeno število sekund ne dovoli narediti ničesar drugega, bi morali uporabiti časovnik.Osnovni začetni komplet LAFVIN ESP32 - Predstavljamo časovnikeFunkcija delay().
Funkcijo delay() morate poznati, saj se pogosto uporablja. Ta funkcija je precej enostavna za uporabo. Kot argument sprejme eno samo int število.
Ta številka predstavlja čas v milisekundah, ki ga mora program počakati, dokler ne preide na naslednjo vrstico kode.LAFVIN ESP32 Basic Starter Kit - kodaKo naredite zakasnitev (1000), se vaš program ustavi v tej vrstici za 1 sekundo.
delay() je blokirna funkcija. Blokirne funkcije preprečujejo, da bi program naredil kar koli drugega, dokler ta določena naloga ni dokončana. Če želite, da se izvede več nalog hkrati, ne morete uporabiti delay().
Pri večini projektov se morate izogibati zamikom in namesto tega uporabiti časovnike.
Funkcija millis().
S funkcijo, imenovano millis(), lahko vrnete število milisekund, ki so pretekle od prvega zagona programa.LAFVIN ESP32 Basic Starter Kit - prvi zagon programaZakaj je ta funkcija uporabna? Ker lahko z uporabo nekaj matematike preprosto preverite, koliko časa je minilo, ne da bi blokirali vašo kodo.
Zahtevani deli
Če želite slediti tej vadnici, potrebujete naslednje dele

  • Plošča ESP32 DEVKIT V1
  • PIR senzor gibanja (HC-SR501)
  • Aktivna piščalka
  • Premostitvene žice
  • Breadboard

shematskiOsnovni začetni komplet LAFVIN ESP32 – shema 1Opomba: Delovni voltage HC-SR501 je 5V. Za napajanje uporabite zatič Vin.
Koda
Preden nadaljujete s to vadnico, morate imeti dodatek ESP32 nameščen v vašem Arduino IDE. Sledite eni od naslednjih vadnic za namestitev ESP32 v Arduino IDE, če tega še niste storili. (Če ste ta korak že opravili, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Odprite kodo Project_4_ESP32_PIR_Motion_Sensor.ino v arduino IDE.
Demonstracija
Naložite kodo na svojo ploščo ESP32. Prepričajte se, da ste izbrali pravo ploščo in vrata COM. Naložite referenčne korake kode.
Odprite serijski monitor pri hitrosti prenosa 115200 baud.Osnovni začetni komplet LAFVIN ESP32 – predstavitev 1Premaknite roko pred senzor PIR. Brenčalo bi se moralo vklopiti in v serijskem monitorju se natisne sporočilo »Zaznano gibanje! Alarm brenčala«.
Po 4 sekundah bi moralo brenčalo ugasniti.LAFVIN ESP32 Basic Starter Kit - brenčalo

Stikalo Project 5 ESP32 Web Strežnik

V tem projektu boste ustvarili samostojno web strežnik z ESP32, ki nadzoruje izhode (dve LED) z uporabo programskega okolja Arduino IDE. The web Strežnik je mobilno odziven in do njega lahko dostopate s katero koli napravo, ki deluje kot brskalnik v lokalnem omrežju. Pokazali vam bomo, kako ustvariti web strežnik in kako koda deluje korak za korakom.
Projekt je končanview
Preden gremo naravnost k projektu, je pomembno orisati, kaj je naše web strežnik bo zadostoval, tako da boste pozneje lažje sledili korakom.

  • The web strežnik, ki ga boste zgradili, krmili dve LED diodi, povezani z ESP32 GPIO 26 in GPIO 27;
  • Lahko dostopate do ESP32 web strežnik tako, da vnesete naslov IP ESP32 v brskalnik v lokalnem omrežju;
  • S klikom na gumbe na vašem web strežniku lahko takoj spremenite stanje vsake LED.

Zahtevani deli
Za to vadnico boste potrebovali naslednje dele:

  • Plošča ESP32 DEVKIT V1
  • 2x 5 mm LED
  • 2x 200 Ohm upor
  • Breadboard
  • Premostitvene žice

shematski
Začnite z gradnjo vezja. Priključite dve LED na ESP32, kot je prikazano na naslednjem shematskem diagramu – ena LED je povezana na GPIO 26, druga pa na GPIO 27.
Opomba: Uporabljamo ploščo ESP32 DEVKIT DOIT s 36 pini. Preden sestavite vezje, se prepričajte, da ste preverili pinout za ploščo, ki jo uporabljate.Osnovni začetni komplet LAFVIN ESP32 - shemaKoda
Tukaj ponujamo kodo, ki ustvari ESP32 web strežnik. Odprite kodo Project_5_ESP32_Switch _Web_Server.ino v arduino IDE, vendar ga še ne naložite. Narediti morate nekaj sprememb, da bo delovalo za vas.
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Nastavitev omrežnih poverilnic
Z omrežnimi poverilnicami morate spremeniti naslednje vrstice: SSID in geslo. Koda je dobro komentirana, kje bi morali narediti spremembe.LAFVIN ESP32 Basic Starter Kit - Omrežne poverilniceNalaganje kode
Zdaj lahko naložite kodo in in web strežnik bo deloval takoj.
Za nalaganje kode v ESP32 sledite naslednjim korakom:

  1. Priključite ploščo ESP32 v računalnik;
  2. V Arduino IDE izberite svojo ploščo v Orodja > Plošča (v našem primeru uporabljamo ploščo ESP32 DEVKIT DOIT);Osnovni začetni komplet LAFVIN ESP32 - nalaganje kode
  3. Izberite vrata COM v Orodja > Vrata.Osnovni začetni komplet LAFVIN ESP32 - vrata za orodja
  4. Pritisnite gumb Naloži v Arduino IDE in počakajte nekaj sekund, da se koda prevede in naloži na vašo ploščo.LAFVIN ESP32 Osnovni začetni komplet - ICON 7
  5. Počakajte na sporočilo »Končano nalaganje«.Osnovni začetni komplet LAFVIN ESP32 – nalaganje končano 1

Iskanje naslova IP ESP
Po nalaganju kode odprite serijski monitor pri hitrosti prenosa 115200 baud.LAFVIN ESP32 Basic Starter Kit - ESP IP naslovPritisnite gumb ESP32 EN (ponastavitev). ESP32 se poveže z Wi-Fi in odda naslov IP ESP na serijski monitor. Kopirajte ta naslov IP, ker ga potrebujete za dostop do ESP32 web strežnik.Osnovni začetni komplet LAFVIN ESP32 - web strežnikDostop do Web Strežnik
Za dostop do web strežnik, odprite brskalnik, prilepite naslov IP ESP32 in videli boste naslednjo stran.
Opomba: Vaš brskalnik in ESP32 morata biti povezana v isto omrežje LAN.LAFVIN ESP32 Basic Starter Kit - Dostop do Web StrežnikČe pogledate serijski monitor, lahko vidite, kaj se dogaja v ozadju. ESP prejme zahtevo HTTP od novega odjemalca (v tem primeru vašega brskalnika).LAFVIN ESP32 Basic Starter Kit - HTTP zahtevaOgledate si lahko tudi druge informacije o zahtevi HTTP.
Demonstracija
Zdaj lahko preizkusite, ali je vaš web strežnik deluje pravilno. Kliknite gumbe za nadzor LED diod.LAFVIN ESP32 Basic Starter Kit - ozadjeIstočasno si lahko ogledate serijski monitor, da vidite, kaj se dogaja v ozadju. Na primerample, ko kliknete gumb za vklop GPIO 26, ESP32 prejme zahtevo na /26/on URL.Osnovni začetni komplet LAFVIN ESP32 - URLKo ESP32 prejme to zahtevo, vklopi LED, priključeno na GPIO 26, in posodobi svoje stanje na web strani.Osnovni začetni komplet LAFVIN ESP32 - web straniGumb za GPIO 27 deluje na podoben način. Preverite, ali deluje pravilno.LAFVIN ESP32 Basic Starter Kit - deluje pravilno

Kako koda deluje

V tem razdelku si bomo podrobneje ogledali kodo, da vidimo, kako deluje.
Prva stvar, ki jo morate storiti, je vključiti knjižnico WiFi.LAFVIN ESP32 Basic Starter Kit - WiFi knjižnicaKot smo že omenili, morate v naslednje vrstice znotraj dvojnih narekovajev vstaviti svoj ssid in geslo.LAFVIN ESP32 Basic Starter Kit - dvojni narekovajiNato nastavite svoje web strežnik na vrata 80.Osnovni začetni komplet LAFVIN ESP32 - web strežnikNaslednja vrstica ustvari spremenljivko za shranjevanje glave zahteve HTTP:LAFVIN ESP32 Basic Starter Kit - HTTPrequestNato ustvarite pomožne spremenljivke za shranjevanje trenutnega stanja vaših izhodov. Če želite dodati več izhodov in shraniti njegovo stanje, morate ustvariti več spremenljivk.Osnovni začetni komplet LAFVIN ESP32 - spremenljivkePrav tako morate vsakemu od svojih izhodov dodeliti GPIO. Tu uporabljamo GPIO 26 in GPIO 27. Uporabite lahko kateri koli drug primeren GPIO.LAFVIN ESP32 Basic Starter Kit - drugo primernonastavitev()
Zdaj pa pojdimo na setup(). Najprej začnemo serijsko komunikacijo pri hitrosti prenosa 115200 za namene odpravljanja napak.LAFVIN ESP32 Basic Starter Kit - nameniSvoje GPIO definirate tudi kot IZHODE in jih nastavite na LOW.LAFVIN ESP32 Basic Starter Kit - GPIO-ji kot IZHODINaslednje vrstice začnejo povezavo Wi-Fi z WiFi.begin(ssid, geslo), počakajte na uspešno povezavo in natisnite naslov IP ESP v serijskem monitorju.LAFVIN ESP32 Osnovni začetni komplet - serijskiOsnovni začetni komplet LAFVIN ESP32 - serija 1zanka()
V loop() programiramo, kaj se zgodi, ko nov odjemalec vzpostavi povezavo z web strežnik.
ESP32 vedno posluša dohodne odjemalce z naslednjo vrstico:LAFVIN ESP32 Basic Starter Kit - zankaKo od stranke prejmemo zahtevo, bomo dohodne podatke shranili. Zanka while, ki sledi, se bo izvajala, dokler bo odjemalec povezan. Ne priporočamo spreminjanja naslednjega dela kode, razen če natančno veste, kaj počnete.LAFVIN ESP32 Basic Starter Kit - točnoLAFVIN ESP32 Basic Starter Kit - točno 1LAFVIN ESP32 Basic Starter Kit - točno 2Naslednji razdelek stavkov if in else preveri, kateri gumb je bil pritisnjen v vašem web strani in ustrezno nadzoruje izhode. Kot smo že videli, podamo zahtevo na različnih URLs odvisno od pritisnjenega gumba.Osnovni začetni komplet LAFVIN ESP32 - pritisnjen gumbOsnovni začetni komplet LAFVIN ESP32 - pritisnjen gumb 1Na primerample, če pritisnete gumb GPIO 26 ON, ESP32 prejme zahtevo na /26/ON URL (to informacijo lahko vidimo v glavi HTTP na serijskem monitorju). Torej lahko preverimo, ali glava vsebuje izraz GET /26/on. Če vsebuje, spremenimo spremenljivko output26state na ON in ESP32 vklopi LED.
To deluje podobno za druge gumbe. Torej, če želite dodati več rezultatov, bi morali spremeniti ta del kode, da jih vključite.
Prikaz HTML-ja web strani
Naslednja stvar, ki jo morate narediti, je ustvarjanje web strani. ESP32 bo vašemu brskalniku poslal odgovor z nekaj kode HTML za izdelavo web strani.
The web stran je poslana odjemalcu z uporabo tega izraza client.println(). Vnesti morate tisto, kar želite poslati stranki kot argument.
Prva stvar, ki jo moramo poslati, je vedno naslednja vrstica, ki označuje, da pošiljamo HTML.LAFVIN ESP32 Basic Starter Kit - pošiljanje HTMLNato naslednja vrstica naredi web stran odzivna v katerem koli web brskalnik.Osnovni začetni komplet LAFVIN ESP32 - web brskalnikNaslednje se uporablja za preprečevanje zahtev na favikonu. – Za to vrstico vam ni treba skrbeti.Osnovni začetni komplet LAFVIN ESP32 - client.println

Oblikovanje Web Stran

Nato imamo nekaj besedila CSS za oblikovanje gumbov in web videz strani.
Izberemo pisavo Helvetica, določimo vsebino, ki bo prikazana kot blok in poravnana na sredino.LAFVIN ESP32 Osnovni začetni komplet - Oblikovanje Web StranNaše gumbe oblikujemo z barvo #4CAF50, brez obrobe, besedilo v beli barvi in ​​s tem oblazinjenjem: 16px 40px. Nastavimo tudi dekoracijo besedila na nič, določimo velikost pisave, rob in kazalec na kazalec.LAFVIN ESP32 Basic Starter Kit - kazalecDoločimo tudi slog za drugi gumb z vsemi lastnostmi gumba, ki smo jih definirali prej, vendar z drugo barvo. To bo slog za gumb za izklop.LAFVIN ESP32 Basic Starter Kit - client.println 1

Nastavitev Web Prvi naslov strani
V naslednji vrstici lahko nastavite prvi naslov vašega web strani. Tukaj imamo »ESP32 Web Strežnik", vendar lahko to besedilo spremenite v poljubno.Osnovni začetni komplet LAFVIN ESP32 - Web Naslov straniPrikaz gumbov in ustreznega stanja
Nato napišete odstavek za prikaz trenutnega stanja GPIO 26. Kot lahko vidite, uporabljamo spremenljivko output26State, tako da se stanje takoj posodobi, ko se spremeni ta spremenljivka.LAFVIN ESP32 Basic Starter Kit - spremenljive spremembeNato prikažemo gumb za vklop ali izklop, odvisno od trenutnega stanja GPIO. Če je trenutno stanje GPIO izklopljeno, prikažemo gumb ON, če ni, prikažemo gumb OFF.LAFVIN ESP32 Basic Starter Kit - prikaz gumba IZKLOPEnak postopek uporabljamo za GPIO 27.
Zapiranje povezave
Nazadnje, ko se odgovor konča, počistimo spremenljivko glave in prekinemo povezavo z odjemalcem s funkcijo client.stop().LAFVIN ESP32 Basic Starter Kit - Zapiranje povezave

Zaključek

V tej vadnici smo vam pokazali, kako zgraditi web strežnik z ESP32. Pokazali smo vam preprosto bivšoample, ki nadzoruje dve LED diodi, vendar je ideja zamenjati te LED z relejem ali katerim koli drugim izhodom, ki ga želite nadzorovati.

Projekt 6 RGB LED Web Strežnik

V tem projektu vam bomo pokazali, kako na daljavo upravljate RGB LED s ploščo ESP32 z uporabo web strežnik z izbirnikom barv.
Projekt je končanview
Preden začnemo, poglejmo, kako ta projekt deluje:LAFVIN ESP32 Basic Starter Kit - Project Overview

  • ESP32 web strežnik prikaže izbirnik barv.
  • Ko izberete barvo, vaš brskalnik pošlje zahtevo za URL ki vsebuje parametre R, G in B izbrane barve.
  • Vaš ESP32 prejme zahtevo in razdeli vrednost za vsak barvni parameter.
  • Nato pošlje signal PWM z ustrezno vrednostjo na GPIO-je, ki nadzorujejo RGB LED.

Kako delujejo RGB LED?
V RGB LED s skupno katodo si vse tri LED diode delijo negativno povezavo (katodo). Vse vključene v komplet so RGB s skupno katodo.LAFVIN ESP32 Basic Starter Kit - RGB LED delujeKako ustvariti različne barve?
Z RGB LED lahko seveda proizvedete rdečo, zeleno in modro svetlobo, s konfiguracijo intenzivnosti vsake LED pa lahko ustvarite tudi druge barve.
Na primerample, če želite ustvariti čisto modro svetlobo, morate modro LED nastaviti na najvišjo intenzivnost, zeleno in rdečo LED pa na najnižjo intenzivnost. Za belo svetlobo bi morali vse tri LED diode nastaviti na najvišjo intenzivnost.
Mešanje barv
Če želite ustvariti druge barve, lahko kombinirate tri barve v različnih intenzivnostih. Za prilagoditev intenzivnosti posamezne LED lahko uporabite signal PWM.
Ker so LED diode zelo blizu druga drugi, naše oči vidijo rezultat kombinacije barv in ne treh barv posamezno.
Za idejo, kako kombinirati barve, si oglejte naslednjo tabelo.
To je najpreprostejša tabela za mešanje barv, vendar vam daje idejo, kako deluje in kako ustvariti različne barve.LAFVIN ESP32 Basic Starter Kit - različne barveZahtevani deli
Za ta projekt potrebujete naslednje dele:

  • Plošča ESP32 DEVKIT V1
  • RGB LED
  • 3x 220 ohm upori
  • Premostitvene žice
  • Breadboard

shematskiOsnovni začetni komplet LAFVIN ESP32 - shemaKoda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)

  • Namestitev dodatka ESP32 v Arduino IDE

Po sestavljanju vezja odprite kodo
Projekt_6_RGB_LED_Web_Server.ino v arduino IDE.
Preden naložite kodo, ne pozabite vnesti omrežnih poverilnic, da se bo ESP lahko povezal z vašim lokalnim omrežjem.LAFVIN ESP32 Basic Starter Kit - lokalno omrežjeKako deluje koda
Skica ESP32 uporablja knjižnico WiFi.h.LAFVIN ESP32 Basic Starter Kit - knjižnica WiFi.hNaslednje vrstice definirajo spremenljivke niza za shranjevanje parametrov R, G in B iz zahteve.LAFVIN ESP32 Basic Starter Kit - String redStringNaslednje štiri spremenljivke se kasneje uporabijo za dekodiranje zahteve HTTP.LAFVIN ESP32 Basic Starter Kit - HTTP zahtevaUstvarite tri spremenljivke za GPIO, ki bodo nadzorovale parametre traku R, G in B. V tem primeru uporabljamo GPIO 13, GPIO 12 in GPIO 14.LAFVIN ESP32 Basic Starter Kit – potrebni so GPIOTi GPIO morajo oddajati signale PWM, zato moramo najprej konfigurirati lastnosti PWM. Nastavite frekvenco signala PWM na 5000 Hz. Nato za vsako barvo povežite kanal PWMLAFVIN ESP32 Basic Starter Kit - vsaka barvaIn končno, nastavite ločljivost kanalov PWM na 8-bitnoLAFVIN ESP32 Basic Starter Kit - kanali PWMV setup() kanalom PWM dodelite lastnosti PWMLAFVIN ESP32 Basic Starter Kit - kanali PWMPriključite kanale PWM na ustrezne GPIOLAFVIN ESP32 Basic Starter Kit - ustrezni GPIO-jiNaslednji razdelek kode prikazuje izbirnik barv v vašem web strani in poda zahtevo glede na barvo, ki ste jo izbrali.LAFVIN ESP32 Basic Starter Kit - izbranoOsnovni začetni komplet LAFVIN ESP32 - client.printlnLAFVIN ESP32 Basic Starter Kit - client.println 1Ko izberete barvo, prejmete zahtevo v naslednji obliki.LAFVIN ESP32 Basic Starter Kit - naslednji format

Torej, ta niz moramo razdeliti, da dobimo parametre R, G in B. Parametri so shranjeni v spremenljivkah redString, greenString in blueString in imajo lahko vrednosti med 0 in 255.LAFVIN ESP32 Basic Starter Kit - glavaOsnovni začetni komplet LAFVIN ESP32 - glava 1Za nadzor traku z ESP32 uporabite funkcijo ledcWrite() za ustvarjanje signalov PWM z vrednostmi, dekodiranimi iz HTTP zahteva.LAFVIN ESP32 Basic Starter Kit - HTTP zahteva 1Opomba: izvedite več o PWM z ESP32: Project 3 ESP32 PWM (analogni izhod)
Za nadzor traku z ESP8266 moramo uporabiti le
funkcijo analogWrite() za generiranje signalov PWM z vrednostmi, dekodiranimi iz zahteve HTTP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Ker dobimo vrednosti v spremenljivki niza, jih moramo pretvoriti v cela števila z uporabo metode toInt().
Demonstracija
Ko vnesete omrežne poverilnice, izberite pravo ploščo in vrata COM ter naložite kodo v svoj ESP32. Referenčni koraki za nalaganje kode.
Po nalaganju odprite serijski monitor pri hitrosti prenosa 115200 in pritisnite gumb ESP Enable/Reset. Dobiti bi morali IP naslov plošče.LAFVIN ESP32 Basic Starter Kit - isti LANOdprite brskalnik in vnesite naslov IP ESP. Zdaj uporabite izbirnik barv, da izberete barvo za RGB LED.
Nato morate pritisniti gumb »Spremeni barvo«, da bo barva začela veljati.LAFVIN ESP32 Osnovni začetni komplet - RGB LEDČe želite izklopiti RGB LED, izberite črno barvo.
Najmočnejše barve (na vrhu izbirnika barv) so tiste, ki bodo dale boljše rezultate.LAFVIN ESP32 Basic Starter Kit - boljši rezultati

Projekt 7 Rele ESP32 Web Strežnik

Uporaba releja z ESP32 je odličen način za nadzor AC gospodinjskih aparatov na daljavo. Ta vadnica pojasnjuje, kako krmiliti relejni modul z ESP32.
Ogledali si bomo, kako deluje relejni modul, kako povezati rele z ESP32 in zgraditi web strežnik za nadzor releja na daljavo.
Predstavljamo releje
Rele je električno upravljano stikalo in kot vsako drugo stikalo ga je mogoče vklopiti ali izklopiti, prepustiti toku ali ne. Lahko se nadzoruje z nizko glasnostjotages, kot je 3.3 V, ki ga zagotavljajo ESP32 GPIO, in nam omogoča nadzor visoke vol.tagna primer 12V, 24V ali omrežna voltage (230 V v Evropi in 120 V v ZDA).Osnovni začetni komplet LAFVIN ESP32 - Predstavljamo relejeNa levi strani sta dva niza treh vtičnic za priključitev visoko voltages, in zatiči na desni strani (nizka glasnosttage) povežite se z ESP32 GPIO.
Omrežje Voltage PovezaveLAFVIN ESP32 Basic Starter Kit - Mains Voltage PovezaveRelejni modul, prikazan na prejšnji fotografiji, ima dva konektorja, vsak s tremi vtičnicami: skupno (COM), normalno zaprto (NC) in normalno odprto (NO).

  • COM: povežite tok, ki ga želite nadzorovati (omrežna voltagin).
  • NC (normalno zaprt): normalno zaprta konfiguracija se uporablja, ko želite, da je rele privzeto zaprt. Zatiči NC so COM povezani, kar pomeni, da tok teče, razen če pošljete signal iz ESP32 v relejni modul, da odpre vezje in ustavi tok.
  • NO (Normally Open): normalno odprta konfiguracija deluje obratno: med zatiči NO in COM ni povezave, zato je vezje prekinjeno, razen če pošljete signal iz ESP32, da zaprete vezje.

Kontrolni zatičiLAFVIN ESP32 Osnovni začetni komplet - krmilni zatičiNizka glasnosttagNa strani je komplet štirih zatičev in komplet treh zatičev. Prvi niz je sestavljen iz VCC in GND za napajanje modula ter vhoda 1 (IN1) in vhoda 2 (IN2) za krmiljenje spodnjega oziroma zgornjega releja.
Če ima vaš relejni modul samo en kanal, boste imeli samo en priključek IN. Če imate štiri kanale, boste imeli štiri IN zatiče in tako naprej.
Signal, ki ga pošljete IN zatičem, določa, ali je rele aktiven ali ne. Rele se sproži, ko vhod pade pod približno 2 V. To pomeni, da boste imeli naslednje scenarije:

  • Normalno zaprta konfiguracija (NC):
  • VISOK signal – tok teče
  • NIZEK signal – tok ne teče
  • Normalno odprta konfiguracija (NO):
  • VISOK signal – tok ne teče
  • NIZEK signal – tok teče

Uporabite običajno zaprto konfiguracijo, ko bi moral tok teči večino časa in ga želite ustaviti le občasno.
Uporabite običajno odprto konfiguracijo, če želite, da tok občasno teče (nprample, vklopi alamp občasno).
Izbira napajalnikaOsnovni začetni komplet LAFVIN ESP32 - izbira napajalnikaDrugi niz zatičev je sestavljen iz zatičev GND, VCC in JD-VCC.
Zatič JD-VCC napaja elektromagnet releja. Upoštevajte, da ima modul mostiček, ki povezuje nožice VCC in JD-VCC; prikazani tukaj je rumen, vaš pa je lahko drugačne barve.
Ko je premostitveni pokrov nameščen, sta zatiča VCC in JD-VCC povezana. To pomeni, da se relejni elektromagnet napaja neposredno iz napajalnega zatiča ESP32, tako da relejni modul in vezja ESP32 niso fizično izolirana drug od drugega.
Brez premostitvenega pokrova morate zagotoviti neodvisen vir energije za napajanje elektromagneta releja prek zatiča JD-VCC. Ta konfiguracija fizično izolira releje od ESP32 z vgrajenim optičnim sklopnikom modula, ki preprečuje poškodbe ESP32 v primeru električnih konic.
shematskiOsnovni začetni komplet LAFVIN ESP32 - shemaOpozorilo: Uporaba visoke voltagNapajalniki lahko povzročijo resne poškodbe.
Zato se uporabljajo 5 mm LED diode namesto visoke napajalne volumnetage žarnice v poskusu. Če niste seznanjeni z mains voltagprosite nekoga, ki vam bo pomagal. Med programiranjem ESP ali ožičenjem vašega vezja se prepričajte, da je vse odklopljeno iz električnega omrežjatage.LAFVIN ESP32 Osnovni začetni komplet - omrežna voltageNamestitev knjižnice za ESP32
Za gradnjo tega web strežnik, uporabljamo ESPAsyncWebStrežniška knjižnica in knjižnica AsyncTCP.
Namestitev ESPAsyncWebStrežniška knjižnica
Sledite naslednjim korakom za namestitev ESPAsyncWebStrežnik knjižnica:

  1. Kliknite tukaj za prenos ESPAsyncWebStrežniška knjižnica. Moral bi imeti
    mapo .zip v mapi Prenosi
  2. Razpakirajte mapo .zip in dobili bi morali ESPAsyncWebGlavna mapa strežnika
  3. Preimenujte svojo mapo iz ESPAsyncWebGlavni strežnik v ESPAsyncWebStrežnik
  4. Premaknite ESPAsyncWebStrežniško mapo v mapo namestitvenih knjižnic Arduino IDE

Druga možnost je, da v vašem Arduino IDE odprete Sketch > Include
Knjižnica > Dodaj knjižnico .ZIP ... in izberite knjižnico, ki ste jo pravkar prenesli.
Namestitev knjižnice AsyncTCP za ESP32
The ESPAsyncWebStrežnik knjižnica zahteva AsyncTCP knjižnica za delo. Sledi
naslednji koraki za namestitev te knjižnice:

  1. Kliknite tukaj za prenos knjižnice AsyncTCP. V mapi Prenosi bi morali imeti mapo .zip
  2. Razpakirajte mapo .zip in dobili bi morali glavno mapo AsyncTCP
    1. Preimenujte mapo iz AsyncTCP-master v AsyncTCP
    3. Premaknite mapo AsyncTCP v mapo namestitvenih knjižnic Arduino IDE
    4. Končno znova odprite Arduino IDE

Druga možnost je, da v vašem Arduino IDE odprete Sketch > Include
Knjižnica > Dodaj knjižnico .ZIP ... in izberite knjižnico, ki ste jo pravkar prenesli.
Koda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Po namestitvi potrebnih knjižnic odprite kodo Project_7_ESP32_Relay_Web_Server.ino v arduino IDE.
Preden naložite kodo, ne pozabite vnesti omrežnih poverilnic, da se bo ESP lahko povezal z vašim lokalnim omrežjem.LAFVIN ESP32 Basic Starter Kit - lokalno omrežjeDemonstracija
Ko naredite potrebne spremembe, naložite kodo v svoj ESP32. Referenčni koraki za nalaganje kode.
Odprite serijski monitor s hitrostjo prenosa 115200 in pritisnite gumb ESP32 EN, da dobite njegov naslov IP. Nato odprite brskalnik v lokalnem omrežju in vnesite naslov IP ESP32, da dobite dostop do web strežnik.
Odprite serijski monitor s hitrostjo prenosa 115200 in pritisnite gumb ESP32 EN, da dobite njegov naslov IP. Nato odprite brskalnik v lokalnem omrežju in vnesite naslov IP ESP32, da dobite dostop do web strežnik.Osnovni začetni komplet LAFVIN ESP32 - web strežnikOpomba: Vaš brskalnik in ESP32 morata biti povezana v isto omrežje LAN.
Morali bi dobiti nekaj naslednjega z dvema gumboma kot številom relejev, ki ste jih definirali v svoji kodi.LAFVIN ESP32 Basic Starter Kit - pametni telefonZdaj lahko z gumbi upravljate releje s pametnim telefonom.LAFVIN ESP32 Basic Starter Kit - pametni telefon 1

Project_8_Output_State_Synchronization_ Web_Server

Ta projekt prikazuje, kako nadzorovati izhode ESP32 ali ESP8266 z uporabo a web strežnik in fizični gumb hkrati. Izhodno stanje se posodobi na web stran ali se spremeni preko fizičnega gumba oz web strežnik.
Projekt je končanview
Oglejmo si na hitro, kako projekt deluje.LAFVIN ESP32 Basic Starter Kit - Project OverviewESP32 ali ESP8266 gosti a web strežnik, ki vam omogoča nadzor nad stanjem izhoda;

  • Trenutno stanje izhoda je prikazano na web strežnik;
  • ESP je povezan tudi s fizičnim gumbom, ki krmili isti izhod;
  • Če spremenite izhodno stanje s fizičnim pritiskom na gumb, se njegovo trenutno stanje posodobi tudi na web strežnik.

Če povzamemo, ta projekt vam omogoča nadzor istega izhoda z uporabo a web strežnik in gumb hkrati. Kadarkoli se izhodno stanje spremeni, se web strežnik je posodobljen.
Zahtevani deli
Tukaj je seznam delov, ki jih potrebujete za izdelavo vezja:

  • Plošča ESP32 DEVKIT V1
  • 5 mm LED
  • 220 Ohm upor
  • Pritisni gumb
  • 10k Ohm upor
  • Breadboard
  • Premostitvene žice

shematskiOsnovni začetni komplet LAFVIN ESP32 – shema 1Namestitev knjižnice za ESP32
Za gradnjo tega web strežnik, uporabljamo ESPAsyncWebKnjižnica strežnika in knjižnica AsyncTCP. (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev ESPAsyncWebStrežniška knjižnica
Sledite naslednjim korakom za namestitev ESPAsyncWebStrežniška knjižnica:

  1. Kliknite tukaj za prenos ESPAsyncWebStrežniška knjižnica. Moral bi imeti
    mapo .zip v mapi Prenosi
  2. Razpakirajte mapo .zip in dobili bi morali ESPAsyncWebGlavna mapa strežnika
  3. Preimenujte svojo mapo iz ESPAsyncWebGlavni strežnik v ESPAsyncWebStrežnik
  4. Premaknite ESPAsyncWebStrežniško mapo v mapo namestitvenih knjižnic Arduino IDE
    Druga možnost je, da v vašem Arduino IDE odprete Sketch > Include
    Knjižnica > Dodaj knjižnico .ZIP ... in izberite knjižnico, ki ste jo pravkar prenesli.

Namestitev knjižnice AsyncTCP za ESP32
ESPAsyncWebStrežniška knjižnica za delovanje potrebuje knjižnico AsyncTCP. Za namestitev te knjižnice sledite naslednjim korakom:

  1. Kliknite tukaj za prenos knjižnice AsyncTCP. V mapi Prenosi bi morali imeti mapo .zip
  2. Razpakirajte mapo .zip in dobili bi morali glavno mapo AsyncTCP
  3. Preimenujte mapo iz AsyncTCP-master v AsyncTCP
  4. Premaknite mapo AsyncTCP v mapo namestitvenih knjižnic Arduino IDE
  5. Končno znova odprite Arduino IDE
    Druga možnost je, da v vašem Arduino IDE odprete Sketch > Include
    Knjižnica > Dodaj knjižnico .ZIP ... in izberite knjižnico, ki ste jo pravkar prenesli.

Koda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Ko namestite zahtevane knjižnice, odprite kodo
Project_8_Output_State_Synchronization_Web_Server.ino v arduino IDE.
Preden naložite kodo, ne pozabite vnesti omrežnih poverilnic, da se bo ESP lahko povezal z vašim lokalnim omrežjem.LAFVIN ESP32 Osnovni začetni komplet - koda

Kako koda deluje

Stanje gumba in stanje izhoda
Spremenljivka ledState hrani izhodno stanje LED. Privzeto, ko je web strežnik se zažene, je LOW.Osnovni začetni komplet LAFVIN ESP32 – koda deluje

ButtonState in lastButtonState se uporabljata za zaznavanje, ali je bil gumb pritisnjen ali ne.LAFVIN ESP32 Basic Starter Kit - je bil stisnjenGumb (web strežnik)
Za ustvarjanje gumba v spremenljivki index_html nismo vključili HTML-ja.
To je zato, ker želimo, da ga lahko spreminjamo glede na trenutno stanje LED, ki ga je mogoče spremeniti tudi s pritiskom na gumb.
Torej smo ustvarili ogrado za gumb %BUTTONPLACEHOLDER%, ki bo nadomeščena z besedilom HTML, da se gumb ustvari kasneje v kodi (to se naredi v funkciji procesor()).LAFVIN ESP32 Basic Starter Kit - pritisnjen 1procesor ()
Funkcija procesor() zamenja morebitne ogradne oznake v besedilu HTML z dejanskimi vrednostmi. Najprej preveri, ali besedilo HTML vsebuje kaj
nadomestni znaki %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - procesorNato pokličite funkcijo theoutputState(), ki vrne trenutno izhodno stanje. Shranimo ga v spremenljivko outputStateValue.Osnovni začetni komplet LAFVIN ESP32 - outputStateNato uporabite to vrednost za ustvarjanje besedila HTML za prikaz gumba s pravim stanjem:LAFVIN ESP32 Osnovni začetni komplet - koda 4Zahteva HTTP GET za spremembo izhodnega stanja (JavaScript)
Ko pritisnete gumb, se pokliče funkcija thetoggleCheckbox(). Ta funkcija bo naredila zahtevo na različnih URLs za vklop ali izklop LED.Osnovni začetni komplet LAFVIN ESP32 - JavaScriptČe želite vklopiti LED, naredi zahtevo na /update?state=1 URL:LAFVIN ESP32 Basic Starter Kit - element.preverjenoV nasprotnem primeru naredi zahtevo na /update?state=0 URL.
HTTP GET Zahteva za posodobitev stanja (JavaScript)
Da bo izhodno stanje posodobljeno na web strežniku, pokličemo naslednjo funkcijo, ki naredi novo zahtevo za /stanje URL vsako sekundo.Osnovni začetni komplet LAFVIN ESP32 – stanje posodobitveOsnovni začetni komplet LAFVIN ESP32 – stanje posodobitve 1Obravnavajte zahteve
Nato moramo obravnavati, kaj se zgodi, ko ESP32 ali ESP8266 prejme zahteve na teh URLs.
Ko je zahteva prejeta na root /URL, pošljemo stran HTML in procesor.Osnovni začetni komplet LAFVIN ESP32 - obravnavanje zahtevOsnovni začetni komplet LAFVIN ESP32 – obravnavanje zahtev 1Naslednje vrstice preverijo, ali ste prejeli zahtevo na /update?state=1 ali /update?state=0 URL in ustrezno spremeni ledState.Osnovni začetni komplet LAFVIN ESP32 - ledStateOsnovni začetni komplet LAFVIN ESP32 - inputParamKo je v /stanje prejeta zahteva URL, pošljemo trenutno izhodno stanje:LAFVIN ESP32 Basic Starter Kit - izhodno stanjezanka()
V zanki () odbijemo gumb in vklopimo ali izklopimo LED, odvisno od vrednosti ledState spremenljivka.Osnovni začetni komplet LAFVIN ESP32 - zanka 1Demonstracija
Naložite kodo na svojo ploščo ESP32. Naložite referenčne korake kode.
Nato odprite serijski monitor pri hitrosti prenosa 115200. Pritisnite vgrajeni gumb EN/RST, da dobite naslov IP.Osnovni začetni komplet LAFVIN ESP32 - predstavitevOdprite brskalnik v lokalnem omrežju in vnesite naslov IP ESP. Morali bi imeti dostop do web strežnik, kot je prikazano spodaj.
Opomba: Vaš brskalnik in ESP32 morata biti povezana v isto omrežje LAN.LAFVIN ESP32 Basic Starter Kit - brskalnikGumb lahko preklopite na web strežnik za vklop LED.Osnovni začetni komplet LAFVIN ESP32 - web strežnik 1Isto LED lahko upravljate tudi s fizičnim gumbom. Njegovo stanje bo vedno samodejno posodobljeno na web strežnik.

Projekt 9 ESP32 DHT11 Web Strežnik

V tem projektu se boste naučili sestaviti asinhroni ESP32 web strežnik z DHT11, ki prikazuje temperaturo in vlažnost z uporabo Arduino IDE.
Predpogoji
The web strežnik, ki ga bomo zgradili, samodejno posodablja odčitke brez potrebe po osveževanju web strani.
S tem projektom se boste naučili:

  • Kako brati temperaturo in vlažnost iz DHT senzorjev;
  • Zgradite asinhrono web strežnik, ki uporablja ESPAsyncWebStrežniška knjižnica;
  • Samodejno posodobite odčitke senzorjev, ne da bi jih bilo treba osveževati web strani.

Asinhrono Web Strežnik
Za izgradnjo web strežnik, ki ga bomo uporabili ESPAsyncWebStrežniška knjižnica ki omogoča enostaven način za izdelavo asinhronega web strežnik. Gradnja asinhronega web strežnik ima več advantages, kot je omenjeno na strani knjižnice GitHub, na primer:

  • »Obravnava več kot eno povezavo hkrati«;
  • "Ko pošljete odgovor, ste takoj pripravljeni na obravnavo drugih povezav, medtem ko strežnik skrbi za pošiljanje odgovora v ozadju";
  • "Enostaven mehanizem za obdelavo predlog za obdelavo predlog";

Zahtevani deli
Za dokončanje te vadnice potrebujete naslednje dele:

  • ESP32 razvojna plošča
  • Modul DHT11
  • Breadboard
  • Premostitvene žice

shematskiOsnovni začetni komplet LAFVIN ESP32 – shema 2Namestitev knjižnic
Za ta projekt morate namestiti nekaj knjižnic:

Namestitev knjižnice senzorjev DHT
Če želite brati s senzorja DHT z Arduino IDE, morate namestiti Knjižnica senzorjev DHT. Za namestitev knjižnice sledite naslednjim korakom.

  1. Kliknite tukaj za prenos knjižnice senzorjev DHT. V mapi Prenosi bi morali imeti mapo .zip
  2. Razpakirajte mapo .zip in dobili bi morali mapo DHT-sensor-library-master
  3. Preimenujte mapo iz DHT-sensor-library-master v DHT_sensor
  4. Premaknite mapo DHT_sensor v mapo namestitvenih knjižnic Arduino IDE
  5. Končno znova odprite Arduino IDE

Namestitev gonilnika Adafruit Unified Sensor Driver
Prav tako morate namestiti Adafruit Unified Sensor Driver knjižnica za delo s senzorjem DHT. Za namestitev knjižnice sledite naslednjim korakom.

  1. Kliknite tukaj za prenos knjižnice Adafruit Unified Sensor. V mapi Prenosi bi morali imeti mapo .zip
  2. Razpakirajte mapo .zip in dobili bi morali mapo Adafruit_sensor-master
  3. Preimenujte mapo iz Adafruit_sensor-master v Adafruit_sensor
  4. Premaknite mapo Adafruit_sensor v mapo namestitvenih knjižnic Arduino IDE
  5. Končno znova odprite Arduino IDE

Namestitev ESPAsyncWebStrežniška knjižnica

Sledite naslednjim korakom za namestitev ESPAsyncWebStrežnik knjižnica:

  1. Kliknite tukaj za prenos ESPAsyncWebStrežniška knjižnica. Moral bi imeti
    mapo .zip v mapi Prenosi
  2. Razpakirajte mapo .zip in morali bi
    pridobite ESPAsyncWebGlavna mapa strežnika
  3. Preimenujte svojo mapo iz ESPAsyncWebGlavni strežnik v ESPAsyncWebStrežnik
  4. Premaknite ESPAsyncWebStrežniško mapo v mapo namestitvenih knjižnic Arduino IDE

Namestitev knjižnice Async TCP za ESP32
The ESPAsyncWebStrežnik knjižnica zahteva AsyncTCP knjižnica za delo. Za namestitev te knjižnice sledite naslednjim korakom:

  1. Kliknite tukaj za prenos knjižnice AsyncTCP. V mapi Prenosi bi morali imeti mapo .zip
  2. Razpakirajte mapo .zip in dobili bi morali glavno mapo AsyncTCP
  3. Preimenujte mapo iz AsyncTCP-master v AsyncTCP
  4. Premaknite mapo AsyncTCP v mapo namestitvenih knjižnic Arduino IDE
  5. Končno znova odprite Arduino IDE

Koda
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDE
Ko namestite zahtevane knjižnice, odprite kodo
Projekt_9_ESP32_DHT11_Web_Server.ino v arduino IDE.
Preden naložite kodo, ne pozabite vnesti omrežnih poverilnic, da se bo ESP lahko povezal z vašim lokalnim omrežjem.LAFVIN ESP32 Osnovni začetni komplet - kodaKako koda deluje
V naslednjih odstavkih bomo razložili, kako deluje koda. Nadaljujte z branjem, če želite izvedeti več, ali skočite na razdelek Predstavitve, da vidite končni rezultat.
Uvoz knjižnic
Najprej uvozite zahtevane knjižnice. WiFi, ESPAsyncWebZa gradnjo sta potrebna strežnik in ESPAsyncTCP web strežnik. Za branje iz senzorjev DHT11 ali DHT22 sta potrebni knjižnici Adafruit_Sensor in DHT.LAFVIN ESP32 Basic Starter Kit - Uvažanje knjižnicOsnovni začetni komplet LAFVIN ESP32 - Kako koda delujeDefinicija spremenljivk
Določite GPIO, na katerega je povezan podatkovni pin DHT. V tem primeru je povezan z GPIO 4.LAFVIN ESP32 Basic Starter Kit - Definicija spremenljivkNato izberite tip senzorja DHT, ki ga uporabljate. V naši bivšiample, uporabljamo DHT22. Če uporabljate drugo vrsto, morate samo odkomentirati svoj senzor in komentirati vse ostale.LAFVIN ESP32 Basic Starter Kit – Definicija spremenljivk 1

Instanciirajte objekt DHT s tipom in pin-om, ki smo ju definirali prej.LAFVIN ESP32 Basic Starter Kit – Definicija spremenljivk 2Ustvarite AsyncWebObjekt strežnika na vratih 80.LAFVIN ESP32 Basic Starter Kit – Definicija spremenljivk 3Preberite funkcije temperature in vlažnosti
Ustvarili smo dve funkciji: eno za branje temperature Ustvarili smo dve funkciji: eno za branje temperature (readDHTTemperature()) in drugo za branje vlažnosti (readDHTHumidity()).Osnovni začetni komplet LAFVIN ESP32 - readDHTHhumidityLAFVIN ESP32 Basic Starter Kit - odčitki senzorjevPridobivanje odčitkov senzorjev je tako preprosto kot uporaba Pridobivanje odčitkov senzorjev je tako preprosto kot uporaba metod readTemperature() in readHumidity() na objektu dht.LAFVIN ESP32 Basic Starter Kit - predmetImamo tudi pogoj, ki vrne dva pomišljaja (–), če senzor ne pridobi odčitkov.LAFVIN ESP32 Basic Starter Kit - odčitkiOdčitki so vrnjeni kot vrsta niza. Če želite pretvoriti plavajočo vrednost v niz, uporabite funkcijo String().LAFVIN ESP32 Osnovni začetni komplet - vrvicaPrivzeto beremo temperaturo v stopinjah Celzija. Če želite dobiti temperaturo v stopinjah Fahrenheita, komentirajte temperaturo v Celziju in odkomentirajte temperaturo v Fahrenheitu, tako da imate naslednje:LAFVIN ESP32 Osnovni začetni komplet - FahrenheitOsnovni začetni komplet LAFVIN ESP32 - Fahrenheit 1Naloži kodo
Zdaj naložite kodo v svoj ESP32. Prepričajte se, da ste izbrali pravo ploščo in vrata COM. Naložite referenčne korake kode.
Po nalaganju odprite serijski monitor pri hitrosti prenosa 115200. Pritisnite gumb za ponastavitev ESP32. Naslov IP ESP32 mora biti natisnjen v serijski monitor.Osnovni začetni komplet LAFVIN ESP32 - naložite kodoDemonstracija
Odprite brskalnik in vnesite naslov IP ESP32. Vaš web strežnik bi moral prikazati najnovejše odčitke senzorjev.
Opomba: Vaš brskalnik in ESP32 morata biti povezana v isto omrežje LAN.
Upoštevajte, da se odčitki temperature in vlažnosti samodejno posodabljajo, ne da bi jih bilo treba osveževati web strani.Osnovni začetni komplet LAFVIN ESP32 – predstavitev 1

Projekt_10_ESP32_OLED_zaslon

Ta projekt prikazuje, kako uporabljati 0.96-palčni zaslon SSD1306 OLED z ESP32 z uporabo Arduino IDE.
Predstavljamo 0.96-palčni zaslon OLED
The OLED zaslon ki ga bomo uporabili v tej vadnici, je model SSD1306: enobarvni 0.96-palčni zaslon z 128×64 slikovnimi pikami, kot je prikazano na naslednji sliki.LAFVIN ESP32 Osnovni začetni komplet - OLED zaslonZaslon OLED ne potrebuje osvetlitve ozadja, kar ima za posledico zelo lep kontrast v temnem okolju. Poleg tega njegove slikovne pike porabljajo energijo le, ko so vklopljene, zato zaslon OLED porabi manj energije v primerjavi z drugimi zasloni.
Ker zaslon OLED uporablja komunikacijski protokol I2C, je ožičenje zelo preprosto. Naslednjo tabelo lahko uporabite kot referenco.

Zatič OLED ESP32
Vin 3.3 V
GND GND
SCL GPIO 22
SDA GPIO 21

shematskiOsnovni začetni komplet LAFVIN ESP32 - shemaNamestitev knjižnice SSD1306 OLED – ESP32
Na voljo je več knjižnic za upravljanje zaslona OLED z ESP32.
V tej vadnici bomo uporabili dve knjižnici Adafruit: Knjižnica Adafruit_SSD1306 in Knjižnica Adafruit_GFX.
Za namestitev teh knjižnic sledite naslednjim korakom.

  1. Odprite svoj Arduino IDE in pojdite na Sketch > Include Library > Manage Libraries. Odpreti bi se moral upravitelj knjižnice.
  2. V iskalno polje vnesite »SSD1306« in namestite knjižnico SSD1306 iz Adafruita.Osnovni začetni komplet LAFVIN ESP32 - OLEDLibrary–
  3. Po namestitvi knjižnice SSD1306 iz Adafruita v iskalno polje vnesite »GFX« in namestite knjižnico.LAFVIN ESP32 Basic Starter Kit - knjižnica
  4. Po namestitvi knjižnic znova zaženite Arduino IDE.

Koda
Po namestitvi zahtevanih knjižnic odprite Project_10_ESP32_OLED_Display.ino v arduino IDE. kodo
ESP32 bomo programirali z uporabo Arduino IDE, zato se prepričajte, da imate nameščen dodatek ESP32, preden nadaljujete: (Če ste že naredili ta korak, lahko preskočite na naslednji korak.)
Namestitev dodatka ESP32 v Arduino IDELAFVIN ESP32 Osnovni začetni komplet - koda 1LAFVIN ESP32 Osnovni začetni komplet - koda 2LAFVIN ESP32 Osnovni začetni komplet - koda 3Kako koda deluje
Uvoz knjižnic
Najprej morate uvoziti potrebne knjižnice. Knjižnica Wire za uporabo knjižnic I2C in Adafruit za pisanje na zaslon: Adafruit_GFX in Adafruit_SSD1306.Osnovni začetni komplet LAFVIN ESP32 – koda deluje 1Osnovni začetni komplet LAFVIN ESP32 – koda deluje 2Inicializirajte zaslon OLED
Nato določite širino in višino OLED. V tem bivšemample, uporabljamo zaslon OLED 128×64. Če uporabljate druge velikosti, lahko to spremenite v spremenljivkah SCREEN_WIDTH in SCREEN_HEIGHT.LAFVIN ESP32 Basic Starter Kit - zaslon OLEDNato inicializirajte prikazni objekt s širino in višino, ki sta bili prej določeni s komunikacijskim protokolom I2C (&Wire).LAFVIN ESP32 Basic Starter Kit - komunikacijski protokolParameter (-1) pomeni, da vaš zaslon OLED nima zatiča RESET. Če ima vaš zaslon OLED zatič RESET, mora biti povezan z GPIO. V tem primeru bi morali posredovati številko GPIO kot parameter.
V setup() inicializirajte serijski monitor pri hitrosti prenosa 115200 za namene odpravljanja napak.LAFVIN ESP32 Basic Starter Kit - nameniInicializirajte zaslon OLED z metodo begin(), kot sledi:Osnovni začetni komplet LAFVIN ESP32 - zaslon.začetekLAFVIN ESP32 Osnovni začetni komplet - Serial.printlnTa delček natisne tudi sporočilo na serijski monitor, če se ne moremo povezati z zaslonom.

LAFVIN ESP32 Basic Starter Kit - Serial.println 1Če uporabljate drug zaslon OLED, boste morda morali spremeniti naslov OLED. V našem primeru je naslov 0x3C.LAFVIN ESP32 Basic Starter Kit - naslovPo inicializaciji zaslona dodajte dve sekundi zakasnitve, tako da ima OLED dovolj časa za inicializacijo pred pisanjem besedila:LAFVIN ESP32 Basic Starter Kit - zamudaPočistite zaslon, nastavite velikost pisave, barvo in napišite besedilo
Po inicializaciji zaslona počistite medpomnilnik zaslona z metodo clearDisplay():LAFVIN ESP32 Basic Starter Kit - zaslon

Pred pisanjem besedila morate nastaviti velikost besedila, barvo in mesto, kjer bo besedilo prikazano v OLED.
Nastavite velikost pisave z metodo setTextSize():Osnovni začetni komplet LAFVIN ESP32 - zaslon 1Nastavite barvo pisave z metodo setTextColor():
WHITE nastavi belo pisavo in črno ozadje.
Določite položaj, kjer se besedilo začne z metodo setCursor(x,y). V tem primeru nastavimo, da se besedilo začne pri koordinatah (0,0) – v zgornjem levem kotu.Osnovni začetni komplet LAFVIN ESP32 - setTextColor 1Končno lahko pošljete besedilo na zaslon z metodo println(), kot slediLAFVIN ESP32 Osnovni začetni komplet - koda 5Nato morate poklicati metodo display(), da dejansko prikažete besedilo na zaslonu.LAFVIN ESP32 Basic Starter Kit - zaslon

Knjižnica Adafruit OLED ponuja uporabne metode za preprosto pomikanje po besedilu.

  • startscrollright(0x00, 0x0F): premikanje besedila od leve proti desni
  • startscrollleft(0x00, 0x0F): premikanje besedila od desne proti levi
  • startscrolldiagright(0x00, 0x07): premikanje besedila od levega spodnjega kota do desnega zgornjega kota startscrolldiagleft(0x00, 0x07): premikanje besedila od desnega spodnjega kota do levega zgornjega kota

Naloži kodo
Zdaj naložite kodo v svoj ESP32. Referenčni koraki za nalaganje kode.
Po nalaganju kode bo OLED prikazal drseče besedilo.LAFVIN ESP32 Basic Starter Kit - drsno besediloLogotip LAFVIN

Dokumenti / Viri

Osnovni začetni komplet LAFVIN ESP32 [pdf] Navodila za uporabo
Osnovni začetni komplet ESP32, ESP32, osnovni začetni komplet, začetni komplet

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *