- ESP32 vienā lētā SoC integrē jaudīgu centrālo procesoru, Wi-Fi, Bluetooth un daudzas perifērijas ierīces.
- Tā ļoti multipleksētais pieslēgumu izvietojums ļauj savienot līdz pat 34 GPIO ar ADC, DAC, PWM, skārienjutīgām un RTC funkcijām.
- Ir vairākas saimes (WROOM, WROVER, S2, S3, C3, C6, CAM), kas pielāgotas dažāda veida projektiem.
- To var programmēt ar Arduino, ESP-IDF vai MicroPython, aptverot visu, sākot no vienkāršiem prototipiem līdz profesionāliem produktiem.
Ja strādājat lietu interneta (IoT), mājas automatizācijas vai automatizācijas sistēmu pasaulē , agrāk vai vēlāk jūs sastapsiet ESP32. Un, kad sākat meklēt informāciju, ir viegli nonākt vēl lielākā apjukumā nekā sākumā: šeit pieslēgvietas, tur modeļi, enerģijas taupīšanas režīmi, Wi-Fi, Bluetooth, kameras, PSRAM… Tas šķiet haotiski, bet patiesībā tā ir ļoti saskaņota platforma, ja to uztverat mierīgi.
Šajā rakstā atradīsiet visaptverošu un labi strukturētu ESP32 pārskatu : kas tas īsti ir, ko tas var darīt aparatūras līmenī, kā ir organizēti tā pieslēgumi un īpašās funkcijas, kādas mikroshēmu saimes pastāv, kā tās atšķiras viena no otras, kuras plates ir visizplatītākās, kad katra no tām vislabāk atbilst jūsu vajadzībām un kā sākt to programmēt praksē. Mērķis ir panākt, lai jūs iegūtu skaidru priekšstatu par ESP32 ekosistēmu un zinātu, kā izvēlēties un lietot pareizo plati, nebaidoties kļūdīties.
Kas ir ESP32 un kāpēc tas ir kļuvis tik populārs?
ESP32 ir lēta, mazjaudīga, 32 bitu sistēma uz mikroshēmas (SoC), ko izstrādājusi Espressif Systems. Tā vienā mikroshēmā integrē jaudīgu mikroprocesoru, Wi-Fi, Bluetooth (gan standarta, gan BLE), atmiņu, analogciparu pārveidotājus un plašu perifērijas ierīču klāstu. Tas padara to par sava veida "Šveices armijas nazi" savienotiem projektiem.
Klasiskajās variantēs tiek izmantots divkodolu Xtensa LX6 mikroprocesors , kas parasti darbojas ar 160 vai 240 MHz frekvenci un sasniedz veiktspēju līdz 600 DMIPS. Jaunākās saimes (piemēram, ESP32-C3 vai C6) izmanto mazjaudas RISC-V kodolus, savukārt citās, piemēram, S2/S3, ir novēroti uzlabojumi atmiņā, enerģijas patēriņā un vieglajās mākslīgā intelekta iespējās.
Viena no ESP32 galvenajām iezīmēm ir tā, ka tajā vienā silikona mikroshēmā ir integrēts WiFi 802.11 b/g/n un Bluetooth (BR/EDR un BLE), koplietojot radio. Tas novērš nepieciešamību pēc ārējiem savienojamības moduļiem, ietaupa vietu plates platē un samazina izmaksas. Tā rezultātā tas ir kļuvis par faktisku standartu mājas automatizācijas projektiem, savienotiem sensoriem, automatizācijas sistēmām un komerciāliem prototipiem.
Papildus procesoram un radio, ESP32 integrē 520 KiB SRAM un ROM tieši SoC, kā arī kontrolierus ārējās zibatmiņas pārvaldībai, izmantojot SPI. Komerciāli pieejamie moduļi (piemēram, WROOM vai WROVER) parasti ietver no 4 līdz 16 MB integrētas zibatmiņas, un daži pievieno ārējo PSRAM prasīgākām lietojumprogrammām (grafikai, kamerām, mākslīgajam intelektam utt.).
Iekšējā arhitektūra, atmiņa un enerģijas pārvaldība
Savā iekšējā arhitektūrā ESP32 apvieno vienu vai divus galvenos Xtensa LX6/LX7 vai RISC-V kodolus ar īpaši mazas jaudas (ULP) līdzprocesoru . Šis līdzprocesors ir paredzēts nelielu uzdevumu veikšanai mazjaudas režīmos, piemēram, periodiskai sensoru nolasīšanai, kamēr pārējā mikroshēma atrodas miega režīmā, lai taupītu akumulatora enerģiju.
Atmiņa ir organizēta vairākās zonās: papildus galvenajai 520 KiB SRAM , ko izmanto procesors, mikroshēmai ir ātrs RTC RAM reģions (aptuveni 8 kB) un lēns RTC RAM reģions (vēl aptuveni 8 kB). Ātrā RTC RAM ļauj saglabāt datus dziļā miega režīmā, lai pēc pamošanās iestatījumus vai stāvokļus varētu atjaunot, neveicot visu atkārtotu aprēķinu.
Runājot par atmiņu, tipiskais dizains ir balstīts uz SPI savienotu zibatmiņu , kurā tiek glabāta programmaparatūra un citi nepastāvīgi dati. Daudziem ESP32 WROOM moduļiem ir 4 MB zibatmiņas, savukārt modernākām vai uz kameru orientētām versijām (ESP32-WROVER, ESP32-S3 ar PSRAM utt.) var būt 8, 16 MB vai vairāk.
Enerģijas pārvaldība ir vēl viena no platformas priekšrocībām. Mikroshēma integrē iekšēju zemas strāvas padeves regulatoru (LDO) , dažādas barošanas jomas un dažādus enerģijas taupīšanas režīmus. Dziļā miega režīmā patēriņš var samazināties līdz aptuveni 5 μA, pamostoties, izmantojot GPIO, taimeri, skāriensensoru vai ADC mērījumus atkarībā no RTC un ULP līdzprocesora konfigurācijas.
Drošības ziņā ESP32 atbalsta visas standarta IEEE 802.11 funkcijas (WPA, WPA2, WPA3 jaunākajās versijās, WAPI) un piedāvā drošus sāknēšanas mehānismus un zibatmiņas šifrēšanu . Tas arī integrē aparatūras paātrinātājus AES, SHA-2, RSA, ECC un nejaušo skaitļu ģeneratoru (RNG), kā arī 1024 bitu OTP apgabalu, kurā var glabāt nemainīgas atslēgas un parametrus.
ESP32 pieslēgvieta un multipleksēšanas funkcionalitāte
Viena no pārsteidzošākajām lietām, pirmo reizi saskaroties ar ESP32 DevKitC vai līdzīgu, ir pieslēgvietu skaits un alternatīvās funkcijas . Mikroshēmā var būt līdz 34 GPIO pieslēgvietām, taču daudzas no tām ir multipleksētas ar citām iekšējām perifērijas ierīcēm vai rezervētas ļoti specifiskiem mērķiem.
Kontaktu multipleksēšana ir ESP32 galvenā funkcija. Lielāko daļu iekšējo signālu (UART, I2C, SPI, PWM utt.) var novirzīt uz gandrīz jebkuru GPIO, konfigurējot mikroshēmas kontaktu matricu, bez jebkādiem ievērojamiem veiktspējas zaudējumiem. Uz platēm redzamās kontaktu izvietojuma vērtības ir noklusējuma piešķires, taču parasti funkcijas var mainīt, ja nepieciešams.
Izstrādājot projektu, ir svarīgi paturēt prātā, ka dažām pieslēgvietām ir īpaši ierobežojumi : dažas tiek izmantotas sāknēšanas laikā (savienojošās pieslēgvietas), citas ir savienotas ar SPI zibatmiņu, bet citas ir saistītas ar atkļūdošanas saskarnēm, piemēram, JTAG. Ja tās tiek izmantotas nepareizi, sistēma var neizdoties sāknēties vai kļūt nestabila.
ESP32 DevKitC vai NodeMCU-32S izstrādes plates atklāj šos kontaktus divās galvenes rindās. Lai gan katrs ražotājs var izmantot nedaudz atšķirīgu izkārtojumu, tiem parasti ir viena un tā pati GPIO numerācija un lielākā daļa funkciju, tāpēc kontaktu izvietojuma diagrammas un tabulas var pārnest no vienas plates uz citu.
Īpašas tapas: stiprināšanai, tikai ievadei, RTC un taustes
GPIO pieslēgvietu izkārtojumā atrodas sāknēšanas konfigurācijas pieslēgvietu grupa , kas pazīstama arī kā stiprinājuma pieslēgvietas. Tās tiek izmantotas, lai noteiktu mikroshēmas sāknēšanas veidu, noteiktu iekšējo komponentu spriegumu un dažus SPI zibatmiņas parametrus. Šīs pieslēgvietas tiek nolasītas sistēmas atiestatīšanas laikā, un to loģiskais līmenis šajā laikā tiek fiksēts līdz nākamajai atiestatīšanai vai izslēgšanai.
Bieži sastopamie ESP32 stiprinājuma tapas ir GPIO0, GPIO2, GPIO4, GPIO5, GPIO12 un GPIO15 . Piemēram, GPIO0 ir jābūt zemam, lai pārietu lejupielādes režīmā; GPIO2 nedrīkst būt piespiedu kārtā augsts startēšanas laikā; GPIO5 un GPIO15 parasti ir aprīkoti ar pacelšanas rezistoriem, lai nodrošinātu pareizus stāvokļus; un GPIO12 ir iesaistīts noteiktu atmiņu sprieguma izvēlē. Lai gan šīs tapas var atkārtoti izmantot jūsu ķēdē, vislabāk tās nepārslogot vai izmantot shēmas, kas maina to līmeni ieslēgšanas laikā.
Ir arī neliela pieslēgvietu grupa, kas paredzētas tikai digitālai un/vai analogai ieejai ; tas ir, tās nevar izmantot kā izejas: GPIO34, GPIO35, GPIO36 un GPIO39. Turklāt, atšķirībā no pārējiem GPIO, šiem nav iekšējo pacelšanas vai nolaišanas rezistoru, tāpēc, ja nepieciešams stabilizēt to līmeni, tie būs jāpievieno ārēji.
Daži GPIO ir savienoti ar mazjaudas RTC apakšsistēmu un ir pazīstami kā RTC GPIO . Tie ietver tādas kombinācijas kā 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 un RTC_GPIO17-GPIO27. Šie piespraudes cita starpā ļauj pamodināt mikroshēmu no dziļa miega režīma, izmantojot ULP līdzprocesoru vai mazjaudas pārtraukumu avotus.
Turklāt ESP32 integrē 10 kapacitatīvus skāriensensorus, kas saistīti ar konkrētiem GPIO pieslēgumiem: TOUCH0 (GPIO4), TOUCH1 (GPIO0), TOUCH2 (GPIO2), TOUCH3 (GPIO15), TOUCH4 (GPIO13), TOUCH5 (GPIO12), TOUCH6 (GPIO14), TOUCH7 (GPIO27), TOUCH8 (GPIO33) un TOUCH9 (GPIO32). Kad šiem pieslēgumiem tuvojas kapacitatīva slodze (piemēram, pirksts), mikroshēma nosaka kapacitātes izmaiņas, ļaujot to izmantot skārienpogām, slīdņiem vai tuvuma noteikšanai bez papildu komponentiem.
Visbeidzot, jāpiemin EN (iespējošanas) pieslēgvieta , kas kontrolē moduļa iekšējo 3,3 V regulatoru. Tai parasti ir 3,3 V augšupvērsts rezistors, un, pavelkot to zemā līmenī, regulators tiek atspējots, efektīvi atiestatot vai izslēdzot ESP32. Daudzas lietojumprogrammas izmanto šo pieslēgvietu kā globālu atiestatīšanu.
GPIO, pārtraukumi un analogās funkcijas (ADC, DAC, PWM)
Vispārīgi runājot, ESP32 piedāvā līdz 34 GPIO pieslēgvietām, kuras var konfigurēt kā digitālās ieejas vai izejas, ar iespēju lielākajā daļā no tām iespējot iekšējos pacelšanas vai nolaišanas rezistorus. Gandrīz visas šīs pieslēgvietas var konfigurēt kā pārtraukumu avotus, kas ievērojami vienkāršo uz notikumiem reaģējošu sistēmu (pogas, sensori, detektori utt.) dizainu.
Analogā sadaļa ir diezgan plaša: ESP32 ietver divus 12 bitu SAR ADC , kas nodrošina līdz 18 ieejas kanāliem. Kanāli ir sadalīti starp ADC1 (8 kanāli) un ADC2 (10 kanāli). Tipiskais piešķīrums ir šāds: ADC1_CH0-GPIO36, ADC1_CH1-GPIO37, ADC1_CH2-GPIO38, ADC1_CH3-GPIO39, ADC1_CH4-GPIO32, ADC1_CH5-GPIO33, ADC1_CH6-GPIO34, ADC1_CH7-GPIO35; un ADC2_CH0-GPIO4, ADC2_CH1-GPIO0, ADC2_CH2-GPIO2, ADC2_CH3-GPIO15, ADC2_CH4-GPIO13, ADC2_CH5-GPIO12, ADC2_CH6-GPIO14, ADC2_CH7-GPIO27, ADC2_CH8-GPIO25 un ADC2_CH9-GPIO26.
Ja strādājat ar aktīvu Wi-Fi vai Bluetooth, ir svarīga nianse: ADC2 nav pieejams, kamēr radio ir ieslēgts . Šādos gadījumos analogiem rādījumiem jāizmanto ADC1 kanāli, kurus var izmantot, neierobežojot savienojamību. 12 bitu izšķirtspēja nodrošina 4096 līmeņus (0–4095), kas tipiskā 0–3,3 V diapazonā atbilst aptuveni 0,8 mV soļiem.
Analogo izejas signālu ģenerēšanai ESP32 ietver divus 8 bitu DAC , kas savienoti ar GPIO25 (DAC1) un GPIO26 (DAC2). Šie pārveidotāji ļauj pārveidot digitālo vērtību no 0 līdz 255 analogā spriegumā no 0 līdz 3,3 V, kas ir noderīgi vienkāršu viļņu formu, sprieguma atsauces vērtību, pamata audio vai signāla modulācijas ģenerēšanai bez ārējām mikroshēmām.
PWM jomā plate piedāvā 16 programmējamus PWM kanālus, ko pārvalda īpašs kontrolieris. Jebkuru PWM kanālu var piesaistīt dažādiem GPIO pieslēgvietām, un var regulēt gan frekvenci, gan darba ciklu. Tā ir ideāli piemērota gaismas diožu (tostarp aptumšošanas), servodzinēju, līdzstrāvas motoru un parasti jebkuras slodzes, kurai nepieciešams regulējams PWM signāls, vadībai.
Komunikācijas saskarnes: UART, I2C, SPI un citas
ESP32 izceļas arī ar savām daudzveidīgajām integrētajām saskarnēm. Seriālajā līmenī tam ir trīs aparatūras UART: UART0, UART1 un UART2 , kas spēj darboties asinhronos režīmos (piemēram, RS232 un RS485) un pat IrDA, ar ātrumu līdz 5 Mb/s. Vairumā izstrādes plates UART0 pieslēgvietas ir savienotas ar USB-seriālā pārveidotāja pieslēgvietu un tiek izmantotas programmēšanai un atkļūdošanai, tāpēc vislabāk tās neizmantot atkārtoti gala projektos, ja vien neesat ļoti labi pazīstams ar šo procesu.
UART1 parasti ir rezervēts integrētajai SPI zibatmiņai , īpaši moduļos, piemēram, ESP32-S3 vai versijās ar sarežģītāku ārējo zibatmiņu. Šī iemesla dēļ daudzos ceļvežos ieteicams vienmēr izmantot UART2 kā lietotāja seriālo portu, ja vēlaties pievienot citas UART ierīces (piemēram, GPS moduļus, citus mikrokontrollerus utt.).
Runājot par I2C kopni, ESP32 ietver vienu vai divus I2C kontrollerus (atkarībā no saimes) un pēc noklusējuma atļauj standarta I2C kopni ar SDA pieslēgvietām GPIO21 un SCL pieslēgvietām GPIO22 . Tomēr, tāpat kā ar citām perifērijas ierīcēm, SDA un SCL var pārsaistīt ar citiem GPIO, izmantojot programmatūru, piemēram, ar Arduino funkciju `wire.begin(SDA, SCL)`. Vienai I2C kopnei var pievienot desmitiem sensoru un ierīču, ja vien tās ievēro pieejamās adreses.
Attiecībā uz SPI mikroshēma piedāvā trīs SPI kopnes: SPI, HSPI un VSPI . Pamata kopne parasti tiek izmantota iekšēji iebūvētajai zibatmiņai, tāpēc jūsu projektos jūs galvenokārt interesēs HSPI un VSPI. Daudzas standarta bibliotēkas pēc noklusējuma izmanto VSPI, lai sazinātos ar displejiem, SD karšu lasītājiem, ārējiem radio moduļiem utt.
Ar iekšējo SPI zibatmiņu ir saistīts īpaši jutīgu pieslēgvietu komplekts: GPIO6 (SCK/CLK), GPIO7 (SDO/SD0), GPIO8 (SDI/SD1), GPIO9 (SHD/SD2), GPIO10 (SWP/SD3) un GPIO11 (CSC/CMD). Šīs pieslēgvietas ir paredzētas saziņai ar zibatmiņu , un tās nevajadzētu izmantot jūsu shēmās; to savienošana ar kaut ko ārēju bieži izraisa avārijas, sāknēšanas kļūdas vai datu bojājumus.
Papildus UART, I2C un SPI, ESP32 integrē I2S, CAN 2.0, Ethernet MAC, SD/SDIO kontrollerus, TX/RX infrasarkano staru kontrollerus, impulsu skaitītājus un citas modernas perifērijas ierīces. Tas ļauj tam, piemēram, darboties kā tīkla vārtejai, atskaņot vai uztvert digitālo audio, sazināties ar rūpnieciskajām kopnēm vai darboties kā sarežģītāku motoru un kodētāju kontrolierim.
ESP32 saimes un modeļi: WROOM, WROVER, S2, S3, C3, C6 un ESP32-CAM
Kad meklējat ESP32, ko iegādāties, ātri parādās tādi nosaukumi kā WROOM, WROVER, S2, S3, C3, C6 vai ESP32-CAM . Tie nav vienādi, lai gan visi pieder ESP32 ekosistēmai. No vienas puses, mums ir "tīra" SoC mikroshēma, bet, no otras puses, moduļi un izstrādes plates, kas to integrē kopā ar citiem komponentiem.
" ESP32 modulis " (piemēram, ESP32-WROOM-32 vai ESP32-WROVER) ir taisnstūrveida metāla bloks, kurā atrodas mikroshēma, zibatmiņa, dažreiz PSRAM un antena. Šie moduļi ir paredzēti tiešai pielodēšanai uz pielāgotām platēm. Daudzi ražotāji pēc tam virs tām montē " izstrādes plates ", pievienojot USB portu, regulatorus, pieejamus kontaktus un atiestatīšanas/palaišanas pogas, piemēram, DevKitC, NodeMCU-32S, LOLIN32 utt.
Mikroshēmu saimēs cita starpā ir šādi galvenie varianti: klasiskā ESP32 sērija (oriģinālā, divkodolu, WiFi + BT, ļoti labi dokumentēta), ESP32-S2 sērija (vienkodola, bez Bluetooth, ar iebūvētu USB, ideāli piemērota ierīcēm, kas koncentrējas uz WiFi un USB), ESP32-S3 sērija (divkodolu, vairāk RAM un uzlabots atbalsts BLE 5 un kameru vai apgaismojuma AI lietojumprogrammām), ESP32-C3 sērija (RISC-V kodols, lēta, WiFi + BLE 5, paredzēta ESP8266 aizstāšanai) un ESP32-C6 sērija (ar WiFi 6, BLE 5 un atbalstu tādām tehnoloģijām kā Thread noteiktos scenārijos, paredzēta mājas automatizācijai un moderniem tīkliem).
ESP32-WROOM modulis ir visizplatītākais tradicionālajās DevKit platēs. Tam parasti ir 4 MB zibatmiņas (lai gan pastāv varianti ar 8 MB vai vairāk), standarta iekšējā RAM un integrēts Wi-Fi un Bluetooth. Tas ir ideāli piemērots vispārīgiem projektiem, piemēram, sensoriem, automatizācijai un mājas automatizācijai, kur nav nepieciešama kamera vai liels papildu RAM apjoms.
ESP32-WROVER modulis pievieno ārējo PSRAM, padarot to piemērotāku projektiem, kuriem nepieciešama liela atmiņa: attēlu apstrādei, lieliem buferiem, grafikas lietojumprogrammām vai iegultajam mākslīgajam intelektam. Tas parasti ir nedaudz dārgāks; ja jūsu projekts neizmantos šo papildu atmiņu, jūs būtībā maksājat par kaut ko tādu, ko neizmantosiet.
ESP32-CAM plate ir kļuvusi par klasiku lētiem videonovērošanas projektiem. Tā integrē ESP32 ar kameru (parasti OV2640 sensoru) un microSD kartes slotu. Tā ir ideāli piemērota mājas IP kameru, viedo durvju zvanu vai vienkāršu redzes eksperimentu izveidei. Tomēr tai ir ievērojami mazāk pieejamu GPIO pieslēgvietu un tā ir nedaudz jutīgāka programmēšanas un barošanas ziņā.
Kā izvēlēties pareizo ESP32 modeli savam projektam
Pareizā ESP32 modeļa izvēle nav tik daudz par visu nosaukumu iegaumēšanu, bet gan par četru galveno prasību skaidrību : vai jums ir nepieciešama kamera, vai jūsu prioritāte ir zema akumulatora jauda, vai jūsu lietojumprogrammai ir nepieciešams daudz atmiņas (piemēram, PSRAM) un vai jums ir nepieciešamas īpašas tehnoloģijas, piemēram, BLE 5 vai WiFi 6.
Ja esat iesācējs un vēlaties plati, uz kuras mācīties, uzstādīt sensorus, eksperimentēt ar Wi-Fi un Bluetooth un sekot lielākajai daļai pamācību, vissaprātīgākā iespēja parasti ir ESP32 DevKit ar WROOM moduli . Tā ir lēta, ļoti saderīga ar piemēriem un bibliotēkām, un tai ir daudz dokumentācijas. Daudziem "parastiem" lietu interneta un mājas automatizācijas projektiem šī iespēja būs vairāk nekā pietiekama.
Ja jūsu projektā ir iekļauta integrēta kamera , jums ir divas galvenās iespējas: izmantot ESP32-CAM plati (kas ir ļoti ekonomiska un kompakta, ideāli piemērota vienkāršām WiFi kamerām) vai izvēlēties ESP32-S3 ar kameras atbalstu un lielāku atmiņu, ja nepieciešama lielāka veiktspēja, nedaudz sarežģītāki algoritmi vai lietotāja saskarne ar ekrānu.
Ja jūsu prioritāte ir zems enerģijas patēriņš ar akumulatora enerģiju , īpaši sensoru mezgliem, kas lielāko daļu laika pavada miega režīmā, ESP32-C3 saime ir ļoti interesanta. Tā izmanto RISC-V arhitektūru, tai ir moderns Wi-Fi un BLE, ļoti zems enerģijas patēriņš un pietiekami daudz jaudas sensoru darbībai, datu pārraidei un pamata loģiskajiem uzdevumiem.
"Nākamās paaudzes" mājas automatizācijas projektiem, kuros tiek vērtēts WiFi 6, BLE 5 un nākotnes atbalsts Thread vai Matter, ESP32-C6 saime ir īpaši daudzsološa. Tā ir nedaudz jaunāka un vēl nav tik plaši izplatīta kā klasiskā ESP32, taču tā ir izstrādāta, lai iederētos arvien sarežģītākās mājas ekosistēmās.
Tipiski lietošanas gadījumi un salīdzinājums ar citām platformām
Ikdienas lietošanā ESP32 tiek izmantots mājas automatizācijai, sensoriem, valkājamām ierīcēm, automatizācijai un lietu interneta (IoT) prototipiem . Tipisks piemērs ir apgaismojuma, kontaktligzdu, žalūziju vai motoru releju vadība, sazinoties ar lokālo serveri vai mākoni, izmantojot Wi-Fi. Vēl viena izplatīta pielietojuma joma ir temperatūras, mitruma, klātbūtnes vai gaisa kvalitātes sensori, kas periodiski ziņo datus uz aizmugursistēmu.
Pateicoties integrētajam Bluetooth (tostarp BLE), to plaši izmanto arī pārnēsājamās ierīcēs vai valkājamās ierīcēs , kas sazinās ar jūsu mobilo tālruni: sirdsdarbības monitoros, soļu skaitītājos, mazos miega monitoros utt. Wi-Fi var rezervēt datu augšupielādei internetā vai tīmekļa konfigurācijas saskarnes nodrošināšanai, savukārt BLE apstrādā saziņu ar lietotni vai citiem tuvumā esošiem sensoriem.
Vēl viens ļoti izplatīts pielietojums ir ESP32 izmantošana kā sistēmas vārteja vai smadzenes , kas sazinās, izmantojot UART, SPI vai I2C, ar citiem moduļiem (piemēram, klasisko Arduino, rūpnieciskajiem sensoriem, displejiem utt.) un, izmantojot Wi-Fi, nodrošina API, MQTT vai tīmekļa saskarni. To izmanto arī audio projektos, izmantojot I2S saskarnes un iespēju apstrādāt balsi un mūziku reāllaikā.
Salīdzinot ar "tīru" Arduino Uno, ESP32 piedāvā ievērojami lielāku skaitļošanas jaudu, integrētu WiFi/Bluetooth savienojamību , vairāk atmiņas un vairāk perifērijas ierīču, vienlaikus saglabājot līdzīgu vai pat zemāku cenu. Salīdzinot ar vecāku ESP8266, ESP32 nepārprotami pārspēj kodolu, RAM, GPIO pieslēgvietu skaita un saskarņu daudzveidības ziņā.
Salīdzinot ar Raspberry Pi Pico W, abi ir vienlīdzīgāki jaudas un veiktspējas ziņā, taču ESP32 programmatūras un bibliotēku ekosistēma lietu internetam (IoT) un mājas automatizācijai ir ļoti nobriedusi. Turklāt visa savienojamības steka (tostarp aparatūras drošības) izvietošana vienā mikroshēmā atvieglo tā lietošanu galalietotāju produktos, neprasot pilnas operētājsistēmas, kā tas ir lielākajos Raspberry Pi modeļos.
Izstrādes vides: Arduino IDE, ESP-IDF un MicroPython
Programmējot ESP32, ir pieejamas vairākas izstrādes vides iespējas . Hobiju un ražotāju vidū vispopulārākā ir Arduino ekosistēmas izmantošana: vai nu tradicionālā Arduino IDE, vai PlatformIO, kas integrēta Visual Studio kodā, kas vienkāršo bibliotēku un lielāku projektu pārvaldību.
Lai Arduino IDE pievienotu ESP32 atbalstu, instalējiet plates pakotni "ESP32 by Espressif" no plates pārvaldnieka, izmantojot stabilās versijas saiti, ko Espressif nodrošina savā GitHub. Pēc instalēšanas varat atlasīt plati (piemēram, "ESP32 Dev Module" vai konkrēto modeli no sava DevKit) un programmēt to gandrīz tieši tāpat kā Arduino, izmantojot tādas funkcijas kā pinMode, digitalWrite, analogRead utt., kā arī īpašas bibliotēkas WiFi, Bluetooth, HTTP, MQTT un citām funkcijām.
Oficiālā Espressif vide ir ESP-IDF (Espressif IoT Development Framework) — C/C++ ietvars, kas piedāvā ļoti precīzu aparatūras, FreeRTOS izmantošanas, atmiņas pārvaldības, enerģijas patēriņa, tīkla steku un papildu drošības funkciju kontroli. Tā ir vēlamā izvēle profesionāliem projektiem vai tiem, kam nepieciešams maksimāli izmantot mikroshēmas iespējas.
Vēl viena ļoti ērta alternatīva ir MicroPython — viegla Python implementācija, kas paredzēta mikrokontrolleriem. ESP32 tas ļauj strādāt ar WiFi, BLE, GPIO, I2C, SPI un citiem, izmantojot Python skriptus, kurus var ātri augšupielādēt un modificēt. Tas ir īpaši noderīgi izglītībā, ātrajā prototipu izstrādē un situācijās, kad izstrādes ātrums ir svarīgāks par maksimālu efektivitāti.
Neatkarīgi no izvēlētās vides, vienmēr ieteicams iepazīties ar oficiālo Espressif dokumentāciju (datu lapām, darba sākšanas rokasgrāmatām, API atsaucēm) un piemēriem, kas ietver gan Arduino-ESP32, gan ESP-IDF. GitHub kopiena, īpaši ESP32 forumi un platformas, piemēram, Reddit, piedāvā arī plašu gatavu projektu klāstu, kurus var pielāgot jūsu vajadzībām.
Paplašināta pieslēgvieta, ierobežojumi un paplašināšana ar kameru un SD karti
Iedziļinoties ESP32 lietošanā, jūs saskarsieties ar sarežģītām kontaktu izvietojuma detaļām , kas jāņem vērā. Viena no tām ir ADC2 nesaderība ar iepriekšminēto WiFi/Bluetooth radio; otra ir JTAG kontaktu (GPIO12, 13, 14 un 15) loma, ja vēlaties veikt aparatūras atkļūdošanu. Ja neplānojat izmantot JTAG, varat tos uzskatīt par parastiem GPIO, ja vien ņemat vērā arī to savienošanas funkcijas.
Rūpīga pieslēgvietu plānošana ir būtiska, īpaši projektos, kuru mērķis ir vienlaikus izmantot vairākas funkcijas (GPIO, ADC, I2C, SPI, kamera, SD karte utt.). Dažas pieslēgvietas ir rezervētas barošanai un kritiskiem signāliem , piemēram, 3,3 V, GND un tām, kas savienotas ar SPI zibatmiņu. Jums vajadzētu izvairīties no lielas strāvas patēriņa no plates 3,3 V vai 5 V pieslēgvietām, ja regulators to nevar apstrādāt, un izvairīties no lielu slodžu tiešas pievienošanas GPIO pieslēgvietām bez atbilstošiem draiveriem.
Daži komplekti un paplašināšanas plates, kas paredzētas ESP32, integrē īpašas funkcijas, piemēram, OV2640 kameru moduļus, microSD karšu lasītājus un 18650 akumulatora atbalstu . Tie parasti piedāvā divas pieslēgvietu rindas: vienu ar sieviešu ligzdām ātrai prototipu izveidei un otru ar skrūvju spailēm pastāvīgākām instalācijām, piemēram, "lauka" lietu interneta projektos vai fiksētās instalācijās.
Šīm platēm parasti ir iebūvēti paceļamie/nolaižamie rezistori pieslēgvietās, kas kontrolē kameru un microSD karti, tāpēc, ja plānojat tos atkārtoti izmantot kā vispārējas nozīmes ieejas vai izejas, jums jāiepazīstas ar paplašināšanas plates datu lapu. Tādas detaļas kā galvenais barošanas slēdzis, speciālas akumulatora uzlādes pieslēgvietas un statusa gaismas diodes būtiski ietekmē akumulatora darbināmas atsevišķas ierīces.
Praksē ESP32, OV2640 kameras, microSD un 18650 akumulatora jaudas kombinācija ļauj izveidot diezgan pilnīgus attālās redzamības mezglus, kas spēj straumēt, uzņemt periodiskus attēlus vai palaist vienkāršus noteikšanas algoritmus, uzlādēt akumulatoru, izmantojot USB, kad nepieciešams, un saglabāt visu kompaktā formātā.
Pēc mikroshēmas iekšējās darbības, tās pieslēgvietu izvietojuma, produktu saimju, tipisko lietošanas gadījumu un izstrādes rīku pārskatīšanas kļūst skaidrs, ka ESP32 piedāvā milzīgu integrētu funkcionalitāti, dizaina elastību un mazas enerģijas patēriņa iespējas par ļoti pieņemamu cenu, padarot to par platformu, kuru ir ļoti grūti salīdzināt, ja vēlaties veidot lietu interneta (IoT), mājas automatizācijas vai automatizācijas projektus, kas apvieno bezvadu savienojamību, labu apstrādes jaudu un nobriedušu programmatūras ekosistēmu.