LAFVIN logoESP32 Basic Starter
Kit

Lista pakovanja

LAFVIN ESP32 Osnovni početni komplet - lista pakovanja

ESP32 Uvod

Novi ste na ESP32? Počnite ovdje! ESP32 je serija jeftinih mikrokontrolera sistema na čipu (SoC) koje je razvio Espressif koji uključuju Wi-Fi i Bluetooth bežične mogućnosti i dvojezgreni procesor. Ako ste upoznati sa ESP8266, ESP32 je njegov nasljednik, pun puno novih funkcija.LAFVIN ESP32 Osnovni početni komplet - ESP32 UvodESP32 specifikacije
Ako želite biti malo tehnički i konkretniji, možete pogledati sljedeće detaljne specifikacije ESP32 (izvor: http://esp32.net/)—za više detalja, provjerite tablicu sa podacima):

  • Bežično povezivanje WiFi: 150.0 Mbps brzina podataka sa HT40
  • Bluetooth: BLE (Bluetooth Low Energy) i Bluetooth Classic
  • Procesor: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprocesor, radi na 160 ili 240 MHz
  • Memorija:
  • ROM: 448 KB (za pokretanje i osnovne funkcije)
  • SRAM: 520 KB (za podatke i uputstva)
  • RTC fas SRAM: 8 KB (za skladištenje podataka i glavni CPU tokom RTC pokretanja iz režima dubokog spavanja)
  • RTC spor SRAM: 8KB (za pristup koprocesoru tokom režima dubokog mirovanja) eFuse: 1 Kbit (od čega se 256 bita koristi za sistem (MAC adresa i konfiguracija čipa), a preostalih 768 bita je rezervisano za korisničke aplikacije, uključujući Flash-šifriranje i Chip-ID)

Ugrađeni blic: blic povezan interno preko IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 i SD_DATA_1 na ESP32-D2WD i ESP32-PICO-D4.

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

Niska snaga: osigurava da i dalje možete koristiti ADC konverzije, nprample, tokom dubokog sna.
Periferni ulaz/izlaz:

  • periferni interfejs sa DMA koji uključuje kapacitivni dodir
  • ADC (analogno-digitalni pretvarač)
  • DAC (digitalno-analogni pretvarač)
  • I²C (međuintegrisano kolo)
  • UART (univerzalni asinhroni prijemnik/predajnik)
  • SPI (serijski periferni interfejs)
  • I²S (integrirani interchip zvuk)
  • RMII (Smanjeno sučelje neovisno o medijima)
  • PWM (Pulsno-širinska modulacija)

sigurnost: hardverski akceleratori za AES i SSL/TLS

ESP32 razvojne ploče

ESP32 se odnosi na goli ESP32 čip. Međutim, izraz “ESP32” se također koristi za označavanje ESP32 razvojnih ploča. Korištenje ESP32 golih čipova nije lako niti praktično, posebno prilikom učenja, testiranja i izrade prototipa. Većinu vremena želite da koristite ESP32 razvojnu ploču.
Koristićemo ESP32 DEVKIT V1 ploču kao referencu. Na slici ispod prikazana je ESP32 DEVKIT V1 ploča, verzija sa 30 GPIO pinova.LAFVIN ESP32 Osnovni početni komplet - ESP32 razvojne pločeSpecifikacije – ESP32 DEVKIT V1
Sljedeća tabela prikazuje sažetak karakteristika i specifikacija ploče ESP32 DEVKIT V1 DOIT:

Broj jezgara 2 (dvojezgarni)
Wi-Fi 2.4 GHz do 150 Mbit/s
Bluetooth BLE (Bluetooth Low Energy) i stari Bluetooth
Arhitektura 32 bita
Frekvencija takta Do 240 MHz
RAM 512 KB
Pins 30 (ovisno o modelu)
Periferije Kapacitivni dodir, ADC (analogno digitalni pretvarač), DAC (digitalno-analogni pretvarač), 12C (među-integrisano kolo), UART (univerzalni asinhroni prijemnik/predajnik), CAN 2.0 (mreža kontrolera), SPI (serijski periferni interfejs) , 12S (Integrisani Inter-IC
Zvuk), RMII (Smanjeni interfejs nezavisni od medija), PWM (širina impulsa modulacije) i još mnogo toga.
Ugrađena dugmad Dugmad RESET i BOOT
Ugrađene LED diode ugrađeni plavi LED spojen na GPIO2; Ugrađena crvena LED dioda koja pokazuje da se ploča napaja
USB na UART
most
CP2102

LAFVIN ESP32 Osnovni početni komplet - ESP32 DEVKITDolazi sa microUSB interfejsom koji možete koristiti za povezivanje ploče sa računarom da biste učitali kod ili primenili napajanje.
Koristi CP2102 čip (USB na UART) za komunikaciju sa vašim računarom preko COM porta koristeći serijski interfejs. Još jedan popularan čip je CH340. Provjerite koji je konvertor USB u UART čip na vašoj ploči jer ćete morati instalirati potrebne drajvere kako bi vaš računar mogao komunicirati s pločom (više informacija o tome kasnije u ovom vodiču).
Ova ploča takođe dolazi sa dugmetom RESET (može biti označeno sa EN) za ponovno pokretanje ploče i dugmetom BOOT za postavljanje ploče u režim treptanja (dostupno za primanje koda). Imajte na umu da neke ploče možda nemaju dugme BOOT.
Takođe dolazi sa ugrađenom plavom LED diodom koja je interno povezana na GPIO 2. Ova LED je korisna za otklanjanje grešaka da bi dala neku vrstu vizuelnog fizičkog izlaza. Tu je i crvena LED koja svijetli kada napajate ploču.LAFVIN ESP32 Osnovni početni komplet - pločaESP32 Pinout
ESP32 periferne jedinice uključuju:

  • 18 kanala analogno-digitalnog pretvarača (ADC).
  • 3 SPI interfejsa
  • 3 UART interfejsa
  • 2 I2C interfejsa
  • 16 PWM izlazna kanala
  • 2 digitalno-analogna pretvarača (DAC)
  • 2 I2S interfejsa
  • 10 GPIO sa kapacitivnim senzorom

Karakteristike ADC (analogno-digitalni pretvarač) i DAC (digitalno-analogni pretvarač) su dodijeljene određenim statičkim pinovima. Međutim, možete odlučiti koji su pinovi UART, I2C, SPI, PWM, itd – samo ih trebate dodijeliti u kodu. Ovo je moguće zahvaljujući funkciji multipleksiranja ESP32 čipa.
Iako možete definisati svojstva pinova u softveru, postoje pinovi dodijeljeni po defaultu kao što je prikazano na sljedećoj sliciLAFVIN ESP32 Osnovni početni komplet - ESP32 PinoutOsim toga, postoje igle sa specifičnim karakteristikama koje ih čine prikladnima ili ne za određeni projekat. Sljedeća tabela pokazuje koje pinove je najbolje koristiti kao ulaze, izlaze i na koje morate biti oprezni.
Igle označene zelenom bojom su u redu za upotrebu. One označene žutom bojom su u redu za korištenje, ali morate obratiti pažnju jer mogu imati neočekivano ponašanje uglavnom pri pokretanju. Pinovi označeni crvenom bojom se ne preporučuju za upotrebu kao ulaze ili izlaze.

GP IO Input Izlaz Bilješke
0 povukao gore OK emituje PWM signal pri pokretanju, mora biti LOW da bi ušao u režim treptanja
1 TX pin OK debug output pri pokretanju
2 OK OK spojen na ugrađenu LED diodu, mora biti ostavljen da pluta ili LOW da bi ušao u trepćući mod
3 OK RX pin HIGH pri dizanju
4 OK OK
5 OK OK emituje PWM signal pri pokretanju, igla za vezivanje
12 OK OK čizma ne uspijeva ako se povuče visoko, igla za vezivanje
13 OK OK
14 OK OK emituje PWM signal pri pokretanju
15 OK OK emituje PWM signal pri pokretanju, igla za vezivanje
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 unos
35 OK samo unos
36 OK samo unos
39 OK samo unos

Nastavite čitati za detaljniju i dubinsku analizu ESP32 GPIO-a i njegovih funkcija.
Unesite samo pinove
GPIO 34 do 39 su GPI – pinovi samo za unos. Ovi pinovi nemaju unutrašnje pull-up ili pull-down otpornike. Ne mogu se koristiti kao izlazi, pa ove pinove koristite samo kao ulaze:

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

SPI blic integrisan na ESP-WROOM-32
GPIO 6 do GPIO 11 su izloženi na nekim ESP32 razvojnim pločama. Međutim, ovi pinovi su povezani na integrisani SPI fleš na ESP-WROOM-32 čipu i ne preporučuju se za drugu upotrebu. Dakle, nemojte koristiti ove igle u svojim projektima:

  • 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 dodirni GPIO
ESP32 ima 10 internih kapacitivnih senzora dodira. Oni mogu osjetiti varijacije u svemu što ima električni naboj, poput ljudske kože. Tako mogu otkriti varijacije izazvane dodirom GPIO-a prstom. Ove igle se lako mogu integrirati u kapacitivne jastučiće i zamijeniti mehanička dugmad. Kapacitivni dodirni pinovi se takođe mogu koristiti za buđenje ESP32 iz dubokog sna. Ti unutrašnji senzori dodira su povezani na ove 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 pretvarač (ADC)
ESP32 ima 18 x 12 bita ADC ulazne kanale (dok ESP8266 ima samo 1 x 10 bita ADC). Ovo su GPIO-ovi koji se mogu koristiti kao ADC i odgovarajući 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)

Napomena: ADC2 pinovi se ne mogu koristiti kada se koristi Wi-Fi. Dakle, ako koristite Wi-Fi i imate problema s dobivanjem vrijednosti od ADC2 GPIO, možete razmisliti o korištenju ADC1 GPIO umjesto toga. To bi trebalo da reši vaš problem.
ADC ulazni kanali imaju 12-bitnu rezoluciju. To znači da možete dobiti analogna očitanja u rasponu od 0 do 4095, u kojima 0 odgovara 0V, a 4095 do 3.3V. Također možete podesiti rezoluciju vaših kanala na kodu i rasponu ADC-a.
ESP32 ADC pinovi nemaju linearno ponašanje. Vjerovatno nećete moći razlikovati između 0 i 0.1 V, ili između 3.2 i 3.3 V. Morate to imati na umu kada koristite ADC pinove. Dobit ćete ponašanje slično onom prikazanom na sljedećoj slici.LAFVIN ESP32 Osnovni početni komplet - ponašanjeDigitalno analogni pretvarač (DAC)
Postoje 2 x 8 bita DAC kanala na ESP32 za pretvaranje digitalnih signala u analogni voltage izlaze signala. Ovo su DAC kanali:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
Postoji RTC GPIO podrška na ESP32. GPIO-ovi koji se usmjeravaju na RTC podsistem male snage mogu se koristiti kada je ESP32 u dubokom spavanju. Ovi RTC GPIO se mogu koristiti za buđenje ESP32 iz dubokog sna kada je Ultra Low
Power (ULP) koprocesor radi. Sljedeći GPIO-ovi se mogu koristiti kao vanjski izvor buđenja.

  • 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
ESP32 LED PWM kontroler ima 16 nezavisnih kanala koji se mogu konfigurirati za generiranje PWM signala s različitim svojstvima. Svi pinovi koji mogu djelovati kao izlazi mogu se koristiti kao PWM pinovi (GPIO 34 do 39 ne mogu generirati PWM).
Da biste postavili PWM signal, morate definirati ove parametre u kodu:

  • Frekvencija signala;
  • Dutycycle;
  • PWM kanal;
  • GPIO gde želite da emitujete signal.

I2C
ESP32 ima dva I2C kanala i bilo koji pin se može postaviti kao SDA ili SCL. Kada koristite ESP32 sa Arduino IDE, podrazumevani I2C pinovi su:

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

Ako želite koristiti druge pinove kada koristite biblioteku žice, samo trebate pozvati:
Wire.begin(SDA, SCL);
SPI
Podrazumevano, mapiranje pinova za SPI je:

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

Prekidi
Svi GPIO-ovi se mogu konfigurirati kao prekidi.
Strapping Pins
ESP32 čip ima sljedeće igle za vezivanje:

  • GPIO 0 (mora biti LOW za ulazak u režim pokretanja)
  • GPIO 2 (mora biti plutajući ili LOW tokom pokretanja)
  • GPIO 4
  • GPIO 5 (mora biti HIGH tokom pokretanja)
  • GPIO 12 (mora biti LOW tokom pokretanja)
  • GPIO 15 (mora biti HIGH tokom pokretanja)

Oni se koriste za stavljanje ESP32 u bootloader ili flash mod. Na većini razvojnih ploča sa ugrađenim USB/Serialom, ne morate da brinete o stanju ovih pinova. Ploča postavlja pinove u ispravno stanje za treptanje ili režim pokretanja. Više informacija o izboru ESP32 načina pokretanja možete pronaći ovdje.
Međutim, ako imate periferne uređaje povezane na te pinove, možda ćete imati problema s pokušajem učitavanja novog koda, flešovanjem ESP32 novim firmverom ili resetiranjem ploče. Ako imate neke periferije povezane na igle za vezivanje i imate problema s učitavanjem koda ili bljeskanjem ESP32, to može biti zato što te periferije sprječavaju ESP32 da uđe u pravi način rada. Pročitajte dokumentaciju za odabir načina pokretanja koja će vas voditi u pravom smjeru. Nakon resetiranja, bljeskanja ili pokretanja, ti pinovi rade kako se očekuje.
Pins HIGH at Boot
Neki GPIO mijenjaju svoje stanje u HIGH ili izlaze PWM signale pri pokretanju ili resetovanju.
To znači da ako imate izlaze povezane na ove GPIO-ove, možete dobiti neočekivane rezultate kada se ESP32 resetuje ili pokrene.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 do GPIO 11 (povezan na ESP32 integrisanu SPI fleš memoriju – ne preporučuje se upotreba).
  • GPIO 14
  • GPIO 15

Omogući (EN)
Enable (EN) je pin za omogućavanje regulatora od 3.3 V. Povučen je, pa ga spojite na masu da biste onemogućili 3.3V regulator. To znači da možete koristiti ovaj pin povezan na dugme za ponovno pokretanje ESP32, nprample.
GPIO struja povučena
Apsolutna maksimalna struja povučena po GPIO je 40mA prema odjeljku “Preporučeni radni uvjeti” u ESP32 tablici sa podacima.
ESP32 Ugrađeni Hall efekt senzor
ESP32 također ima ugrađeni senzor Hall efekta koji detektuje promjene u magnetnom polju u svojoj okolini
ESP32 Arduino IDE
Postoji dodatak za Arduino IDE koji vam omogućava da programirate ESP32 koristeći Arduino IDE i njegov programski jezik. U ovom vodiču ćemo vam pokazati kako da instalirate ESP32 ploču u Arduino IDE bilo da koristite Windows, Mac OS X ili Linux.
Preduslovi: Instaliran Arduino IDE
Pre nego što započnete ovu proceduru instalacije, potrebno je da imate Arduino IDE instaliran na vašem računaru. Postoje dvije verzije Arduino IDE koje možete instalirati: verzija 1 i verzija 2.
Arduino IDE možete preuzeti i instalirati klikom na sljedeći link: arduino.cc/en/Main/Software
Koju Arduino IDE verziju preporučujemo? Trenutno ih ima plugins za ESP32 (kao što je SPIFFS Filesystem Uploader Plugin) koji još nisu podržani na Arduinu 2. Dakle, ako namjeravate koristiti SPIFFS dodatak u budućnosti, preporučujemo da instalirate zastarjelu verziju 1.8.X. Samo trebate skrolovati prema dolje na stranici Arduino softvera da biste ga pronašli.
Instaliranje ESP32 dodatka u Arduino IDE
Da biste instalirali ESP32 ploču u vaš Arduino IDE, slijedite sljedeća uputstva:

  1. U vašem Arduino IDE, idite na File> PreferencesLAFVIN ESP32 Osnovni početni komplet - Preference
  2. Unesite sljedeće u “Additional Board Manager URLs” polje:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Zatim kliknite na dugme “OK”:LAFVIN ESP32 Osnovni početni komplet - dugme “OK”.Napomena: ako već imate ESP8266 ploče URL, možete odvojiti URLs sa zarezom kako slijedi:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Otvorite Boards Manager. Idite na Alati > Ploča > Upravitelj ploča…LAFVIN ESP32 Osnovni početni komplet - EspressifTraži ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Osnovni početni komplet - EspressifTo je to. Trebalo bi da se instalira nakon nekoliko sekundi.LAFVIN ESP32 Osnovni početni komplet - instaliran

Prenesite testni kod

Priključite ESP32 ploču na računar. Kada je vaš Arduino IDE otvoren, slijedite ove korake:

  1. Odaberite svoju ploču u izborniku Alati > Ploča (u mom slučaju to je ESP32 DEV modul)LAFVIN ESP32 Osnovni početni komplet - ploča s alatima
  2. Odaberite port (ako ne vidite COM port u vašem Arduino IDE, morate instalirati CP210x USB na UART Bridge VCP drajvere):LAFVIN ESP32 Osnovni početni komplet - UART Bridge
  3. Otvorite sljedeći example under File > Pramples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 Osnovni početni komplet - WiFiScanLAFVIN ESP32 Osnovni početni komplet - WiFiScan 1
  4. Nova skica se otvara u vašem Arduino IDE:LAFVIN ESP32 Basic Starter Kit - Arduino IDE
  5. Pritisnite dugme Upload u Arduino IDE. Pričekajte nekoliko sekundi dok se kod kompajlira i učita na vašu ploču.LAFVIN ESP32 Osnovni početni komplet - ploča
  6. Ako je sve prošlo kako ste očekivali, trebali biste vidjeti "Otpremanje je završeno". poruka.LAFVIN ESP32 Osnovni početni komplet - Prenošenje završeno
  7. Otvorite Arduino IDE serijski monitor brzinom prijenosa od 115200:LAFVIN ESP32 Osnovni početni komplet - Monitor
  8. Pritisnite dugme za uključenje ESP32 na ploči i trebalo bi da vidite mreže dostupne u blizini vašeg ESP32:LAFVIN ESP32 Osnovni početni komplet - dugme za uključivanje

Rješavanje problema

Ako pokušate da učitate novu skicu na svoj ESP32 i dobijete ovu poruku o grešci „Dogodila se fatalna greška: Neuspešno povezivanje sa ESP32: Isteklo je vreme… Povezivanje…“. To znači da vaš ESP32 nije u modu bljeskanja/učitavanja.
Kada odaberete pravi naziv ploče i COM por, slijedite ove korake:
Držite pritisnuto dugme “BOOT” na vašoj ESP32 pločiLAFVIN ESP32 Osnovni početni komplet - “BOOT”

  • Pritisnite dugme „Učitaj“ u Arduino IDE da biste otpremili svoju skicu:LAFVIN ESP32 Osnovni početni komplet - ICON 6
  • Nakon što vidite "Povezivanje...." poruku u vašem Arduino IDE, otpustite prst sa dugmeta “BOOT”:LAFVIN ESP32 Osnovni početni komplet - “Učitavanje je završeno
  • Nakon toga, trebali biste vidjeti poruku "Učitavanje je završeno".
    To je to. Vaš ESP32 bi trebao imati pokrenutu novu skicu. Pritisnite dugme “ENABLE” da ponovo pokrenete ESP32 i pokrenete novu učitanu skicu.
    Takođe ćete morati da ponavljate taj niz dugmadi svaki put kada želite da otpremite novu skicu.

Projekt 1 ESP32 Ulazi Izlazi

U ovom vodiču za početak ćete naučiti kako čitati digitalne ulaze poput prekidača s gumbima i kontrolirati digitalne izlaze poput LED-a koristeći ESP32 sa Arduino IDE.
Preduvjeti
Programiraćemo ESP32 koristeći Arduino IDE. Dakle, provjerite imate li instaliran dodatak za ESP32 ploče prije nego što nastavite:

  • Instaliranje ESP32 dodatka u Arduino IDE

ESP32 Kontrola digitalnih izlaza
Prvo, trebate postaviti GPIO koji želite kontrolirati kao OUTPUT. Koristite funkciju pinMode() na sljedeći način:
pinMode(GPIO, OUTPUT);
Da biste kontrolirali digitalni izlaz, trebate samo koristiti funkciju digitalWrite() koja prihvata kao argumente GPIO (int broj) na koji se pozivate i stanje, HIGH ili LOW.
digitalWrite(GPIO, STATE);
Svi GPIO se mogu koristiti kao izlazi osim GPIO 6 do 11 (povezani na integrisani SPI flash) i GPIO 34, 35, 36 i 39 (ulaz samo GPIO);
Saznajte više o ESP32 GPIO: Referentni vodič za ESP32 GPIO
ESP32 Čitanje digitalnih ulaza
Prvo postavite GPIO koji želite da pročitate kao INPUT, koristeći funkciju pinMode() na sljedeći način:
pinMode(GPIO, INPUT);
Za čitanje digitalnog ulaza, poput dugmeta, koristite funkciju digitalRead(), koja prihvata kao argument GPIO (int broj) na koji se pozivate.
digitalRead(GPIO);
Svi ESP32 GPIO se mogu koristiti kao ulazi, osim GPIO 6 do 11 (povezani na integrisani SPI blic).
Saznajte više o ESP32 GPIO: Referentni vodič za ESP32 GPIO
Project Example
Da bismo vam pokazali kako da koristite digitalne ulaze i digitalne izlaze, napravićemo jednostavan projekat nprample sa dugmetom i LED diodom. Pročitaćemo stanje dugmeta i upaliti LED u skladu sa tim kao što je prikazano na sledećoj slici.LAFVIN ESP32 Osnovni početni komplet - Project Example

Parts Required
Evo liste dijelova koji su vam potrebni za izgradnju kola:

  • ESP32 DEVKIT V1
  • 5 mm LED
  • Otpor 220 Ohma
  • Tipkalo
  • 10k Ohm otpornik
  • Breadboard
  • Žice za kratkospojnike

Shematski dijagram
Prije nego što nastavite, trebate sastaviti krug sa LED diodom i tipkom.
Spojićemo LED na GPIO 5, a dugme na GPIO 4.LAFVIN ESP32 Osnovni početni komplet - Šematski dijagramKod
Otvorite kod Project_1_ESP32_Inputs_Outputs.ino u arduino IDELAFVIN ESP32 Osnovni početni komplet - ŠifraLAFVIN ESP32 Osnovni početni komplet - Kod 1Kako Kodeks funkcionira
U sljedeća dva reda kreirate varijable za dodjeljivanje pinova:

LAFVIN ESP32 Osnovni početni komplet - Code WorksDugme je povezano na GPIO 4, a LED dioda na GPIO 5. Kada koristite Arduino IDE sa ESP32, 4 odgovara GPIO 4, a 5 odgovara GPIO 5.
Zatim kreirate promenljivu koja će zadržati stanje dugmeta. Podrazumevano je 0 (nije pritisnut).
int buttonState = 0;
U setup() inicijalizirate dugme kao INPUT, a LED kao OUTPUT.
Za to koristite funkciju pinMode() koja prihvata pin na koji se pozivate i način rada: INPUT ili OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
U loop() čitate stanje dugmeta i postavljate LED u skladu s tim.
U sledećem redu čitate stanje dugmeta i čuvate ga u promenljivoj buttonState.
Kao što smo ranije vidjeli, koristite funkciju digitalRead().
buttonState = digitalRead(buttonPin);
Sljedeća if naredba provjerava da li je stanje dugmeta HIGH. Ako jeste, uključuje LED pomoću funkcije digitalWrite() koja prihvata kao argument LEDPin i stanje HIGH.
if (buttonState == VISOKO)LAFVIN ESP32 Osnovni početni komplet - Code Works 1Ako stanje dugmeta nije HIGH, isključite LED diodu. Samo postavite LOW kao drugi argument u funkciji digitalWrite().LAFVIN ESP32 Osnovni početni komplet - digitalWriteUčitavanje koda
Pre nego što kliknete na dugme za otpremanje, idite na Alati > Ploča i izaberite ploču :DOIT ESP32 DEVKIT V1.
Idite na Tools > Port i odaberite COM port na koji je ESP32 povezan. Zatim pritisnite dugme za otpremanje i sačekajte poruku „Gotovo otpremanje“.LAFVIN ESP32 Osnovni početni komplet - ICON 7Napomena: Ako vidite puno tačaka (povezivanje…__…__) u prozoru za otklanjanje grešaka i poruku „Neuspješno povezivanje sa ESP32: Isteklo je vrijeme čekanja na zaglavlje paketa“, to znači da morate pritisnuti ESP32 on-board BOOT dugme iza tačaka
početi pojavljivati.Rješavanje problema

Demonstracija

Nakon učitavanja koda, testirajte svoj krug. Vaša LED dioda bi trebala zasvijetliti kada pritisnete dugme:LAFVIN ESP32 Osnovni početni komplet - DemonstracijaI isključite ga kada ga otpustite:LAFVIN ESP32 Basic Starter Kit - paljenje

Projekt 2 ESP32 analogni ulazi

Ovaj projekat pokazuje kako čitati analogne ulaze sa ESP32 koristeći Arduino IDE.
Analogno čitanje je korisno za čitanje vrijednosti iz varijabilnih otpornika kao što su potenciometri ili analogni senzori.
Analogni ulazi (ADC)
Čitanje analogne vrijednosti pomoću ESP32 znači da možete mjeriti različite zapreminetage nivoi između 0 V i 3.3 V.
VoltagIzmjereno e se zatim dodjeljuje vrijednosti između 0 i 4095, u kojoj 0 V odgovara 0, a 3.3 V odgovara 4095. Bilo koji voltage između 0 V i 3.3 V će dobiti odgovarajuću vrijednost između.LAFVIN ESP32 Osnovni početni komplet - Analogni ulaziADC je nelinearan
U idealnom slučaju, očekivali biste linearno ponašanje kada koristite ESP32 ADC pinove.
Međutim, to se ne dešava. Ono što ćete dobiti je ponašanje kao što je prikazano na sljedećem grafikonu:LAFVIN ESP32 Osnovni početni komplet - nelinearniOvo ponašanje znači da vaš ESP32 ne može razlikovati 3.3 V od 3.2 V.
Dobit ćete istu vrijednost za oba voltages: 4095.
Isto se dešava i za veoma mali volumentage vrijednosti: za 0 V i 0.1 V dobit ćete istu vrijednost: 0. Ovo morate imati na umu kada koristite ESP32 ADC pinove.
analogRead() funkcija
Čitanje analognog ulaza sa ESP32 pomoću Arduino IDE je jednostavno kao korištenje funkcije analogRead(). Kao argument prihvata GPIO koji želite da pročitate:
analogno čitanje(GPIO);
Samo 15 je dostupno u DEVKIT V1 ploči (verzija sa 30 GPIO).
Uzmite pinout svoje ESP32 ploče i pronađite pinove ADC. Oni su označeni crvenim rubom na donjoj slici.LAFVIN ESP32 Osnovni početni komplet - granicaOvi analogni ulazni pinovi imaju 12-bitnu rezoluciju. To znači da kada čitate analogni ulaz, njegov raspon može varirati od 0 do 4095.
Napomena: ADC2 pinovi se ne mogu koristiti kada se koristi Wi-Fi. Dakle, ako koristite Wi-Fi i imate problema s dobivanjem vrijednosti od ADC2 GPIO, možete razmisliti o korištenju ADC1 GPIO umjesto toga, to bi trebalo riješiti vaš problem.
Da vidimo kako se sve povezuje, napravićemo jednostavnu bivšuample za očitavanje analogne vrijednosti sa potenciometra.
Parts Required
Za ovaj example, potrebni su vam sledeci delovi:

  • ESP32 DEVKIT V1 ploča
  • Potentiometer
  • Breadboard
  • Žice za kratkospojnike

Šematski
Spojite potenciometar na vaš ESP32. Srednji pin potenciometra bi trebao biti spojen na GPIO 4. Možete koristiti sljedeći šematski dijagram kao referencu.LAFVIN ESP32 Osnovni početni komplet - ŠemaKod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Otvorite kod Project_2_ESP32_Inputs_Outputs.ino u arduino IDELAFVIN ESP32 Osnovni početni komplet - Kod 2Ovaj kod jednostavno čita vrijednosti iz potenciometra i ispisuje te vrijednosti u serijski monitor.
U kodu počinjete tako što ćete definirati GPIO na koji je potenciometar povezan. U ovom example, GPIO 4.LAFVIN ESP32 Osnovni početni komplet - exampleU setup(), inicijalizirajte serijsku komunikaciju brzinom prijenosa od 115200.LAFVIN ESP32 Osnovni početni komplet - example 1U loop(), koristite funkciju analogRead() da pročitate analogni ulaz iz potPin-a.LAFVIN ESP32 Osnovni početni komplet - example 2Na kraju, odštampajte vrednosti očitane sa potenciometra u serijskom monitoru.LAFVIN ESP32 Osnovni početni komplet - example 3Prenesite dobijeni kod na svoj ESP32. Provjerite jeste li odabrali pravu ploču i COM port u izborniku Tools.
Testiranje Example
Nakon učitavanja koda i pritiska na dugme za resetovanje ESP32, otvorite serijski monitor brzinom prenosa od 115200. Okrenite potenciometar i vidite da se vrednosti menjaju.Maksimalna vrijednost koju ćete dobiti je 4095, a minimalna vrijednost je 0.LAFVIN ESP32 Osnovni početni komplet -maksimalna vrijednost

Wrapping Up

U ovom članku ste naučili kako čitati analogne ulaze koristeći ESP32 sa Arduino IDE. u sažetku:

  • ESP32 DEVKIT V1 DOIT ploča (verzija sa 30 pinova) ima 15 ADC pinova koje možete koristiti za čitanje analognih ulaza.
  • Ovi pinovi imaju rezoluciju od 12 bita, što znači da možete dobiti vrijednosti od 0 do 4095.
  • Da biste pročitali vrijednost u Arduino IDE, jednostavno koristite funkciju analogRead().
  • ESP32 ADC pinovi nemaju linearno ponašanje. Vjerovatno nećete moći razlikovati između 0 i 0.1 V, ili između 3.2 i 3.3 V. Morate to imati na umu kada koristite ADC pinove.

Project 3 ESP32 PWM (analogni izlaz)

U ovom vodiču ćemo vam pokazati kako da generišete PWM signale sa ESP32 koristeći Arduino IDE. Kao bivšiampNapravićemo jednostavno kolo koje zatamnjuje LED pomoću LED PWM kontrolera ESP32.LAFVIN ESP32 Osnovni početni komplet - Analogni izlazESP32 LED PWM kontroler
ESP32 ima LED PWM kontroler sa 16 nezavisnih kanala koji se mogu konfigurirati za generiranje PWM signala s različitim svojstvima.
Evo koraka koje ćete morati slijediti da prigušite LED diodu s PWM-om koristeći Arduino IDE:

  1. Prvo morate odabrati PWM kanal. Postoji 16 kanala od 0 do 15.
  2. Zatim morate podesiti frekvenciju PWM signala. Za LED, frekvencija od 5000 Hz je dobra za korištenje.
  3. Također morate podesiti rezoluciju radnog ciklusa signala: imate rezolucije od 1 do 16 bita. Koristit ćemo 8-bitnu rezoluciju, što znači da možete kontrolirati svjetlinu LED-a koristeći vrijednost od 0 do 255.
  4.  Zatim morate odrediti na kojim GPIO ili GPIO-ovima će se signal pojaviti. Za to ćete koristiti sljedeću funkciju:
    ledcAttachPin(GPIO, kanal)
    Ova funkcija prihvata dva argumenta. Prvi je GPIO koji će emitovati signal, a drugi je kanal koji će generirati signal.
  5. Konačno, za kontrolu svjetline LED-a pomoću PWM-a, koristite sljedeću funkciju:

ledcWrite(kanal, radni ciklus)
Ova funkcija prihvata kao argumente kanal koji generiše PWM signal i radni ciklus.
Parts Required
Za praćenje ovog vodiča potrebni su vam ovi dijelovi:

  • ESP32 DEVKIT V1 ploča
  • 5 mm LED
  • Otpor 220 Ohma
  •  Breadboard
  • Žice za kratkospojnike

Šematski
Spojite LED na svoj ESP32 kao na sljedećem šematskom dijagramu. LED bi trebao biti povezan na GPIO 4.LAFVIN ESP32 Osnovni početni komplet - ŠemaNapomena: možete koristiti bilo koji pin koji želite, sve dok može djelovati kao izlaz. Svi pinovi koji mogu djelovati kao izlazi mogu se koristiti kao PWM pinovi. Za više informacija o ESP32 GPIO, pročitajte: Referenca za ESP32 Pinout: Koje GPIO pinove trebate koristiti?
Kod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Otvorite kod Project_3_ESP32_PWM.ino u arduino IDELAFVIN ESP32 Osnovni početni komplet - Kod 3LAFVIN ESP32 Osnovni početni komplet - Kod 4Počinjete definiranjem pina na koji je LED spojen. U ovom slučaju LED je priključen na GPIO 4.LAFVIN ESP32 Osnovni početni komplet - Kod 5Zatim postavljate svojstva PWM signala. Definirate frekvenciju od 5000 Hz, odaberete kanal 0 za generiranje signala i postavite rezoluciju od 8 bita. Možete odabrati druga svojstva, različita od ovih, za generiranje različitih PWM signala.LAFVIN ESP32 Osnovni početni komplet - Kod 6U setup(), morate konfigurirati LED PWM sa svojstvima koja ste ranije definirali korištenjem ledcSetup() funkcije koja prihvaća kao argumente, ledChannel, frekvenciju i rezoluciju, kako slijedi:LAFVIN ESP32 Osnovni početni komplet - Kod 8Zatim morate odabrati GPIO od kojeg ćete dobiti signal. Za to koristite ledcAttachPin() funkciju koja prihvata kao argumente GPIO gde želite da dobijete signal i kanal koji generiše signal. U ovom exampDakle, dobićemo signal u LEDPin GPIO, koji odgovara GPIO 4. Kanal koji generiše signal je ledChannel, koji odgovara kanalu 0.LAFVIN ESP32 Osnovni početni komplet - Kod 9U petlji ćete mijenjati radni ciklus između 0 i 255 kako biste povećali svjetlinu LED-a.LAFVIN ESP32 Osnovni početni komplet - svjetlinaA zatim, između 255 i 0 za smanjenje svjetline.LAFVIN ESP32 Osnovni početni komplet - svjetlina 1Da biste podesili svjetlinu LED-a, samo trebate koristiti ledcWrite() funkciju koja prihvata kao argumente kanal koji generiše signal i radni ciklus.LAFVIN ESP32 Osnovni početni komplet - svjetlina 2Kako koristimo 8-bitnu rezoluciju, radni ciklus će se kontrolirati korištenjem vrijednosti od 0 do 255. Imajte na umu da u funkciji ledcWrite() koristimo kanal koji generiše signal, a ne GPIO.

Testiranje Example

Prenesite kod na svoj ESP32. Provjerite jeste li odabrali pravu ploču i COM port. Pogledaj svoj krug. Trebali biste imati LED diodu koja povećava i smanjuje svjetlinu.LAFVIN ESP32 Osnovni početni komplet - Testiranje Example

Projekt 4 ESP32 PIR senzor pokreta

Ovaj projekat pokazuje kako detektovati kretanje pomoću ESP32 pomoću PIR senzora pokreta. Zujalica će oglasiti alarm kada se detektuje pokret i zaustaviti alarm kada se pokret ne detektuje tokom unapred podešenog vremena (kao što je 4 sekunde)
Kako radi HC-SR501 senzor pokreta
.LAFVIN ESP32 Osnovni početni komplet - senzor pokreta radiPrincip rada senzora HC-SR501 zasniva se na promeni infracrvenog zračenja na pokretnom objektu. Da bi ga senzor HC-SR501 detektovao, objekat mora da ispunjava dva uslova:

  • Objekat emituje infracrveni put.
  • Predmet se kreće ili trese

dakle:
Ako objekat emituje infracrvene zrake, ali se ne kreće (npr. osoba miruje bez kretanja), senzor ga NE detektuje.
Ako se objekat kreće, ali NE emituje infracrvene zrake (npr. robot ili vozilo), senzor ga NE detektuje.
Predstavljamo tajmere
U ovom exampuvešćemo i tajmere. Želimo da LED ostane uključen unaprijed određeni broj sekundi nakon što se detektuje pokret. Umjesto da koristimo funkciju delay() koja blokira vaš kod i ne dozvoljava vam da radite ništa drugo u određenom broju sekundi, trebali bismo koristiti tajmer.LAFVIN ESP32 Osnovni početni komplet - Predstavljamo tajmereFunkcija kašnjenja().
Trebali biste biti upoznati sa funkcijom delay() jer se ona široko koristi. Ova funkcija je prilično jednostavna za korištenje. Prihvata jedan int broj kao argument.
Ovaj broj predstavlja vrijeme u milisekundama koje program mora čekati dok ne pređe na sljedeći red koda.LAFVIN ESP32 Osnovni početni komplet - kodKada napravite kašnjenje (1000) vaš program se zaustavlja na toj liniji na 1 sekundu.
delay() je blokirajuća funkcija. Funkcije blokiranja sprečavaju program da radi bilo šta drugo dok se taj određeni zadatak ne završi. Ako vam je potrebno da se više zadataka dogodi u isto vrijeme, ne možete koristiti kašnjenje().
Za većinu projekata trebali biste izbjegavati korištenje kašnjenja i umjesto toga koristiti tajmere.
Funkcija millis().
Koristeći funkciju zvanu millis() možete vratiti broj milisekundi koje su prošle od prvog pokretanja programa.LAFVIN ESP32 Osnovni početni komplet - program je prvi put pokrenutZašto je ta funkcija korisna? Jer pomoću neke matematike možete lako provjeriti koliko je vremena prošlo bez blokiranja vašeg koda.
Parts Required
Za praćenje ovog vodiča potrebni su vam sljedeći dijelovi

  • ESP32 DEVKIT V1 ploča
  • PIR senzor pokreta (HC-SR501)
  • Aktivni zujalica
  • Žice za kratkospojnike
  • Breadboard

ŠematskiLAFVIN ESP32 Osnovni početni komplet - Šema 1Napomena: Radni voltage od HC-SR501 je 5V. Koristite Vin pin za napajanje.
Kod
Prije nego što nastavite s ovim vodičem, trebali biste imati ESP32 dodatak instaliran u vašem Arduino IDE. Slijedite jedan od sljedećih tutorijala da instalirate ESP32 na Arduino IDE, ako već niste. (Ako ste već uradili ovaj korak, možete preći na sljedeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Otvorite kod Project_4_ESP32_PIR_Motion_Sensor.ino u arduino IDE.
Demonstracija
Prenesite kod na vašu ESP32 ploču. Uvjerite se da ste odabrali pravu ploču i COM port. Prenesite referentne korake koda.
Otvorite serijski monitor pri brzini prijenosa od 115200.LAFVIN ESP32 Osnovni početni komplet - Demonstracija 1Pomerite ruku ispred PIR senzora. Zvučni signal bi se trebao uključiti, a poruka se odštampa na serijskom monitoru koja kaže “Otkriven pokret! Alarm zujalice”.
Nakon 4 sekunde zujalica bi se trebala isključiti.LAFVIN ESP32 Osnovni starter komplet - zujalica

Projekt 5 ESP32 prekidač Web Server

U ovom projektu ćete kreirati samostalnu web server sa ESP32 koji kontrolira izlaze (dvije LED diode) koristeći Arduino IDE programsko okruženje. The web server je mobilni i može mu se pristupiti sa bilo kojeg uređaja koji je kao pretraživač na lokalnoj mreži. Pokazaćemo vam kako da kreirate web server i kako kod radi korak po korak.
Projekat završenview
Prije nego što pređemo direktno na projekat, važno je navesti šta je naše web server će to učiniti, tako da je kasnije lakše pratiti korake.

  • The web server koji ćete izgraditi kontroliše dve LED diode povezane na ESP32 GPIO 26 i GPIO 27;
  • Možete pristupiti ESP32 web server upisivanjem ESP32 IP adrese u pretraživač u lokalnoj mreži;
  • Klikom na dugmad na vašem web server možete trenutno promijeniti stanje svake LED diode.

Parts Required
Za ovaj tutorijal trebat će vam sljedeći dijelovi:

  • ESP32 DEVKIT V1 ploča
  • 2x 5mm LED
  • 2x 200 Ohm otpornik
  • Breadboard
  • Žice za kratkospojnike

Šematski
Počnite izgradnjom kola. Povežite dvije LED diode na ESP32 kao što je prikazano na sljedećem šematskom dijagramu – jedan LED spojen na GPIO 26, a drugi na GPIO 27.
Napomena: Koristimo ESP32 DEVKIT DOIT ploču sa 36 pinova. Prije sastavljanja strujnog kola, provjerite pinout ploče koju koristite.LAFVIN ESP32 Osnovni početni komplet - ŠemaKod
Ovdje pružamo kod koji kreira ESP32 web server. Otvorite kod Project_5_ESP32_Switch _Web_Server.ino u arduino IDE, ali ga još uvijek nemojte postavljati. Morate napraviti neke promjene kako bi vam to funkcioniralo.
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Postavljanje vaših mrežnih akreditiva
Morate izmijeniti sljedeće redove sa vašim mrežnim akreditivima: SSID i lozinka. Kod je dobro prokomentarisan o tome gdje trebate napraviti promjene.LAFVIN ESP32 Osnovni početni komplet - Mrežni akreditiviUčitavanje koda
Sada možete učitati kod i i web server će raditi odmah.
Slijedite sljedeće korake za prijenos koda na ESP32:

  1. Uključite ESP32 ploču u računar;
  2. U Arduino IDE odaberite svoju ploču u Tools > Board (u našem slučaju koristimo ESP32 DEVKIT DOIT ploču);LAFVIN ESP32 Osnovni početni komplet - Prijenos koda
  3. Odaberite COM port u Tools > Port.LAFVIN ESP32 Osnovni početni komplet - Port za alate
  4. Pritisnite dugme Upload u Arduino IDE i sačekajte nekoliko sekundi dok se kod kompajlira i otpremi na vašu ploču.LAFVIN ESP32 Osnovni početni komplet - ICON 7
  5. Pričekajte poruku “Gotovo otpremanje”.LAFVIN ESP32 Osnovni početni komplet - Prenošenje završeno 1

Pronalaženje ESP IP adrese
Nakon učitavanja koda, otvorite serijski monitor brzinom prijenosa od 115200.LAFVIN ESP32 Osnovni početni komplet - ESP IP adresaPritisnite dugme ESP32 EN (resetovanje). ESP32 se povezuje na Wi-Fi i šalje ESP IP adresu na serijski monitor. Kopirajte tu IP adresu, jer vam je potrebna za pristup ESP32 web server.LAFVIN ESP32 Osnovni početni komplet - web serverPristup Web Server
Za pristup web server, otvorite svoj pretraživač, zalijepite ESP32 IP adresu i vidjet ćete sljedeću stranicu.
Napomena: Vaš pretraživač i ESP32 bi trebali biti povezani na isti LAN.LAFVIN ESP32 Osnovni početni komplet - Pristup Web ServerAko bacite pogled na serijski monitor, možete vidjeti šta se dešava u pozadini. ESP prima HTTP zahtjev od novog klijenta (u ovom slučaju, vašeg pretraživača).LAFVIN ESP32 Osnovni početni komplet - HTTP zahtjevTakođer možete vidjeti druge informacije o HTTP zahtjevu.
Demonstracija
Sada možete testirati da li je vaš web server radi ispravno. Kliknite na dugmad za kontrolu LED dioda.LAFVIN ESP32 Osnovni početni komplet - pozadinaIstovremeno, možete baciti pogled na serijski monitor da vidite šta se dešava u pozadini. Za nprampda, kada kliknete na dugme da uključite GPIO 26, ESP32 prima zahtev na /26/on URL.LAFVIN ESP32 Osnovni početni komplet - URLKada ESP32 primi taj zahtjev, uključuje LED diodu priključenu na GPIO 26 i ažurira svoje stanje na web stranica.LAFVIN ESP32 Osnovni početni komplet - web stranicaDugme za GPIO 27 radi na sličan način. Testirajte da li ispravno radi.LAFVIN ESP32 Osnovni početni komplet - radi ispravno

Kako Kodeks funkcionira

U ovom odeljku ćemo detaljnije pogledati kod da vidimo kako funkcioniše.
Prva stvar koju trebate učiniti je da uključite WiFi biblioteku.LAFVIN ESP32 Osnovni početni komplet - WiFi bibliotekaKao što je prethodno spomenuto, morate umetnuti svoj ssid i lozinku u sljedeće redove unutar dvostrukih navodnika.LAFVIN ESP32 Osnovni početni komplet - dvostruki navodniciZatim, postavite svoj web server na port 80.LAFVIN ESP32 Osnovni početni komplet - web serverSljedeći red kreira varijablu za pohranjivanje zaglavlja HTTP zahtjeva:LAFVIN ESP32 Osnovni početni komplet - HTTPrequestZatim kreirate pomoćne varijable za pohranjivanje trenutnog stanja vaših izlaza. Ako želite dodati više izlaza i sačuvati njegovo stanje, morate kreirati više varijabli.LAFVIN ESP32 Basic Starter Kit - varijableTakođer morate dodijeliti GPIO svakom od vaših izlaza. Ovdje koristimo GPIO 26 i GPIO 27. Možete koristiti bilo koji drugi odgovarajući GPIO.LAFVIN ESP32 Osnovni početni komplet - drugo pogodnosetup()
Sada, idemo u setup(). Prvo, započinjemo serijsku komunikaciju brzinom od 115200 baudova u svrhu otklanjanja grešaka.LAFVIN ESP32 Osnovni početni komplet - namjeneTakođer definirate svoje GPIO-ove kao IZLAZE i postavljate ih na LOW.LAFVIN ESP32 Osnovni početni komplet - GPIO kao IZLAZISljedeći redovi započinju Wi-Fi vezu sa WiFi.begin(ssid, lozinka), sačekajte uspješnu vezu i ispišite ESP IP adresu u serijski monitor.LAFVIN ESP32 Osnovni početni komplet - serijskiLAFVIN ESP32 Osnovni početni komplet - serijski 1petlja()
U loop() programiramo šta se dešava kada novi klijent uspostavi vezu sa web server.
ESP32 uvijek osluškuje dolazne klijente sa sljedećom linijom:LAFVIN ESP32 Osnovni početni komplet - petljaKada primimo zahtjev od klijenta, mi ćemo sačuvati dolazne podatke. Dok petlja koja slijedi radit će sve dok klijent ostane povezan. Ne preporučujemo promjenu sljedećeg dijela koda osim ako ne znate tačno šta radite.LAFVIN ESP32 Osnovni početni komplet - tačnoLAFVIN ESP32 Osnovni početni komplet - tačno 1LAFVIN ESP32 Osnovni početni komplet - tačno 2Sljedeći odjeljak if i else naredbi provjerava koje je dugme pritisnuto u vašem web stranicu i u skladu s tim kontrolira izlaze. Kao što smo ranije vidjeli, postavljamo zahtjeve na različite URLs u zavisnosti od pritiskanog dugmeta.LAFVIN ESP32 Osnovni početni komplet - dugme pritisnutoLAFVIN ESP32 Osnovni početni komplet - dugme pritisnuto 1Za nprampako ste pritisnuli dugme GPIO 26 ON, ESP32 prima zahtjev na /26/ON URL (možemo vidjeti da su te informacije u HTTP zaglavlju na serijskom monitoru). Dakle, možemo provjeriti da li zaglavlje sadrži izraz GET /26/on. Ako sadrži, mijenjamo varijablu output26state na ON, a ESP32 uključuje LED.
Ovo radi na sličan način i za ostala dugmad. Dakle, ako želite da dodate više izlaza, trebali biste modificirati ovaj dio koda da biste ih uključili.
Prikaz HTML-a web stranica
Sljedeća stvar koju trebate učiniti je kreiranje web stranica. ESP32 će poslati odgovor vašem pretraživaču sa nekim HTML kodom za izgradnju web stranica.
The web stranica se šalje klijentu koristeći ovaj izraz client.println(). Trebalo bi da unesete ono što želite da pošaljete klijentu kao argument.
Prva stvar koju trebamo poslati je uvijek sljedeći red, koji označava da šaljemo HTML.LAFVIN ESP32 Osnovni početni komplet - slanje HTML-aZatim, sljedeći red čini web stranica responsive u bilo kojem web pretraživač.LAFVIN ESP32 Osnovni početni komplet - web pretraživačI sljedeće se koristi za sprječavanje zahtjeva na favicon-u. – Ne morate da brinete o ovoj liniji.LAFVIN ESP32 Osnovni početni komplet - client.println

Styling the Web Stranica

Zatim, imamo neki CSS tekst za stiliziranje dugmadi i gumba web izgled stranice.
Biramo Helvetica font, definiramo sadržaj koji će biti prikazan kao blok i poravnat u sredini.LAFVIN ESP32 Osnovni početni komplet - Styling the Web StranicaStiliziramo naše dugmad bojom #4CAF50, bez ivica, tekst u bijeloj boji i sa ovim paddingom: 16px 40px. Također postavljamo tekstualnu dekoraciju na ništa, definiramo veličinu fonta, marginu i kursor na pokazivač.LAFVIN ESP32 Osnovni početni komplet - pokazivačTakođer definiramo stil za drugo dugme, sa svim svojstvima dugmeta koje smo ranije definisali, ali sa drugom bojom. Ovo će biti stil za dugme za isključivanje.LAFVIN ESP32 Osnovni početni komplet - client.println 1

Postavljanje Web Page First Heading
U sljedećem redu možete postaviti prvi naslov web stranica. Ovdje imamo “ESP32 Web Server”, ali ovaj tekst možete promijeniti u šta god želite.LAFVIN ESP32 Osnovni početni komplet - Web Naslov stranicePrikaz dugmadi i odgovarajućeg stanja
Zatim pišete pasus koji prikazuje trenutno stanje GPIO 26. Kao što vidite, koristimo varijablu output26State, tako da se stanje trenutno ažurira kada se ova varijabla promijeni.LAFVIN ESP32 Osnovni početni komplet - promjenjive promjeneZatim prikazujemo dugme za uključivanje ili isključivanje, u zavisnosti od trenutnog stanja GPIO-a. Ako je trenutno stanje GPIO isključeno, prikazujemo dugme ON, ako nije, prikazujemo dugme OFF.LAFVIN ESP32 Osnovni početni komplet - prikažite dugme OFFIstu proceduru koristimo za GPIO 27.
Zatvaranje veze
Konačno, kada se odgovor završi, brišemo varijablu zaglavlja i prekidamo vezu sa klijentom pomoću client.stop().LAFVIN ESP32 Osnovni početni komplet - Zatvaranje veze

Wrapping Up

U ovom vodiču smo vam pokazali kako da napravite a web server sa ESP32. Pokazali smo vam jednostavnu bivšuample koji kontrolira dvije LED diode, ali ideja je zamijeniti te LED diode relejem ili bilo kojim drugim izlazom koji želite kontrolirati.

Projekt 6 RGB LED Web Server

U ovom projektu ćemo vam pokazati kako daljinski kontrolirati RGB LED sa ESP32 pločom koristeći a web server sa biračem boja.
Projekat završenview
Prije nego što počnemo, pogledajmo kako ovaj projekat funkcionira:LAFVIN ESP32 Osnovni početni komplet - Projekt završenview

  • ESP32 web server prikazuje birač boja.
  • Kada odaberete boju, vaš pretraživač postavlja zahtjev na a URL koji sadrži R, G i B parametre odabrane boje.
  • Vaš ESP32 prima zahtjev i dijeli vrijednost za svaki parametar boje.
  • Zatim šalje PWM signal s odgovarajućom vrijednošću GPIO-ovima koji kontroliraju RGB LED.

Kako rade RGB LED diode?
U RGB LED diodi sa zajedničkom katodom, sve tri LED diode dijele negativnu vezu (katodu). Sve uključene u komplet su RGB sa zajedničkom katodom.LAFVIN ESP32 Osnovni početni komplet - RGB LED diode radeKako kreirati različite boje?
Uz RGB LED možete, naravno, proizvesti crvenu, zelenu i plavu svjetlost, a konfiguracijom intenziteta svake LED diode možete proizvesti i druge boje.
Za nprampDa biste proizveli čisto plavo svjetlo, postavili biste plavu LED diodu na najveći intenzitet, a zelenu i crvenu LED diodu na najmanji intenzitet. Za bijelo svjetlo, postavili biste sve tri LED diode na najveći intenzitet.
Miješanje boja
Da biste proizveli druge boje, možete kombinirati tri boje u različitim intenzitetima. Za podešavanje intenziteta svake LED diode možete koristiti PWM signal.
Pošto su LED diode veoma blizu jedna drugoj, naše oči vide rezultat kombinacije boja, a ne tri boje pojedinačno.
Da biste imali ideju o tome kako kombinirati boje, pogledajte sljedeći grafikon.
Ovo je najjednostavniji dijagram miješanja boja, ali vam daje ideju kako funkcionira i kako proizvoditi različite boje.LAFVIN ESP32 Osnovni početni komplet - različite bojeParts Required
Za ovaj projekat potrebni su vam sljedeći dijelovi:

  • ESP32 DEVKIT V1 ploča
  • RGB LED
  • 3x 220 ohm otpornika
  • Žice za kratkospojnike
  • Breadboard

ŠematskiLAFVIN ESP32 Osnovni početni komplet - ŠemaKod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)

  • Instaliranje ESP32 dodatka u Arduino IDE

Nakon sastavljanja kola, otvorite kod
Projekat_6_RGB_LED_Web_Server.ino u arduino IDE.
Prije učitavanja koda, ne zaboravite da unesete svoje mrežne vjerodajnice kako bi se ESP mogao povezati na vašu lokalnu mrežu.LAFVIN ESP32 Basic Starter Kit - lokalna mrežaKako kod radi
ESP32 skica koristi WiFi.h biblioteku.LAFVIN ESP32 Osnovni početni komplet - WiFi.h bibliotekaSljedeći redovi definiraju string varijable za držanje R, G i B parametara iz zahtjeva.LAFVIN ESP32 Osnovni početni komplet - String redStringSljedeće četiri varijable se koriste za kasnije dekodiranje HTTP zahtjeva.LAFVIN ESP32 Osnovni početni komplet - HTTP zahtjevKreirajte tri varijable za GPIO koje će kontrolirati parametre trake R, G i B. U ovom slučaju koristimo GPIO 13, GPIO 12 i GPIO 14.LAFVIN ESP32 Osnovni početni komplet - potrebni su GPIOOvi GPIO-ovi moraju da emituju PWM signale, tako da prvo moramo da konfigurišemo PWM svojstva. Postavite frekvenciju PWM signala na 5000 Hz. Zatim pridružite PWM kanal za svaku bojuLAFVIN ESP32 Osnovni početni komplet - svaka bojaI na kraju, postavite rezoluciju PWM kanala na 8-bitLAFVIN ESP32 Osnovni početni komplet - PWM kanaliU setup(), dodijelite PWM svojstva PWM kanalimaLAFVIN ESP32 Osnovni početni komplet - PWM kanaliPovežite PWM kanale na odgovarajuće GPIOLAFVIN ESP32 Osnovni početni komplet - odgovarajući GPIOSljedeći odjeljak koda prikazuje birač boja u vašem web stranicu i postavlja zahtjev na osnovu boje koju ste odabrali.LAFVIN ESP32 Osnovni početni komplet - odabranLAFVIN ESP32 Osnovni početni komplet - client.printlnLAFVIN ESP32 Osnovni početni komplet - client.println 1Kada odaberete boju, dobijate zahtjev u sljedećem formatu.LAFVIN ESP32 Osnovni početni komplet - sljedeći format

Dakle, trebamo podijeliti ovaj niz da bismo dobili R, G i B parametre. Parametri se spremaju u varijablama redString, greenString i blueString i mogu imati vrijednosti između 0 i 255.LAFVIN ESP32 Osnovni početni komplet - zaglavljeLAFVIN ESP32 Osnovni početni komplet - zaglavlje 1Za kontrolu trake pomoću ESP32, koristite funkciju ledcWrite() za generiranje PWM signala s vrijednostima dekodiranim iz HTTP-a zahtjev.LAFVIN ESP32 Osnovni početni komplet - HTTP zahtjev 1Napomena: saznajte više o PWM-u sa ESP32: Projekt 3 ESP32 PWM (analogni izlaz)
Za kontrolu trake sa ESP8266, samo trebamo koristiti
analogWrite() funkcija za generiranje PWM signala sa vrijednostima dekodiranim iz HTPP zahtjeva.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Budući da vrijednosti dobijamo u varijabli stringa, moramo ih pretvoriti u cijele brojeve pomoću metode toInt().
Demonstracija
Nakon umetanja mrežnih akreditiva, odaberite pravu ploču i COM port i učitajte kod na svoj ESP32. Prenesite referentne korake koda.
Nakon učitavanja, otvorite serijski monitor sa brzinom prenosa od 115200 i pritisnite dugme ESP Enable/Reset. Trebali biste dobiti IP adresu ploče.LAFVIN ESP32 Osnovni početni komplet - isti LANOtvorite pretraživač i unesite ESP IP adresu. Sada koristite birač boja da odaberete boju za RGB LED.
Zatim morate pritisnuti dugme „Promeni boju“ da bi boja stupila na snagu.LAFVIN ESP32 Osnovni početni komplet - RGB LEDDa biste isključili RGB LED, odaberite crnu boju.
Najjače boje (na vrhu birača boja) su one koje će dati bolje rezultate.LAFVIN ESP32 Basic Starter Kit - bolji rezultati

Projekt 7 ESP32 Relej Web Server

Korišćenje releja sa ESP32 je odličan način za daljinsko upravljanje kućnim aparatima na naizmeničnu struju. Ovaj vodič objašnjava kako kontrolisati relejni modul pomoću ESP32.
Pogledat ćemo kako radi modul releja, kako spojiti relej na ESP32 i napraviti web server za daljinsko upravljanje relejem.
Predstavljamo releje
Relej je prekidač na električni pogon i kao i svaki drugi prekidač, može se uključiti ili isključiti, puštajući struju da prođe ili ne. Može se kontrolisati niskim volumenomtages, poput 3.3V koji obezbjeđuje ESP32 GPIO i omogućava nam da kontrolišemo visoku jačinutage kao 12V, 24V ili voltage (230V u Evropi i 120V u SAD).LAFVIN ESP32 Osnovni početni komplet - Predstavljamo relejeNa lijevoj strani nalaze se dva seta od po tri utičnice za povezivanje high voltages, i igle na desnoj strani (low-voltage) povežite se na ESP32 GPIO.
Mains Voltage VezeLAFVIN ESP32 Basic Starter Kit - Mains Voltage VezeRelejni modul prikazan na prethodnoj fotografiji ima dva konektora, svaki sa tri utičnice: zajednički (COM), normalno zatvoren (NC) i normalno otvoren (NO).

  • COM: povežite struju koju želite da kontrolišete (glavna mrežatagi).
  • NC (Normalno zatvoren): normalno zatvorena konfiguracija se koristi kada želite da relej bude zatvoren prema zadanim postavkama. NC su COM pinovi povezani, što znači da struja teče osim ako ne pošaljete signal iz ESP32 modulu releja da otvorite kolo i zaustavite strujni tok.
  • NO (Normalno otvoreno): normalno otvorena konfiguracija radi obrnuto: nema veze između NO i COM pinova, tako da je kolo prekinuto osim ako ne pošaljete signal iz ESP32 za zatvaranje kola.

Control PinsLAFVIN ESP32 Osnovni starter komplet - Kontrolne igleNiski volumentage strana ima set od četiri igle i set od tri igle. Prvi set se sastoji od VCC i GND za napajanje modula i ulaza 1 (IN1) i ulaza 2 (IN2) za kontrolu donjeg i gornjeg releja, respektivno.
Ako vaš relejni modul ima samo jedan kanal, imat ćete samo jedan IN pin. Ako imate četiri kanala, imat ćete četiri IN pina i tako dalje.
Signal koji šaljete na IN pinove, određuje da li je relej aktivan ili ne. Relej se aktivira kada ulaz padne ispod oko 2V. To znači da ćete imati sljedeće scenarije:

  • Normalno zatvorena konfiguracija (NC):
  • HIGH signal – struja teče
  • LOW signal – struja ne teče
  • Normalno otvorena konfiguracija (NE):
  • HIGH signal – struja ne teče
  • LOW signal – struja u toku

Trebali biste koristiti normalno zatvorenu konfiguraciju kada bi struja trebala teći većinu vremena, a želite je samo povremeno zaustaviti.
Koristite normalno otvorenu konfiguraciju kada želite da struja teče povremeno (nprample, uključi alamp povremeno).
Izbor napajanjaLAFVIN ESP32 Osnovni početni komplet - Izbor napajanjaDrugi set pinova se sastoji od GND, VCC i JD-VCC pinova.
JD-VCC pin napaja elektromagnet releja. Obratite pažnju da modul ima kratkospojnik koji povezuje VCC i JD-VCC pinove; ova prikazana ovdje je žuta, ali vaša može biti druge boje.
Kada je kapa kratkospojnika uključena, pinovi VCC i JD-VCC su povezani. To znači da se elektromagnet releja direktno napaja iz ESP32 napojnog pina, tako da modul releja i ESP32 kola nisu fizički izolovani jedan od drugog.
Bez kapice kratkospojnika, morate osigurati neovisni izvor napajanja za napajanje elektromagneta releja preko JD-VCC pina. Ta konfiguracija fizički izoluje releje od ESP32 sa ugrađenim optospojlerom modula, koji sprečava oštećenje ESP32 u slučaju električnih skokova.
ŠematskiLAFVIN ESP32 Osnovni početni komplet - ŠemaUpozorenje: Upotreba visokog volumenatagNapajanje može uzrokovati ozbiljne ozljede.
Stoga se koriste LED diode od 5 mm umjesto velike količine napajanjatage sijalice u eksperimentu. Ako niste upoznati sa mains voltagZamolite nekoga ko treba da vam pomogne. Prilikom programiranja ESP-a ili ožičenja vašeg kruga provjerite je li sve isključeno iz električne mrežetage.LAFVIN ESP32 Basic Starter Kit - mains voltageInstaliranje biblioteke za ESP32
Da izgradim ovo web server, koristimo ESPAsyncWebServerska biblioteka i AsyncTCP biblioteka.
Instaliranje ESPAsyncWebServer biblioteka
Slijedite sljedeće korake da biste instalirali ESPAsyncWebServer biblioteka:

  1. Kliknite ovdje da preuzmete ESPAsyncWebServer biblioteka. Trebao si
    .zip folder u folderu Preuzimanja
  2. Raspakujte fasciklu .zip i trebalo bi da dobijete ESPAsyncWebServer-master folder
  3. Preimenujte svoju fasciklu iz ESPAsyncWebServer-master za ESPAsyncWebServer
  4. Pomjerite ESPAsyncWebServer folder u Vašu Arduino IDE instalacijsku biblioteku folder

Alternativno, u vašem Arduino IDE, možete ići na Sketch > Include
Biblioteka > Dodaj .ZIP biblioteku… i odaberite biblioteku koju ste upravo preuzeli.
Instaliranje AsyncTCP biblioteke za ESP32
The ESPAsyncWebServer biblioteka zahteva AsyncTCP biblioteka na posao. Pratite
sljedeći koraci za instaliranje te biblioteke:

  1. Kliknite ovdje da preuzmete AsyncTCP biblioteku. Trebali biste imati .zip folder u folderu Preuzimanja
  2. Raspakujte .zip folder i trebalo bi da dobijete AsyncTCP-master folder
    1. Preimenujte svoju fasciklu iz AsyncTCP-master u AsyncTCP
    3. Premjestite AsyncTCP fasciklu u fasciklu Arduino IDE instalacijskih biblioteka
    4. Konačno, ponovo otvorite svoj Arduino IDE

Alternativno, u vašem Arduino IDE, možete ići na Sketch > Include
Biblioteka > Dodaj .ZIP biblioteku… i odaberite biblioteku koju ste upravo preuzeli.
Kod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Nakon instaliranja potrebnih biblioteka, otvorite kod Project_7_ESP32_Relay_Web_Server.ino u arduino IDE.
Prije učitavanja koda, ne zaboravite da unesete svoje mrežne vjerodajnice kako bi se ESP mogao povezati na vašu lokalnu mrežu.LAFVIN ESP32 Basic Starter Kit - lokalna mrežaDemonstracija
Nakon što izvršite potrebne izmjene, učitajte kod u svoj ESP32. Prenesite referentne korake koda.
Otvorite serijski monitor brzinom prenosa od 115200 i pritisnite dugme ESP32 EN da dobijete njegovu IP adresu. Zatim otvorite pretraživač u vašoj lokalnoj mreži i ukucajte ESP32 IP adresu da biste dobili pristup web server.
Otvorite serijski monitor brzinom prenosa od 115200 i pritisnite dugme ESP32 EN da dobijete njegovu IP adresu. Zatim otvorite pretraživač u vašoj lokalnoj mreži i ukucajte ESP32 IP adresu da biste dobili pristup web server.LAFVIN ESP32 Osnovni početni komplet - web serverNapomena: Vaš pretraživač i ESP32 bi trebali biti povezani na isti LAN.
Trebalo bi da dobijete nešto kao što sledi sa dva dugmeta koliko je broj releja koji ste definisali u svom kodu.LAFVIN ESP32 Osnovni početni komplet - pametni telefonSada možete koristiti dugmad za kontrolu svojih releja pomoću pametnog telefona.LAFVIN ESP32 Osnovni početni komplet - pametni telefon 1

Projekat_8_Izlaz_Stanje_Sinhronizacija_ Web_Server

Ovaj projekat pokazuje kako kontrolisati ESP32 ili ESP8266 izlaze koristeći a web server i fizičko dugme istovremeno. Stanje izlaza se ažurira na web stranicu da li se mijenja putem fizičkog dugmeta ili web server.
Projekat završenview
Pogledajmo na brzinu kako projekat funkcionira.LAFVIN ESP32 Osnovni početni komplet - Projekt završenviewESP32 ili ESP8266 ugošćuju a web server koji vam omogućava da kontrolišete stanje izlaza;

  • Trenutno stanje izlaza je prikazano na web server;
  • ESP je takođe povezan sa fizičkim tasterom koji kontroliše isti izlaz;
  • Ako promijenite stanje izlaza pomoću fizičkog gumba, njegovo trenutno stanje se također ažurira na web server.

Ukratko, ovaj projekat vam omogućava da kontrolišete isti izlaz koristeći a web server i dugme istovremeno. Kad god se promijeni stanje izlaza, web server je ažuriran.
Parts Required
Evo liste dijelova koji su vam potrebni za izgradnju kola:

  • ESP32 DEVKIT V1 ploča
  • 5 mm LED
  • 220 Ohm otpornik
  • Tipkalo
  • 10k Ohm otpornik
  • Breadboard
  • Žice za kratkospojnike

ŠematskiLAFVIN ESP32 Osnovni početni komplet - Šema 1Instaliranje biblioteke za ESP32
Da izgradim ovo web server, koristimo ESPAsyncWebServerska biblioteka i AsyncTCP biblioteka. (Ako ste već uradili ovaj korak, možete preskočiti na sljedeći korak.)
Instaliranje ESPAsyncWebServer biblioteka
Slijedite sljedeće korake da instalirate ESPAsyncWebServer biblioteka:

  1. Kliknite ovdje da preuzmete ESPAsyncWebServer biblioteka. Trebao si
    .zip folder u folderu Preuzimanja
  2. Raspakujte fasciklu .zip i trebalo bi da dobijete ESPAsyncWebServer-master folder
  3. Preimenujte svoju fasciklu iz ESPAsyncWebServer-master za ESPAsyncWebServer
  4. Pomjerite ESPAsyncWebServer folder u Vašu Arduino IDE instalacijsku biblioteku folder
    Alternativno, u vašem Arduino IDE, možete ići na Sketch > Include
    Biblioteka > Dodaj .ZIP biblioteku… i odaberite biblioteku koju ste upravo preuzeli.

Instaliranje AsyncTCP biblioteke za ESP32
ESPAsyncWebServerska biblioteka zahtijeva AsyncTCP biblioteku za rad. Slijedite sljedeće korake da instalirate tu biblioteku:

  1. Kliknite ovdje da preuzmete AsyncTCP biblioteku. Trebali biste imati .zip folder u folderu Preuzimanja
  2. Raspakujte .zip folder i trebalo bi da dobijete AsyncTCP-master folder
  3. Preimenujte svoju fasciklu iz AsyncTCP-master u AsyncTCP
  4. Premjestite AsyncTCP fasciklu u fasciklu Arduino IDE instalacijskih biblioteka
  5. Konačno, ponovo otvorite svoj Arduino IDE
    Alternativno, u vašem Arduino IDE, možete ići na Sketch > Include
    Biblioteka > Dodaj .ZIP biblioteku… i odaberite biblioteku koju ste upravo preuzeli.

Kod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Nakon instaliranja potrebnih biblioteka, otvorite kod
Projekat_8_Izlaz_Stanje_Sinhronizacija_Web_Server.ino u arduino IDE.
Prije učitavanja koda, ne zaboravite da unesete svoje mrežne vjerodajnice kako bi se ESP mogao povezati na vašu lokalnu mrežu.LAFVIN ESP32 Osnovni početni komplet - Šifra

Kako Kodeks funkcionira

Stanje dugmeta i stanje izlaza
Varijabla ledState drži stanje LED izlaza. Zadano, kada je web server se pokreće, LOW je.LAFVIN ESP32 Osnovni početni komplet - Code Works

ButtonState i lastButtonState se koriste za otkrivanje da li je dugme pritisnuto ili ne.LAFVIN ESP32 Basic Starter Kit - je pritisnutDugme (web server)
Nismo uključili HTML za kreiranje dugmeta na promenljivoj index_html.
To je zato što želimo da ga možemo mijenjati ovisno o trenutnom stanju LED-a koje se također može promijeniti pomoću tipke.
Dakle, kreirali smo čuvar mjesta za dugme %BUTTONPLACEHOLDER% koji će biti zamijenjen HTML tekstom kako bismo kasnije kreirali dugme u kodu (ovo se radi u funkciji procesora()).LAFVIN ESP32 Osnovni početni komplet - pritisnut je 1procesor()
Procesor() funkcija zamjenjuje sve čuvare mjesta u HTML tekstu stvarnim vrijednostima. Prvo, provjerava da li HTML tekstovi sadrže bilo šta
rezervirani mjesta %BUTTONPLACEHOLDER%.LAFVIN ESP32 Osnovni početni komplet - procesorZatim pozovite funkciju theoutputState() koja vraća trenutno stanje izlaza. Spremamo ga u varijablu outputStateValue.LAFVIN ESP32 Osnovni početni komplet - outputStateNakon toga, koristite tu vrijednost da kreirate HTML tekst za prikaz gumba u pravom stanju:LAFVIN ESP32 Osnovni početni komplet - kod 4HTTP GET zahtjev za promjenu izlaznog stanja (JavaScript)
Kada pritisnete dugme, poziva se funkcija toggleCheckbox(). Ova funkcija će napraviti zahtjev na različitim URLs da uključite ili isključite LED.LAFVIN ESP32 Osnovni početni komplet - JavaScriptDa bi uključio LED, postavlja zahtjev na /update?state=1 URL:LAFVIN ESP32 Osnovni početni komplet - element.provjerenoU suprotnom, postavlja zahtjev na /update?state=0 URL.
HTTP GET zahtjev za ažuriranje stanja (JavaScript)
Da bi se stanje izlaza ažuriralo na web servera, pozivamo sljedeću funkciju koja postavlja novi zahtjev na /state URL svake sekunde.LAFVIN ESP32 Osnovni početni komplet - stanje ažuriranjaLAFVIN ESP32 Osnovni početni komplet - stanje ažuriranja 1Handle Requests
Zatim, moramo da obradimo šta se dešava kada ESP32 ili ESP8266 primi zahteve za te URLs.
Kada se primi zahtjev na root /URL, šaljemo HTML stranicu kao i procesor.LAFVIN ESP32 Osnovni početni komplet - Zahtjevi za rukovanjeLAFVIN ESP32 Osnovni početni komplet - Zahtjevi za rukovanje 1Sljedeći redovi provjeravaju da li ste primili zahtjev na /update?state=1 ili /update?state=0 URL i u skladu s tim mijenja LEDState.LAFVIN ESP32 Osnovni početni komplet - ledStateLAFVIN ESP32 Osnovni početni komplet - inputParamKada se primi zahtjev na /state URL, šaljemo trenutno stanje izlaza:LAFVIN ESP32 Basic Starter Kit - stanje izlazapetlja()
U loop() odbijamo dugme i uključujemo ili isključujemo LED u zavisnosti od vrednosti LEDState varijabla.LAFVIN ESP32 Osnovni početni komplet - petlja 1Demonstracija
Učitajte kod na vašu ESP32 ploču. Prenesite referentne korake koda.
Zatim otvorite serijski monitor brzinom prijenosa od 115200. Pritisnite ugrađeno EN/RST dugme da biste dobili IP adresu.LAFVIN ESP32 Osnovni početni komplet - DemonstracijaOtvorite pretraživač na vašoj lokalnoj mreži i unesite ESP IP adresu. Trebali biste imati pristup web server kao što je prikazano ispod.
Napomena: Vaš pretraživač i ESP32 bi trebali biti povezani na isti LAN.LAFVIN ESP32 Osnovni početni komplet - pretraživačMožete uključiti dugme na web server za uključivanje LED lampice.LAFVIN ESP32 Osnovni početni komplet - web server 1Također možete kontrolirati istu LED diodu pomoću fizičkog dugmeta. Njegovo stanje će se uvijek automatski ažurirati na web server.

Projekat 9 ESP32 DHT11 Web Server

U ovom projektu ćete naučiti kako da napravite asinhroni ESP32 web server sa DHT11 koji prikazuje temperaturu i vlažnost koristeći Arduino IDE.
Preduvjeti
The web server ćemo automatski ažurirati očitanja bez potrebe za osvježavanjem web stranica.
Sa ovim projektom naučit ćete:

  • Kako očitati temperaturu i vlažnost sa DHT senzora;
  • Izgradite asinhroni web server koji koristi ESPAsyncWebServer biblioteka;
  • Ažurirajte očitanja senzora automatski bez potrebe za osvježavanjem web stranica.

Asinhroni Web Server
Za izgradnju web server ćemo koristiti ESPAsyncWebServer biblioteka koji pruža jednostavan način za izgradnju asinhronog web server. Izgradnja asinhronog web server ima nekoliko advantagkao što je spomenuto na stranici biblioteke GitHub, kao što su:

  • “Rukovanje više od jedne veze u isto vrijeme”;
  • “Kada pošaljete odgovor, odmah ste spremni za rukovanje drugim konekcijama dok se server brine o slanju odgovora u pozadini”;
  • “Jednostavna mašina za obradu šablona za rukovanje šablonima”;

Parts Required
Za završetak ovog tutorijala potrebni su vam sljedeći dijelovi:

  • ESP32 razvojna ploča
  • DHT11 modul
  • Breadboard
  • Žice za kratkospojnike

ŠematskiLAFVIN ESP32 Osnovni početni komplet - Šema 2Instaliranje biblioteka
Za ovaj projekat morate instalirati nekoliko biblioteka:

Instaliranje biblioteke DHT senzora
Da biste čitali sa DHT senzora koristeći Arduino IDE, morate instalirati DHT biblioteka senzora. Slijedite sljedeće korake da instalirate biblioteku.

  1. Kliknite ovdje za preuzimanje biblioteke DHT senzora. Trebali biste imati .zip folder u folderu Preuzimanja
  2. Raspakujte .zip folder i trebalo bi da dobijete DHT-sensor-library-master folder
  3. Preimenujte svoju fasciklu iz DHT-sensor-library-master u DHT_sensor
  4. Premjestite fasciklu DHT_sensor u fasciklu Arduino IDE instalacionih biblioteka
  5. Konačno, ponovo otvorite svoj Arduino IDE

Instaliranje upravljačkog programa Adafruit Unified Sensor
Takođe morate instalirati Adafruit Unified Sensor Driver biblioteka za rad sa DHT senzorom. Slijedite sljedeće korake da instalirate biblioteku.

  1. Kliknite ovdje da preuzmete biblioteku Adafruit Unified Sensor. Trebali biste imati .zip folder u folderu Preuzimanja
  2. Raspakujte .zip folder i trebalo bi da dobijete Adafruit_sensor-master folder
  3. Preimenujte svoju fasciklu iz Adafruit_sensor-master u Adafruit_sensor
  4. Premjestite Adafruit_sensor folder u vašu Arduino IDE instalacijsku mapu biblioteka
  5. Konačno, ponovo otvorite svoj Arduino IDE

Instaliranje ESPAsyncWebServer biblioteka

Slijedite sljedeće korake da biste instalirali ESPAsyncWebServer biblioteka:

  1. Kliknite ovdje da preuzmete ESPAsyncWebServer biblioteka. Trebao si
    .zip folder u folderu Preuzimanja
  2. Raspakujte fasciklu .zip i trebalo bi
    nabavite ESPAsyncWebServer-master folder
  3. Preimenujte svoju fasciklu iz ESPAsyncWebServer-master za ESPAsyncWebServer
  4. Pomjerite ESPAsyncWebServer folder u Vašu Arduino IDE instalacijsku biblioteku folder

Instaliranje Async TCP biblioteke za ESP32
The ESPAsyncWebServer biblioteka zahteva AsyncTCP biblioteka na posao. Slijedite sljedeće korake da instalirate tu biblioteku:

  1. Kliknite ovdje da preuzmete AsyncTCP biblioteku. Trebali biste imati .zip folder u folderu Preuzimanja
  2. Raspakujte .zip folder i trebalo bi da dobijete AsyncTCP-master folder
  3. Preimenujte svoju fasciklu iz AsyncTCP-master u AsyncTCP
  4. Premjestite AsyncTCP fasciklu u fasciklu Arduino IDE instalacijskih biblioteka
  5. Konačno, ponovo otvorite svoj Arduino IDE

Kod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDE
Nakon instaliranja potrebnih biblioteka, otvorite kod
Project_9_ESP32_DHT11_Web_Server.ino u arduino IDE.
Prije učitavanja koda, ne zaboravite da unesete svoje mrežne vjerodajnice kako bi se ESP mogao povezati na vašu lokalnu mrežu.LAFVIN ESP32 Osnovni početni komplet - ŠifraKako Kodeks funkcionira
U sljedećim paragrafima ćemo objasniti kako kod funkcionira. Nastavite čitati ako želite saznati više ili skočite na odjeljak Demonstracija da vidite konačni rezultat.
Uvoz biblioteka
Prvo uvezite potrebne biblioteke. WiFi, ESPAsyncWebServer i ESPAsyncTCP su potrebni za izgradnju web server. Adafruit_Sensor i DHT biblioteke su potrebne za čitanje sa DHT11 ili DHT22 senzora.LAFVIN ESP32 Osnovni početni komplet - Uvoz bibliotekaLAFVIN ESP32 Osnovni početni komplet - Kako kod funkcioniraDefinicija varijabli
Definirajte GPIO na koji je DHT podatkovni pin povezan. U ovom slučaju, povezan je na GPIO 4.LAFVIN ESP32 Osnovni početni komplet - definicija varijabliZatim odaberite tip DHT senzora koji koristite. U našem bivšemample, mi koristimo DHT22. Ako koristite drugu vrstu, samo trebate ukloniti komentare sa senzora i komentirati sve ostale.LAFVIN ESP32 Osnovni početni komplet - definicija varijabli 1

Instancirajte DHT objekt s tipom i pin-om koje smo ranije definirali.LAFVIN ESP32 Osnovni početni komplet - definicija varijabli 2Kreirajte AsyncWebObjekat servera na portu 80.LAFVIN ESP32 Osnovni početni komplet - definicija varijabli 3Pročitajte funkcije temperature i vlažnosti
Napravili smo dvije funkcije: jednu za očitavanje temperature Napravili smo dvije funkcije: jednu za očitavanje temperature (readDHTTemperature()) i drugu za očitavanje vlažnosti (readDHTHumidity()).LAFVIN ESP32 Osnovni početni komplet - čitajDHTHvlažnostLAFVIN ESP32 Basic Starter Kit - očitavanja senzoraDobijanje očitavanja senzora je jednostavno kao i korištenje Dobijanje očitavanja senzora je jednostavno kao korištenje metoda readTemperature() i readHumidity() na dht objektu.LAFVIN ESP32 Osnovni početni komplet - objektTakođer imamo uvjet koji vraća dvije crtice (–) u slučaju da senzor ne dobije očitanja.LAFVIN ESP32 Osnovni početni komplet - očitavanjaOčitavanja se vraćaju kao string tip. Da biste pretvorili float u string, koristite funkciju String().LAFVIN ESP32 Osnovni početni komplet - žicaPodrazumevano, očitavamo temperaturu u Celzijusovim stepenima. Da biste dobili temperaturu u stepenima Farenhajta, komentirajte temperaturu u Celzijusima i dekomentirajte temperaturu u Farenhajtu, tako da imate sljedeće:LAFVIN ESP32 Osnovni početni komplet - FarenhajtLAFVIN ESP32 Osnovni početni komplet - Farenhajt 1Otpremite kod
Sada učitajte kod na svoj ESP32. Uvjerite se da ste odabrali pravu ploču i COM port. Prenesite referentne korake koda.
Nakon učitavanja, otvorite serijski monitor brzinom prijenosa od 115200. Pritisnite dugme za resetovanje ESP32. ESP32 IP adresa treba da bude odštampana u serijski monitor.LAFVIN ESP32 Osnovni početni komplet - Učitajte kodDemonstracija
Otvorite pretraživač i unesite ESP32 IP adresu. Tvoj web server bi trebao prikazati najnovija očitanja senzora.
Napomena: Vaš pretraživač i ESP32 bi trebali biti povezani na isti LAN.
Imajte na umu da se očitanja temperature i vlažnosti automatski ažuriraju bez potrebe za osvježavanjem web stranica.LAFVIN ESP32 Osnovni početni komplet - Demonstracija 1

Project_10_ESP32_OLED_Display

Ovaj projekat pokazuje kako koristiti 0.96 inča SSD1306 OLED ekran sa ESP32 koristeći Arduino IDE.
Predstavljamo OLED ekran od 0.96 inča
The OLED displej koji ćemo koristiti u ovom tutorijalu je model SSD1306: jednobojni ekran od 0.96 inča sa 128×64 piksela kao što je prikazano na sljedećoj slici.LAFVIN ESP32 Osnovni početni komplet - OLEDDisplayOLED displeju nije potrebno pozadinsko osvetljenje, što rezultira veoma lepim kontrastom u mračnim okruženjima. Pored toga, njegovi pikseli troše energiju samo kada su uključeni, tako da OLED ekran troši manje energije u poređenju sa drugim ekranima.
Budući da OLED ekran koristi I2C komunikacijski protokol, ožičenje je vrlo jednostavno. Kao referencu možete koristiti sljedeću tabelu.

OLED Pin ESP32
Vin 3.3V
GND GND
SCL GPIO 22
SDA GPIO 21

ŠematskiLAFVIN ESP32 Osnovni početni komplet - ŠemaInstaliranje SSD1306 OLED biblioteke – ESP32
Postoji nekoliko dostupnih biblioteka za kontrolu OLED ekrana pomoću ESP32.
U ovom vodiču ćemo koristiti dvije Adafruit biblioteke: Adafruit_SSD1306 biblioteka i Adafruit_GFX biblioteka.
Slijedite sljedeće korake da instalirate te biblioteke.

  1. Otvorite svoj Arduino IDE i idite na Sketch > Include Library > Manage Libraries. Upravitelj biblioteke bi se trebao otvoriti.
  2. Upišite “SSD1306” u polje za pretragu i instalirajte biblioteku SSD1306 iz Adafruita.LAFVIN ESP32 Osnovni početni komplet - OLEDLibrary–
  3. Nakon što instalirate SSD1306 biblioteku iz Adafruita, upišite “GFX” u polje za pretragu i instalirajte biblioteku.LAFVIN ESP32 Osnovni početni komplet - biblioteka
  4. Nakon instaliranja biblioteka, ponovo pokrenite Arduino IDE.

Kod
Nakon instaliranja potrebnih biblioteka, otvorite Project_10_ESP32_OLED_Display.ino u arduino IDE. kod
Programiraćemo ESP32 koristeći Arduino IDE, pa se uverite da imate instaliran dodatak ESP32 pre nego što nastavite: (Ako ste već uradili ovaj korak, možete preći na sledeći korak.)
Instaliranje ESP32 dodatka u Arduino IDELAFVIN ESP32 Osnovni početni komplet - Kod 1LAFVIN ESP32 Osnovni početni komplet - Kod 2LAFVIN ESP32 Osnovni početni komplet - Kod 3Kako Kodeks funkcionira
Uvoz biblioteka
Prvo morate uvesti potrebne biblioteke. Biblioteka Wire za korištenje I2C i Adafruit biblioteke za pisanje na ekran: Adafruit_GFX i Adafruit_SSD1306.LAFVIN ESP32 Osnovni početni komplet - Code Works 1LAFVIN ESP32 Osnovni početni komplet - Code Works 2Inicijalizirajte OLED ekran
Zatim definišete svoju OLED širinu i visinu. U ovom exampDakle, koristimo OLED ekran od 128×64. Ako koristite druge veličine, to možete promijeniti u varijablama SCREEN_WIDTH i SCREEN_HEIGHT.LAFVIN ESP32 Osnovni početni komplet - OLED ekranZatim inicijalizirajte objekt prikaza širine i visine definirane ranije pomoću I2C komunikacijskog protokola (&Wire).LAFVIN ESP32 Basic Starter Kit - komunikacijski protokolParametar (-1) znači da vaš OLED ekran nema pin za RESET. Ako vaš OLED ekran ima pin za RESET, trebao bi biti povezan na GPIO. U tom slučaju, trebali biste proslijediti GPIO broj kao parametar.
U setup(), inicijalizirajte serijski monitor brzinom prijenosa od 115200 u svrhu otklanjanja grešaka.LAFVIN ESP32 Osnovni početni komplet - namjeneInicijalizirajte OLED ekran metodom begin() na sljedeći način:LAFVIN ESP32 Osnovni početni komplet - display.beginLAFVIN ESP32 Osnovni početni komplet - Serial.printlnOvaj isječak također ispisuje poruku na serijskom monitoru, u slučaju da ne možemo da se povežemo sa ekranom.

LAFVIN ESP32 Osnovni početni komplet - Serial.println 1U slučaju da koristite drugi OLED ekran, možda ćete morati promijeniti OLED adresu. U našem slučaju, adresa je 0x3C.LAFVIN ESP32 Osnovni početni komplet - adresaNakon inicijalizacije ekrana, dodajte odgodu od dvije sekunde, tako da OLED ima dovoljno vremena da se inicijalizira prije pisanja teksta:LAFVIN ESP32 Osnovni početni komplet - odgodaJasan prikaz, podešavanje veličine fonta, boje i pisanje teksta
Nakon inicijalizacije prikaza, obrišite međuspremnik prikaza metodom clearDisplay():LAFVIN ESP32 Osnovni početni komplet - displej

Prije pisanja teksta potrebno je postaviti veličinu teksta, boju i mjesto na kojem će se tekst prikazati na OLED-u.
Postavite veličinu fonta pomoću metode setTextSize():LAFVIN ESP32 Osnovni početni komplet - displej 1Postavite boju fonta metodom setTextColor():
WHITE postavlja bijeli font i crnu pozadinu.
Definirajte poziciju na kojoj tekst počinje pomoću metode setCursor(x,y). U ovom slučaju, postavljamo tekst da počinje na (0,0) koordinatama – u gornjem lijevom uglu.LAFVIN ESP32 Osnovni početni komplet - setTextColor 1Konačno, možete poslati tekst na ekran koristeći println() metodu, kako slijediLAFVIN ESP32 Osnovni početni komplet - kod 5Zatim morate pozvati metodu display() da biste zapravo prikazali tekst na ekranu.LAFVIN ESP32 Osnovni početni komplet - displej

Adafruit OLED biblioteka pruža korisne metode za jednostavno pomicanje teksta.

  • startscrollright(0x00, 0x0F): skrolujte tekst s lijeva na desno
  • startscrollleft(0x00, 0x0F): listanje teksta s desna na lijevo
  • startscrolldiagright(0x00, 0x07): pomicanje teksta od lijevog donjeg ugla do desnog gornjeg ugla startscrolldiagleft(0x00, 0x07): pomicanje teksta od desnog donjeg ugla do lijevog gornjeg ugla

Otpremite kod
Sada, učitajte kod na svoj ESP32. Prenesite referentne korake koda.
Nakon učitavanja koda, OLED će prikazati pomični tekst.LAFVIN ESP32 Osnovni početni komplet - skrolujući tekstLAFVIN logo

Dokumenti / Resursi

LAFVIN ESP32 Osnovni početni komplet [pdfUputstvo za upotrebu
ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *