ESP32 Dev Kitc Evoluiga Tabulo

Produktaj Informoj

Specifoj

  • Produkto: ESP32
  • Programada Gvidilo: ESP-IDF
  • Eldonversio: v5.0.9
  • Produktanto: Espressif Systems
  • Eldondato: la 16-an de majo 2025

Produktaj Uzado-Instrukcioj

1. Komencu

Antaŭ ol komenci kun la ESP32, familiariĝu kun la
jenaj:

1.1 Enkonduko

Lernu pri la bazaj funkcioj kaj kapabloj de la
ESP32.

1.2 Kion Vi Bezonas

Certigu, ke vi havas la necesan aparataron kaj programaron:

  • Aparataro: Kontrolu la liston de bezonata aparataro
    komponantoj.
  • Programaro: Instalu la bezonatan programaron
    komponantoj.

1.3 Instalado

Sekvu ĉi tiujn paŝojn por instali la IDE kaj agordi la
medio:

  • IDE: Instalu la rekomenditan IDE por
    programante la ESP32.
  • Mana Instalado: Mane agordu la
    medio se necese.

1.4 Krei Vian Unuan Projekton

Kreu kaj konstruu vian komencan projekton uzante la ESP32.

1.5 Malinstali ESP-IDF

Se necese, lernu kiel malinstali la ESP-IDF de via
sistemo.

2. API-Referenco

Vidu la API-dokumentaron por detalaj informoj pri
aplikaĵaj protokoloj, erartraktado kaj konfiguracio
strukturoj.

Oftaj Demandoj (FAQ)

D: Kiel mi povas solvi oftajn problemojn kun ESP32?

A: Vidu la sekcion pri problemsolvado en la programa gvidilo
aŭ vizitu la fabrikanton webretejo por subtenaj rimedoj.

Ĉu mi povas uzi ESP-IDF kun aliaj mikroregiloj?

A: ESP-IDF estas specife desegnita por ESP32, sed vi eble trovos
kongrueco kun aliaj Espressif-mikroregiloj.

ESP32
Gvidilo pri Programado de ESP-IDF
Eldono v5.0.9 Espressif Systems 16-a de majo 2025

Enhavo

Enhavo

i

1 Komencu

3

1.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Kion Vi Bezonas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Aparataro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Programaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Instalaĵo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.2 Mana Instalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Konstruu Vian Unuan Projekton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 Malinstali ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 API-referenco

45

2.1 API-Konvencioj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Erartraktado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Agordaj strukturoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 Privataj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Komponantoj en ekz.ampla projektoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 API-Stabileco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Aplikaĵaj Protokoloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 ASIO-haveno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

2.2.5 ESP HTTP-Kliento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 ESP-Loka Kontrolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 ESP Seria Sklava Ligo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 ESP x509-Atestila Pakaĵo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP-servilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS-Servilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 ICMP-Eĥo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS-servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.14 IP-Reta Tavolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 Bludenta API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 Bludento® Komuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® Malalt-Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2.3.3 Bluetooth® Klasika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

2.3.4 Regilo kaj HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

2.3.6 NimBLE-bazitaj gastigaj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Referenco pri Erarkodoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 Retigaj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.1 Wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.2 Eterreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899

2.5.3 Fadeno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP-Reta Tavolo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Aplikaĵa Tavolo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Periferiaĵoj API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Analoga-Cifereca Konvertilo (ADC) Unupafa Reĝima Pelilo. . . . . . . . . . . . . . . . . 977 2.6.2 Analoga-Cifereca Konvertilo (ADC) Kontinua Reĝima Pelilo. . . . . . . . . . . . . . . 986 2.6.3 Analoga-Cifereca Konvertilo (ADC) Kalibrada Pelilo. . . . . . . . . . . . . . . . . . . 993 2.6.4 Horloĝarbo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Cifereca-Analoga Konvertilo (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO kaj RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Ĝeneraluzebla Tempmezurilo (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Inter-Integra Cirkvito (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sono (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED-Regilo (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Motorregado Pulslarĝa Modulilo (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Pulskalkulilo (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Teleregila Sensricevilo (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 SD-Postuloj pri Tiro-Supren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 SDMMC-Gastiganta Pelilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI-Gastiganto-Ŝoforo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO-karta sklavpelilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Sigma-Delta Modulado (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI-Majstra Ŝoforo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI-sklavpelilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Sekura Elemento) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Tuŝosensilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Du-Drata Aŭtomobila Interfaco (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Universala Nesinkrona Ricevilo/Dissendilo (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Projekta Agordo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Projekta Agorda Menuo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Uzante sdkconfig.defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig-formatigaj reguloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Retrokongruo de Kconfig-opcioj. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referenco pri Agordaj Agordoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Provizanta API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokola Komunikado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Unuigita Provizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Provizado de Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Stokado-API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSistemsubteno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Produktada Utileco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Nevolatila Stokado-Biblioteko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utileco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC Pelilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Fulmo API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFOJ Filesistemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtuala filesistema komponanto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API por eluziĝa niveligo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 Sistema API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Aplikaĵa Bildformato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Aplikaĵnivela Spurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Vokfunkcio kun ekstera stako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Ĉipa Revizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konzolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 eFuse-Manaĝilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Erarkodoj kaj Helpfunkcioj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Biblioteko de Eventaj Bukloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Pli olview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Suplementaj Trajtoj) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Asigno de Staka Memoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Sencimigado de Staka Memoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Alt-Rezolucia Tempigilo (ESP-Tempigilo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 Internaj kaj Malstabilaj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Interprocesora Voko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Interrompa asigno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Protokola biblioteko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Diversaj Sistemaj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Superretaj Ĝisdatigoj (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Efikeco-monitoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Energiadministrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Subteno de POSIX-fadenoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Hazarda nombrogenerado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Dormreĝimoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC-Kapabloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Sistemtempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 La API por himema asignado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP-Kunprocesora programado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Gardhundoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Aparataro Referenco

2167

3.1 Komparo de Ĉipserioj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Rilataj Dokumentoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 API-gvidiloj

2171

4.1 Biblioteko pri Aplikaĵnivela Spurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Finisview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Funkcimanieroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Agordaj Elektoj kaj Dependecoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Kiel Uzi Ĉi Tiun Bibliotekon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Aplikaĵa Komenca Fluo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Unua stage-startiga programo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 Dua stage-startiga programo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Aplikaĵa lanĉo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

4.3 Bluetooth® Klasika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.3.1 Finisview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® Malalt-Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Finisview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Ekigi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240

4.5 Startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Kongrueco de startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Protokola Nivelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Fabrikaj agordoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Startigo de Testa Firmvaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Malfari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Gardohundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Grandeco de Startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Rapida starto el Profunda Dormo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Propra startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Konstrua Sistemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Finisview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Uzante la Konstrusistemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Ekzampla Projekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Projekto CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponanto CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Komponanta Agordo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Antaŭprocesoraj Difinoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Komponantaj Postuloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Superregado de Partoj de la Projekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Komponantoj Nur-Agordaj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Sencimigado de CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Ekzampla Komponanto CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Propraj defaŭltoj de sdkconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Fulmargumentoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Konstruado de la Startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Skribado de Puraj CMake-Komponantoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Uzado de Triapartaj CMake-Projektoj kun Komponantoj . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Uzado de Antaŭkonstruitaj Bibliotekoj kun Komponantoj . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Uzante ESP-IDF en Propraj CMake-Projektoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globaj kaj Pliigaj Konstruoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Metadatumoj de la Konstrusistemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Internaj Komponantoj de la Konstrusistemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migrado de ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Kerna Dumpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Agordoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Konservi kernan dumpilon al fulmmemoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Presi kernan memoron al UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM-funkcioj en retrospuroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Dumpi variablojn laŭpete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Rulado de espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Profundaj Dormaj Vekiĝaj Stuboj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Reguloj por Vekiĝaj Stuboj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Efektivigante Stubon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Ŝarĝante Kodon en RTC-Memoron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Ŝarĝante Datumojn en RTC-Memoron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC-Kontrolo Por Vekstumpoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Ekzample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Erara Traktado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Erarkodoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Konvertado de erarkodoj al erarmesaĝoj . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT makro . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR makro . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 KONTROLU MAKROOJN Ekzamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Eraraj pritraktaj ŝablonoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++-Esceptoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Konceptoj de ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Konstruado de Reto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Administrado de Reto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Datuma Transdono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kanala Ŝaltado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Elfaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Pliaj Notoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Okazaĵa Traktado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Eventoj pri Wi-Fi, Eterreto, kaj IP-reto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Eventoj pri Maŝo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Eventoj pri Bludento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Mortigaj Eraroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Paniktraktilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Registro-dumpilo kaj retrospurado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB-stumpo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC-gardohundo-tempolimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Eraroj en Gurua Meditado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Aliaj Fataj Eraroj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Fulma Ĉifrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Rilataj eFuseoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Fulmĉifrada Procezo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Agordo de Fulmoĉifrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Eblaj paneoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Fulmĉifrada Stato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Legado kaj Skribado de Datumoj en Ĉifrita Fulmomemoro. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Ĝisdatigante Ĉifritan Fulmon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Malŝalti Fulmĉifradon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Ŝlosilaj Punktoj Pri Fulmĉifrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Limigoj de Fulmĉifrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Fulma Ĉifrado kaj Sekura Startigo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Altnivelaj Trajtoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Teknikaj Detaloj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraktado de Aparataro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arkitekturo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Malaltnivela) Tavolo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Aparatara Abstrakta Tavolo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Altnivelaj interrompoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Interrompaj Niveloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Notoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Sencimigado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kiel ĝi funkcias? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Selektado de JTAG Adaptilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Agordo de OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Agordado de ESP32-celo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Lanĉo de Erarserĉilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Erarserĉadoamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Konstruante OpenOCD el Fontoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Konsiloj kaj Strangaĵoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Rilataj Dokumentoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Generado de Ligilo-Skripto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Rapida Komenco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Internaj Funkcioj de Generado de Ligilo-Skripto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 Subtenataj API-oj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD-Ingoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS Tasko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6-Subteno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip kutimaj modifoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Optimigo de Elfaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Memortipoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Datuma RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Instrukcia RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kodo efektivigita de fulmmemoro) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (datumoj konservitaj en fulmomemoro) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Malrapida memoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC RAPIDA memoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA-Kapabla Postulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA-Bufro en la stako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Reĝimoj de la OpenThread-stako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kiel Skribi OpenThread-Aplikaĵon . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 La OpenThread-Lima Enkursigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Dispartigaj tabeloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Enkonstruitaj subdiskotabeloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Kreado de kutimaj tabeloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Generado de Duuma Dispartiga Tabelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Kontroloj de Dispartiga Grandeco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Fulmado de la dipartiga tabelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Partition Tool (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Rendimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Kiel Optimumigi Rendimenton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Gvidiloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 RF-alĝustigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Parta kalibrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Plena kalibrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Neniu kalibrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY-inicialigaj datumoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 API-referenco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Sekura startigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Fono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Sekura Startprocezo Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Ŝlosiloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Grandeco de Startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Kiel Ebligi Sekuran Startigon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Refulmebla Programara Startŝargilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Generado de Sekura Startsubskriba Ŝlosilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Malproksima Subskribo de Bildoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Plej Bonaj Praktikoj pri Sekura Startigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Teknikaj Detaloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Sekura Startigo kaj Fulma Ĉifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Subskribita Aplikaĵa Konfirmo Sen Aparatara Sekura Startigo . . . . . . . . . . . . . . . . . . 2478 4.24.13 Altnivelaj Trajtoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Sekura Startigo V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Fono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Antaŭentages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Sekura Startigo V2 Procezo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Formato de Subskribo-Bloko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Sekura Remburaĵo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Kontrolado de Subskribo-Bloko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Kontrolado de Bildo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Grandeco de Startigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Uzado de eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Kiel Ebligi Sekuran Startigon V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Limigoj post kiam Sekura Startigo estas ebligita . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Generado de Sekura Startiga Ŝlosilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Malproksima Subskribo de Bildoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Plej Bonaj Praktikoj pri Sekura Startigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Teknikaj Detaloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Sekura Startigo kaj Fulma Ĉifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Subskribita Aplikaĵa Konfirmo Sen Aparatara Sekura Startigo . . . . . . . . . . . . . . . . . . 2484 4.25.18 Altnivelaj Trajtoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Subteno por Ekstera RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Aparataro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Agordado de Ekstera RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Limigoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Malsukceso inicialigi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Ĉipaj Revizioj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Fadena Loka Stokado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Denaska API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Normo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Iloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF-Interfaco – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF-Docker-Bildo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF-Vindoza Instalilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF-Komponenta Administrilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Elŝuteblaj Iloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Unuotestado en ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Normalaj Testkazoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Pluraparataj Testkazoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Plur-ojtage Testaj Kazoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Testoj Por Malsamaj Celoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Konstruante Unuotestan Aplikaĵon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Efektivigo de Unuotestoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Tempigo-kodo kun kaŝmemoro-kompensita tempigilo. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Mokaĵoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Unuotestado en Linukso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Testoj de Enigita Programaro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF-unuotestoj sur Linuksa gastiganto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Wifi-pelilo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Listo de Trajtoj de ESP32 Wifi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kiel Skribi Aplikaĵon por Sendrata Interreto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API-erarkodo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inicialigo de Parametroj de ESP32 Wi-Fi API. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 Wifi Programada Modelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Priskribo de ESP32 Wifi-okazaĵo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Ĝenerala Scenaro por ESP32 Wi-Fi Stacio. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Ĝenerala Scenaro de ESP32 Wifi AP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wifi-skanado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Scenaro de Konekto al ESP32 Wi-Fi-Stacio. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi Stacio Konektas Kiam Pluraj Atingpunktoj Estas Trovitaj. . . . . . . . . . . . . 2543 4.31.12 Rekonekto al Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Tempolimo de Wi-Fi-Signalo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Agordo de ESP32 Wifi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Facila Konekto™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Administrado de Sendrata Reto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Mezurado de Radiofoniaj Rimedoj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Rapida BSS-Transiro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wifi Energiŝpara Reĝimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wifi-Trairo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 Pakaĵsendo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Wi-Fi Snufa Reĝimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Wi-Fi Pluraj Antenoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Informoj pri la stato de la sendrata kanalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Informoj pri la stato de la sendrata kanalo Agordu . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Sendrata HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Sendrata Fragmento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS-Aliĝinto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Sendrata Bufro-Uzado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kiel Plibonigi Wi-Fi-Rendimenton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Agordo de Wi-Fi-Menuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Solvado de Problemoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Sekureco de Sendrata Reto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Sekurecaj Trajtoj de ESP32 Sendrata Reto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Protektitaj Administraj Kadroj (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Persona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Plibonigita Malferma™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF-Kuneksisto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Superview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Subtenataj Kunekzistaj Scenaroj por ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Kunekzista Mekanismo kaj Politiko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kiel Uzi la Kunekzistan Funkcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Reprodukteblaj Konstruoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Enkonduko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Kialoj por nereprodukteblaj konstruoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Ebligi reprodukteblajn konstruojn en ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kiel reprodukteblaj konstruoj estas atingitaj . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Reprodukteblaj konstruoj kaj sencimigado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktoroj, kiuj ankoraŭ influas reprodukteblajn konstruojn . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Uzantgvidilo por Malalt-Energia Reĝimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 Migradaj Gvidiloj

2579

5.1 Gvidilo pri Migrado de ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Migrado de 4.4 al 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Bibliotekoj kaj Kadroj

2611

6.1 Nubaj Kadroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.1 ESP Pluvfaristo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.6 Ĝojliga IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.7 Tencent IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.8 Tencentyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2 Esprimaj kadroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Espressif Audio-Disvolva Kadro . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.3 Espressif DSP-Biblioteko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 ESP-WIFI-MESH Evoluiga Kadro . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.6 ESP Pluvfaristo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.7 ESP-IoT-Solvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-Protokoloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614

7 Kontribua Gvidilo

2615

7.1 Kiel Kontribui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Antaŭ Kontribuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Procezo de peto pri elpreno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Laŭleĝa Parto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Rilataj Dokumentoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Stilgvidilo por la Disvolva Kadro de Espressif IoT . . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 Instali antaŭ-engaĝigan Hokon por ESP-IDF-Projekto . . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Dokumentado de Kodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Krei Ekz.amples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 Ŝablono por API-Dokumentado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Kontribuanta Interkonsento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Gvidilo pri Kopirajto-Kaplinio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 ESP-IDF-Testoj kun Pytest-gvidilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 ESP-IDF-versioj

2645

8.1 Eldonoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Per Kiun Version Mi Devus Komenci? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Versiiga Skemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Subtenaj Periodoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Kontrolado de la nuna versio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Git-Laborfluo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 Ĝisdatigante ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Ĝisdatigante al Stabila Eldono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Ĝisdatigado al Antaŭeldona Versio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Ĝisdatigante al Majstra Branĉo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Ĝisdatigado al Eldona Branĉo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Rimedoj

2651

9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.1 Kio estas PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Instalaĵo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Agordo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Lerniloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Projekto Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Sekvaj Paŝoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Utilaj ligiloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Kopirajtoj kaj Licencoj

2653

10.1 Kopirajtoj de programaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Firmvaraj Komponantoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Dokumentaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 Kopirajtoj de la fontkodo de la ROM-memoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Xtensa libhal MIT-Licenco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 TinyBasic Plus MIT Licenco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec-Licenco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Pri

2657

12 Ŝanĝi Inter Lingvoj

2659

Indekso

2661

Indekso

2661

ix

x

Enhavo
Jen la dokumentaro por Espressif IoT Development Framework (esp-idf). ESP-IDF estas la oficiala evoluiga kadro por la ESP32, ESP32-S kaj ESP32-C serioj SoC-oj. Ĉi tiu dokumento priskribas la uzon de ESP-IDF kun la ESP32 SoC.

Komencu

API-Referenco

API-gvidiloj

Esprimaj Sistemoj

1 Sendu Dokumentan Religon

Eldono v5.0.9

Enhavo

Esprimaj Sistemoj

2 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1
Komencu
Ĉi tiu dokumento celas helpi vin agordi la programaran disvolvan medion por la aparataro bazita sur la ESP32-ĉipo de Espressif. Post tio, simpla ekz.ampNi montros al vi kiel uzi ESP-IDF (Espressif IoT Development Framework) por menua agordo, poste por konstrui kaj instali firmvaron sur ESP32-tabulo.
Noto: Ĉi tiu estas dokumentado por la stabila versio v5.0.9 de ESP-IDF. Aliaj versioj de ESP-IDF ankaŭ haveblas.
1.1 Enkonduko
ESP32 estas sistemo sur ĉipo kiu integras la jenajn funkciojn: · Wi-Fi (2.4 GHz-bendo) · Bluetooth · Duoblaj alt-efikecaj Xtensa® 32-bitaj LX6 CPU-kernoj · Ultra Malalt-Povuma kunprocesoro · Multoblaj flankaparatoj
Funkciigita per 40-nm teknologio, ESP32 provizas fortikan, tre integran platformon, kiu helpas kontentigi la kontinuajn postulojn pri efika energiuzado, kompakta dezajno, sekureco, alta rendimento kaj fidindeco. Espressif provizas bazajn aparatarajn kaj programarajn rimedojn por helpi aplikaĵajn programistojn realigi siajn ideojn uzante la aparataron de la ESP32-serio. La programara disvolva kadro de Espressif estas destinita por disvolvi Interreton de Aĵoj (IoT) aplikaĵojn kun Wi-Fi, Bluetooth, energiadministrado kaj pluraj aliaj sistemaj funkcioj.
1.2 Kion Vi Bezonas
1.2.1 Aparataro
· ESP32-tabulo. · USB-kablo - USB A / mikro-USB B. · Komputilo funkcianta per Vindozo, Linukso aŭ macOS.
Noto: Nuntempe, kelkaj el la evoluigaj platoj uzas konektilojn USB Tipo C. Certigu, ke vi havas la ĝustan kablon por konekti vian platon!
Se vi havas unu el la oficialaj ESP32-evoluigaj tabuloj listigitaj sube, vi povas alklaki la ligilon por lerni pli pri la aparataro.
3

Ĉapitro 1. Komencu
ESP32-DevKitS(-R)
Ĉi tiu uzantogvidilo provizas informojn pri ESP32-DevKitS(-R), ESP32-bazita fulmanta plato produktita de Espressif. ESP32-DevKitS(-R) estas kombinaĵo de du platonomoj: ESP32-DevKitS kaj ESP32-DevKitS-R. S signifas risortojn, kaj R signifas WROVER.

ESP32-DevKitS

ESP32-DevKitS-R

La dokumento konsistas el la jenaj ĉefaj sekcioj: · Komenco: Provizas pliview de ESP32-DevKitS(-R) kaj instrukcioj pri agordo de aparataro/programaro por komenci. · Aparatara Referenco: Provizas pli detalajn informojn pri la aparataro de ESP32-DevKitS(-R)ns. · Rilataj Dokumentoj: Donas ligilojn al rilata dokumentaro.

Komenco Ĉi tiu sekcio priskribas kiel komenci kun ESP32-DevKitS(-R). Ĝi komenciĝas per kelkaj enkondukaj sekcioj pri ESP32-DevKitS(-R), poste Sekcio Kiel Fulmigi Platformon provizas instrukciojn pri kiel munti modulon sur ESP32-DevKitS(-R), prepari ĝin, kaj fulmi firmvaron sur ĝin.

Finiteview ESP32-DevKitS(-R) estas la fulmplato de Espressifns, speciale desegnita por ESP32. Ĝi povas esti uzata por fulmi ESP32-modulon sen lutado de la modulo al la elektroprovizo kaj signallinioj. Kun modulo muntita, ESP32-DevKitS(-R) ankaŭ povas esti uzata kiel mini-disvolvplato simile al ESP32-DevKitC.
La platoj ESP32-DevKitS kaj ESP32-DevKitS-R varias nur laŭ la aranĝo de la risortpingloj por konveni al la jenaj ESP32-moduloj.
· ESP32-Programiloj: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB kaj IPEX) ESP32-WROVER-B (PCB kaj IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Por informoj pri la supre menciitaj moduloj, bonvolu rilati al la ESP32-seriaj moduloj.

Priskribo de Komponentoj

Esprimaj Sistemoj

4 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 1: ESP32-DevKitS – fronto

Esprimaj Sistemoj

Fig. 2: ESP32-DevKitS-R – fronto 5
Sendu Dokumentajn Rimarkojn

Eldono v5.0.9

Ĉapitro 1. Komencu

Ŝlosilaj Komponantoj Risortaj Stiftoj 2.54 mm Inaj Kapkonektoj
USB-al-UART Ponto LDO Mikro-USB Konektilo/Mikro-USB Pordo EN Butono Startiga Butono
Enŝaltita LED

Priskribo Alklaku la modulon. La stiftoj konvenos en la kasteligitajn truojn de la modulo. Ĉi tiuj inaj konektiloj estas konektitaj al stiftoj de la modulo muntita sur ĉi tiu plato. Por priskribo de la inaj konektiloj, bonvolu rilati al la konektiloj. Unu-ĉipa USB al UART-ponto provizas transigajn rapidojn ĝis 3 Mbps.
5V-ĝis-3.3V malalt-falanta voltage-reguligilo (LDO).
USB-interfaco. Nutrado por la tabulo kaj ankaŭ la komunikada interfaco inter komputilo kaj la tabulo.
Restarigi butonon.
Butono Elŝuti. Tenante premitan butonon "Boot" kaj poste premante EN, oni komencas la reĝimon "Firmware Download" por elŝuti firmvaron tra la seria pordo.
Ŝaltiĝas kiam la USB aŭ elektroprovizo estas konektita al la tabulo.

Kiel Fulmigi Platformon Antaŭ ol ŝalti vian ESP32-DevKitS(-R), bonvolu certigi, ke ĝi estas en bona stato sen evidentaj signoj de difekto.
Bezonata Aparataro · ESP32-modulo laŭplaĉe · USB 2.0-kablo (Normo-A al Mikro-B) · Komputilo funkcianta per Vindozo, Linukso aŭ macOS
Agordo de Aparataro Bonvolu munti modulon laŭ via elekto sur vian ESP32-DevKitS(-R) laŭ la jenaj paŝoj:
· Milde metu vian modulon sur la ESP32-DevKitS(-R) platon. Certigu, ke la kastelitaj truoj sur via modulo estas vicigitaj kun la risortaj stiftoj sur la plato.
· Premu vian modulon malsupren en la platon ĝis ĝi klakas. · Kontrolu ĉu ĉiuj risortpingloj estas enigitaj en kanelitajn truojn. Se estas iuj misvicigitaj risortpingloj,
metu ilin en kasteligitajn truojn per pinĉilo.
Programara Agordo
Preferata Metodo La evoluiga kadro ESP-IDF provizas preferatan manieron por instali duumajn dosierojn sur ESP32-DevKitS(-R). Bonvolu daŭrigi al Komenco, kie Sekcio Instalo rapide helpos vin agordi la evoluigan medion kaj poste instali aplikaĵan ekz.ample sur vian ESP32-DevKitS(-R).
Alternativa Metodo Kiel alternativo, Vindozaj uzantoj povas fulmi duumajn dosierojn per la Flash Download Tool. Simple elŝutu ĝin, malzipu ĝin, kaj sekvu la instrukciojn en la doc-dosierujo.
Noto: 1. Por fulmi duuman dosieron files, ESP32 devus esti agordita al la reĝimo por elŝuti firmvaron. Tio povas esti farita aŭ per la fulmilo aŭtomate, aŭ tenante la butonon "Start" kaj frapetante la butonon EN. 2. Post fulmado de la duuma dosiero files, la Flash Download Tool rekomencas vian ESP32-modulon kaj defaŭlte startigas la fulmitan aplikaĵon.

Platformaj Dimensioj Enhavo kaj Pakado

Esprimaj Sistemoj

6 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Ekfunkciigo Fig. 3: Dimensioj de la plato ESP32-DevKitS - malantaŭe

Esprimaj Sistemoj

Fig. 4: Dimensioj de la plato ESP32-DevKitS-R – malantaŭe 7
Sendu Dokumentajn Rimarkojn

Eldono v5.0.9

Ĉapitro 1. Komencu
Podetalaj mendoj Se vi mendas kelkajnampĉiu ESP32-DevKitS(-R) venas en individua pakaĵo en aŭ antistatika saketo aŭ iu ajn pakaĵo depende de la vendisto. Por podetalaj mendoj, bonvolu iri al https://www.espressif.com/en/contact-us/get-samples.
Pograndaj Mendoj Se vi mendas pogrande, la tabuloj venas en grandaj kartonaj skatoloj. Por pograndaj mendoj, bonvolu iri al https://www.espressif.com/en/contact-us/sales-questions.
Aparataro Referenco
Blokdiagramo Blokdiagramo sube montras la komponantojn de ESP32-DevKitS(-R) kaj iliajn interkonektojn.

Fig. 5: ESP32-DevKitS(-R) (klaku por pligrandigi)
Elektoj pri Elektroprovizo Estas tri reciproke ekskluzivaj manieroj provizi energion al la plato: · Mikro-USB-pordo, defaŭlta elektroprovizo · 5V kaj GND konektiloj · 3V3 kaj GND konektiloj
Estas konsilinde uzi la unuan opcion: mikro-USB-pordon.

Esprimaj Sistemoj

.

Etikeda Signalo

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP SENSOR_VP

L4 VN SENSOR_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

daŭras sur la sekva paĝo

8 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Tabelo 1 daŭrigas de antaŭa paĝo

.

Etikeda Signalo

L9 25

GPIO25

L10 26

GPIO26

L11 27

GPIO27

L12 14

GPIO14

L13 12

GPIO12

L14 GND GND

L15 13

GPIO13

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 CMD SD_CMD

L19 5V

Ekstera 5V

R1 GND GND

R2 23

GPIO23

R3 22

GPIO22

R4 TX U0TXD

R5 RX U0RXD

R6 21

GPIO21

R7 GND GND

R8 19

GPIO19

R9 18

GPIO18

R10 5

GPIO5

R11 17

GPIO17

R12 16

GPIO16

R13 4

GPIO4

R14 0

GPIO0

R15 2

GPIO2

R16 15

GPIO15

R17 D1 SD_DATUMOJ1

R18 D0 SD_DATUMOJ0

R19 CLK SD_CLK

Titolblokoj Por la bildo de la titolblokoj, bonvolu rilati al la Priskribo de la Komponantoj.

Rilataj Dokumentoj
· Skemoj de ESP32-DevKitS(-R) (PDF) · Datumfolio de ESP32 (PDF) · Datumfolio de ESP32-WROOM-32 (PDF) · Datumfolio de ESP32-WROOM-32D kaj ESP32-WROOM-32U (PDF) · Datumfolio de ESP32-SOLO-1 (PDF) · Datumfolio de ESP32-WROVER (PDF) · Datumfolio de ESP32-WROVER-B (PDF) · Produkta Selektilo de ESP

ESP32-DevKitM-1

Ĉi tiu uzantogvidilo helpos vin komenci uzi ESP32-DevKitM-1 kaj ankaŭ provizos pli detalajn informojn.
ESP32-DevKitM-1 estas evoluiga plato bazita sur ESP32-MINI-1(1U) produktita de Espressif. La plej multaj el la enigaj/eligaj stiftoj estas elrompitaj al la stiftokapoj ambaŭflanke por facila interfaco. Uzantoj povas aŭ konekti flankaparatojn per konektiloj aŭ munti ESP32-DevKitM-1 sur panotabulo.

Esprimaj Sistemoj

9 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

ESP32-DevKitM-1 - fronto

ESP32-DevKitM-1 – izometria

La dokumento konsistas el la jenaj ĉefaj sekcioj: · Ekigo: Provizas superrigardonview de la ESP32-DevKitM-1 kaj instrukcioj pri aparataro/programaro por komenci. · Aparatara referenco: Provizas pli detalajn informojn pri la aparataro ESP32-DevKitM-1ns. · Rilataj dokumentoj: Donas ligilojn al rilata dokumentado.

Komenco Ĉi tiu sekcio priskribas kiel komenci kun ESP32-DevKitM-1. Ĝi komenciĝas per kelkaj enkondukaj sekcioj pri la ESP32-DevKitM-1, poste la sekcio Komenco de Aplikaĵa Disvolviĝo provizas instrukciojn pri kiel fari la komencan aparataran agordon kaj poste kiel fulmi firmvaron sur la ESP32-DevKitM-1.

Finiteview Ĉi tio estas malgranda kaj oportuna evolutabulo, kiu prezentas:
· ESP32-MINI-1, aŭ ESP32-MINI-1U modulo · USB-al-seria programinterfaco kiu ankaŭ provizas elektroprovizon por la plato · pinglokonektiloj · puŝbutonoj por restartigo kaj aktivigo de la reĝimo por elŝuto de firmvaro · kelkaj aliaj komponantoj

Enhavo kaj Pakado

Podetalaj mendoj Se vi mendas kelkajnamples, ĉiu ESP32-DevKitM-1 venas en individua pakaĵo en aŭ antistatika sako aŭ iu ajn enpakado depende de via vendisto.
Por podetalaj mendoj, bonvolu iri al https://www.espressif.com/en/contact-us/get-samples.

Pograndaj Mendoj Se vi mendas pogrande, la tabuloj venas en grandaj kartonaj skatoloj. Por pograndaj mendoj, bonvolu iri al https://www.espressif.com/en/contact-us/sales-questions.

Priskribo de Komponantoj La sekva figuro kaj la tabelo sube priskribas la ĉefajn komponantojn, interfacojn kaj kontrolojn de la tabulo ESP32-DevKitM-1. Ni prenas la tabulon kun modulo ESP32-MINI-1 kiel ekzemple...ample en la sekvaj sekcioj.

Esprimaj Sistemoj

10 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 6: ESP32-DevKitM-1 – fronto

Ŝlosila Komponanto Enkonstruita modulo
5 V ĝis 3.3 V LDO-Startiga Butono
Restariga butono Mikro-USB-haveno
USB-al-UART-Ponto 3.3 V LED-a ŝaltilo
I/O-Konektilo

Priskribo
Modulo ESP32-MINI-1 aŭ modulo ESP32-MINI-1U. ESP32-MINI-1 venas kun enkonstruita PCB-anteno. ESP32-MINI-1U venas kun ekstera antenkonektilo. La du moduloj ambaŭ havas 4 MB fulmmemoron en la ĉipa pakaĵo. Por detaloj, bonvolu vidi la datenfolion de ESP32-MINI-1 kaj ESP32-MINI-1U.
Potenca reguligilo konvertas 5 V al 3.3 V.
Butono Elŝuti. Tenante premitan butonon "Start" kaj poste premante "Reset" komencigas la reĝimon "Firmware Download" por elŝuti firmvaron tra la seria pordo.
Restarigi Butonon
USB-interfaco. Elektroprovizo por la tabulo kaj ankaŭ la komunika interfaco inter komputilo kaj la blato ESP32.
Ununura USB-UART-ponta blato disponigas transigajn tarifojn ĝis 3 Mbps.
Ŝaltiĝas kiam la USB estas konektita al la tabulo. Por detaloj, bonvolu vidi la skemojn en Rilataj Dokumentoj. Ĉiuj disponeblaj GPIO-pingloj (krom la SPI-buso por fulmmemoro) estas dividitaj en la pinglokonektilojn sur la tabulo. Uzantoj povas programi ESP32-peceton por ebligi plurajn funkciojn.

Komencu Aplikaĵan Disvolvadon Antaŭ ol ŝalti vian ESP32-DevKitM-1, bonvolu certigi, ke ĝi estas en bona stato sen evidentaj signoj de difekto.
Bezonata Aparataro · ESP32-DevKitM-1 · USB 2.0 kablo (Normo-A al Mikro-B) · Komputilo funkcianta per Vindozo, Linukso aŭ macOS
Agordo de Programaro Bonvolu daŭrigi al Komenco, kie Sekcio Instalo rapide helpos vin agordi la programmedion kaj poste instali aplikaĵan ekzemplon.ample sur vian ESP32-DevKitM-1.

Esprimaj Sistemoj

11 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Atentu: ESP32-DevKitM-1-platoj fabrikitaj antaŭ la 2-a de decembro 2021 havas instalitan unu-kernan modulon. Por kontroli kiun modulon vi havas, bonvolu kontroli la informojn pri modulmarkado en PCN-2021-021. Se via plato havas instalitan unu-kernan modulon, bonvolu ebligi unu-kernan reĝimon (CONFIG_FREERTOS_UNICORE) en menuconfig antaŭ ol fulmi viajn aplikaĵojn.
Blokdiagramo de Aparataro Blokdiagramo sube montras la komponantojn de ESP32-DevKitM-1 kaj iliajn interkonektojn.

Figuro 7: ESP32-DevKitM-1
Elekto de Energifonto Estas tri reciproke ekskluzivaj manieroj provizi energion al la plato: · Mikro-USB-pordo, defaŭlta elektrofonto · 5V kaj GND konektiloj · 3V3 kaj GND konektiloj
Averto: · La elektroprovizo devas esti provizita per unu kaj nur unu el la supre menciitaj opcioj, alie la plato kaj/aŭ la elektrofonto povas esti difektitaj. · Elektroprovizo per mikro-USB-pordo estas rekomendinda.

Priskriboj de la stiftoj La suba tabelo montras la nomojn kaj funkciojn de la stiftoj ambaŭflanke de la plato. Por konfiguracioj de la flankaparatoj, bonvolu rilati al la datenfolio de ESP32.

Ne.

Nomo

Tajpu

1

GND

P

2

3V3

P

Funkcia Tero 3.3 V elektrofonto

daŭras sur la sekva paĝo

Esprimaj Sistemoj

12 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Tabelo 2 daŭrigas de antaŭa paĝo

Ne.

Nomo

Tajpu

Funkcio

3

I36

I

GPIO36, ADC1_CH0, RTC_GPIO0

4

I37

I

GPIO37, ADC1_CH1, RTC_GPIO1

5

I38

I

GPIO38, ADC1_CH2, RTC_GPIO2

6

I39

I

GPIO39, ADC1_CH3, RTC_GPIO3

7

RST

I

Restarigi; Alta: ebligi; Malalta: malŝaltas

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (32.768 kHz kristaloscilatora enigo),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (32.768 kHz kristala oscilatoro eligo),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

I/O

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

I/O

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

I/O

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

I/O

GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 V nutrado

17

IO12

I/O

GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

I/O

GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

I/O

GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

I/O

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

I/O

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

I/O

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

I/O

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

I/O

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

I/O

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

I/O

GPIO18, HS1_DATA7, VSPICLK

27

IO23

I/O

GPIO23, HS1_STROBE, VSPID

28

IO19

I/O

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

I/O

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

I/O

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

I/O

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/O

GPIO3, U0RXD, CLK_OUT2

Detaloj pri revizio de aparataro Neniuj antaŭaj versioj haveblaj.
Rilataj Dokumentoj
· Datumfolio de ESP32-MINI-1 kaj ESP32-MINI-1U (PDF) · Skemoj de ESP32-DevKitM-1 (PDF) · Aranĝo de la PCB de ESP32-DevKitM-1 (PDF) · Aranĝo de ESP32-DevKitM-1 (DXF) – Vi povas view ĝin per Autodesk Viewrete · Datumfolio de ESP32 (PDF) · Produkta Elektilo de ESP
Por alia dezajna dokumentado por la tabulo, bonvolu kontakti nin ĉe sales@espressif.com.

Esprimaj Sistemoj

13 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
1.2.2 Programaro
Por komenci uzi ESP-IDF sur ESP32, instalu la jenan programaron: · Toolchain por kompili kodon por ESP32 · Krei ilojn - CMake kaj Ninja por konstrui plenan Aplikaĵon por ESP32 · ESP-IDF kiu esence enhavas API-on (programarajn bibliotekojn kaj fontkodon) por ESP32 kaj skriptojn por funkciigi la Toolchain

1.3 Instalado
Por instali la tutan bezonatan programaron, ni proponas kelkajn diversajn manierojn faciligi ĉi tiun taskon. Elektu el unu el la disponeblaj opcioj.
1.3.1 IDE

Noto: Ni forte rekomendas instali la ESP-IDF per via plej ŝatata IDE.
· Eklipsa kromprogramo · VSCode-etendaĵo

1.3.2 Mana Instalado
Por la mana proceduro, bonvolu elekti laŭ via operaciumo.

Esprimaj Sistemoj

14 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Norma Agordo de Ilĉeno por Vindozo
Enkonduko ESP-IDF postulas la instaladon de iuj antaŭkondiĉaj iloj por ke vi povu konstrui firmvaron por subtenataj ĉipoj. La antaŭkondiĉaj iloj inkluzivas Python, Git, kruc-kompililojn, CMake kaj Ninja konstruilojn. Por ĉi tiu Ekkomenco ni uzos la Komando-Promptilon, sed post la instalado de ESP-IDF, vi povas uzi la Kromprogramon Eclipse aŭ alian grafikan IDE kun CMake-subteno anstataŭe. Noto: Limigoj: – La instala vojo de ESP-IDF kaj ESP-IDF-Iloj ne rajtas esti pli longa ol 90 signoj. Tro longaj instalaj vojoj povus rezultigi malsukcesan konstruadon. – La instala vojo de Python aŭ ESP-IDF ne rajtas enhavi spacetojn aŭ krampojn. – La instala vojo de Python aŭ ESP-IDF ne devas enhavi specialajn signojn (ne-ASCII) krom se la operaciumo estas agordita kun subteno por Unikodo UTF-8. Sistemadministranto povas ebligi la subtenon per Kontrola Panelo – Ŝanĝi dato-, horo- aŭ nombro-formatojn – langeto Administra – Ŝanĝi sisteman lokaĵon – marku la opcion Beta: Uzi Unikodon UTF-8 por tutmonda lingvosubteno – Bone kaj restartigu la komputilon.
Instalilo de ESP-IDF-iloj La plej facila maniero instali la antaŭkondiĉojn de ESP-IDF estas elŝuti unu el la instaliloj de ESP-IDF-iloj.

Elŝuto de Vindoza Instalilo
Kio estas la uzkazo por Interreta kaj Senreta Instalilo? Interreta Instalilo estas tre malgranda kaj permesas la instaladon de ĉiuj disponeblaj eldonoj de ESP-IDF. La instalilo elŝutos nur necesajn dependecojn, inkluzive de Git por Vindozo, dum la instala procezo. La instalilo konservas la elŝutitajn... files en la kaŝmemora dosierujo %userprofile%. espreskafo
La eksterreta instalilo ne postulas retkonekton. La instalilo enhavas ĉiujn necesajn dependecojn inkluzive de Git por Vindozo.
Komponantoj de la instalado La instalilo deplojas la jenajn komponantojn:
· Enkonstruita Python · Kruc-kompililoj · OpenOCD · CMake kaj Ninja konstruiloj · ESP-IDF
La instalilo ankaŭ permesas reuzi la ekzistantan dosierujon per ESP-IDF. La rekomendinda dosierujo estas %userprofile%Desktopesp-idf kie %userprofile% estas via hejma dosierujo.

Esprimaj Sistemoj

15 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Lanĉo de ESP-IDF-medio Ĉe la fino de la instala procezo vi povas elekti la opcion "Run ESP-IDF PowerShell Environment" aŭ "Run ESP-IDF Command Prompt (cmd.exe"). La instalilo lanĉos la ESP-IDF-medion en la elektita prompto. Rulu ESP-IDF PowerShell Environment:

Fig. 8: Kompletigo de la Agorda Asistanto de ESP-IDF-iloj per Run ESP-IDF PowerShell Environment
Rulu la komandlinion de ESP-IDF (cmd.exe):
Uzante la Komandpromptilon Por la ceteraj paŝoj de Ekkomenco, ni uzos la Komandpromptilon de Vindozo. La Instalilo de ESP-IDF-iloj ankaŭ kreas mallongigon en la Startmenuo por lanĉi la Komandpromptilon de ESP-IDF. Ĉi tiu mallongigo lanĉas la Komandpromptilon (cmd.exe) kaj ekzekutas la skripton export.bat por agordi la ĉirkaŭajn variablojn (PATH, IDF_PATH kaj aliajn). Ene de ĉi tiu komandpromptilo, ĉiuj instalitaj iloj estas haveblaj. Notu, ke ĉi tiu mallongigo estas specifa por la dosierujo ESP-IDF elektita en la Instalilo de ESP-IDF-iloj. Se vi havas plurajn ESP-IDF-dosierujojn sur la komputilo (ekz.ampekzemple, por labori kun malsamaj versioj de ESP-IDF), vi havas du eblojn uzi ilin:
1. Kreu kopion de la mallongigo kreita de la instalilo de ESP-IDF-iloj, kaj ŝanĝu la laboran dosierujon de la nova mallongigo al la dosierujo ESP-IDF, kiun vi volas uzi.
2. Alternative, lanĉu cmd.exe, poste ŝanĝu al la ESP-IDF-dosierujo, kiun vi volas uzi, kaj lanĉu export.bat. Notu, ke male al la antaŭa opcio, ĉi tiu maniero postulas, ke Python kaj Git ĉeestu en PATH. Se vi ricevas erarojn rilatajn al Python aŭ Git ne troveblaj, uzu la unuan opcion.
Unuaj Paŝoj pri ESP-IDF Nun, ĉar ĉiuj postuloj estas plenumitaj, la sekva temo gvidos vin pri kiel komenci vian unuan projekton.

Esprimaj Sistemoj

16 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Ekfunkciigo Fig. 9: ESP-IDF PowerShell

Fig. 10: Kompletigo de la Agorda Sorĉisto de ESP-IDF-iloj per la komando "Rulu ESP-IDF-komandon" (cmd.exe)

Esprimaj Sistemoj

17 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 11: ESP-IDF-Komandprompto

Esprimaj Sistemoj

18 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Ĉi tiu gvidilo helpos vin pri la unuaj paŝoj uzante ESP-IDF. Sekvu ĉi tiun gvidilon por komenci novan projekton sur la ESP32 kaj konstrui, fulmi kaj monitori la aparatan eliron. Noto: Se vi ankoraŭ ne instalis ESP-IDF, bonvolu iri al Instalo kaj sekvi la instrukciojn por akiri la tutan programaron necesan por uzi ĉi tiun gvidilon.

Komencu Projekton Nun vi pretas prepari vian aplikaĵon por ESP32. Vi povas komenci per la projekto getstarted/hello_world de ekz.amples dosierujo en ESP-IDF.
Grave: La konstrusistemo ESP-IDF ne subtenas spacetojn en la padoj al ESP-IDF aŭ al projektoj.
Kopiu la projekton get-started/hello_world al la dosierujo ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedsaluton_mondosaluton_mondo
Noto: Ekzistas gamo da ekz.ample projektoj en la eksamples dosierujo en ESP-IDF. Vi povas kopii ajnan projekton en la sama maniero kiel prezentita supre kaj ruli ĝin. Eblas ankaŭ konstrui ekzamples surloke sen unue kopii ilin.

Konekti Vian Aparaton Nun konekti vian ESP32-platon al la komputilo kaj kontroli sub kiu seria pordo la plato estas videbla. La nomoj de seriaj pordoj komenciĝas per COM en Vindozo. Se vi ne certas kiel kontroli la nomon de la seria pordo, bonvolu rilati al Establi Serian Konekton kun ESP32 por plenaj detaloj.
Noto: Tenu la havennomon oportuna ĉar vi bezonos ĝin en la sekvaj paŝoj.

Agordu Vian Projekton Navigu al via dosierujo hello_world, agordu ESP32 kiel la celon, kaj lanĉu la projektan agordan ilon menuconfig.
Vindoza KD %uzantoprofile%esphello_world idf.py agordi-celon esp32 idf.py menuagordo
Post malfermo de nova projekto, vi unue devas agordi la celon per idf.py set-target esp32. Notu, ke ekzistantaj kompilaĵoj kaj agordoj en la projekto, se ekzistas, estos forigitaj kaj inicialigitaj en ĉi tiu procezo. La celo povas esti konservita en la ĉirkaŭa variablo por tute preterlasi ĉi tiun paŝon. Vidu Elektu la Celan Peceton: set-target por pliaj informoj. Se la antaŭaj paŝoj estas faritaj ĝuste, la jena menuo aperas: Vi uzas ĉi tiun menuon por agordi projektospecifajn variablojn, ekz., Wi-Fi-retan nomon kaj pasvorton, la procesoran rapidon, ktp. Agordi la projekton per menuconfig povas esti preterlasita por ohello_wordp, ĉar ĉi tiu ekz...ample funkcias kun la defaŭlta agordo.
Atentu: Se vi uzas la tabulon ESP32-DevKitC kun la modulo ESP32-SOLO-1, aŭ la tabulon ESP32-DevKitM-1 kun la modulo ESP32-MIN1-1(1U), bonvolu ebligi unu-kernan reĝimon (CONFIG_FREERTOS_UNICORE) en la menuagordo antaŭ ol fulmi ex.amples.

Esprimaj Sistemoj

19 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 12: Projekta agordo - Hejma fenestro
Noto: La koloroj de la menuo povus esti malsamaj en via terminalo. Vi povas ŝanĝi la aspekton per la opcio –style. Bonvolu ruli idf.py menuconfig –help por pliaj informoj.
Se vi uzas unu el la subtenataj programplatoj, vi povas rapidigi vian programplaton per uzado de la Subtena Pakaĵo por Platplatoj. Vidu Pliajn Konsilojn por pliaj informoj.
Krei la Projekton Krei la projekton per la ekzekuto de:
idf.py konstruo
Ĉi tiu komando kompilos la aplikaĵon kaj ĉiujn ESP-IDF-komponentojn, tiam ĝi generos la ekŝargilon, diskpartigan tabelon kaj aplikajn binarojn.
$ idf.py build Rulas cmake en dosierujo /path/to/hello_world/build Rulas “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Avertas pri neinitialigitaj valoroj. — Trovita Git: /usr/bin/git (trovita versio “2.17.0”) — Konstruas malplenan aws_iot-komponenton pro agordo — Komponentaj nomoj: … — Komponentaj vojoj: …
… (pli da linioj de konstrusistemo eligo)
[527/527] Generante hello_world.bin esptool.py v2.3.1
Projekta konstruado kompleta. Por fulmi, lanĉu ĉi tiun komandon: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin aŭ lanĉu 'idf.py -p PORT flash'
Se ne estas eraroj, la konstruo finiĝos per generado de la firmvaro binara .bin files.

Esprimaj Sistemoj

20 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Enŝaltu sur la Aparaton Enŝaltu la duumajn dosierojn, kiujn vi ĵus konstruis (bootloader.bin, partition-table.bin kaj hello_world.bin) sur vian ESP32-tabulon per la jenaj paŝoj: idf.py -p PORT [-b BAUD] flash
Anstataŭigu PORT per la seria pordnomo de via ESP32-plato. Vi ankaŭ povas ŝanĝi la baŭdrapidecon de la fulmilo anstataŭigante BAUD per la bezonata baŭdrapideco. La defaŭlta baŭdrapideco estas 460800. Por pliaj informoj pri idf.py-argumentoj, vidu idf.py.
Noto: La opcio `flash` aŭtomate konstruas kaj fulmas la projekton, do lanĉi `idf.py build` ne estas necesa.

Ĉu Problemoj Okazis Dum Fulmado? Se vi ekzekutas la donitan komandon kaj vidas erarojn kiel ekzemple "Malsukcesis konekti", povus esti pluraj kialoj por tio. Unu el la kialoj povus esti problemoj renkontitaj de esptool.py, la ilo vokita de la konstrua sistemo por restarigi la peceton, interagi kun la ROM-startiga programo kaj fulmi la firmvaron. Unu simpla solvo por provi estas mana restarigo priskribita sube, kaj se ĝi ne helpas, vi povas trovi pliajn detalojn pri eblaj problemoj en Solvado de Problemoj.
esptool.py aŭtomate restarigas ESP32 per asertado de DTR kaj RTS-kontrollinioj de la USB-al-seria konvertilo, t.e., FTDI aŭ CP210x (por pliaj informoj, vidu Establi Serian Konekton kun ESP32). La DTR kaj RTS-kontrollinioj estas siavice konektitaj al GPIO0 kaj CHIP_PU (EN) pingloj de ESP32, tiel ŝanĝante la volumenon.tagniveloj de DTR kaj RTS lanĉos ESP32 en reĝimon de elŝuto de firmvaro. Kiel ekzempleampekzemple, kontrolu la skemon por la evoluiga tabulo ESP32 DevKitC.
Ĝenerale, vi ne devus havi problemojn kun la oficialaj evoluigaj platoj de esp-idf. Tamen, esptool.py ne kapablas aŭtomate restarigi vian aparataron en la jenaj kazoj:
· Via aparataro ne havas la DTR kaj RTS liniojn konektitajn al GPIO0 kaj CHIP_PU · La DTR kaj RTS linioj estas agorditaj malsame · Tiaj seriaj stirlinioj tute ne ekzistas
Depende de la speco de aparataro, kiun vi havas, eble ankaŭ eblas permane meti vian ESP32-platon en reĝimon por elŝuto de firmvaro (restarigo).
· Por programplatoj produktitaj de Espressif, ĉi tiu informo troveblas en la respektivaj gvidiloj por komencado aŭ uzantogvidiloj. Ekzempleampekzemple, por permane reagordi ESP-IDF-disvolvan platon, tenu premitan la butonon Start (GPIO0) kaj premu la butonon EN (CHIP_PU).
· Por aliaj specoj de aparataro, provu malŝalti GPIO0.

Normala Funkciado Dum ekbrilado, vi vidos la eligan protokolon similan al la sekva:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Seria pordo /dev/ttyUSB0 Konektante…….._ Ĉipo estas ESP32D0WDQ6 (revizio 0) Trajtoj: WiFi, BT, Duobla Kerno, Koda Skemo Neniu Kristalo estas 40MHz MAC: 24:0a:c4:05:b9:14 Alŝutante stub-memoron… Rulante stub-memoron… Stub-memoro kurante… Ŝanĝante baŭdrapidecon al 460800 Ŝanĝita.
(daŭras sur la sekva paĝo)

Esprimaj Sistemoj

21 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
(daŭrigo de la antaŭa paĝo) Agordante fulmmemoran grandecon… Kunpremis 3072 bajtojn al 103… Skribante je 0x00008000… (100 %) Skribis 3072 bajtojn (103 kunpremite) je 0x00008000 en 0.0 sekundoj (efika 5962.8 kbit/s)… Haŝo de datumoj kontrolita. Kunpremis 26096 bajtojn al 15408… Skribante je 0x00001000… (100 %) Skribis 26096 bajtojn (15408 kunpremite) je 0x00001000 en 0.4 sekundoj (efika 546.7 kbit/s)… Haŝo de datumoj kontrolita. Kunpremis 147104 bajtojn al 77364… Skribis je 0x00010000… (20 %) Skribis je 0x00014000… (40 %) Skribis je 0x00018000… (60 %) Skribis je 0x0001c000… (80 %) Skribis je 0x00020000… (100 %) Skribis 147104 bajtojn (77364 kunpremitaj) je 0x00010000 en 1.9 sekundoj (efikaj 615,5 kbit/s)… Haŝo de datumoj kontrolita.
Forirante... Malmola restarigo per RTS-pinglo... Farita
Se ne estas problemoj antaŭ la fino de la fulmprocezo, la tabulo rekomenciĝos kaj lanĉos la aplikaĵon thehello_worldp. Se vi volas uzi la IDE-on Eclipse aŭ VS Code anstataŭ ruli idf.py, rigardu la kromprogramon Eclipse, la etendon VSCode.
Monitori la Eligon Por kontroli ĉu ohello_world efektive funkcias, tajpu idf.py -p PORT monitor (Ne forgesu anstataŭigi PORT per via seria pordnomo).
Ĉi tiu komando lanĉas la aplikaĵon IDF Monitor:
$ idf.py -p monitoro Rulas idf_monitor en dosierujo […]/esp/hello_world/build Rulas “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor ŝaltita 115200 —– Eliri: Ctrl+] | Menuo: Ctrl+T | Helpo: Ctrl+T sekvata de Ctrl+H –ets 8 Jun 2016 00:22:57
rst:0x1 (POWERON_RESET),starto:0x13 (SPI_FAST_FLASH_BOOT) ets 8-a de junio 2016 00:22:57 …
Post kiam la protokoloj pri ekfunkciigo kaj diagnozo ruliĝas supren, vi devus vidi "Saluton mondo!" presitan de la aplikaĵo.
... Saluton, mondo! Rekomenciĝos post 10 sekundoj... Jen esp32-ico kun 2 CPU-kerno(j), WiFi/BT/BLE, silicia revizio 1, 2MB ekstera fulmmemoro Minimuma libera stakograndeco: 298968 bajtoj Rekomenciĝos post 9 sekundoj... Rekomenciĝos post 8 sekundoj... Rekomenciĝos post 7 sekundoj...
Por eliri IDF-monitoron uzu la ŝparvojon Ctrl+].

Esprimaj Sistemoj

22 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Se IDF-monitoro malsukcesas baldaŭ post la alŝuto, aŭ se anstataŭ la supre menciitaj mesaĝoj vi vidas hazardajn sentaŭgaĵojn similajn al tiuj sube, via plato verŝajne uzas kristalon de 26 MHz. Plej multaj disvolvaj plato-dezajnoj uzas 40 MHz, do ESP-IDF uzas ĉi tiun frekvencon kiel defaŭltan valoron.

Se vi havas tian problemon, faru la jenon: 1. Eliru el la monitoro. 2. Reiru al la menuo `agordo`. 3. Iru al `Agordo de Komponantoj` > `Aparataraj Agordoj` > `Ĉefa XTAL-Agordo` > `Ĉefa XTAL-frekvenco`, poste ŝanĝu `CONFIG_XTAL_FREQ_SEL` al 26 MHz. 4. Post tio, konstruu kaj fulmu la aplikaĵon denove.
En la nuna versio de ESP-IDF, la ĉefaj XTAL-frekvencoj subtenataj de ESP32 estas jenaj:
· 26 MHz · 40 MHz
Noto: Vi povas kombini konstruadon, fulmadon kaj monitoradon en unu paŝon per la komando: idf.py -p PORT flash monitor
Vidu ankaŭ: · IDF Monitor por praktikaj mallongigoj kaj pliaj detaloj pri uzado de IDF-monitor. · idf.py por plena referenco de idf.py-komandoj kaj opcioj.
Jen ĉio, kion vi bezonas por komenci kun ESP32! Nun vi pretas provi iujn aliajn ekzemplojn.amples, aŭ iri rekte al la disvolviĝo de viaj propraj aplikaĵoj.
Grave: Kelkaj el eks-ampDosieroj ne subtenas ESP32 ĉar la bezonata aparataro ne estas inkluzivita en ESP32, do ĝi ne povas esti subtenata. Se vi konstruas ekz-onample, bonvolu kontroli la README-dosieron file por la tabelo Subtenataj Celoj. Se ĉi tio ĉeestas inkluzive de ESP32-celo, aŭ la tabelo tute ne ekzistas, la ekz.ampli funkcios per ESP32.
Pliaj Konsiloj
Permesproblemoj /dev/ttyUSB0 Kun iuj Linuksaj distribuaĵoj, vi eble ricevos la erarmesaĝon "Malsukcesis malfermi pordon /dev/ttyUSB0" dum fulmado de la ESP32. Ĉi tio solveblas per aldono de la nuna uzanto al la eltelefona grupo.
Kongrueco kun Python ESP-IDF subtenas Python 3.7 aŭ pli novan. Estas rekomendinde ĝisdatigi vian operaciumon al lastatempa versio, kiu plenumas ĉi tiun postulon. Aliaj ebloj inkluzivas la instaladon de Python el la fontkodoj aŭ la uzon de Python-versio-administra sistemo kiel pyenv.
Komencu per la Subtena Pakaĵo por Platformaj Platformoj Por rapidigi prototipadon sur iuj evoluigaj platformoj, vi povas uzi Subtenajn Pakaĵojn por Platformaj Platformoj (BSP-ojn), kiuj faciligas la inicialigon de specifa platformo kiel kelkaj funkciovokoj.

Esprimaj Sistemoj

23 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

BSP tipe subtenas ĉiujn aparatarajn komponantojn provizitajn sur la evoluiga plato. Krom la difino de la pineleco kaj inicialigaj funkcioj, BSP liveras pelilojn por la eksteraj komponantoj kiel sensiloj, ekranoj, aŭdaj kodekoj ktp. La BSP-oj estas distribuitaj per IDF Component Manager, do ili troveblas en IDF Component Registry. Jen ekzemplo.ampInstrukcio pri kiel aldoni ESP-WROVER-KIT BSP al via projekto: idf.py add-dependency esp_wrover_kit
Pli ekzampmalpli da BSP-uzado troveblas en BSP-ekz.amples dosierujo.
Rilataj Dokumentoj Por progresintaj uzantoj, kiuj volas adapti la instalprocezon: · Ĝisdatigi ESP-IDF-ilojn en Vindozo · Establi Serian Konekton kun ESP32 · Eclipse-Kromaĵo · VSCode-Etendaĵo · IDF-Monitoro
Ĝisdatigante ESP-IDF-ilojn en Vindozo
Instalu ESP-IDF-ilojn per skripto. El la Vindoza Komanda Prompto, ŝanĝu al la dosierujo kie ESPIDF estas instalita. Poste rulu:
instali.bat
Por Powershell, ŝanĝu al la dosierujo kie ESP-IDF estas instalita. Poste lanĉu:
instali.ps1
Ĉi tio elŝutos kaj instalos la ilojn necesajn por uzi ESP-IDF. Se la specifa versio de la ilo jam estas instalita, neniu ago estos farita. La iloj estas elŝutitaj kaj instalitaj en dosierujon specifitan dum la procezo de instalado de ESP-IDF-iloj. Defaŭlte, ĉi tio estas C:Uzantojuzantnomo.espressif.
Aldonu ESP-IDF-ilojn al PATH uzante eksportan skripton. La instalilo de ESP-IDF-iloj kreas mallongigon en la Startmenuo por la Komanda Prompto de ESP-IDF. Ĉi tiu mallongigo malfermas fenestron en la Komanda Prompto, kie ĉiuj iloj jam estas.
havebla. En iuj kazoj, vi eble volos labori kun ESP-IDF en fenestro de la komandlinio, kiu ne estis lanĉita per tiu mallongigo. Se tio okazas, sekvu la instrukciojn sube por aldoni ESP-IDF-ilojn al PATH. En la komandlinio, kie vi bezonas uzi ESP-IDF, ŝanĝu al la dosierujo, kie ESP-IDF estas instalita, poste ekzekutu export.bat:
cd %userprofile%espesp-idf eksporti.bat
Alternative en la Powershell kie vi bezonas uzi ESP-IDF, ŝanĝu al la dosierujo kie ESP-IDF estas instalita, poste ekzekutu export.ps1:
cd ~/esp/esp-idf eksporto.ps1
Kiam tio estos farita, la iloj estos haveblaj en ĉi tiu komandlinio.
Establi serian konekton kun ESP32 Ĉi tiu sekcio provizas gvidliniojn pri kiel establi serian konekton inter ESP32 kaj komputilo.

Esprimaj Sistemoj

24 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Konekti ESP32 al komputilo Konekti la ESP32-platon al la komputilo per la USB-kablo. Se la pelilo ne instaliĝas aŭtomate, identigu la USB-al-seria konvertilan peceton sur via ESP32-plato (aŭ ekstera konvertila adaptilo), serĉu pelilojn en la interreto kaj instalu ilin. Jen listo de USB-al-seriaj konvertilaj pecetoj instalitaj sur la plej multaj ESP32-platoj produktitaj de Espressif kune kun ligiloj al la peliloj:
· CP210x: CP210x USB al UART Ponto VCP-Ŝoforoj · FTDI: FTDI Virtuala COM-Haveno-Ŝoforoj Bonvolu kontroli la uzantgvidilon de la plato por la specifa USB-al-seria konvertilo-ĉipo uzata. La supre menciitaj ŝoforoj estas ĉefe por referenco. Sub normalaj cirkonstancoj, la ŝoforoj devus esti pakitaj kun operaciumo kaj aŭtomate instalitaj post konektado de la plato al la komputilo.
Kontrolu la serian pordon en Vindozo. Kontrolu la liston de identigitaj COM-pordoj en la Aparata Administrilo de Vindozo. Malkonektu ESP32 kaj rekonektu ĝin, por kontroli kiu pordo malaperas el la listo kaj poste reaperas. La subaj figuroj montras la serian pordon por ESP32 DevKitC kaj ESP32 WROVER KIT.

Fig. 13: USB al UART-ponto de ESP32-DevKitC en la Aparata Administrilo de Vindozo

Kontrolu pordon en Linukso kaj macOS Por kontroli la aparatnomon por la seria pordo de via ESP32-tabulo (aŭ ekstera konvertila adaptilo), rulu ĉi tiun komandon du fojojn, unue kun la tabulo / adaptilo malligita, poste kun konektita. La pordo, kiu aperas la duan fojon, estas tiu, kiun vi bezonas: Linukso
ls /dev/tty*
macOS

Esprimaj Sistemoj

25 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 14: Du USB-seriaj pordoj de ESP-WROVER-KIT en la Aparatadministrilo de Vindozo

Esprimaj Sistemoj

26 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

ls /dev/cu.* Noto: macOS-uzantoj: se vi ne vidas la serian pordon, tiam kontrolu, ke vi instalis la USB/seriajn pelilojn. Vidu la sekcion Konekti ESP32 al komputilo por ligiloj al peliloj. Por macOS High Sierra (10.13), vi eble ankaŭ devos eksplicite permesi la ŝarĝon de la peliloj. Malfermu Sistempreferojn -> Sekureco kaj Privateco -> Ĝenerala kaj kontrolu, ĉu estas mesaĝo montrata ĉi tie pri oSistemprogramaro de programisto lp, kie la nomo de la programisto estas Silicon Labs aŭ FTDI.

Aldonante uzanton al vok-eliro en Linukso La nuntempe ensalutinta uzanto devus havi leg- kaj skrib-aliron al la seria pordo per USB. En plej multaj Linuksaj distribuaĵoj, tio estas farata per aldono de la uzanto al vok-eliro-grupo per la jena komando:
sudo usermod -a -G dialout $USER
en Arch Linukso tio estas farita aldonante la uzanton al uucp-grupo per la sekva komando:
sudo usermod -a -G uucp $USER
Certigu, ke vi denove ensalutu por ebligi legi kaj skribi permesojn por la seria haveno.
Verigu serian konekton Nun kontrolu, ke la seria konekto funkcias. Vi povas fari tion per seria terminalprogramo kontrolante, ĉu vi ricevas ian eliron sur la terminalo post restarigo de ESP32. La defaŭlta konzola baŭdrapido ĉe ESP32 estas 115200.
Vindozo kaj Linukso En ĉi tiu ekzemploampEkzemple, ni uzos PuTTY SSH-klienton, kiu haveblas por kaj Vindozo kaj Linukso. Vi povas uzi aliajn seriajn programojn kaj agordi komunikajn parametrojn kiel sube. Rulu terminalon kaj agordu la identigitan serian pordon. Baŭdrapideco = 115200 (se necese, ŝanĝu ĉi tion al la defaŭlta baŭdrapideco de la uzata ĉipo), datumbitoj = 8, haltbitoj = 1, kaj pareco = N. Jen ekzemploj:ampekranfotoj pri la agordo de la pordo kaj tiaj dissendoparametroj (mallonge priskribitaj kiel 115200-8-1-N) en Vindozo kaj Linukso. Memoru elekti precize la saman serian pordon, kiun vi identigis en la supraj paŝoj. Poste malfermu la serian pordon en la terminalo kaj kontrolu, ĉu vi vidas iun ajn protokolon presitan de ESP32. La enhavo de la protokolo dependos de la aplikaĵo ŝarĝita al ESP32, vidu Ekz.ampla Eligo.
Noto: Fermu la serian terminalon post kontrolo, ke la komunikado funkcias. Se vi tenas la terminalan sesion malfermita, la seria pordo estos neatingebla por poste alŝuti firmvaron.

macOS Por ŝpari al vi la penon instali serian terminalprogramon, macOS proponas la komandon screen. · Kiel diskutite en Kontroli pordon en Linukso kaj macOS, rulu:

ls /dev/cu.* · Vi devus vidi similan rezulton:

/dev/cu.Bluetooth-Alvenanta-Porto /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· La eligo varios depende de la tipo kaj nombro de kartoj konektitaj al via komputilo. Poste elektu la aparatnomon de via karto kaj ekzekutu (se necese, ŝanĝu o115200 al la defaŭlta baŭdrapido de la uzata ĉipo):

ekrano /dev/cu.aparatnomo 115200 Anstataŭigu aparatnom per la nomo trovita dum funkciado de ls /dev/cu.*.

Esprimaj Sistemoj

27 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 15: Agordo de seria komunikado en PuTTY ĉe Vindozo

Esprimaj Sistemoj

28 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Fig. 16: Agordado de seria komunikado en PuTTY ĉe Linukso

Esprimaj Sistemoj

29 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
· Kion vi serĉas estas iu protokolo montrata sur la ekrano. La enhavo de la protokolo dependos de la aplikaĵo ŝargita al ESP32, vidu Ekz.ampla Eligo. Por eliri el la ekrana sesio, tajpu Ctrl-A + .
Noto: Ne forgesu eliri el la ekrana sesio post kontrolo, ke la komunikado funkcias. Se vi ne faros tion kaj simple fermos la terminalan fenestron, la seria pordo estos neatingebla por poste alŝuti firmvaron.
ExampEligo Ekz.ampLa protokolo estas montrata sube. Rekomencu la tabulon se vi ne vidas ion ajn. ets 8 Jun 2016 00:22:57
rst:0x5 (DEEPSLEP_RESET),starto:0x13 (SPI_FAST_FLASH_BOOT) je la 8a de junio 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage startŝargilo I (45) starto: kompiltempo 18:48:10

Se vi povas vidi legeblan protokolan eliron, tio signifas, ke la seria konekto funkcias kaj vi pretas daŭrigi la instaladon kaj fine alŝuti la aplikaĵon al ESP32.
Noto: Por iuj seriaj portaj konfiguracioj, la seriaj RTS kaj DTR-pingloj devas esti malŝaltitaj en la fina programo antaŭ ol la ESP32 startos kaj produktos serian eliron. Ĉi tio dependas de la aparataro mem, plej multaj evoluigaj tabuloj (inkluzive de ĉiuj Espressif-tabuloj) ne havas ĉi tiun problemon. La problemo ĉeestas se RTS kaj DTR estas rekte kabligitaj al la EN kaj GPIO0-pingloj. Vidu la esptool-dokumentaron por pliaj detaloj.
Se vi alvenis ĉi tien de Paŝo 5. Unuaj Paŝoj pri ESP-IDF dum instalado de programaro por ESP32-disvolvado, tiam vi povas daŭrigi per Paŝo 5. Unuaj Paŝoj pri ESP-IDF.
IDF Monitor IDF Monitor estas ĉefe seria terminala programo, kiu relajas seriajn datumojn al kaj de la seria pordo de la cela aparato. Ĝi ankaŭ provizas kelkajn IDF-specifajn funkciojn. IDF Monitor povas esti lanĉita de IDF-projekto per ekzekuto de idf.py monitor.
Klavarmallongigoj Por facila interagado kun IDF Monitor, uzu la klavarmallongigojn donitajn en la tabelo.

Esprimaj Sistemoj

30 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Klavara Mallongigo Ctrl+] Ctrl+T
· Stir+T
· Stir+] · Stir+P
· Stir+R
· Stir+F
· Stir+A (aŭ A)
· Stir+Y
· Stir+L
· Ctrl+I (aŭ I)
· Stir+H (aŭ H)
· Stir+X (aŭ X)
Ctrl+C

Ago

Priskribo

Eliri el la programo Menuo-eskapklavo Sendi la menuosignon mem al la teleregilo
Sendu la elirejan signon mem al fora sistemo
Restarigi celon en la startigilon por paŭzi la aplikaĵon per RTS-linio
Restarigi celan tabulon per RTS
Krei kaj fulmi la projekton

Nur krei kaj fulmi la aplikaĵon

Haltigi/rekomenci presadon de protokolo sur ekrano

Haltigi/rekomenci protokolan eligon konservitan al file

Haltigo/rekomenco tempoamps

presado

Montru ĉiujn klavarajn ŝparvojojn

Premu kaj sekvu ĝin per unu el la klavoj donitaj sube.
Rekomencas la celitan komputilon, en la startigilon per la RTS-linio (se konektita), tiel ke la plato nenion ruligas. Utila kiam vi bezonas atendi la starton de alia aparato. Rekomencas la celan platon kaj rekomencas la aplikaĵon per la RTS-linio (se konektita).
Paŭzas idf_monitor por ruli la fulman celon de la projekto, poste rekomencas idf_monitor. Ĉiu ŝanĝita fonto files estas rekompilitaj kaj poste reflaŝitaj. Celo ĉifrita-flaŝiĝo estas funkciigita se idf_monitor estis komencita kun argumento -E. Paŭzas idf_monitor por funkciigi la celon app-flash, poste rekomencas idf_monitor. Simila al la fulmcelo, sed nur la ĉefa aplikaĵo estas konstruita kaj reflaŝita. Celo ĉifrita-app-flaŝiĝo estas funkciigita se idf_monitor estis komencita kun argumento -E. Forĵetas ĉiujn alvenantajn seriajn datumojn dum aktivigita. Permesas rapide paŭzi kaj ekzameni protokolan eliron sen forlasi la monitoron. Kreas file en la projekta dosierujo kaj la eligo estas skribita al tio file ĝis ĉi tio estas malŝaltita per la sama klavarmallongigo (aŭ IDF Monitor eliras). IDF Monitor povas presi temponamp en la komenco de ĉiu linio. La plej tempoamp formato povas esti ŝanĝita per la –timestamp-format komandlinia argumento.

Eliru la programon

Interrompi kurantan aplikaĵon

Paŭzas IDF Monitor kaj ruligas GDB-projektan erarserĉilon por sencimigi la aplikaĵon dum rulado. Tio postulas, ke la opcio :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME estu ebligita.

Ĉiuj premitaj klavoj, krom Ctrl-] kaj Ctrl-T, estos senditaj tra la seria pordo.

IDF-specifaj trajtoj

Aŭtomata Adresmalkodado Kiam ajn ESP-IDF eligas deksesuman kodadreson de la formo 0x4_______, IDF Monitor uzas addr2line_ por serĉi la lokon en la fontkodo kaj trovi la funkcionomon.
Se ESP-IDF-aplikaĵo kraŝas kaj panikiĝas, registro-dumpilo kaj retrospuro estas produktitaj, kiel ekzemple la sekvanta:

Esprimaj Sistemoj

31 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Gurua Meditada Eraro de tipo StoreProhibited okazis ĉe kerno 0. Escepto estis

netraktita.

Registro-dumpilo:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 EKSKLUDO:

0x0000001d

EKSCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90

IDF Monitor aldonas pliajn detalojn al la dump:

Gurua Meditada Eraro de tipo StoreProhibited okazis ĉe kerno 0. Escepto estis

netraktita.

Registro-dumpilo:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: faru_ion_por_kraŝi ĉe /hejmo/gus/esp/32/idf/eksamples/ekigi/

saluton_mondo/ĉefa/./salutu_mondo_ĉefa.c:57

(enliniigita de) inner_dont_crash ĉe /home/gus/esp/32/idf/examples/ekigi/saluton_

mondo/ĉefa/./saluton_mondo_ĉefa.c:52

A2

: 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

A10

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

A14

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 EKSKLUDO:

0x0000001d

EKSCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (enliniigita de) inner_dont_crash ĉe /home/gus/esp/32/idf/examples/ekfunkciigi/saluton_mondo/ĉefa/./saluton_mondo_main.c:52 0x400dbf56: still_dont_crash ĉe /home/gus/esp/32/idf/exampdosierujoj/ekkomenci/saluton_mondo/ĉefa/./saluton_mondo_main.c:47 0x400dbf5e: ne_kraŝu ĉe /hejmo/gus/esp/32/idf/exampdosierujoj/ekigi-komencon/saluton_mondo/ĉefa/./saluton_mondo_main.c:42 0x400dbf82: aplikaĵo_ĉefa ĉe /hejmo/gus/esp/32/idf/eksamples/ekigi/saluton_mondo/ĉefa/ ./saluton_mondo_ĉefa.c:33 0x400d071d: ĉefa_tasko ĉe /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Por deĉifri ĉiun adreson, IDF Monitor ekzekutas la jenan komandon en la fono: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADRESO

Noto: Agordu la ĉirkaŭaĵan variablon ESP_MONITOR_DECODE al 0 aŭ voku idf_monitor.py per specifa komandlinio

Esprimaj Sistemoj

32 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
opcio: idf_monitor.py –disable-address-decoding por malebligi adresmalkodadon.
Celo Restarigo ĉe Konekto Defaŭlte, IDF Monitor restarigos la celon ĉe konektado al ĝi. La restarigo de la cela ĉipo estas farata per la seriaj linioj DTR kaj RTS. Por malhelpi IDF Monitor aŭtomate restarigi la celon ĉe konekto, voku IDF Monitor kun la opcio –no-reset (ekz., idf_monitor.py –no-reset).
Noto: La opcio –no-reset aplikas la saman konduton eĉ kiam oni konektas IDF Monitor al specifa pordo (ekz., idf.py monitor –no-reset -p [PORTO]).
Lanĉi GDB per GDBStub GDBStub estas utila sencimiga funkcio dum la rulado, kiu funkcias sur la celo kaj konektas al la gastiganto per la seria pordo por ricevi sencimigajn komandojn. GDBStub subtenas komandojn kiel ekzemple legi memoron kaj variablojn, ekzameni kadrojn de alvokstakoj ktp. Kvankam GDBStub estas malpli multflanka ol JTAG sencimigado, ĝi ne postulas iun ajn specialan aparataron (kiel ekzemple JTAG al USB-ponto) ĉar komunikado okazas tute per la seria pordo. Celo povas esti agordita por ruli GDBStub en la fono agordante la CONFIG_ESP_SYSTEM_PANIC al GDBStub dum rulado. GDBStub funkcios en la fono ĝis Ctrl+C mesaĝo estas sendita per la seria pordo kaj kaŭzas, ke GDBStub interrompas (t.e., haltigas la plenumon de) la programo, tiel permesante al GDBStub pritrakti sencimigajn komandojn. Krome, la paniktraktilo povas esti agordita por ruli GDBStub dum kraŝo agordante la CONFIG_ESP_SYSTEM_PANIC al GDBStub dum paniko. Kiam kraŝo okazas, GDBStub eligos specialan ĉenŝablonon per la seria pordo por indiki, ke ĝi funkcias. En ambaŭ kazoj (t.e., sendante la Ctrl+C mesaĝon, aŭ ricevante la specialan ĉenŝablonon), IDF Monitor aŭtomate lanĉos GDB por permesi al la uzanto sendi sencimigajn komandojn. Post kiam GDB eliras, la celo estas restarigita per la RTS-seria linio. Se ĉi tiu linio ne estas konektita, uzantoj povas restarigi sian celon (premante la butonon Restarigi de la plato).
Noto: En la fono, IDF Monitor ekzekutas la jenan komandon por lanĉi GDB:
xtensa-esp32-elf-gdb -eks “agordi serian baŭdon BAŬDO” -eks “cela fora PORTO” -eks interrompo konstrui/PROJEKTO.elf :idf_celo:`Saluton NOMO ĉipo`

Eliga filtrado IDF-monitoro povas esti alvokita kiel idf.py monitor –print-filter="xyz", kie –print-filter estas la parametro por eliga filtrado. La defaŭlta valoro estas malplena ĉeno, kio signifas, ke ĉio estas presita.
Restriktoj pri kio presi povas esti specifitaj kiel serio detag>: eroj kietag> estas la tag ŝnuro kaj estas signo el la aro {N, E, W, I, D, V, *} rilatanta al nivelo por protokolado.
Por ekzample, PRINT_FILTER="tag1:W” kongruas kaj presas nur la eligojn skribitajn per ESP_LOGW(“tag1”, …) aŭ je pli malalta multvorteco-nivelo, t.e. ESP_LOGE(“tag1″, …). Ne specifante aŭ uzante * defaŭlte al Multvorta nivelo.
Noto: Uzu ĉefan protokolon por malŝalti ĉe kompilo la eligojn, kiujn vi ne bezonas per la protokola biblioteko. Eliga filtrado per IDF-monitoro estas duaranga solvo, kiu povas esti utila por agordi la filtrajn opciojn sen rekompili la aplikaĵon.
Via aplikaĵo tags ne devas enhavi spacetojn, asteriskojn *, aŭ dupunktojn : por esti kongrua kun la eliga filtra funkcio.
Se la lasta linio de la eligo en via aplikaĵo ne estas sekvata de ĉapelreveno, la eliga filtrado povus konfuziĝi, t.e., la monitoro komencas presi la linion kaj poste malkovras, ke la linio ne devus esti skribita. Ĉi tio estas konata problemo kaj povas esti evitata per ĉiam aldono de ĉapelreveno (precipe kiam neniu eligo sekvas tuj poste).

Esprimaj Sistemoj

33 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
Exampmalpli da Filtraj Reguloj:
· * uzeblas por kongrui kun iu ajn tagsTamen, la ĉeno PRINT_FILTER="*:I tag1:E” rilate al tag1 presas nur erarojn, ĉar la regulo por tag1 havas pli altan prioritaton super la regulo por *.
· La defaŭlta (malplena) regulo estas ekvivalenta al *:V ĉar kongruante ĉiun tag ĉe la Multvorta nivelo aŭ pli malalta signifas kongrui kun ĉio.
· “*:N” subpremas ne nur la eligojn de protokoladaj funkcioj, sed ankaŭ la presaĵojn faritajn de printf, ktp. Por eviti tion, uzu *:E aŭ pli altan multvortecan nivelon.
· Reguloj “tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, kaj “tag1” estas ekvivalentaj. · Regulo “tag1:W tag1:E” estas ekvivalenta al “tag1:E” ĉar ĉiu sekva okazo de la sama tag
nomo anstataŭigas la antaŭan. · Regulo “tag1: mi tagNur 2:W” presas tag1 je la nivelo de multvorteco de Informo aŭ pli malalta kaj tag2 ĉe la Averto
multvorteca nivelo aŭ pli malalta. · Regulo “tag1: mi tag2:W tag3:N” estas esence ekvivalenta al la antaŭa ĉar tag3:N specifas
ke tag3 ne estu presita. tag3:N en la regulo “tag1: mi tag2:W tag3:N *:V” estas pli senchava ĉar sen tag3:N la
tag3 mesaĝoj povus esti presitaj; la eraroj por tag1 kaj tag2 estos presita je la specifita (aŭ pli malalta) multvorteco-nivelo kaj ĉio alia estos presita defaŭlte.
Pli Kompleksa Filtra EkzemploampLa jena protokola fragmento estis akirita sen iuj filtraj opcioj:
ŝarĝo:0x40078000,longo:13564 eniro 0x40078d4c E (31) esp_image: bildo ĉe 0x30000 havas malvalidan magian bajton W (31) esp_image: bildo ĉe 0x30000 havas malvalidan SPI-reĝimon 255 E (39) starto: Fabrika aplikaĵa subdisko ne estas startigebla I (568) cpu_start: Pro CPU aktiva. I (569) heap_init: Inicialiĝas. RAM disponebla por dinamika asigno: I (603) cpu_start: Pro CPU starta uzantkodo D (309) light_driver: [light_init, 74]:stato: 1, reĝimo: 2 D (318) vfs: esp_vfs_register_fd_range sukcesas por intervalo <54; 64) kaj VFS ID 1 I (328) wifi: wifi-pelila tasko: 3ffdbf84, prio:23, stako:4096, kerno=0
La kaptita eligo por la filtraj opcioj PRINT_FILTER="wifi esp_image:E light_driver:I" estas donita sube:
E (31) esp_image: bildo ĉe 0x30000 havas malvalidan magian bajton I (328) wifi: wifi-pelila tasko: 3ffdbf84, prio:23, stako:4096, kerno=0
La opcioj “PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" montras la jenan rezulton:
ŝarĝo:0x40078000,longo:13564 eniro 0x40078d4c I (569) heap_init: Inicialiĝas. RAM disponebla por dinamika asigno: D (309) light_driver: [light_init, 74]:stato: 1, reĝimo: 2
Konataj problemoj kun IDF-monitoro
Problemoj Observitaj en Vindozo
· Sagoklavoj, same kiel iuj aliaj klavoj, ne funkcias en GDB pro limigoj de la Vindoza Konzolo. · Foje, kiam oidf.pype eliras, ĝi povus halti ĝis 30 sekundojn antaŭ ol IDF Monitor rekomenciĝas. · Kiam ogdbpis funkcias, ĝi povus halti dum mallonga tempo antaŭ ol ĝi komencas komuniki kun la GDBStub.

Esprimaj Sistemoj

34 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Ekfunkciigo Norma Iloĉena Agordo por Linukso kaj macOS

Instalaĵo Paŝo post Paŝo Jen detala vojmapo por gvidi vin tra la instala procezo.
Agordi la Disvolvan Medion Jen la paŝoj por agordi la ESP-IDF por via ESP32. · Paŝo 1. Instali Antaŭkondiĉojn · Paŝo 2. Akiri ESP-IDF · Paŝo 3. Agordi la ilojn · Paŝo 4. Agordi la ĉirkaŭajn variablojn · Paŝo 5. Unuaj Paŝoj pri ESP-IDF
Paŝo 1. Instalaj Antaŭkondiĉoj Por uzi ESP-IDF kun la ESP32, vi bezonas instali kelkajn programarpakaĵojn bazitajn sur via operaciumo. Ĉi tiu agorda gvidilo helpos vin instali ĉion en sistemoj bazitaj sur Linukso kaj macOS.
Por Linuksaj Uzantoj Por kompili per ESP-IDF vi bezonos la jenajn pakaĵojn. La komando por lanĉi dependas de la distribuaĵo de Linukso, kiun vi uzas:
· Ubuntu kaj Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 & 8: sudo yum -y ĝisdatigi && sudo yum instali git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 estas ankoraŭ subtenata, sed CentOS versio 8 estas rekomendinda por pli bona uzanto-sperto. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Noto: · CMake versio 3.16 aŭ pli nova estas necesa por uzo kun ESP-IDF. Rulu otools/idf_tools.py install cmakepto por instali taŭgan version se viaj operaciumversioj ne havas tian. · Se vi ne vidas vian Linuksan distribuaĵon en la supra listo, bonvolu kontroli ĝian dokumentaron por ekscii, kiun komandon uzi por pakaĵinstalo.
Por uzantoj de macOS, ESP-IDF uzos la version de Python instalitan defaŭlte en macOS. · Instalu CMake kaj Ninja build: Se vi havas HomeBrew, vi povas ruli: brew install cmake ninja dfu-util Se vi havas MacPorts, vi povas ruli: sudo port install cmake ninja dfu-util Alie, konsultu la hejmpaĝojn de CMake kaj Ninja por elŝutoj de instalado de macOS.

Esprimaj Sistemoj

35 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
· Estas forte rekomendinde ankaŭ instali ccache por pli rapidaj konstruadoj. Se vi havas HomeBrew, tio povas esti farita per brew install ccache aŭ sudo port install ccache sur MacPorts.
Noto: Se eraro kiel ĉi tiu montriĝas dum iu ajn paŝo: xcrun: eraro: malvalida aktiva programista vojo (/Library/Developer/CommandLineTools), mankas xcrun ĉe: /Library/Developer/CommandLineTools/usr/bin/xcrun
Poste vi devos instali la komandliniajn ilojn de XCode por daŭrigi. Vi povas instali ilin per la komando xcode-select –install.
Uzantoj de Apple M1 Se vi uzas la platformon Apple M1 kaj vidas eraron kiel ĉi tiu: AVERTO: dosierujo por la ilo xtensa-esp32-elf versio esp-2021r2-patch3-8.4.0 ĉeestas, sed la ilo ne estis trovita ERARO: la ilo xtensa-esp32-elf ne havas instalitajn versiojn. Bonvolu ruli 'install.sh' por instali ĝin.
aŭ: zsh: malbona tipo de CPU en la rulebla dosiero: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Poste vi devos instali Apple Rosetta 2 per la komando /usr/sbin/softwareupdate –install-rosetta –agree-to-license.
Instali Python 3 Laŭ la notoj pri la eldono de macOS Catalina 10.15, la uzo de Python 2.7 ne estas rekomendinda kaj Python 2.7 ne estos inkluzivita defaŭlte en estontaj versioj de macOS. Kontrolu, kiun Python vi nuntempe havas: python –version
Se la rezulto estas kiel Python 2.7.17, via defaŭlta interpretilo estas Python 2.7. Se jes, ankaŭ kontrolu ĉu Python 3 ne jam estas instalita sur via komputilo: python3 –version
Se la supra komando redonas eraron, tio signifas, ke Python 3 ne estas instalita. Sube estas pli ol...view de la paŝoj por instali Python 3.
· Instali per HomeBrew eblas jene: brew install python3
· Se vi havas MacPorts, vi povas lanĉi: sudo port install python38
Paŝo 2. Akiri ESP-IDF Por konstrui aplikaĵojn por ESP32, vi bezonas la programarajn bibliotekojn provizitajn de Espressif en la ESP-IDF-deponejo. Por akiri ESP-IDF, navigu al via instala dosierujo kaj klonu la deponejon per git clone, sekvante la instrukciojn sube specifajn por via operaciumo. Malfermu Terminalon kaj ruligu la jenajn komandojn:

Esprimaj Sistemoj

36 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

mkdir -p ~/esp cd ~/esp git klono -b v5.0.9 –rekursia https://github.com/espressif/esp-idf.git
ESP-IDF estos elŝutita en ~/esp/esp-idf. Konsultu ESP-IDF-Versiojn por informoj pri kiu ESP-IDF-versio uzi en difinita situacio.
Paŝo 3. Agordu la ilojn Krom ESP-IDF, vi ankaŭ bezonas instali la ilojn uzatajn de ESP-IDF, kiel ekzemple la kompililon, erarserĉilon, Python-pakaĵojn, ktp., por projektoj subtenantaj ESP32. cd ~/esp/esp-idf ./install.sh esp32
aŭ per Fiŝŝela kd ~/esp/esp-idf ./install.fish esp32
La supraj komandoj instalas ilojn nur por ESP32. Se vi intencas disvolvi projektojn por pli da ico-celoj, tiam vi devus listigi ĉiujn kaj ruli ilin ekzemple.ampdosiero: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
aŭ per Fiŝŝela kd ~/esp/esp-idf ./install.fish esp32,esp32s2
Por instali ilojn por ĉiuj subtenataj celoj, bonvolu lanĉi la jenan komandon: cd ~/esp/esp-idf ./install.sh all
aŭ per Fiŝŝela kd ~/esp/esp-idf ./install.fish all
Noto: Por uzantoj de macOS, se eraro kiel ĉi tiu montriĝas dum iu ajn paŝo:urleraro de malfermado [SSL: CERTIFICATE_VERIFY_FAILED] atestilo-kontrolo malsukcesis: ne eblis akiri lokan eldonantan atestilon (_ssl.c:xxx)
Vi povas lanĉi la komandon Install Certificates.en la Python-dosierujo de via komputilo por instali atestilojn. Por detaloj, vidu Elŝuta Eraro Dum Instalado de ESP-IDF-iloj.

Alternativo File Elŝutoj La instalilo de iloj elŝutas kelkajn files ligita al GitHub Releases. Se aliro al GitHub estas malrapida, tiam eblas agordi ĉirkaŭaĵan variablon por preferi la elŝutan servilon de Espressifns por elŝutoj de GitHub-aktivaĵoj.

Noto: Ĉi tiu agordo nur regas individuajn ilojn elŝutitajn el GitHub-eldonoj, ĝi ne ŝanĝas la URLs uzata por aliri iujn ajn Git-deponejojn.

Por preferi la elŝutan servilon de Espressif dum instalado de iloj, uzu la jenan sinsekvon de komandoj dum instalado de install.sh:

Esprimaj Sistemoj

37 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

cd ~/esp/esp-idf eksporti IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Agordante la instalan vojon de iloj La skriptoj prezentitaj en ĉi tiu paŝo instalas kompilajn ilojn bezonatajn de ESP-IDF ene de la hejma dosierujo de la uzanto: $HOME/.espressif en Linukso. Se vi volas instali la ilojn en alian dosierujon, agordu la ĉirkaŭan variablon IDF_TOOLS_PATH antaŭ ol lanĉi la instalajn skriptojn. Certigu, ke via uzantkonto havas sufiĉajn permesojn por legi kaj skribi ĉi tiun vojon. Se vi ŝanĝas la IDF_TOOLS_PATH, certigu, ke ĝi estas agordita al la sama valoro ĉiufoje kiam la instala skripto (install.bat, install.ps1 aŭ install.sh) kaj eksporta skripto (export.bat, export.ps1 aŭ export.sh) estas lanĉataj.
Paŝo 4. Agordi la ĉirkaŭajn variablojn La instalitaj iloj ankoraŭ ne estas aldonitaj al la PATH ĉirkaŭa variablo. Por igi la ilojn uzeblaj el la komandlinio, kelkaj ĉirkaŭaj variabloj devas esti agorditaj. ESP-IDF provizas alian skripton, kiu faras tion. En la terminalo, kie vi uzos ESP-IDF, rulu:
. $HOME/esp/esp-idf/export.sh
aŭ por fiŝoj (subtenata nur ekde fiŝversio 3.0.0):
. $HOME/esp/esp-idf/export.fish
Notu la spacon inter la komenca punkto kaj la pado! Se vi planas ofte uzi esp-idf, vi povas krei kaŝnomon por efektivigi export.sh:
1. Kopiu kaj algluu la jenan komandon al via shellns profile (.profile, .bashrc, .zprofile, ktp.)
kaŝnomo get_idf='. $HOME/esp/esp-idf/export.sh' 2. Refreŝigu la agordon per rekomenco de la fina sesio aŭ per ekzekutiĝo de source [pado al profile],
por ekzample, fonto ~/.bashrc. Nun vi povas ruli get_idf por agordi aŭ refreŝigi la esp-idf-medion en iu ajn terminala sesio. Teknike, vi povas aldoni export.sh al via shellns-programo.file rekte; tamen, ĝi ne estas rekomendinda. Fari tion aktivigas la virtualan medion IDF en ĉiu fina sesio (inkluzive de tiuj kie IDF ne estas bezonata), venkante la celon de la virtuala medio kaj verŝajne influante alian programaron.
Paŝo 5. Unuaj Paŝoj pri ESP-IDF Nun, ĉar ĉiuj postuloj estas plenumitaj, la sekva temo gvidos vin pri kiel komenci vian unuan projekton. Ĉi tiu gvidilo helpos vin pri la unuaj paŝoj uzante ESP-IDF. Sekvu ĉi tiun gvidilon por komenci novan projekton pri la ESP32 kaj konstrui, fulmi kaj monitori la aparatan eliron.
Noto: Se vi ankoraŭ ne instalis ESP-IDF, bonvolu iri al Instalo kaj sekvi la instrukciojn por akiri la tutan programaron bezonatan por uzi ĉi tiun gvidilon.

Komencu Projekton Nun vi pretas prepari vian aplikaĵon por ESP32. Vi povas komenci per la projekto getstarted/hello_world de ekz.amples dosierujo en ESP-IDF.

Grave: La konstrusistemo ESP-IDF ne subtenas spacetojn en la padoj al ESP-IDF aŭ al projektoj.

Kopiu la projekton get-started/hello_world al la dosierujo ~/esp:

Esprimaj Sistemoj

38 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
cd ~/esp cp -r $IDF_PATH/ekzamples/get-started/hello_world .
Noto: Ekzistas gamo da ekz.ample projektoj en la eksamples dosierujo en ESP-IDF. Vi povas kopii ajnan projekton en la sama maniero kiel prezentita supre kaj ruli ĝin. Eblas ankaŭ konstrui ekzamples surloke sen unue kopii ilin.
Konekti Vian Aparaton Nun konekti vian ESP32-platon al la komputilo kaj kontroli sub kiu seria pordo la plato estas videbla. Seriaj pordoj havas la jenajn nompadronojn:
· Linukso: komenciĝante per /dev/tty · macOS: komenciĝante per /dev/cu. Se vi ne certas kiel kontroli la nomon de la seria pordo, bonvolu rilati al Establi serian konekton per ESP32 por plenaj detaloj.
Noto: Tenu la havennomon oportuna ĉar vi bezonos ĝin en la sekvaj paŝoj.
Agordu Vian Projekton Navigu al via dosierujo hello_world, agordu ESP32 kiel la celon, kaj lanĉu la projektan agordan ilon menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Post malfermo de nova projekto, vi unue devas agordi la celon per idf.py set-target esp32. Notu, ke ekzistantaj kompilaĵoj kaj agordoj en la projekto, se ekzistas, estos forigitaj kaj inicialigitaj en ĉi tiu procezo. La celo povas esti konservita en la ĉirkaŭa variablo por tute preterlasi ĉi tiun paŝon. Vidu Elektu la Celan Ĉipon: set-target por pliaj informoj. Se la antaŭaj paŝoj estas faritaj ĝuste, la jena menuo aperas:

Fig. 17: Projekta agordo - Hejma fenestro Vi uzas ĉi tiun menuon por agordi projektospecifajn variablojn, ekz. nomon kaj pasvorton de la Wi-Fi-reto, la procesoran rapidon, ktp. Agordi la projekton per menuconfig povas esti preterlasita por hello_worldp, ĉar ĉi tiu ekz.ample kuras kun

Esprimaj Sistemoj

39 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
defaŭlta agordo.
Atentu: Se vi uzas la tabulon ESP32-DevKitC kun la modulo ESP32-SOLO-1, aŭ la tabulon ESP32-DevKitM-1 kun la modulo ESP32-MIN1-1(1U), bonvolu ebligi unu-kernan reĝimon (CONFIG_FREERTOS_UNICORE) en la menuagordo antaŭ ol fulmi ex.amples.
Noto: La koloroj de la menuo povus esti malsamaj en via terminalo. Vi povas ŝanĝi la aspekton per la opcio –style. Bonvolu ruli idf.py menuconfig –help por pliaj informoj.
Se vi uzas unu el la subtenataj programplatoj, vi povas rapidigi vian programplaton per uzado de la Subtena Pakaĵo por Platplatoj. Vidu Pliajn Konsilojn por pliaj informoj.
Krei la Projekton Krei la projekton per la ekzekuto de:
idf.py konstruo
Ĉi tiu komando kompilos la aplikaĵon kaj ĉiujn ESP-IDF-komponentojn, tiam ĝi generos la ekŝargilon, diskpartigan tabelon kaj aplikajn binarojn.
$ idf.py build Rulas cmake en dosierujo /path/to/hello_world/build Rulas “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Avertas pri neinitialigitaj valoroj. — Trovita Git: /usr/bin/git (trovita versio “2.17.0”) — Konstruas malplenan aws_iot-komponenton pro agordo — Komponentaj nomoj: … — Komponentaj vojoj: …
… (pli da linioj de konstrusistemo eligo)
[527/527] Generante hello_world.bin esptool.py v2.3.1
Projekta konstruado kompleta. Por fulmi, lanĉu ĉi tiun komandon: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin aŭ lanĉu 'idf.py -p PORT flash'
Se ne estas eraroj, la konstruo finiĝos per generado de la firmvaro binara .bin files.
Enŝaltu sur la Aparaton Enŝaltu la duumajn dosierojn, kiujn vi ĵus konstruis (bootloader.bin, partition-table.bin kaj hello_world.bin) sur vian ESP32-tabulon per la ekzekuto de:
idf.py -p PORT [-b BAUD] ekbrilas
Anstataŭigu PORT per la seria pordnomo de via ESP32-plato. Vi ankaŭ povas ŝanĝi la baŭdrapidecon de la fulmilo anstataŭigante BAUD per la bezonata baŭdrapideco. La defaŭlta baŭdrapideco estas 460800. Por pliaj informoj pri idf.py-argumentoj, vidu idf.py.
Noto: La opcio `flash` aŭtomate konstruas kaj fulmas la projekton, do lanĉi `idf.py build` ne estas necesa.

Esprimaj Sistemoj

40 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu

Ĉu Problemoj Okazis Dum Fulmado? Se vi ekzekutas la donitan komandon kaj vidas erarojn kiel ekzemple "Malsukcesis konekti", povus esti pluraj kialoj por tio. Unu el la kialoj povus esti problemoj renkontitaj de esptool.py, la ilo vokita de la konstrua sistemo por restarigi la peceton, interagi kun la ROM-startiga programo kaj fulmi la firmvaron. Unu simpla solvo por provi estas mana restarigo priskribita sube, kaj se ĝi ne helpas, vi povas trovi pliajn detalojn pri eblaj problemoj en Solvado de Problemoj.
esptool.py aŭtomate restarigas ESP32 per asertado de DTR kaj RTS-kontrollinioj de la USB-al-seria konvertilo, t.e., FTDI aŭ CP210x (por pliaj informoj, vidu Establi Serian Konekton kun ESP32). La DTR kaj RTS-kontrollinioj estas siavice konektitaj al GPIO0 kaj CHIP_PU (EN) pingloj de ESP32, tiel ŝanĝante la volumenon.tagniveloj de DTR kaj RTS lanĉos ESP32 en reĝimon de elŝuto de firmvaro. Kiel ekzempleampekzemple, kontrolu la skemon por la evoluiga tabulo ESP32 DevKitC.
Ĝenerale, vi ne devus havi problemojn kun la oficialaj evoluigaj platoj de esp-idf. Tamen, esptool.py ne kapablas aŭtomate restarigi vian aparataron en la jenaj kazoj:
· Via aparataro ne havas la DTR kaj RTS liniojn konektitajn al GPIO0 kaj CHIP_PU · La DTR kaj RTS linioj estas agorditaj malsame · Tiaj seriaj stirlinioj tute ne ekzistas
Depende de la speco de aparataro, kiun vi havas, eble ankaŭ eblas permane meti vian ESP32-platon en reĝimon por elŝuto de firmvaro (restarigo).
· Por programplatoj produktitaj de Espressif, ĉi tiu informo troveblas en la respektivaj gvidiloj por komencado aŭ uzantogvidiloj. Ekzempleampekzemple, por permane reagordi ESP-IDF-disvolvan platon, tenu premitan la butonon Start (GPIO0) kaj premu la butonon EN (CHIP_PU).
· Por aliaj specoj de aparataro, provu malŝalti GPIO0.

Normala Funkciado Dum ekbrilado, vi vidos la eligan protokolon similan al la sekva:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Seria pordo /dev/ttyUSB0 Konektante…….._ Ĉipo estas ESP32D0WDQ6 (revizio 0) Trajtoj: WiFi, BT, Duobla Kerno, Koda Skemo Neniu Kristalo estas 40MHz MAC: 24:0a:c4:05:b9:14 Alŝutante stub-memoron… Rulante stub-memoron… Stub-memoro kurante… Ŝanĝante baŭdrapidecon al 460800 Ŝanĝita. Agordante fulmmemoran grandecon... Kunpremis 3072 bajtojn al 103... Skribis je 0x00008000... (100 %) Skribis 3072 bajtojn (103 kunpremite) je 0x00008000 en 0.0 sekundoj (efika 5962.8 kbit/s)... Haŝo de datumoj kontrolita. Kunpremis 26096 bajtojn al 15408... Skribis je 0x00001000... (100 %) Skribis 26096 bajtojn (15408 kunpremite) je 0x00001000 en 0.4 sekundoj (efika 546.7 kbit/s)... Haŝo de datumoj kontrolita. Kunpremis 147104 bajtojn al 77364… Skribante ĉe 0x00010000… (20 %) Skribante ĉe 0x00014000… (40 %) Skribante ĉe 0x00018000… (60 %) Skribante ĉe 0x0001c000… (80 %)
(daŭras sur la sekva paĝo)

Esprimaj Sistemoj

41 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
(daŭrigo de antaŭa paĝo) Skribante je 0x00020000… (100 %) Skribis 147104 bajtojn (77364 kunpremitaj) je 0x00010000 en 1.9 sekundoj (efika 615,5 kbit/s)… Haŝo de datumoj kontrolita.
Forirante... Malmola restarigo per RTS-pinglo... Farita
Se ne estas problemoj antaŭ la fino de la fulmprocezo, la tabulo rekomenciĝos kaj lanĉos la aplikaĵon thehello_worldp. Se vi volas uzi la IDE-on Eclipse aŭ VS Code anstataŭ ruli idf.py, rigardu la kromprogramon Eclipse, la etendon VSCode.
Monitori la Eligon Por kontroli ĉu ohello_world efektive funkcias, tajpu idf.py -p PORT monitor (Ne forgesu anstataŭigi PORT per via seria pordnomo). Ĉi tiu komando lanĉas la aplikaĵon IDF Monitor:
$ idf.py -p monitoro Rulas idf_monitor en dosierujo […]/esp/hello_world/build Rulas “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor ŝaltita 115200 —– Eliri: Ctrl+] | Menuo: Ctrl+T | Helpo: Ctrl+T sekvata de Ctrl+H –ets 8 Jun 2016 00:22:57
rst:0x1 (POWERON_RESET),starto:0x13 (SPI_FAST_FLASH_BOOT) ets 8-a de junio 2016 00:22:57 …
Post kiam la protokoloj pri ekfunkciigo kaj diagnozo ruliĝas supren, vi devus vidi "Saluton mondo!" presitan de la aplikaĵo.
... Saluton, mondo! Rekomenciĝos post 10 sekundoj... Jen esp32-ico kun 2 CPU-kerno(j), WiFi/BT/BLE, silicia revizio 1, 2MB ekstera fulmmemoro Minimuma libera stakograndeco: 298968 bajtoj Rekomenciĝos post 9 sekundoj... Rekomenciĝos post 8 sekundoj... Rekomenciĝos post 7 sekundoj...
Por eliri el IDF-monitoro uzu la mallongigon Ctrl+]. Se IDF-monitoro malsukcesas baldaŭ post la alŝuto, aŭ, se anstataŭ la supre menciitaj mesaĝoj, vi vidas hazardan sentaŭgaĵon similan al tio, kio estas donita sube, via plato verŝajne uzas 26 MHz-kristalon. Plej multaj evoluigaj plato-dezajnoj uzas 40 MHz, do ESP-IDF uzas ĉi tiun frekvencon kiel defaŭltan valoron.

Se vi havas tian problemon, faru la jenon:
1. Eliru el la monitoro. 2. Reiru al la menuo agordo. 3. Iru al Komponenta agordo > Aparataj agordoj > Ĉefa XTAL-agordo > Ĉefa XTAL
frekvencon, poste ŝanĝu CONFIG_XTAL_FREQ_SEL al 26 MHz. 4. Post tio, konstruu kaj fulmu la aplikaĵon denove.

Esprimaj Sistemoj

42 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
En la nuna versio de ESP-IDF, la ĉefaj XTAL-frekvencoj subtenataj de ESP32 estas jenaj:
· 26 MHz · 40 MHz
Noto: Vi povas kombini konstruadon, fulmadon kaj monitoradon en unu paŝon per la komando: idf.py -p PORT flash monitor
Vidu ankaŭ: · IDF Monitor por praktikaj mallongigoj kaj pliaj detaloj pri uzado de IDF-monitor. · idf.py por plena referenco de idf.py-komandoj kaj opcioj.
Jen ĉio, kion vi bezonas por komenci kun ESP32! Nun vi pretas provi iujn aliajn ekzemplojn.amples, aŭ iri rekte al la disvolviĝo de viaj propraj aplikaĵoj.
Grave: Kelkaj el eks-ampDosieroj ne subtenas ESP32 ĉar la bezonata aparataro ne estas inkluzivita en ESP32, do ĝi ne povas esti subtenata. Se vi konstruas ekz-onample, bonvolu kontroli la README-dosieron file por la tabelo Subtenataj Celoj. Se ĉi tio ĉeestas inkluzive de ESP32-celo, aŭ la tabelo tute ne ekzistas, la ekz.ampli funkcios per ESP32.
Pliaj Konsiloj
Permesproblemoj /dev/ttyUSB0 Kun iuj Linuksaj distribuaĵoj, vi eble ricevos la erarmesaĝon "Malsukcesis malfermi pordon /dev/ttyUSB0" dum fulmado de la ESP32. Ĉi tio solveblas per aldono de la nuna uzanto al la eltelefona grupo.
Kongrueco kun Python ESP-IDF subtenas Python 3.7 aŭ pli novan. Estas rekomendinde ĝisdatigi vian operaciumon al lastatempa versio, kiu plenumas ĉi tiun postulon. Aliaj ebloj inkluzivas la instaladon de Python el la fontkodoj aŭ la uzon de Python-versio-administra sistemo kiel pyenv.
Komencu per la Subtena Pakaĵo de Platformaj Platformoj Por rapidigi prototipadon sur iuj evoluigaj platformoj, vi povas uzi Subtenajn Pakaĵojn de Platformaj Platformoj (BSP-oj), kiuj faciligas la inicialigon de specifa platformo kiel kelkaj funkciovokoj. BSP tipe subtenas ĉiujn aparatarajn komponantojn provizitajn sur la evoluiga platformo. Krom la difino de la pineleco kaj inicialigaj funkcioj, BSP liveras pelilojn por la eksteraj komponantoj kiel sensiloj, ekranoj, aŭdaj kodekoj ktp. La BSP-oj estas distribuitaj per IDF Component Manager, do ili troveblas en IDF Component Registry. Jen ekzemplo.ampInstrukcio pri kiel aldoni ESP-WROVER-KIT BSP al via projekto: idf.py add-dependency esp_wrover_kit
Pli ekzampmalpli da BSP-uzado troveblas en BSP-ekz.amples dosierujo.
Konsilo: Ĝisdatigante ESP-IDF Estas rekomendinde ĝisdatigi ESP-IDF de tempo al tempo, ĉar pli novaj versioj korektas cimojn kaj/aŭ provizas novajn funkciojn. Bonvolu noti, ke ĉiu ĉefa kaj malĉefa eldono de ESP-IDF havas asociitan subtenperiodon, kaj kiam unu eldono alproksimiĝas al la fino de sia vivo (EOL), ĉiuj uzantoj estas instigitaj ĝisdatigi siajn projektojn al pli lastatempaj eldonoj de ESP-IDF. Por ekscii pli pri subtenperiodoj, vidu ESP-IDF-Versioj.

Esprimaj Sistemoj

43 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 1. Komencu
La plej simpla maniero fari la ĝisdatigon estas forigi la ekzistantan dosierujon esp-idf kaj kloni ĝin denove, kvazaŭ vi farus la komencan instaladon priskribitan en Paŝo 2. Akiru ESP-IDF. Alia solvo estas ĝisdatigi nur tion, kio ŝanĝiĝis. La ĝisdatiga proceduro dependas de la versio de ESP-IDF, kiun vi uzas. Post ĝisdatigo de ESP-IDF, denove plenumu la Instalan skripton, se la nova ESP-IDF-versio postulas malsamajn versiojn de iloj. Vidu la instrukciojn ĉe Paŝo 3. Agordu la ilojn. Post kiam la novaj iloj estas instalitaj, ĝisdatigu la medion uzante la Eksportan skripton. Vidu la instrukciojn ĉe Paŝo 4. Agordu la mediajn variablojn.
Rilataj Dokumentoj · Establi Serian Konekton kun ESP32 · Eclipse-Kromaĵo · VSCode-Etendaĵo · IDF-Monitoro
1.4 Krei Vian Unuan Projekton
Se vi jam instalis ESP-IDF kaj ne uzas IDE, vi povas konstrui vian unuan projekton per la komandlinio sekvante la komandon "Komenci Projekton" en Vindozo aŭ "Komenci Projekton" en Linukso kaj macOS.
1.5 Malinstali ESP-IDF
Se vi volas forigi ESP-IDF, bonvolu sekvi Malinstali ESP-IDF.

Esprimaj Sistemoj

44 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 2
API-Referenco
2.1 API-Konvencioj
Ĉi tiu dokumento priskribas konvenciojn kaj supozojn komunajn al Aplikaĵaj Programaj Interfacoj (APIoj) de ESP-IDF. ESP-IDF provizas plurajn specojn de programaj interfacoj:
· C-funkcioj, strukturoj, listigoj, tipdifinoj kaj antaŭprocesoraj makrooj deklaritaj en publika kapdosiero files de ESPIDF-komponantoj. Diversaj paĝoj en la sekcio API-referenco de la programa gvidilo enhavas priskribojn de ĉi tiuj funkcioj, strukturoj kaj tipoj.
· Funkcioj de la konstrusistemo, antaŭdifinitaj variabloj kaj opcioj. Ĉi tiuj estas dokumentitaj en la gvidilo pri la konstrusistemo. · Opcioj de Kconfig povas esti uzataj en la kodo kaj en la konstrusistemo (CMakeLists.txt) files. · Gastigantaj iloj kaj iliaj komandliniaj parametroj ankaŭ estas parto de la ESP-IDF-interfaco. ESP-IDF konsistas el komponantoj skribitaj specife por ESP-IDF kaj ankaŭ por triapartaj bibliotekoj. En iuj kazoj, ESP-IDF-specifa envolvaĵo estas aldonita al la triaparta biblioteko, provizante interfacon kiu estas aŭ pli simpla aŭ pli bone integrita kun la ceteraj ESP-IDF-instalaĵoj. En aliaj kazoj, la originala API de la triaparta biblioteko estas prezentita al la aplikaĵaj programistoj. La sekvaj sekcioj klarigas kelkajn aspektojn de ESP-IDF-API-oj kaj ilian uzadon.
2.1.1 Erara pritraktado
Plej multaj ESP-IDF API-oj redonas erarkodojn difinitajn per la tipo esp_err_t. Vidu la sekcion Erartraktado por pliaj informoj pri metodoj por erartraktado. Referenco pri Erarkodoj enhavas liston de erarkodoj redonitaj de ESP-IDF-komponantoj.
2.1.2 Agordaj strukturoj
Grave: Ĝusta inicialigo de konfiguraj strukturoj estas grava parto por igi la aplikaĵon kongrua kun estontaj versioj de ESP-IDF.
Plej multaj inicialigaj aŭ konfiguraj funkcioj en ESP-IDF prenas kiel argumenton montrilon al konfigura strukturo. Ekzempleample:
45

Ĉapitro 2. API-Referenco

konstanto esp_tempigilo_krei_argumentojn_t mia_tempigilo_argumentoj = { .revoko = &mia_tempigilo_revoko, .arg = revoko_argumento, .nomo = “mia_tempigilo”
}; esp_timer_handle_t mia_tempigilo; esp_err_t eraro = esp_timer_krei(&miaj_tempigiloj_argumentoj, &mia_tempigilo);
Inicialigaj funkcioj neniam stokas la montrilon al la konfiguracia strukturo, do estas sekure asigni la strukturon sur la stakon.
La aplikaĵo devas inicialigi ĉiujn kampojn de la strukturo. La sekvanta estas malĝusta:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Malĝuste! Kampoj .arg kaj .name ne estas inicialigitaj */ esp_timer_create(&my_timer_args, &my_timer);
Plej multaj ESP-IDF-eks.ampdosieroj uzas C99-difinitajn inicialigilojn por struktura inicialigo, ĉar ili provizas koncizan manieron agordi subaron de kampoj kaj nul-inicialigi la ceterajn kampojn:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Ĝuste, kampoj .arg kaj .name estas nul-inicialigitaj */
};
La lingvo C++ ne subtenas la difinitan sintakson de inicialigiloj ĝis C++ 20, tamen la kompililo GCC parte subtenas ĝin kiel etendaĵon. Kiam vi uzas ESP-IDF API-ojn en C++ kodo, vi povus konsideri uzi la jenan ŝablonon:
esp_timer_create_args_t my_timer_args = {}; /* Ĉiuj kampoj estas nul-inicialigitaj */ my_timer_args.callback = &my_timer_callback;

Defaŭltaj inicialigiloj
Por iuj konfiguraciaj strukturoj, ESP-IDF provizas makroojn por agordi defaŭltajn valorojn de kampoj:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG etendiĝas al difinita inicialigilo.
Nun ĉiuj kampoj estas agorditaj al la defaŭltaj valoroj. Ĉiu kampo ankoraŭ povas esti modifita: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Estas rekomendinde uzi defaŭltajn inicialigilajn makroojn kiam ajn ili estas provizitaj por specifa konfiguracia strukturo.

2.1.3 Privataj API-oj
Certa titolo files en ESP-IDF enhavas API-ojn celitajn esti uzataj nur en ESP-IDF-fontkodo, kaj ne de la aplikaĵoj. Tia kapdosiero files ofte enhavas private aŭ esp_private en sia nomo aŭ vojo. Certaj komponantoj, kiel ekzemple hal, enhavas nur privatajn API-ojn. Privataj API-oj povas esti forigitaj aŭ ŝanĝitaj laŭ nekongrua maniero inter malgrandaj aŭ flikaĵaj eldonoj.

2.1.4 Komponantoj en ekz.ample projektoj
ESP-IDF eks-ampdosierujoj enhavas diversajn projektojn montrantajn uzadon de ESP-IDF API-oj. Por redukti kodduobligon en la ekzamperoj, kelkaj komunaj helpantoj estas difinitaj ene de komponantoj uzataj de pluraj ekz.amples.

Esprimaj Sistemoj

46 Sendu Dokumentan Religon

Eldono v5.0.9

Ĉapitro 2. API-Referenco
Tio inkluzivas komponantojn situantajn

Dokumentoj/Rimedoj

Espressif Systems ESP32 Dev Kitc Evoluiga Tabulo [pdf] Uzantogvidilo
ESP32 Dev Kitc Evoluiga Tabulo, ESP32, Dev Kitc Evoluiga Tabulo, Kitt Evoluiga Tabulo, Evoluiga Tabulo, Tabulo

Referencoj

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas markitaj *