ESP32 at ang mga tungkulin nito: isang kumpletong gabay sa pinaka-maraming nalalaman na microcontroller

Huling pag-update: Mayo 1 2026
May-akda: TecnoDigital
  • Pinagsasama ng ESP32 ang isang makapangyarihang CPU, WiFi, Bluetooth, at maraming peripheral sa isang murang SoC.
  • Ang highly multiplexed pinout nito ay nagbibigay-daan sa hanggang 34 na GPIO na may mga function na ADC, DAC, PWM, touch at RTC.
  • Mayroong maraming pamilya (WROOM, WROVER, S2, S3, C3, C6, CAM) na inangkop sa iba't ibang uri ng proyekto.
  • Maaari itong i-program gamit ang Arduino, ESP-IDF o MicroPython, na sumasaklaw sa lahat mula sa mga simpleng prototype hanggang sa mga propesyonal na produkto.

ESP32 board at ang mga functionality nito

Kung nagtatrabaho ka sa mundo ng IoT, home automation, o automation systems , malao't madali ay makikita mo rin ang ESP32. At kapag nagsimula kang maghanap ng impormasyon, madali kang malito kaysa noong nagsimula ka: mga pin dito, mga modelo doon, mga low-power mode, WiFi, Bluetooth, mga camera, PSRAM… Mukhang magulo, ngunit sa katotohanan, ito ay isang napaka-konektadong plataporma kung mahinahon mo itong naiintindihan.

Sa artikulong ito, makikita mo ang isang komprehensibo at maayos na pangkalahatang-ideya ng ESP32 : kung ano nga ba ito, ano ang magagawa nito sa antas ng hardware, kung paano nakaayos ang mga pin at espesyal na tungkulin nito, anong mga pamilya ng chip ang umiiral, paano sila nagkakaiba sa isa't isa, kung aling mga board ang pinakakaraniwan, kung kailan pinakaangkop ang bawat isa sa iyong mga pangangailangan, at kung paano ito sisimulang i-program sa pagsasagawa. Ang layunin ay magkaroon ka ng malinaw na larawan sa isip ng ecosystem ng ESP32 at malaman kung paano pumili at gumamit ng tamang board nang walang takot na magkamali.

mga actuator sa mga matalinong gusali
Kaugnay na artikulo:
Mga actuator sa mga matalinong gusali: susi sa pag-aautomat ng bahay at gusali

Ano ang ESP32 at bakit ito naging napakapopular?

Ang ESP32 ay isang murang, mababang-lakas, 32-bit system-on-a-chip (SoC) na binuo ng Espressif Systems. Pinagsasama nito ang isang makapangyarihang microprocessor, Wi-Fi, Bluetooth (parehong standard at BLE), memory, analog-to-digital converter, at malawak na hanay ng mga peripheral sa isang chip. Ginagawa itong isang uri ng "Swiss Army knife" para sa mga konektadong proyekto.

Ang mga klasikong variant ay gumagamit ng dual-core Xtensa LX6 microprocessor , na karaniwang tumatakbo sa 160 o 240 MHz at nakakamit ng hanggang 600 DMIPS ng performance. Ang mga mas bagong pamilya (tulad ng ESP32-C3 o C6) ay gumagamit ng mga low-power RISC-V core, habang ang iba, tulad ng S2/S3, ay nakakita ng mga pagpapabuti sa memorya, pagkonsumo ng kuryente, at magaan na kakayahan sa AI.

Isa sa mga pangunahing katangian ng ESP32 ay ang pagsasama nito ng WiFi 802.11 b/g/n at Bluetooth (BR/EDR at BLE) sa iisang silicon chip, na ginagamit ang radyo. Inaalis nito ang pangangailangan para sa mga external connectivity module, nakakatipid ng espasyo sa board, at nakakabawas ng mga gastos. Bilang resulta, ito ay naging isang de facto na pamantayan para sa mga proyekto sa home automation, mga konektadong sensor, mga sistema ng automation, at mga komersyal na prototype.

Bukod sa processor at radyo, direktang isinasama ng ESP32 ang 520 KiB ng SRAM at ROM sa SoC, kasama ang mga controller para sa pamamahala ng external flash memory sa pamamagitan ng SPI. Ang mga komersyal na module (tulad ng WROOM o WROVER) ay karaniwang may kasamang nasa pagitan ng 4 at 16 MB ng integrated flash memory, at ang ilan ay nagdaragdag ng external PSRAM para sa mas mahirap na mga aplikasyon (graphics, camera, AI, atbp.).

Panloob na arkitektura, memorya at pamamahala ng enerhiya

Sa panloob na arkitektura nito, pinagsasama ng ESP32 ang isa o dalawang pangunahing Xtensa LX6/LX7 o RISC-V cores na may Ultra Low Power (ULP) coprocessor . Ang coprocessor na ito ay dinisenyo upang magsagawa ng maliliit na gawain sa mga low-power mode, tulad ng pana-panahong pagbabasa ng mga sensor habang naka-sleep ang natitirang bahagi ng chip upang makatipid sa lakas ng baterya.

Ang memorya ay nakaayos sa ilang bahagi: bilang karagdagan sa pangunahing 520 KiB SRAM na ginagamit ng processor, ang chip ay may mabilis na rehiyon ng RTC RAM (humigit-kumulang 8 kB) at mabagal na rehiyon ng RTC RAM (humigit-kumulang 8 kB pa). Ang mabilis na RTC RAM ay nagbibigay-daan sa pagpapanatili ng data sa panahon ng deep sleep mode, upang sa paggising, ang mga setting o estado ay maaaring mabawi nang hindi kinakailangang muling kalkulahin ang lahat.

Tungkol sa imbakan, ang karaniwang disenyo ay batay sa flash memory na konektado sa SPI kung saan nakaimbak ang firmware at iba pang hindi pabagu-bagong datos. Maraming ESP32 WROOM module ang may 4 MB na flash memory, habang ang mas advanced o camera-oriented na mga bersyon (ESP32-WROVER, ESP32-S3 na may PSRAM, atbp.) ay maaaring may 8, 16 MB, o higit pa.

Ang pamamahala ng kuryente ay isa pa sa mga kalakasan ng platform. Isinama ng chip ang isang internal low-dropout regulator (LDO) , iba't ibang power domain, at iba't ibang power-saving mode. Sa deep sleep mode, ang pagkonsumo ay maaaring bumaba sa humigit-kumulang 5 μA, na nagigising sa pamamagitan ng GPIO, timer, touch sensor, o mga sukat ng ADC, depende sa kung paano isinaayos ang RTC at ULP coprocessor.

Sa usapin ng seguridad, sinusuportahan ng ESP32 ang lahat ng karaniwang tampok ng IEEE 802.11 (WPA, WPA2, WPA3 sa mga bagong bersyon, WAPI) at nag-aalok ng mga secure boot mechanism at flash encryption . Isinama rin nito ang mga hardware accelerator para sa AES, SHA-2, RSA, ECC, at isang random number generator (RNG), pati na rin ang isang 1024-bit OTP area kung saan maaaring iimbak ang mga immutable key at parameter.

ESP32 pinout at functionality multiplexing

Isa sa mga pinakakapansin-pansing bagay kapag una kang nakakita ng ESP32 DevKitC o katulad nito ay ang bilang ng mga pin at alternatibong mga function . Maaari kang magkaroon ng hanggang 34 na GPIO pin sa chip, ngunit marami sa mga ito ay naka-multipleks sa iba pang mga internal peripheral o nakalaan para sa mga partikular na layunin.

Ang pin multiplexing ay isang mahalagang katangian ng ESP32. Karamihan sa mga internal signal (UART, I2C, SPI, PWM, atbp.) ay maaaring iruta sa halos anumang GPIO sa pamamagitan ng pag-configure ng pin matrix ng chip, nang walang anumang kapansin-pansing parusa sa pagganap. Ang mga pinout na ipinapakita sa mga board ay ang mga default na pagtatalaga, ngunit sa pangkalahatan ay maaari mong muling italaga ang mga function kung kinakailangan.

Kapag nagdidisenyo ng isang proyekto, mahalagang tandaan na ang ilang mga pin ay may mga espesyal na paghihigpit : ang ilan ay ginagamit habang nagbo-boot (mga strapping pin), ang iba ay nakakonekta sa SPI flash memory, at ang iba ay nauugnay sa mga debugging interface tulad ng JTAG. Kung gagamitin mo ang mga ito nang hindi tama, maaaring hindi mag-boot ang sistema o maging hindi matatag.

Inilalantad ng mga development board ng ESP32 DevKitC o NodeMCU-32S ang mga pin na ito sa pamamagitan ng dalawang hanay ng mga header. Bagama't maaaring may bahagyang magkaibang layout ang bawat tagagawa, karaniwan silang may parehong GPIO numbering at karamihan sa mga function, kaya ang mga pinout diagram at table ay maaaring ilipat mula sa isang board patungo sa isa pa.

  Mga Baterya ng Solid State: Ang Rebolusyong Enerhiya para sa mga Kotseng De-kuryente

Mga espesyal na pin: strapping, input lamang, RTC, at tactile

Sa loob ng GPIO pinout, mayroong isang grupo ng mga boot configuration pin, na kilala rin bilang mga strapping pin. Ginagamit ang mga ito upang matukoy kung paano nagbo-boot ang chip, ang boltahe ng ilang panloob na bahagi, at ilang mga parameter ng SPI flash memory. Binabasa ang mga pin na ito habang nag-reset ng system, at ang kanilang logic level sa oras na iyon ay naka-latch hanggang sa susunod na pag-reset o pag-off ng power.

Kabilang sa mga karaniwang strapping pin sa ESP32 ang GPIO0, GPIO2, GPIO4, GPIO5, GPIO12, at GPIO15 . Halimbawa, dapat mababa ang GPIO0 para makapasok sa download mode; hindi dapat piliting i-high ang GPIO2 habang nag-uumpisa; karaniwang may mga pull-up resistor ang GPIO5 at GPIO15 para matiyak ang tamang estado; at ang GPIO12 ay kasangkot sa pagpili ng boltahe para sa ilang partikular na memorya. Bagama't maaaring gamitin muli ang mga pin na ito sa iyong circuit, mas mainam na huwag itong i-overload o gumamit ng circuitry na nagbabago ng kanilang level habang naka-on.

Mayroon ding maliit na grupo ng mga pin na digital at/o analog input lamang ; ibig sabihin, hindi sila maaaring gamitin bilang mga output: GPIO34, GPIO35, GPIO36, at GPIO39. Bukod pa rito, hindi tulad ng ibang mga GPIO, wala itong internal pull-up o pull-down resistors, kaya kakailanganin mo itong idagdag sa labas kung kailangan mong patatagin ang kanilang level.

Ang ilang GPIO ay konektado sa low-power RTC subsystem at kilala bilang mga RTC GPIO . Kabilang dito ang mga kumbinasyon tulad ng 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 at RTC_GPIO17-GPIO27. Ang mga pin na ito ay nagbibigay-daan, bukod sa iba pang mga bagay, upang gisingin ang chip mula sa deep sleep mode gamit ang ULP coprocessor o mga low-power interrupt source.

Bukod pa rito, ang ESP32 ay may kasamang 10 capacitive touch sensor na nauugnay sa mga partikular na GPIO pin: TOUCH0 (GPIO4), TOUCH1 (GPIO0), TOUCH2 (GPIO2), TOUCH3 (GPIO15), TOUCH4 (GPIO13), TOUCH5 (GPIO12), TOUCH6 (GPIO14), TOUCH7 (GPIO27), TOUCH8 (GPIO33), at TOUCH9 (GPIO32). Kapag ang isang capacitive load (halimbawa, isang daliri) ay lumalapit sa mga pin na ito, tinutukoy ng chip ang pagbabago sa capacitance, na nagbibigay-daan sa iyong gamitin ito para sa mga touch button, slider, o proximity sensing nang walang karagdagang mga bahagi.

Panghuli, dapat nating banggitin ang EN (Enable) pin , na kumokontrol sa internal 3,3V regulator ng module. Karaniwan itong mayroong 3.3V pull-up resistor, at ang pagbaba nito ay nagpapagana sa regulator, na epektibong nagre-reset o nagpapatay sa ESP32. Maraming aplikasyon ang gumagamit ng pin na ito bilang isang global reset.

GPIO, mga interrupt at analog function (ADC, DAC, PWM)

Sa pangkalahatan, ang ESP32 ay nag-aalok ng hanggang 34 na GPIO pin na maaaring i-configure bilang mga digital input o output, na may opsyon na paganahin ang mga internal pull-up o pull-down resistor sa karamihan ng mga ito. Halos lahat ng mga pin na ito ay maaaring i-configure bilang mga interrupt source, na lubos na nagpapadali sa disenyo ng mga event-reactive system (mga button, sensor, detector, atbp.).

Medyo komprehensibo ang analog na seksyon: ang ESP32 ay may kasamang dalawang 12-bit SAR ADC na nagbibigay ng hanggang 18 input channel. Ang mga channel ay nahahati sa pagitan ng ADC1 (8 channel) at ADC2 (10 channel). Ang karaniwang pagtatalaga ay ang mga sumusunod: ADC1_CH0-GPIO36, ADC1_CH1-GPIO37, ADC1_CH2-GPIO38, ADC1_CH3-GPIO39, ADC1_CH4-GPIO32, ADC1_CH5-GPIO33, ADC1_CH6-GPIO34, ADC1_CH7-GPIO35; at 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 at ADC2_CH9-GPIO26.

Kung gumagamit ka ng aktibong Wi-Fi o Bluetooth, may mahalagang detalye: Hindi magagamit ang ADC2 habang ginagamit ang radyo . Sa mga kasong iyon, para sa mga analog na pagbasa, dapat mong gamitin ang mga ADC1 channel, na maaaring gamitin nang hindi nililimitahan ang koneksyon. Ang 12-bit na resolusyon ay nagbibigay sa iyo ng 4096 na antas (0-4095), na sa karaniwang saklaw na 0-3,3V ay isinasalin sa mga hakbang na humigit-kumulang 0,8mV.

Para sa pagbuo ng mga analog output signal, ang ESP32 ay may kasamang dalawang 8-bit DAC , na konektado sa GPIO25 (DAC1) at GPIO26 (DAC2). Ang mga converter na ito ay nagbibigay-daan sa iyong i-convert ang isang digital na halaga sa pagitan ng 0 at 255 sa isang analog na boltahe sa pagitan ng 0 at 3,3 V, na kapaki-pakinabang para sa pagbuo ng mga simpleng waveform, voltage reference, basic audio, o signal modulation nang hindi nangangailangan ng mga external chips.

Sa PWM field, ang board ay nagtatampok ng 16 na programmable PWM channels na pinamamahalaan ng isang nakalaang controller. Anumang PWM channel ay maaaring i-map sa iba't ibang GPIO pins, at parehong maaaring isaayos ang frequency at duty cycle. Ito ay mainam para sa pagkontrol ng mga LED (kabilang ang dimming), servos, DC motors, at sa pangkalahatan ay anumang load na nangangailangan ng adjustable PWM signal.

Mga interface ng komunikasyon: UART, I2C, SPI at iba pa

Namumukod-tangi rin ang ESP32 dahil sa iba't ibang integrated interface nito. Sa serial level, mayroon itong tatlong hardware UART: UART0, UART1, at UART2 , na kayang gumana sa mga asynchronous mode (tulad ng RS232 at RS485) at maging sa IrDA, sa bilis na hanggang 5 Mbps. Sa karamihan ng mga development board, ang mga UART0 pin ay nakakonekta sa USB-to-serial converter at ginagamit para sa programming at debugging, kaya pinakamahusay na huwag itong gamitin muli sa mga final project maliban kung pamilyar ka sa proseso.

Ang UART1 ay karaniwang nakalaan para sa integrated SPI flash memory , lalo na sa mga module tulad ng ESP32-S3 o mga bersyon na may mas kumplikadong external flash memory. Dahil dito, maraming gabay ang nagrerekomenda na laging gamitin ang UART2 bilang serial port ng user kapag gusto mong ikonekta ang iba pang mga UART device (halimbawa, mga GPS module, iba pang microcontroller, atbp.).

Tungkol sa I2C bus, ang ESP32 ay may isa o dalawang I2C controller (depende sa pamilya) at, bilang default, ay nagbibigay-daan sa isang karaniwang I2C bus na may mga SDA pin sa GPIO21 at SCL sa GPIO22 . Gayunpaman, tulad ng ibang mga peripheral, maaari mong i-remap ang SDA at SCL sa iba pang mga GPIO gamit ang software, halimbawa, gamit ang function na `wire.begin(SDA, SCL)` sa Arduino. Maaari mong ikonekta ang dose-dosenang mga sensor at device sa isang I2C bus, basta't sinusunod nila ang mga available na address.

Tungkol sa SPI, ang chip ay nag-aalok ng tatlong SPI bus: SPI, HSPI, at VSPI . Ang basic bus ay karaniwang ginagamit sa loob para sa onboard flash memory, kaya para sa iyong mga proyekto, pangunahing interesado ka sa HSPI at VSPI. Maraming karaniwang library ang gumagamit ng VSPI bilang default upang makipag-ugnayan sa mga display, SD card reader, external radio module, at iba pa.

  Paano paganahin ang XMP o AMD EXPO sa BIOS para ma-maximize ang bilis ng iyong RAM

Mayroong isang hanay ng mga partikular na sensitibong pin na nauugnay sa internal SPI flash memory: GPIO6 (SCK/CLK), GPIO7 (SDO/SD0), GPIO8 (SDI/SD1), GPIO9 (SHD/SD2), GPIO10 (SWP/SD3), at GPIO11 (CSC/CMD). Ang mga pin na ito ay nakalaan para sa komunikasyon sa flash memory at hindi dapat gamitin sa iyong mga circuit; ang pagkonekta sa mga ito sa anumang panlabas na aparato ay kadalasang magdudulot ng mga pag-crash, mga error sa boot, o pagkasira ng data.

Bukod sa UART, I2C, at SPI, isinasama rin ng ESP32 ang I2S, CAN 2.0, Ethernet MAC, SD/SDIO controllers, TX/RX infrared controllers, pulse counters , at iba pang advanced peripherals. Halimbawa, pinapayagan nito itong gumana bilang network gateway, magpatugtog o kumuha ng digital audio, makipag-ugnayan sa mga industrial bus, o magsilbing controller para sa mas sopistikadong mga motor at encoder.

Mga pamilya at modelo ng ESP32: WROOM, WROVER, S2, S3, C3, C6 at ESP32-CAM

Kapag naghahanap ka ng ESP32 na bibilhin, mabilis na lumilitaw ang mga pangalan tulad ng WROOM, WROVER, S2, S3, C3, C6, o ESP32-CAM . Hindi sila magkakapareho, kahit na lahat sila ay kabilang sa ecosystem ng ESP32. Sa isang banda, mayroon tayong "purong" SoC chip, at sa kabilang banda, ang mga module at development board na nagsasama nito kasama ng iba pang mga bahagi.

Ang isang " ESP32 module " (hal., ESP32-WROOM-32 o ESP32-WROVER) ay ang hugis-parihaba na bloke ng metal na naglalaman ng chip, flash memory, minsan ay PSRAM, at antenna. Ang mga module na ito ay idinisenyo upang direktang i-solder sa mga custom board. Maraming tagagawa ang naglalagay ng " development board " sa ibabaw ng mga ito, na nagdaragdag ng USB port, mga regulator, mga accessible pin, at mga reset/boot button, tulad ng DevKitC, NodeMCU-32S, LOLIN32, atbp.

Sa loob ng mga pamilya ng chip, mayroon tayo, bukod sa iba pa, ng mga pangunahing variant na ito: ang klasikong serye ng ESP32 (ang orihinal, dual-core, WiFi + BT, mahusay na dokumentado), ang serye ng ESP32 -S2 (single-core, walang Bluetooth, na may native USB, mainam para sa mga device na nakatuon sa WiFi at USB), ang serye ng ESP32-S3 (dual-core, mas maraming RAM at pinahusay na suporta para sa BLE 5 at camera o light AI applications), ang serye ng ESP32-C3 (RISC-V core, mababang halaga, WiFi + BLE 5, na naglalayong palitan ang ESP8266) at ang serye ng ESP32-C6 (na may WiFi 6, BLE 5 at suporta para sa mga teknolohiyang tulad ng Thread sa ilang partikular na sitwasyon, na idinisenyo para sa home automation at mga modernong network).

Ang ESP32-WROOM module ang pinakakaraniwan sa mga tradisyonal na DevKit board. Karaniwan itong may kasamang 4 MB ng flash memory (bagaman mayroon ding mga variant na may 8 MB o higit pa), karaniwang internal RAM, at integrated Wi-Fi at Bluetooth. Ito ay mainam para sa mga pangkalahatang proyekto tulad ng mga sensor, automation, at home automation, kung saan hindi mo kailangan ng camera o malaking halaga ng karagdagang RAM.

Ang ESP32-WROVER module ay nagdaragdag ng external PSRAM, kaya mas angkop ito para sa mga proyektong nangangailangan ng malaking memorya: image processing, malalaking buffer, graphics application, o naka-embed na AI. Kadalasan ay medyo mas mahal ito; kung hindi gagamit ng iyong proyekto ang karagdagang memoryang iyon, para ka na ring nagbabayad para sa isang bagay na hindi mo naman gagamitin.

Ang ESP32-CAM board ay naging klasiko na para sa mga proyektong may mababang gastos sa video surveillance. Pinagsasama nito ang isang ESP32 sa isang camera (karaniwan ay isang OV2640 sensor) at isang microSD card slot. Perpekto ito para sa paggawa ng mga home IP camera, smart doorbell, o mga simpleng eksperimento sa paningin. Gayunpaman, mas kaunti ang mga available na GPIO pin na iniaalok nito at medyo mas maselan sa pagprograma at pagpapagana.

Paano pumili ng tamang modelo ng ESP32 para sa iyong proyekto

Ang pagpili ng tamang modelo ng ESP32 ay hindi lamang tungkol sa pagsasaulo ng lahat ng pangalan, kundi tungkol sa pagiging malinaw sa apat na pangunahing kinakailangan : kung kailangan mo ba ng kamera, kung ang iyong prayoridad ay ang mababang lakas ng baterya, kung ang iyong aplikasyon ay nangangailangan ng maraming memorya (halimbawa, PSRAM), at kung kailangan mo ba ng mga partikular na teknolohiya tulad ng BLE 5 o WiFi 6.

Kung nagsisimula ka pa lang at gusto mo ng board para matuto, magkabit ng mga sensor, mag-eksperimento sa Wi-Fi at Bluetooth, at sundin ang karamihan sa mga tutorial, ang pinaka-makatwirang opsyon ay karaniwang isang ESP32 DevKit na may WROOM module . Mura ito, lubos na tugma sa mga halimbawa at library, at maraming dokumentasyon. Para sa maraming "normal" na proyekto ng IoT at home automation, ang opsyong ito ay higit pa sa sapat.

Kapag ang iyong proyekto ay may kasamang integrated camera , mayroon kang dalawang pangunahing opsyon: gumamit ng ESP32-CAM board (na napakatipid at compact, mainam para sa mga simpleng WiFi camera) o pumili ng ESP32-S3 na may suporta sa camera at mas maraming memory, kung kailangan mo ng mas maraming performance, medyo mas kumplikadong algorithm o isang user interface na may screen.

Kung ang prayoridad mo ay mababang konsumo ng kuryente gamit ang lakas ng baterya , lalo na para sa mga sensor node na halos lahat ng oras ay nasa sleep mode, ang pamilyang ESP32-C3 ay lubhang kawili-wili. Gumagamit ito ng arkitekturang RISC-V, may modernong Wi-Fi at BLE, napakababang konsumo ng kuryente, at sapat na kuryente para sa mga gawain sa pag-detect, pagpapadala ng data, at mga pangunahing lohika.

Para sa mga proyektong "susunod na henerasyon" para sa home automation, kung saan pinahahalagahan ang WiFi 6, BLE 5, at ang suporta sa hinaharap para sa Thread or Matter, ang pamilyang ESP32-C6 ay partikular na nangangako. Ito ay medyo mas bago at hindi pa kasing-laganap ng klasikong ESP32, ngunit ito ay dinisenyo upang magkasya sa lalong masalimuot na mga ekosistema ng tahanan.

Karaniwang mga kaso ng paggamit at paghahambing sa iba pang mga platform

Sa pang-araw-araw na paggamit, ang ESP32 ay ginagamit para sa home automation, mga sensor, mga wearable, automation, at mga prototype ng IoT . Ang isang tipikal na halimbawa ay ang pagkontrol sa mga relay para sa mga ilaw, saksakan, blinds, o motor, na nakikipag-ugnayan sa pamamagitan ng Wi-Fi sa isang lokal na server o sa cloud. Ang isa pang karaniwang aplikasyon ay ang mga sensor ng temperatura, humidity, presensya, o kalidad ng hangin na pana-panahong nag-uulat ng data sa isang backend.

Dahil sa integrated Bluetooth (kabilang ang BLE), malawakan din itong ginagamit sa mga portable device o wearable device na nakikipag-ugnayan sa iyong mobile phone: mga heart rate monitor, pedometer, maliliit na sleep monitor, atbp. Maaaring gamitin ang WiFi para sa pag-upload ng data sa internet o pagbibigay ng web configuration interface, habang ang BLE naman ang humahawak ng komunikasyon sa app o iba pang kalapit na sensor.

Isa pang karaniwang aplikasyon ay ang paggamit ng ESP32 bilang gateway o utak ng isang sistema na nakikipag-ugnayan sa pamamagitan ng UART, SPI, o I2C sa iba pang mga module (halimbawa, isang klasikong Arduino, mga industrial sensor, mga display, atbp.) at naglalantad ng isang API, MQTT, o web interface sa pamamagitan ng Wi-Fi. Ginagamit din ito sa mga proyektong audio, sinasamantala ang mga interface ng I2S at ang kakayahang iproseso ang boses at musika sa real time.

  Lahat ng kailangan mong malaman tungkol sa mga function sa programming

Kung ikukumpara sa isang "purong" Arduino Uno, ang ESP32 ay nag-aalok ng mas malaking computing power, integrated WiFi/Bluetooth connectivity , mas maraming memory, at mas maraming peripheral, habang pinapanatili ang pareho o mas mababang gastos. Kung ikukumpara sa mas lumang ESP8266, ang ESP32 ay walang dudang nangunguna sa mga core, RAM, bilang ng mga GPIO pin, at iba't ibang interface.

Kung ikukumpara sa isang Raspberry Pi Pico W, ang dalawa ay mas pantay ang pagkakatugma sa mga tuntunin ng lakas at pagganap, ngunit ang ecosystem ng software at mga library ng ESP32 para sa IoT at home automation ay napakahinog na. Bukod pa rito, ang pagkakaroon ng buong connectivity stack (kabilang ang seguridad ng hardware) sa iisang chip ay ginagawang mas madali itong gamitin sa mga produktong end-user nang hindi nangangailangan ng kumpletong operating system tulad ng mas malalaking modelo ng Raspberry Pi.

Mga kapaligiran sa pag-develop: Arduino IDE, ESP-IDF at MicroPython

Kapag nagpo-program ng ESP32, mayroon kang ilang opsyon sa development environment . Ang pinakasikat sa mga hobbyist at gumagawa ay ang paggamit ng Arduino ecosystem: alinman sa tradisyonal na Arduino IDE, o PlatformIO na isinama sa Visual Studio Code, na nagpapadali sa pamamahala ng mga library at mas malalaking proyekto.

Para magdagdag ng suporta sa ESP32 sa Arduino IDE, i-install ang "ESP32 by Espressif" board package mula sa Boards Manager, gamit ang stable version link na ibinigay ng Espressif sa kanilang GitHub. Kapag na-install na, maaari mong piliin ang board (halimbawa, "ESP32 Dev Module" o ang partikular na modelo mula sa iyong DevKit) at i-program ito nang halos katulad ng isang Arduino, gamit ang mga function tulad ng pinMode, digitalWrite, analogRead, atbp., pati na rin ang mga partikular na library para sa WiFi, Bluetooth, HTTP, MQTT, at marami pang iba.

Ang opisyal na kapaligiran ng Espressif ay ang ESP-IDF (Espressif IoT Development Framework) , isang C/C++ framework na nag-aalok ng napakahusay na kontrol sa hardware, paggamit ng FreeRTOS, pamamahala ng memorya, pagkonsumo ng kuryente, mga network stack, at mga advanced na tampok sa seguridad. Ito ang ginustong pagpipilian para sa mga propesyonal na proyekto o sa mga nangangailangan ng pag-maximize sa mga kakayahan ng chip.

Isa pang napaka-maginhawang alternatibo ay ang MicroPython , isang magaan na implementasyon ng Python na nakatuon sa mga microcontroller. Sa ESP32, pinapayagan ka nitong gumamit ng WiFi, BLE, GPIO, I2C, SPI, at marami pang iba, gamit ang mga script ng Python na mabilis mong mai-upload at mababago. Ito ay lalong kapaki-pakinabang sa edukasyon, mabilis na paggawa ng prototyping, at mga sitwasyon kung saan mas mahalaga ang bilis ng pag-develop kaysa sa pinakamataas na kahusayan.

Anuman ang kapaligirang iyong pipiliin, palaging ipinapayong sumangguni sa opisyal na dokumentasyon ng Espressif (mga datasheet, gabay sa pagsisimula, mga sanggunian sa API) at mga halimbawa na kinabibilangan ng parehong Arduino-ESP32 at ESP-IDF. Ang komunidad sa GitHub, mga nakalaang forum ng ESP32, at mga platform tulad ng Reddit ay nag-aalok din ng napakaraming handa nang proyekto na maaaring iakma sa iyong mga pangangailangan.

Advanced na pinout, mga paghihigpit, at pagpapalawak gamit ang camera at SD card

Kapag mas pinag-aralan mo pa nang mas malalim ang paggamit ng ESP32, makakatagpo ka ng mga advanced na detalye ng pinout na dapat mong igalang. Isa na rito ang hindi pagkakatugma ng ADC2 sa nabanggit na WiFi/Bluetooth radio; ang isa pa ay ang papel ng mga JTAG pin (GPIO12, 13, 14, at 15) kung gusto mong magsagawa ng hardware debugging. Kung hindi mo gagamitin ang JTAG, maaari mo itong ituring bilang mga normal na GPIO, basta't isaisip mo rin ang kanilang mga strapping function.

Mahalaga ang maingat na pagpaplano ng pin, lalo na sa mga proyektong naglalayong gamitin ang maraming function nang sabay-sabay (GPIO, ADC, I2C, SPI, camera, SD card, atbp.). Ang ilang pin ay nakalaan para sa power at mga kritikal na signal , tulad ng 3.3V, GND, at mga nakakonekta sa SPI flash memory. Dapat mong iwasan ang paghila ng matataas na current mula sa 3.3V o 5V na pin sa board kung hindi ito kayang hawakan ng regulator, at iwasan ang pagkonekta ng malalaking load nang direkta sa mga GPIO pin nang walang naaangkop na driver.

Ang ilang kit at expansion board na idinisenyo para sa ESP32 ay nagsasama ng mga partikular na functionality tulad ng mga OV2640 camera module, mga microSD card reader, at suporta sa bateryang 18650. Karaniwang nag-aalok ang mga ito ng dalawang hanay ng mga pin: isa na may mga babaeng header para sa mabilis na prototyping at isa pa na may mga screw terminal para sa mas permanenteng mga instalasyon, halimbawa sa mga "field" na proyekto ng IoT o mga nakapirming instalasyon.

Karaniwang may kasamang mga pull-up/pull-down resistor ang mga board na ito sa mga pin na kumokontrol sa camera at microSD card, kaya kung balak mong gamitin muli ang mga ito bilang mga pangkalahatang input o output, dapat mong konsultahin ang datasheet ng expansion board. Ang mga detalye tulad ng master power switch, mga nakalaang battery charging port, at mga status LED ay may malaking pagkakaiba kapag gumagawa ng mga standalone device na pinapagana ng baterya.

Sa pagsasagawa, ang kombinasyon ng ESP32, OV2640 camera, microSD at 18650 na lakas ng baterya ay nagbibigay-daan sa iyo upang bumuo ng medyo kumpletong mga remote vision node, na may kakayahang mag-stream, kumuha ng mga pana-panahong imahe o magpatakbo ng mga simpleng algorithm ng pagtuklas, nagcha-charge ng baterya sa pamamagitan ng USB kung kinakailangan at pinapanatili ang lahat sa isang compact na format.

Matapos suriin ang panloob na paggana ng chip, ang pinout nito, mga pamilya ng produkto, mga karaniwang gamit, at mga tool sa pag-develop, nagiging malinaw na ang ESP32 ay nag-aalok ng napakaraming integrated functionality, design flexibility, at mga opsyon na mababa ang power sa abot-kayang presyo, kaya isa itong platform na napakahirap pantayan kapag naghahanap ka ng mga proyektong IoT, home automation, o automation na pinagsasama ang wireless connectivity, mahusay na processing power, at isang mature na software ecosystem.