- ESP32 integriše moćan CPU, WiFi, Bluetooth i brojne periferne uređaje u jedan jeftin SoC.
- Njegov visoko multipleksirani raspored pinova omogućava do 34 GPIO-a sa ADC, DAC, PWM, touch i RTC funkcijama.
- Postoji više porodica (WROOM, WROVER, S2, S3, C3, C6, CAM) prilagođenih različitim tipovima projekata.
- Može se programirati pomoću Arduina, ESP-IDF-a ili MicroPythona, pokrivajući sve od jednostavnih prototipova do profesionalnih proizvoda.
Ako se krećete u svijetu IoT, kućna automatizacija ili automatizacijaPrije ili kasnije naići ćete na ESP32. A kada počnete tražiti informacije, lako je završiti zbunjenijim nego prije: pinovi ovdje, modeli ondje, načini rada s niskom potrošnjom energije, WiFi, Bluetooth, kamere, PSRAM... Djeluje kaotično, ali u stvarnosti je to vrlo koherentna platforma ako je shvatite smireno.
U ovom članku ćete pronaći a Potpun i dobro organiziran pregled ESP32Šta je tačno to, šta može da uradi na hardverskom nivou, kako su organizovani njegovi pinovi i posebne funkcije, koje porodice čipova postoje, kako se međusobno razlikuju, koje su ploče najčešće, kada je koja najbolje prilagođena vašim potrebama i kako započeti programiranje u praksi. Ideja je da na kraju dobijete jasnu mentalnu sliku ESP32 ekosistema i znate kako da odaberete i koristite pravu ploču bez straha od greške.
Šta je ESP32 i zašto je postao toliko popularan?
ESP32 je jeftin, energetski efikasan 32-bitni sistem na čipu (SoC)Razvijen od strane Espressif Systemsa, integriše moćan mikroprocesor, WiFi, Bluetooth (standardni i BLE), memoriju, analogno-digitalne pretvarače i mnoštvo perifernih uređaja na jednom čipu. Ovo ga čini nekom vrstom "švicarskog noža" za povezane projekte.
U klasičnim verzijama, montira se dvojezgreni Xtensa LX6 mikroprocesorkoji obično mogu raditi na 160 ili 240 MHz i postići performanse do 600 DMIPS-a. Novije porodice (kao što su ESP32-C3 ili C6) koriste RISC-V jezgre niske potrošnje energije, dok su se druge, poput S2/S3, fokusirale na poboljšanje aspekata kao što su memorija, potrošnja energije i lagane AI mogućnosti.
Jedna od ključnih karakteristika ESP32 je da uključuje WiFi 802.11 b/g/n Bluetooth (BR/EDR i BLE) na istom silicijumskom čipu, dijeleći radio. Ovo eliminiše potrebu za eksternim modulima za povezivanje, štedi prostor na ploči i smanjuje troškove. Zbog toga je postao de facto standard za projekte kućne automatizacije, povezane senzore, sisteme automatizacije i komercijalne prototipove.
Pored procesora i radija, ESP32 integriše i SRAM 520 KiB i ROM memoriju, zajedno s kontrolerima za upravljanje eksternom fleš memorijom putem SPI-ja. Komercijalni moduli (kao što su WROOM ili WROVER) obično uključuju između 4 i 16 MB integrisane fleš memorije, a neki dodaju eksternu PSRAM memoriju za zahtjevnije aplikacije (grafika, kamere, AI itd.).
Unutrašnja arhitektura, memorija i upravljanje energijom
U svojoj internoj arhitekturi, ESP32 kombinuje jednu ili dvije glavne Xtensa LX6/LX7 ili RISC-V jezgre sa ULP (ultra niska snaga) koprocesorOvaj koprocesor je dizajniran za izvršavanje malih zadataka u režimima niske potrošnje energije, na primjer, periodično očitavanje senzora dok ostatak čipa miruje radi uštede baterije.
Memorija je organizovana u nekoliko oblasti: pored SRAM glavna memorija 520 KiB Čip, koji koristi procesor, ima brzu RTC RAM regiju (oko 8 kB) i sporiju RTC RAM regiju (dodatnih približno 8 kB). Brza RTC memorija omogućava zadržavanje podataka tokom režima dubokog spavanja, tako da nakon buđenja možete oporaviti postavke ili stanja bez potrebe za ponovnim izračunavanjem svega.
Što se tiče skladištenja, tipičan dizajn se zasniva na Flash memorija povezana preko SPI-ja gdje se pohranjuju firmver i drugi nepromjenjivi podaci. Mnogi ESP32 WROOM moduli dolaze s 4 MB fleš memorije, dok naprednije ili verzije orijentirane na kameru (ESP32-WROVER, ESP32-S3 sa PSRAM-om, itd.) mogu imati 8, 16 MB ili više.
Upravljanje napajanjem je još jedna od prednosti platforme. Čip integriše... interni regulator niskog pada (LDO), različite domene napajanja i različiti načini rada za uštedu energije. U načinu dubokog spavanja, potrošnja može pasti na oko 5 μA, a buđenje se vrši putem GPIO-a, tajmera, senzora dodira ili ADC mjerenja, ovisno o tome kako su konfigurirani RTC i ULP koprocesor.
Što se tiče sigurnosti, ESP32 podržava sve standardne IEEE 802.11 funkcije (WPA, WPA2, WPA3 u novijim verzijama, WAPI) i nudi mehanizme za sigurno pokretanje i šifriranje fleš memorijeTakođer integrira hardverske akceleratore za AES, SHA-2, RSA, ECC i generator slučajnih brojeva (RNG), plus 1024-bitno OTP područje gdje se mogu pohraniti nepromjenjivi ključevi i parametri.
Raspoređivanje pinova i multipleksiranje funkcionalnosti ESP32
Jedna od stvari koja najviše upada u oči kada prvi put naiđete na ESP32 DevKitC ili nešto slično je broj pinova i alternativne funkcijeU početku, na čipu možete imati do 34 GPIO-a, ali mnogi od njih su multipleksirani s drugim internim periferijama ili rezervirani za vrlo specifične stvari.
La multipleksiranje pinova Ovo je ključna karakteristika ESP32. Većina internih signala (UART, I2C, SPI, PWM, itd.) može se usmjeriti na gotovo bilo koji GPIO konfiguriranjem matrice pinova čipa, bez ikakvog primjetnog gubitka performansi. Vrijednosti koje su obično prikazane u rasporedu pinova na ploči su zadane dodjele, ali općenito možete preraspodijeliti funkcije ako je potrebno.
Prilikom dizajniranja projekta, važno je imati na umu da neki pinovi imaju posebna ograničenjaNeki se koriste tokom pokretanja sistema (pinovi za spajanje), drugi su povezani sa SPI fleš memorijom, a treći su povezani sa interfejsima za otklanjanje grešaka poput JTAG-a. Ako ih koristite nepravilno, sistem se možda neće pokrenuti ili će postati nestabilan.
Razvojne ploče ESP32 DevKitC ili NodeMCU-32S izlažu ove pinove kroz dva reda konektora. Iako svaki proizvođač može slijediti malo drugačiji raspored, one uglavnom dijele isto GPIO numeriranje i većinu funkcija, tako da se dijagrami i tabele rasporeda pinova mogu prenositi s jedne ploče na drugu.
Specijalni igle: vezivanje, samo ulaz, RTC i taktilne
Unutar GPIO niza nalazi se grupa pinova od konfiguracija ili vezivanje čizmeOvi pinovi se koriste za određivanje načina pokretanja čipa, napona određenih internih komponenti i nekih parametara SPI fleš memorije. Ovi pinovi se očitavaju tokom resetovanja sistema, a njihov logički nivo u tom trenutku ostaje zadržan do sljedećeg resetovanja ili isključenja napajanja.
Uobičajene igle za vezivanje na ESP32 uključuju GPIO0, GPIO2, GPIO4, GPIO5, GPIO12 i GPIO15Na primjer, GPIO0 mora biti nizak da bi se ušao u način preuzimanja; GPIO2 ne bi trebao biti prisilno postavljen na visok nivo tokom pokretanja; GPIO5 i GPIO15 obično imaju pull-up otpornike kako bi se osigurala ispravna stanja; a GPIO12 je uključen u odabir napona za određene memorije. Iako se ovi pinovi mogu ponovo koristiti u vašem kolu, najbolje ih je ne preopteretiti ili dodavati kola koja mijenjaju njihov nivo tokom uključivanja.
Postoji i mala grupa igala koje su samo digitalni i/ili analogni ulazDrugim riječima, ne mogu se koristiti kao izlazi: GPIO34, GPIO35, GPIO36 i GPIO39. Nadalje, za razliku od ostalih GPIO-a, ovi nemaju interne pull-up ili pull-down otpornike, tako da ćete ih morati dodati eksterno ako trebate stabilizirati njihov nivo.
Neki GPIO-i su povezani sa RTC podsistemom niske potrošnje energije i poznati su kao GPIO RTCTo uključuje kombinacije kao što su 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 i RTC_GPIO17-GPIO27. Ovi pinovi omogućavaju, između ostalog, buđenje čipa iz stanja dubokog mirovanja pomoću ULP koprocesora ili izvora prekida male snage.
Osim toga, ESP32 integriše 10 kapacitivnih senzora na dodir Ovi su povezani sa specifičnim GPIO pinovima: TOUCH0 (GPIO4), TOUCH1 (GPIO0), TOUCH2 (GPIO2), TOUCH3 (GPIO15), TOUCH4 (GPIO13), TOUCH5 (GPIO12), TOUCH6 (GPIO14), TOUCH7 (GPIO27), TOUCH8 (GPIO33) i TOUCH9 (GPIO32). Kada se kapacitivno opterećenje (na primjer, prst) približi ovim pinovima, čip detektuje promjenu kapacitivnosti i možete ga koristiti za dodirne tipke, klizače ili detekciju blizine bez dodatnih komponenti.
Na kraju, potrebno je spomenuti i pin EN (Omogući)Ovaj pin kontrolira interni 3,3V regulator modula. Obično ima pull-up otpornik od 3,3V, a njegovo uzemljenje (LOW) onemogućava regulator, efektivno resetirajući ili isključujući ESP32. Mnoge aplikacije koriste ovaj pin kao globalni reset pin.
GPIO, prekidi i analogne funkcije (ADC, DAC, PWM)
Uopšteno govoreći, ESP32 nudi do 34 konfigurabilna GPIO-a kao digitalni ulaz ili izlaz, s mogućnošću aktiviranja internih pull-up ili pull-down otpornika u većini njih. Gotovo svi ovi pinovi mogu se konfigurirati kao izvori prekida, što znatno pojednostavljuje dizajn sistema koji reagiraju na događaje (dugmad, senzori, detektori itd.).
Analogni dio je prilično sveobuhvatan: ESP32 uključuje dva 12-bitna SAR ADC konvertora Omogućava do 18 ulaznih kanala. Kanali su podijeljeni između ADC1 (8 kanala) i ADC2 (10 kanala). Tipična dodjela je sljedeća: ADC1_CH0-GPIO36, ADC1_CH1-GPIO37, ADC1_CH2-GPIO38, ADC1_CH3-GPIO39, ADC1_CH4-GPIO32, ADC1_CH5-GPIO33, ADC1_CH6-GPIO34, ADC1_CH7-GPIO35; i 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 i ADC2_CH9-GPIO26.
Ako radite s aktivnim WiFi-jem ili Bluetooth-om, postoji važan detalj: ADC2 nije dostupan dok se radio koristi.U takvim slučajevima, za analogna očitavanja trebali biste koristiti ADC1 kanale, koji se mogu koristiti bez ograničavanja povezivosti. 12-bitna rezolucija daje vam 4096 nivoa (0-4095), što u tipičnom rasponu od 0-3,3 V znači korake od oko 0,8 mV.
Za generiranje analognih izlaznih signala, ESP32 uključuje dva 8-bitna DAC-aOvi konvertori, povezani sa GPIO25 (DAC1) i GPIO26 (DAC2), omogućavaju vam pretvaranje digitalne vrijednosti između 0 i 255 u analogni napon između 0 i 3,3 V, što je korisno za generiranje jednostavnih talasnih oblika, naponskih referenci, osnovnog zvuka ili modulacije signala bez potrebe za eksternim čipovima.
U oblasti PWM-a, ploča ima 16 programabilnih PWM kanala Upravljan namjenskim kontrolerom, bilo koji PWM kanal može se mapirati na različite GPIO-e, a i frekvencija i radni ciklus se mogu podešavati. Idealan je za kontrolu LED dioda (uključujući zatamnjivanje), servo motora, DC motora i općenito bilo kojeg opterećenja koje zahtijeva podesivi PWM signal.
Komunikacijski interfejsi: UART, I2C, SPI i drugi
ESP32 se također ističe po svom raznolikom rasponu integriranih interfejsa. Na serijskom nivou nudi tri hardverska UART-a: UART0, UART1 i UART2Ovi portovi mogu raditi u asinhronim režimima (kao što su RS232 i RS485), pa čak i IrDA, brzinama do 5 Mbps. Na većini razvojnih ploča, UART0 pinovi su povezani sa USB-serijskim konverterom i koriste se za programiranje i debuggiranje, tako da je najbolje da ih ne koristite ponovo u finalnim projektima osim ako niste dobro upoznati sa procesom.
UART1 je obično rezervisan za integrirana SPI fleš memorijaOvo posebno važi za module poput ESP32-S3 ili verzije sa složenijom eksternom fleš memorijom. Iz tog razloga, mnogi vodiči preporučuju da se UART2 uvijek koristi kao korisnički serijski port prilikom povezivanja drugih UART uređaja (npr. GPS modula, drugih mikrokontrolera itd.).
U području I2C magistrale, ESP32 uključuje jedan ili dva I2C kontrolera (u zavisnosti od porodice) i omogućava, prema zadanim postavkama,... Standardna I2C magistrala sa SDA pinovima na GPIO21 i SCL pinovima na GPIO22Međutim, kao i kod drugih perifernih uređaja, možete premjestiti SDA i SCL na druge GPIO pinove pomoću softvera, na primjer pomoću funkcije `wire.begin(SDA, SCL)` u Arduinu. Možete povezati desetine senzora i uređaja na jednu I2C magistralu sve dok poštuju dostupne adrese.
Što se tiče SPI-ja, čip nudi tri SPI magistrale: SPI, HSPI i VSPIOsnovna magistrala se obično koristi interno za ugrađenu fleš memoriju, tako da vas za vaše projekte prvenstveno zanimaju HSPI i VSPI. Mnoge standardne biblioteke koriste VSPI prema zadanim postavkama za komunikaciju s ekranima, čitačima SD kartica, vanjskim radio modulima i tako dalje.
Postoji skup posebno osjetljivih pinova povezanih s internom SPI fleš memorijom: GPIO6 (SCK/CLK), GPIO7 (SDO/SD0), GPIO8 (SDI/SD1), GPIO9 (SHD/SD2), GPIO10 (SWP/SD3) i GPIO11 (CSC/CMD). Ovi pinovi su rezervisano za komunikaciju sa blicem i ne bi ih trebalo koristiti u vašim strujnim kolima; njihovo povezivanje s nečim vanjskim često uzrokuje padove sistema, greške pri pokretanju ili oštećenje podataka.
Pored UART-a, I2C-a i SPI-ja, ESP32 integriše... I2S interfejsi, CAN 2.0 magistrala, Ethernet MAC, SD/SDIO kontroleri, TX/RX infracrveni kontroleri, brojači impulsa i druge naprednije periferne uređaje. To mu omogućava, na primjer, da funkcionira kao mrežni pristupnik, reproducira ili snima digitalni zvuk, komunicira s industrijskim magistralama ili djeluje kao kontroler za sofisticiranije motore i enkodere.
ESP32 porodice i modeli: WROOM, WROVER, S2, S3, C3, C6 i ESP32-CAM
Kada tražite koji ESP32 kupiti, odmah se počinju pojavljivati imena poput ovih. WROOM, WROVER, S2, S3, C3, C6 ili ESP32‑CAMNisu isti, iako svi pripadaju ESP32 ekosistemu. S jedne strane imamo "čisti" SoC čip, a s druge module i razvojne ploče koje ga integrišu zajedno s drugim komponentama.
A «ESP32 modul"" (na primjer, ESP32-WROOM-32 ili ESP32-WROVER) je pravokutni metalni blok koji uključuje čip, fleš memoriju, ponekad PSRAM i antenu. Ovi moduli su dizajnirani za direktno lemljenje na prilagođene ploče. Na njih, mnogi proizvođači montiraju «razvojne ploče» koji dodaju USB port, regulatore, pristupačne pinove i dugmad za resetovanje/pokretanje, kao što su DevKitC, NodeMCU-32S, LOLIN32, itd.
Unutar porodica čipova imamo, između ostalog, ove glavne varijante: seriju ESP32 Classic (originalni, dvojezgreni, WiFi + BT, vrlo dobro dokumentiran), serija ESP32-S2 (jedno jezgro, bez Bluetootha, s izvornim USB-om, idealno za WiFi i USB-orijentirane uređaje), serija ESP32-S3 (dvojezgreni procesor, više RAM-a i poboljšana podrška za BLE 5 i kameru ili lagane AI aplikacije), serija ESP32‑C3 (RISC-V jezgro, niska cijena, WiFi + BLE 5, namijenjeno zamjeni ESP8266) i serija ESP32‑C6 (sa WiFi 6, BLE 5 i podrškom za tehnologije kao što je Thread u određenim scenarijima, dizajnirano za kućnu automatizaciju i moderne mreže).
Modul ESP32-WROOM Ovo je najčešći tip koji se nalazi na tradicionalnim DevKit pločama. Obično uključuje 4 MB fleš memorije (iako postoje varijante sa 8 MB ili više), standardnu internu RAM memoriju i integrisani Wi-Fi i Bluetooth. Idealan je za opšte projekte kao što su senzori, automatizacija i kućna automatizacija, gdje vam nije potrebna kamera ili velike količine dodatne RAM memorije.
Modul ESP32-WROVER Dodaje eksterni PSRAM, što ga čini pogodnijim za projekte koji zahtijevaju mnogo memorije, kao što su obrada slika, veliki baferi, grafičke aplikacije ili ugrađena vještačka inteligencija. Obično je skuplji; ako vaš projekat neće koristiti tu dodatnu memoriju, u suštini plaćate za nešto što nećete koristiti.
Ploča ESP32‑CAM Postao je klasik za jeftine projekte video nadzora. Integrira ESP32 s kamerom (obično OV2640 senzorom) i utorom za microSD karticu. Savršen je za izgradnju kućnih IP kamera, pametnih zvona na vratima ili jednostavnih vizualnih eksperimenata. Međutim, nudi znatno manje dostupnih GPIO pinova i nešto je osjetljiviji za programiranje i napajanje.
Kako odabrati pravi ESP32 model za vaš projekat
Odabir pravog ESP32 modela nije toliko stvar pamćenja svih imena, već... imaju jasno definirana četiri ključna zahtjevaako vam je potrebna kamera, ako vam je prioritet niska potrošnja baterije, ako vaša aplikacija zahtijeva puno memorije (npr. PSRAM) i ako su vam potrebne specifične tehnologije poput BLE 5 ili WiFi 6.
Ako tek počinjete i želite ploču za učenje, montiranje senzora, eksperimentiranje s WiFi-jem i Bluetoothom te praćenje većine tutorijala, najrazumnija opcija je obično... ESP32 DevKit sa WROOM modulomJeftin je, visoko kompatibilan s primjerima i bibliotekama, te ima mnoštvo dokumentacije. Za mnoge "normalne" IoT projekte i projekte kućne automatizacije, ova opcija će biti više nego dovoljna.
Kada vaš projekat uključuje integrisana kameraImate dvije glavne opcije: koristiti ESP32-CAM ploču (koja je vrlo ekonomična i kompaktna, idealna za jednostavne WiFi kamere) ili se odlučiti za ESP32-S3 s podrškom za kameru i više memorije, ako su vam potrebne veće performanse, nešto složeniji algoritmi ili korisnički interfejs s ekranom.
Ako vam je prioritet niska potrošnja energije s napajanjem iz baterijePosebno za senzorske čvorove koji većinu vremena provode u režimu mirovanja, porodica ESP32-C3 je veoma zanimljiva. Koristi RISC-V arhitekturu, ima moderni WiFi i BLE, vrlo nisku potrošnju energije i dovoljno snage za detekciju, prijenos podataka i osnovne logičke zadatke.
Za projekte kućne automatizacije "sljedeće generacije", gdje postoje Podrška za WiFi 6, BLE 5 i Thread U budućnosti, porodica ESP32-C6 je posebno obećavajuća. Nešto je novija i još nije toliko sveprisutna kao klasični ESP32, ali je dizajnirana da se uklopi u sve složenije kućne ekosisteme.
Tipični slučajevi upotrebe i poređenje s drugim platformama
U svakodnevnoj upotrebi, ESP32 se koristi za kućna automatizacija, senzori, nosivi uređaji, automatizacija i IoT prototipoviTipičan primjer je upravljanje relejima za svjetla, utičnice, roletne ili motore, koji komuniciraju putem Wi-Fi mreže s lokalnim serverom ili oblakom. Drugi klasičan primjer su senzori temperature, vlažnosti, prisutnosti ili kvalitete zraka koji periodično prijavljuju podatke pozadinskom sustavu.
Zahvaljujući integriranom Bluetoothu (uključujući BLE), također se široko koristi u prenosivi ili nosivi uređaji koji komuniciraju s mobilnim telefonom: monitori otkucaja srca, pedometri, mali monitori spavanja itd. WiFi može biti rezerviran za prijenos podataka na internet ili za pružanje web konfiguracijskog sučelja, dok BLE obavlja komunikaciju s aplikacijom ili drugim obližnjim senzorima.
Još jedna vrlo uobičajena primjena je korištenje ESP32 kao prolaz ili mozak sistema Komunicira putem UART-a, SPI-ja ili I2C-a s drugim modulima (na primjer, klasičnim Arduinom, industrijskim senzorima, displejima itd.) i pruža API, MQTT ili web interfejs putem Wi-Fi-ja. Također se koristi u audio projektima, koristeći prednosti I2S interfejsa i mogućnost obrade glasa i muzike u realnom vremenu.
U poređenju sa "čistim" Arduino Uno, ESP32 nudi znatno veću računarsku snagu. Ugrađena WiFi/Bluetooth povezivostViše memorije i više periferije, uz održavanje slične ili čak niže cijene. U poređenju sa starijim ESP8266, ESP32 daleko pobjeđuje u jezgrama, RAM-u, broju GPIO-a i raznolikosti interfejsa.
U poređenju sa Raspberry Pi Pico W, ova dva su izjednačenija u pogledu snage i performansi, ali je ekosistem softvera i biblioteka ESP32 za IoT i kućnu automatizaciju veoma zreo. Nadalje, posjedovanje cijelog paketa za povezivanje (uključujući hardversku sigurnost) na istom čipu olakšava korištenje u proizvodima za krajnje korisnike bez potrebe za punim operativnim sistemima poput većih modela Raspberry Pi.
Razvojna okruženja: Arduino IDE, ESP-IDF i MicroPython
Prilikom programiranja ESP32 imate nekoliko opcije razvojnog okruženjaNajpopularnija opcija među hobistima i proizvođačima je korištenje Arduino ekosistema: ili tradicionalnog Arduino IDE-a ili PlatformIO-a integriranog u Visual Studio Code, što olakšava upravljanje bibliotekama i većim projektima.
Da biste dodali ESP32 podršku u Arduino IDE, instalirajte paket ploče "ESP32 by Espressif" iz Upravitelja ploča, koristeći link stabilne verzije koji je Espressif obezbijedio na svom GitHub-u. Nakon instalacije, možete odabrati ploču (na primjer, "ESP32 Dev Module" ili određeni model iz vašeg DevKit-a) i programirati je gotovo identično kao Arduino, koristeći funkcije kao što su pinMode, digitalWrite, analogRead, itd., kao i specifične biblioteke za WiFi, Bluetooth, HTTP, MQTT i još mnogo toga.
Zvanično Espressif okruženje je ESP‑IDF (Espressif IoT Development Framework)C/C++ framework koji nudi vrlo finu kontrolu nad hardverom, korištenjem FreeRTOS-a, upravljanjem memorijom, potrošnjom energije, mrežnim stekovima i naprednim sigurnosnim funkcijama. To je preferirani izbor za profesionalne projekte ili one koji zahtijevaju maksimalno iskorištavanje resursa čipa.
Još jedna veoma udobna alternativa je micropythonTo je lagana Python implementacija usmjerena na mikrokontrolere. Na ESP32, omogućava vam rad sa WiFi, BLE, GPIO, I2C, SPI i još mnogo toga, koristeći Python skripte koje možete brzo prenijeti i modificirati. Posebno je koristan u obrazovanju, brzoj izradi prototipa i situacijama gdje je brzina razvoja važnija od maksimalne efikasnosti.
Bez obzira na odabrano okruženje, uvijek je preporučljivo pogledati Zvanična dokumentacija od Espressifa (tehničke listove, vodiče za početak, API reference) i primjere koji uključuju i Arduino-ESP32 i ESP-IDF. Zajednica na GitHub-u, forumima specifičnim za ESP32 i platformama poput Reddita također nudi ogroman broj gotovih projekata koje možete prilagoditi svojim potrebama.
Napredno postavljanje pinova, ograničenja i proširenje kamerom i SD karticom
Kada malo dublje istražite upotrebu ESP32, pojavit će se sljedeće napredni detalji o razvodu pinova što treba poštovati. Jedan od njih je nekompatibilnost ADC2 sa prethodno spomenutim WiFi/Bluetooth radiom; drugi je uloga JTAG pinova (GPIO12, 13, 14 i 15) ako želite izvršiti hardversko otklanjanje grešaka. Ako nećete koristiti JTAG, možete ih tretirati kao normalne GPIO-e, sve dok imate na umu i njihove funkcije povezivanja.
Važno je pažljivo planirati upotrebu pinova, posebno u projektima koji namjeravaju istovremeno koristiti više funkcionalnosti (GPIO, ADC, I2C, SPI, kamera, SD, itd.). Neki pinovi su rezervirani za ishrana i kritični signalikao što su 3.3V, GND i oni povezani na SPI fleš memoriju. Ne biste trebali izvlačiti visoke struje iz 3.3V ili 5V pinova na ploči ako regulator to ne može podnijeti, niti biste trebali spajati velika opterećenja direktno na GPIO bez odgovarajućih drajvera.
Neki kompleti i ploče za proširenje dizajnirane za ESP32 integriraju specifične funkcionalnosti kao što su OV2640 moduli kamere, microSD čitač i držač 18650 baterijeObično nude dvostruki red pinova: jedan sa ženskim konektorima za brzu izradu prototipa, a drugi sa vijčanim terminalima za trajnije instalacije, na primjer u "terenskim" IoT projektima ili fiksnim instalacijama.
Ove ploče često uključuju pull-up/pull-down otpornike na pinovima koji kontroliraju kameru i microSD karticu, tako da ako ih namjeravate ponovno koristiti kao generičke ulaze ili izlaze, trebali biste provjeriti podatkovni list ploče za proširenje. Detalji kao što je prisutnost glavni prekidač za napajanje, namjenski priključci za punjenje baterije i LED indikatori statusa Oni čine svu razliku prilikom sastavljanja autonomnih uređaja na baterije.
U praksi, kombinacija ESP32, OV2640 kamere, microSD kartice i 18650 baterije omogućava vam izgradnju prilično kompletnih čvorova za daljinski vid, sposobnih za strimovanje, snimanje periodičnih slika ili pokretanje jednostavnih algoritama za detekciju, punjenje baterije putem USB-a kada je potrebno i čuvanje svega u kompaktnom formatu.
Nakon pregleda unutrašnjosti čipa, njegovog rasporeda pinova, porodica proizvoda, tipičnih slučajeva upotrebe i razvojnih alata, postaje jasno da ESP32 nudi ogromnu količinu... integrirane funkcionalnosti, fleksibilnost dizajna i opcije niske potrošnje energije po vrlo razumnoj cijeni, što ga čini platformom kojoj je vrlo teško nadmašiti kada želite postaviti IoT, kućnu automatizaciju ili projekte automatizacije koji kombiniraju bežičnu povezivost, dobru procesorsku snagu i zreo softverski ekosistem.
Sadržaj
- Šta je ESP32 i zašto je postao toliko popularan?
- Unutrašnja arhitektura, memorija i upravljanje energijom
- Raspoređivanje pinova i multipleksiranje funkcionalnosti ESP32
- Specijalni igle: vezivanje, samo ulaz, RTC i taktilne
- GPIO, prekidi i analogne funkcije (ADC, DAC, PWM)
- Komunikacijski interfejsi: UART, I2C, SPI i drugi
- ESP32 porodice i modeli: WROOM, WROVER, S2, S3, C3, C6 i ESP32-CAM
- Kako odabrati pravi ESP32 model za vaš projekat
- Tipični slučajevi upotrebe i poređenje s drugim platformama
- Razvojna okruženja: Arduino IDE, ESP-IDF i MicroPython
- Napredno postavljanje pinova, ograničenja i proširenje kamerom i SD karticom
