Komisyon Konsèy Devlopman ESP32 Dev Kitc
Enfòmasyon sou pwodwi
Espesifikasyon
- Pwodwi: ESP32
- Gid Pwogramasyon: ESP-IDF
- Vèsyon lage: v5.0.9
- Manifakti: Espressif Systems
- Dat lage: 16 me 2025
Enstriksyon Itilizasyon Pwodwi
1. Kòmanse
Anvan ou kòmanse ak ESP32 a, familyarize w avèk...
sa ki annapre yo:
1.1 Entwodiksyon
Aprann plis sou fonksyonalite ak kapasite debaz yo nan
ESP32.
1.2 Sa w bezwen
Asire w ou gen tout pyès ki nan konpitè ak lojisyèl ki nesesè yo:
- Materyèl: Tcheke lis pyès ki nan konpitè ki nesesè yo
konpozan. - Lojisyèl: Enstale lojisyèl ki nesesè a
konpozan.
1.3 Enstalasyon
Swiv etap sa yo pou enstale IDE a epi konfigire
anviwònman:
- IDE: Enstale IDE rekòmande a pou
pwogramasyon ESP32 la. - Enstalasyon manyèl: Konfigire manyèlman
anviwònman si sa nesesè.
1.4 Bati Premye Pwojè Ou a
Kreye epi konstwi pwojè inisyal ou a lè l sèvi avèk ESP32 la.
1.5 Dezenstale ESP-IDF
Si sa nesesè, aprann kijan pou dezenstale ESP-IDF la nan òdinatè w la.
sistèm.
2. Referans API
Gade dokimantasyon API a pou jwenn enfòmasyon detaye sou
pwotokòl aplikasyon, jesyon erè, ak konfigirasyon
estrikti.
Kesyon yo poze souvan (FAQ)
K: Kijan mwen ka rezoud pwoblèm komen ak ESP32?
A: Gade seksyon depanaj nan gid pwogramasyon an.
oswa vizite manifakti a websit pou resous sipò.
K: Èske mwen ka itilize ESP-IDF ak lòt mikrokontwolè?
A: ESP-IDF fèt espesyalman pou ESP32, men ou ka jwenn
konpatibilite ak lòt mikrokontwolè Espressif yo.
ESP32
Gid pou pwogram ESP-IDF
Vèsyon v5.0.9 Sistèm Espressif 16 Me 2025
Table of contents
Table of contents
i
1 Kòmanse
3
1.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Sa ou bezwen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Materyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Lojisyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Enstalasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Enstalasyon Manyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Bati Premye Pwojè ou a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Dezenstale ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 Referans API
45
2.1 Konvansyon API yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Jesyon erè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Estrikti konfigirasyon yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 API prive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Konpozan nan examppwojè yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 Estabilite API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Pwotokòl Aplikasyon yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO pò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 Kliyan ESP HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 Kontwòl Lokal ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 Lyen Esklav Seri ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 Pakè Sètifika ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 Sèvè HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 Sèvè HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 Eko ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 Sèvis mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 Kouch Rezo IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 API Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Komen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® Konsomasyon ki ba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Klasik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Kontwolè ak HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 API lame ki baze sou NimBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Referans Kòd Erè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 API rezo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Etènèt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Fil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Kouch Rezo IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Kouch Aplikasyon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API Periferik yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Konvètisè Analòg-Dijital (ADC) Chofè Mòd Oneshot. . . . . . . . . . . . . . . . . 977 2.6.2 Konvètisè Analòg-Dijital (ADC) Chofè Mòd Kontinyèl. . . . . . . . . . . . . . . 986 2.6.3 Chofè Kalibrasyon Konvètisè Analòg-Dijital (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 Pye bwa revèy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Konvètisè Dijital-Analòg (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO ak RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Revèy pou Itilizasyon Jeneral (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Sikwi Entè-Entegre (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Son Entè-IC (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Kontwòl LED (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Modilatè Lajè Pulsasyon Kontwòl Motè (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Kontè pulsasyon (PCNT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Transceiver Kontwòl a Distans (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Egzijans pou rale pye SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 Chofè lame SDMMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 Chofè lame SD SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Chofè esklav kat SDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Modilasyon Sigma-Delta (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Chofè prensipal SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 Chofè esklav SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Eleman Sekirite). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Capteur taktil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Entèfas otomobil de fil (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Reseptè/Transmetè Asynchrone Inivèsèl (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Konfigirasyon Pwojè a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Meni Konfigirasyon Pwojè a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Itilizasyon sdkconfig.defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Règ fòma Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Konpatibilite an aryè vèsyon pou opsyon Kconfig yo. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referans Opsyon Konfigirasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 API pou pwovizyonman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Pwotokòl Kominikasyon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Pwovizyonman Inifye. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Pwovizyon Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API Depo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileSipò sistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Itilite Fabrikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Bibliyotèk Depo ki pa volatil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Itilite Jènè Patisyon NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Chofè SD/SDIO/MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 API Flash SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... ... ... ... ... 1744 2.9.7 SPIFFS Filesistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Vityèl filekonpozan sistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API pou nivelman mete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 API Sistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Fòma Imaj Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Tras Nivo Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Fonksyon apèl ak pil ekstèn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Revizyon Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Manadjè eFuse . . . . . . . . . ... 1826 2.10.7 Kòd Erè ak Fonksyon Èd ... 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Bibliyotèk Bouk Evènman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Plis paseview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Karakteristik Siplemantè) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Alokasyon Memwa Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Debogaj Memwa Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Revèy Segondè Rezolisyon (REVÈY ESP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 API Entèn ak Enstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Apèl Entè-Procesè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Alokasyon Entèripsyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Bibliyotèk anrejistreman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 API Sistèm Divès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Mizajou Sou Lè a (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Monitè Pèfòmans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Jesyon Enèji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Sipò Fil POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Jenerasyon Nonb Aleatwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Mòd Dòmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Kapasite SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Tan Sistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API alokasyon himem nan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 Pwogramasyon koprocesè ULP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Chen gad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Referans Materyèl
2167
3.1 Konparezon Seri Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Dokiman ki gen rapò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 Gid API
2171
4.1 Bibliyotèk Tras Nivo Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Mòd Operasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Opsyon Konfigirasyon ak Depandans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Kijan Pou Itilize Bibliyotèk sa a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Pwosesis Demaraj Aplikasyon an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Premye stagbootloader la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 Dezyèm stagbootloader la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Demaraj aplikasyon an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Klasik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® Konsomasyon ki ba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Kòmanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Charjeur demaraj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Konpatibilite bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Nivo Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Reyajiste nan paramèt faktori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Demaraj apati firmwèr tès la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Anilasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Chen siveyans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Gwosè Bootloader la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Demaraj rapid apati de Dòmi Pwofon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Chargeur demaraj pèsonalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Sistèm Konstriksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Itilizasyon Sistèm Konstriksyon an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 EgzampPwojè a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Pwojè CMakeLists File ... 2291 4.6.5 Konpozan CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Konfigirasyon Konpozan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Definisyon Preprocesè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Egzijans Konpozan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Anile Pati nan Pwojè a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Konpozan Konfigirasyon Sèlman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Debogaj CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 EgzanpampKonpozan CMakeLists yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Valè defo sdkconfig pèsonalize yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Agiman Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Konstwi Bootloader la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Ekri Konpozan CMake Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Itilize Pwojè CMake Twazyèm Pati ak Konpozan . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Itilize Bibliyotèk Prekonstwi ak Konpozan . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Itilizasyon ESP-IDF nan Pwojè CMake Pèsonalize . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 API Sistèm Konstriksyon ESP-IDF CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Konstriksyon Glob ak Ogmantasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Metadone Sistèm Konstriksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Konstriksyon Entèn Sistèm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migrasyon soti nan ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Plis paseview ... 2316 4.7.2 Konfigirasyon ... 2317 4.7.3 Sove kopi memwa (core dump) nan memwa flash ... . . . . . . . . . 2317 4.7.4 Enprime memory dump sou UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Fonksyon ROM nan Backtraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Dumping varyab sou demann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Ap egzekite espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Souch reveye dòmi pwofon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Règ pou Souch Reveye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Aplikasyon yon Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Chaje Kòd nan Memwa RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Chaje Done nan Memwa RTC . . . . . . . . . . . . . . ... 2323 4.8.5 CRC Verifikasyon Pou Souch Reveye ... 2323 4.8.6 Egzanpampla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Jesyon Erè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Plis paseview ... 2324 4.9.2 Kòd erè ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Konvèti kòd erè an mesaj erè ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 Makro ESP_ERROR_CHECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 Makro ESP_ERROR_CHECK_WITHOUT_ABORT . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Makro ESP_RETURN_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Makro ESP_GOTO_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Makro ESP_RETURN_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Makro ESP_GOTO_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 VERIFYE MAKRO Egzanpamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Modèl pou jere erè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 Eksepsyon C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Plis paseview ... ... . . . . . . . . . . 2329 4.10.4 Konstwi yon Rezo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Jere yon Rezo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Transmisyon Done . . . . . . . . . . . . . . . . . ... 2342 4.10.7 Chanjman Chèn ... 2344
iv
4.10.8 Pèfòmans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Lòt Nòt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Jesyon Evènman . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2349 4.11.3 Evènman Bluetooth ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2350 4.12.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Sistèm Jesyon Panik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Dump Rejis ak Backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 Souch GDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Delè siveyans RTC a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Erè Meditasyon Guru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Lòt Erè Fatal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Chifreman Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 eFus ki enpòtan yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Pwosesis chifreman Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfigirasyon chifreman Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Erè Posib yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Estati chifreman Flash ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Lekti ak Ekriti Done nan Flash Chifre. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Mizajou Flash chifre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Dezaktive chifreman Flash la. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Pwen kle konsènan chifreman Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Limitasyon chifreman Flash yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Chifman Flash ak Demaraj Sekirize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Fonksyonalite Avanse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Detay teknik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraksyon Materyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Achitekti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 Kouch LL (Nivo Ba). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Kouch Abstraksyon Materyèl). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Entèripsyon Nivo Siperyè. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Nivo Entèripsyon yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Nòt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Debogaj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Kijan li fonksyone? . . . . . . . . . . . . . . . . . . . . . . ... 2379 4.16.3 Chwazi JTAG Adaptè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Enstalasyon OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Konfigirasyon Sib ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Lanse Debogè a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Debogaj Egzanpamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Konstwi OpenOCD apati Sous yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Konsèy ak Ti Detay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Dokiman ki gen rapò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Jenerasyon Script Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Demaraj rapid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Entèn jenerasyon script lyen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 API ki sipòte yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 API Sockets BSD . . . . . ... ... . . . . 2435 4.18.5 Sipò IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip modifikasyon pèsonalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Optimizasyon Pèfòmans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Kalite Memwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (Memory Done) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Memory Enstriksyon) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kòd egzekite depi memwa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (done ki estoke nan memwa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Memwa ralanti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 RTC Memwa RAPID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Egzijans ki Kapab DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Tanpon DMA nan pil la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Mòd pil OpenThread la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Kijan pou ekri yon aplikasyon OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Routeur fwontyè OpenThread la . . . . . . . . . . . ... ... 2444 4.21.1 Plis paseview ... 2445 4.21.2 Tablo Patisyon Entegre ... 2445 4.21.3 Kreye Tablo Pèsonalize ... . . . . . . . 2445 4.21.4 Jenere Tablo Patisyon Binè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Verifikasyon Gwosè Patisyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Flache tablo patisyon an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Zouti Patisyon (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Pèfòmans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Kijan pou Optimize Pèfòmans . . . . . . . . . . . . . . ... 2450 4.22.2 Gid ... 2451 4.23 Kalibrasyon RF ... 2468 4.23.1 Kalibrasyon pasyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Kalibrasyon konplè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Pa gen kalibrasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 Done inisyalizasyon PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Referans API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Demaraj an sekirite . . . . . . . . . . . . ... 2472 4.24.1 Kontèks ... 2472 4.24.2 Pwosesis Demaraj An Sekirizeview ... ... . . . . . . . . 2474 4.24.5 Kijan Pou Aktive Demaraj An Sekirite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Charjeur Demaraj Lojisyèl Re-Flashable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Jenere Kle Siyati Demaraj An Sekirite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Siyati imaj a distans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Pi bon pratik pou demaraj an sekirite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Detay teknik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Demaraj An Sekirite ak Chifman Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Verifikasyon Aplikasyon Siyen San Demaraj An Sekirite Materyèl . . . . . . . . . . . . . . . . . . 2478 4.24.13 Fonksyonalite Avanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Demaraj an sekirite V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Istorik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Avansetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Pwosesis Demaraj An Sekirize V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Fòma Blòk Siyati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Rembourraj An sekirite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Verifye yon blòk siyati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Verifye yon imaj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Gwosè Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Itilizasyon eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Kijan Pou Aktive Secure Boot V2. ... 2481 4.25.11 Restriksyon apre Secure Boot aktive ... 2482 4.25.12 Jenere Kle Siyati Secure Boot ... 2482
vi
4.25.13 Siyati Imaj a Distans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Pi Bon Pratik pou Demaraj An Sekirize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Detay Teknik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Demaraj An Sekirite ak Chifman Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Verifikasyon Aplikasyon Siyen San Demaraj An Sekirite Materyèl . . . . . . . . . . . . . . . . . . 2484 4.25.18 Fonksyonalite Avanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Sipò pou RAM Ekstèn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Materyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Konfigirasyon RAM Ekstèn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Restriksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Echèk pou inisyalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Revizyon Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Depo Lokal Fil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Plis paseview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Imaj Docker IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 Enstalatè Windows IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Manadjè Konpozan IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Zouti Telechajab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Tès Inite nan ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Ka Tès Nòmal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Ka Tès Plizyè-aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Plizyè-stage Ka Tès yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Tès pou diferan sib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Konstriksyon Aplikasyon Tès Inite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Egzekite Tès Inite yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Kòd Tan ak Revèy Konpansasyon Kach. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Moks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Tès inite sou Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Tès lojisyèl entegre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Tès inite IDF sou òdinatè Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Chofè Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Lis karakteristik Wi-Fi ESP32 yo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Kijan Pou Ekri yon Aplikasyon Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kòd Erè API Wi-Fi ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inisyalizasyon Paramèt API Wi-Fi ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 Modèl Pwogramasyon Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Deskripsyon Evènman Wi-Fi ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Senaryo Jeneral Estasyon Wi-Fi ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Senaryo Jeneral ESP32 Wi-Fi AP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 Eskane Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Senaryo Koneksyon Estasyon Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Estasyon Wi-Fi ESP32 ap konekte lè yo jwenn plizyè pwen aksè. . . . . . . . . . . . . 2543 4.31.12 Rekoneksyon Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Delè pou baliz Wi-Fi a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Konfigirasyon Wi-Fi ESP32 la. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Jesyon Rezo San Fil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Mezi Resous Radyo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Tranzisyon BSS rapid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 Mòd ekonomize enèji ESP32 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Debi Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Voye Pakè Wi-Fi 80211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Mòd Renifle Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Antèn Plizyè Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Enfòmasyon sou Eta Chanèl Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Enfòmasyon sou Eta Chanèl Wi-Fi Konfigire . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Fragman Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 Moun ki enskri nan WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Itilizasyon Tampon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Kijan pou amelyore pèfòmans Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Konfigirasyon meni Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Depanaj . . . . . . . . . . ... ... 2568 4.32.2 Ankadreman Jesyon Pwoteje (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Antrepriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Pèsonèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 Koeksistans RF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Plis paseview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Senaryo Koeksistans Sipòte pou ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mekanis ak Politik Koeksistans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Kijan pou itilize karakteristik Koeksistans lan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Konstriksyon ki ka repwodui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Rezon pou konstriksyon ki pa reproduzib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Aktive konstriksyon ki ka reproduzib nan ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Kijan yo reyalize konstriksyon ki ka reproduzib . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Konstriksyon ak debogaj ki ka repwodui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktè ki toujou afekte konstriksyon ki ka repwodui yo . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Gid Itilizatè Mòd Ba Konsomasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Gid Migrasyon
2579
5.1 Gid Migrasyon ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Migrasyon soti nan 4.4 pou rive nan 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Bibliyotèk ak Kad
2611
6.1 Kad Cloud yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Nwayo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Kad Espresyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Kad Devlopman Odyo Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Bibliyotèk DSP Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 Kad Devlopman ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-OMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 Solisyon ESP-IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 Pwotokòl ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
Gid pou 7 Kontribisyon
2615
7.1 Kijan pou kontribye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Anvan ou Kontribye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Pwosesis Demann pou rale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Pati Legal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Dokiman ki gen rapò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Gid Stil Kad Devlopman Espressif IoT . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Enstale Hook pre-commit pou Pwojè ESP-IDF la . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Dokimantasyon Kòd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Kreye Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 Modèl Dokimantasyon API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Akò Kontribitè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Gid pou Antèt Dwa Otè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 Tès ESP-IDF ak Gid Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 Vèsyon ESP-IDF
2645
8.1 Vèsyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Avèk ki vèsyon mwen ta dwe kòmanse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Plan Vèsyonaj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Peryòd Sipò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Tcheke Vèsyon Aktyèl la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Workflow Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 Mizajou ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Mizajou nan yon vèsyon ki estab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Mizajou nan yon vèsyon pre-lage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Mizajou nan Branch Mèt la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Mizajou nan yon Branch Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Resous
2651
9.1 PlatfòmIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Kisa PlatformIO ye? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Enstalasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfigirasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Leson patikilye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Pwojè Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Pwochen Etap yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Lyen itil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Dwa Otè ak Lisans
2653
10.1 Dwa otè lojisyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Konpozan Firmwèr yo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokimantasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 Dwa Otè Kòd Sous ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT Lisans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 Lisans MIT TinyBasic Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 Lisans TJpgDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Konsènan
2657
12 Chanje ant lang yo
2659
Endèks
2661
Endèks
2661
ix
x
Table of contents
Sa a se dokimantasyon pou Espressif IoT Development Framework (esp-idf). ESP-IDF se kad devlopman ofisyèl pou SoC seri ESP32, ESP32-S ak ESP32-C yo. Dokiman sa a dekri itilizasyon ESP-IDF ak SoC ESP32 la.
Kòmanse
Referans API
Gid API yo
Sistèm Espressif
1 Soumèt Dokiman Kòmantè
Lage v5.0.9
Table of contents
Sistèm Espressif
2 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1
Kòmanse
Dokiman sa a gen entansyon ede w konfigire anviwònman devlopman lojisyèl pou pyès ki nan konpitè ki baze sou chip ESP32 Espressif la. Apre sa, yon egzanp senpampNou pral montre w kouman pou itilize ESP-IDF (Espressif IoT Development Framework) pou konfigirasyon meni, answit pou konstwi epi enstale firmwèr sou yon kat ESP32.
Nòt: Sa a se dokimantasyon pou vèsyon ki estab v5.0.9 ESP-IDF la. Gen lòt vèsyon ESP-IDF ki disponib tou.
1.1 Entwodiksyon
ESP32 se yon sistèm sou yon chip ki entegre karakteristik sa yo: · Wi-Fi (band 2.4 GHz) · Bluetooth · Doub nwayo CPU Xtensa® 32-bit LX6 pèfòmans segondè · Ko-procesè Ultra Low Power · Plizyè periferik
Avèk teknoloji 40 nm, ESP32 bay yon platfòm solid ak trè entegre, ki ede satisfè demand kontinyèl yo pou itilizasyon efikas enèji, konsepsyon kontra enfòmèl ant, sekirite, pèfòmans segondè, ak fyab. Espressif bay resous pyès ki nan konpitè ak lojisyèl debaz pou ede devlopè aplikasyon yo reyalize lide yo lè l sèvi avèk pyès ki nan konpitè seri ESP32 la. Kad devlopman lojisyèl Espressif la fèt pou devlopman aplikasyon Entènèt Obje yo (IoT) ak Wi-Fi, Bluetooth, jesyon enèji ak plizyè lòt karakteristik sistèm.
1.2 Sa w bezwen
1.2.1 Materyèl
· Yon kat ESP32. · Kab USB – USB A / mikwo USB B. · Odinatè k ap fonksyone ak Windows, Linux, oubyen macOS.
Nòt: Kounye a, kèk nan kat devlopman yo ap itilize konektè USB Kalite C. Asire w ou gen kab ki kòrèk la pou konekte kat ou a!
Si ou gen youn nan kat devlopman ofisyèl ESP32 ki nan lis anba a, ou ka klike sou lyen an pou aprann plis bagay sou pyès ki nan konpitè a.
3
Chapit 1. Kòmanse
ESP32-DevKitS(-R)
Gid itilizatè sa a bay enfòmasyon sou ESP32-DevKitS(-R), yon kat flache ki baze sou ESP32 ki pwodui pa Espressif. ESP32-DevKitS(-R) se yon konbinezon de de non kat: ESP32-DevKitS ak ESP32-DevKitS-R. S vle di springs (sòrs), epi R vle di WROVER (WROVER).
ESP32-DevTrous
ESP32-DevKitS-R
Dokiman an gen seksyon prensipal sa yo: · Pou kòmanse: Bay yon lisview enstriksyon konfigirasyon ESP32-DevKitS(-R) ak pyès ki nan konpitè/lojisyèl pou kòmanse. · Referans Materyèl: Bay plis enfòmasyon detaye sou pyès ki nan konpitè ESP32-DevKitS(-R)ns yo. · Dokiman ki gen rapò: Bay lyen pou dokiman ki gen rapò.
Pou Kòmanse Seksyon sa a dekri kijan pou kòmanse avèk ESP32-DevKitS(-R). Li kòmanse avèk kèk seksyon entwodiksyon sou ESP32-DevKitS(-R), answit Seksyon Kijan pou Flashe yon Kat bay enstriksyon sou kijan pou monte yon modil sou ESP32-DevKitS(-R), prepare li, epi flashe firmwèr la sou li.
Plis paseview ESP32-DevKitS(-R) se yon kat devlopman Espressifns ki fèt espesyalman pou ESP32. Li ka itilize pou flashe yon modil ESP32 san soude modil la sou ekipman pou pouvwa a ak liy siyal yo. Avèk yon modil monte, ESP32-DevKitS(-R) kapab tou itilize kòm yon mini kat devlopman tankou ESP32-DevKitC.
Kat ESP32-DevKitS ak ESP32-DevKitS-R yo varye sèlman nan aranjman broch prentan yo pou anfòm ak modil ESP32 sa yo.
· Twous Devlopman ESP32: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB ak IPEX) ESP32-WROVER-B (PCB ak IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Pou plis enfòmasyon sou modil ki anwo yo, tanpri al gade Modil Seri ESP32 yo.
Deskripsyon nan eleman yo
Sistèm Espressif
4 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 1: ESP32-DevKitS – devan
Sistèm Espressif
Fig. 2: ESP32-DevKitS-R – devan 5
Soumèt Feedback Dokiman an
Lage v5.0.9
Chapit 1. Kòmanse
Konpozan kle: Pin prentan 2.54 mm, tèt fi
Pon USB-a-UART Konektè LDO Mikwo-USB/Pò Mikwo USB Bouton EN Bouton Demaraj
Pouvwa sou ki ap dirije
Deskripsyon Klike modil la anndan. Broch yo ap anfòm nan twou krenel modil la. Header fi sa yo konekte ak broch modil ki monte sou tablo sa a. Pou deskripsyon header fi yo, tanpri al gade Blòk Header yo. Pon USB monochip pou UART la bay vitès transfè jiska 3 Mbps.
Volim 5V rive 3.3V ki pa pèdi anpil vòltajtagregilatè e (LDO).
Entèfas USB. Alimantasyon pou tablo a ansanm ak koòdone kominikasyon ant yon òdinatè ak tablo a.
Bouton Reyajiste.
Bouton Telechaje. Kenbe bouton Boot la peze epi peze EN lanse mòd Telechaje Firmwèr la pou telechaje firmwèr la atravè pò seri a.
Li limen lè USB a oswa ekipman pou pouvwa a konekte ak tablo a.
Kijan pou flashe yon kat Anvan ou limen ESP32-DevKitS(-R) ou a, tanpri asire w ke li an bon kondisyon epi li pa gen okenn siy domaj aparan.
Materyèl ki nesesè · Yon modil ESP32 ou chwazi · Kab USB 2.0 (Standard-A rive Micro-B) · Odinatè k ap fonksyone ak Windows, Linux, oubyen macOS
Enstalasyon Materyèl Tanpri monte yon modil ou chwazi sou ESP32-DevKitS(-R) ou a dapre etap sa yo:
· Mete modil ou a dousman sou kat ESP32-DevKitS(-R) la. Asire w ke twou krenel ki sou modil ou a aliyen ak peny resò ki sou kat la.
· Peze modil ou a desann nan tablo a jiskaske li fè yon klik. · Tcheke si tout peny prentan yo antre nan twou krene yo. Si gen kèk peny prentan ki mal aliyen,
Mete yo nan twou krenel ak yon pensèt.
Enstalasyon lojisyèl
Metòd Preferansyèl Kad devlopman ESP-IDF la bay yon fason prefere pou flache binè sou ESP32-DevKitS(-R). Tanpri ale nan Kòmanse, kote Seksyon Enstalasyon an pral ede w byen vit konfigire anviwònman devlopman an epi answit flache yon egzanp aplikasyon.ample sou ESP32-DevKitS(-R) ou a.
Metòd Altènatif Kòm yon altènatif, itilizatè Windows yo ka flashe binè yo lè l sèvi avèk Zouti Telechaje Flash la. Jis telechaje li, dekonprese li, epi swiv enstriksyon ki andedan dosye doc la.
Nòt: 1. Pou flashe binè a files, ESP32 a ta dwe mete sou mòd Telechajman Firmwèr. Ou ka fè sa swa otomatikman avèk zouti flash la, oswa lè w kenbe bouton Boot la epi w tape bouton EN an. 2. Apre w fin flashe binè a files, Zouti Telechaje Flash la rekòmanse modil ESP32 ou a epi li demarre aplikasyon flashe a pa default.
Dimansyon tablo a Kontni ak anbalaj
Sistèm Espressif
6 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse Fig. 3: Dimansyon kat ESP32-DevKitS la – dèyè
Sistèm Espressif
Fig. 4: Dimansyon kat ESP32-DevKitS-R la – dèyè 7
Soumèt Feedback Dokiman an
Lage v5.0.9
Chapit 1. Kòmanse
Kòmand an detay Si ou kòmande kèkampChak ESP32-DevKitS(-R) vini nan yon pake endividyèl swa nan yon sache antistatik oswa nan nenpòt anbalaj selon détayan an. Pou kòmand an detay, tanpri ale sou https://www.espressif.com/en/contact-us/get-samples.
Kòmand an gwo Si ou kòmande an gwo, tablo yo vini nan gwo bwat katon. Pou kòmand an gwo, tanpri ale sou https://www.espressif.com/en/contact-us/sales-questions.
Referans Materyèl
Dyagram Blòk Yon dyagram blòk anba a montre konpozan ESP32-DevKitS(-R) yo ak koneksyon yo.
Fig. 5: ESP32-DevKitS(-R) (klike pou agrandi)
Opsyon Alimantasyon Gen twa fason ki mityèlman eksklizif pou bay tablo a pouvwa: · Pò mikwo USB, ekipman pou pouvwa pa defo · Broch header 5V ak GND · Broch header 3V3 ak GND
Li rekòmande pou itilize premye opsyon an: pò mikwo USB a.
Sistèm Espressif
.
Siyal Etikèt
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP CAPTEUR_VP
L4 VN CAPTÈ_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
kontinye sou pwochen paj la
8 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Tablo 1 kontinye nan paj anvan an
.
Siyal Etikèt
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
Ekstèn 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_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
Blòk Antèt yo Pou imaj blòk antèt yo, tanpri al gade Deskripsyon Konpozan yo.
Dokiman ki gen rapò
· Schematik ESP32-DevKitS(-R) (PDF) · Fich Done ESP32 (PDF) · Fich Done ESP32-WROOM-32 (PDF) · Fich Done ESP32-WROOM-32D & ESP32-WROOM-32U (PDF) · Fich Done ESP32-SOLO-1 (PDF) · Fich Done ESP32-WROVER (PDF) · Fich Done ESP32-WROVER-B (PDF) · Selektè Pwodui ESP
ESP32-DevKitM-1
Gid itilizatè sa a ap ede ou kòmanse avèk ESP32-DevKitM-1 epi li pral ba ou plis enfòmasyon detaye tou.
ESP32-DevKitM-1 se yon kat devlopman ki baze sou ESP32-MINI-1(1U) ki pwodui pa Espressif. Pifò nan broch I/O yo dekonekte nan tèt broch yo sou tou de bò pou fasilite koneksyon. Itilizatè yo ka swa konekte periferik yo ak fil jumper oswa monte ESP32-DevKitM-1 sou yon breadboard.
Sistèm Espressif
9 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
ESP32-DevKitM-1 – devan
ESP32-DevKitM-1 – izometrik
Dokiman an gen seksyon prensipal sa yo: · Pou kòmanse: Bay yon lisview enstriksyon konfigirasyon ESP32-DevKitM-1 ak pyès ki nan konpitè/lojisyèl pou kòmanse. · Referans pyès ki nan konpitè: Bay plis enfòmasyon detaye sou pyès ki nan konpitè ESP32-DevKitM-1ns lan. · Dokiman ki gen rapò: Bay lyen pou dokiman ki gen rapò.
Pou Kòmanse Seksyon sa a dekri kijan pou kòmanse avèk ESP32-DevKitM-1. Li kòmanse avèk kèk seksyon entwodiksyon sou ESP32-DevKitM-1 la, answit Seksyon Kòmanse Devlopman Aplikasyon an bay enstriksyon sou kijan pou fè konfigirasyon inisyal pyès ki nan konpitè a epi answit kijan pou flashe firmwèr la sou ESP32-DevKitM-1 la.
Plis paseview Sa a se yon tablo devlopman ti ak pratik ki prezante:
· Modil ESP32-MINI-1, oubyen ESP32-MINI-1U · Entèfas pwogramasyon USB-a-seri ki bay tou pouvwa pou tablo a · Konektè pin · Bouton pouse pou Reyajiste ak aktivasyon mòd Telechajman Firmwèr · Kèk lòt konpozan
Kontni ak anbalaj
Kòmand an detay Si ou kòmande kèkampAnfèt, chak ESP32-DevKitM-1 vini nan yon pake endividyèl swa nan yon sache antistatik oswa nan nenpòt anbalaj selon machann ou an.
Pou kòmand an detay, tanpri ale sou https://www.espressif.com/en/contact-us/get-samples.
Kòmand an gwo Si ou kòmande an gwo, tablo yo vini nan gwo bwat katon. Pou kòmand an gwo, tanpri ale sou https://www.espressif.com/en/contact-us/sales-questions.
Deskripsyon Konpozan yo Figi sa a ak tablo ki anba a dekri konpozan kle yo, koòdone yo ak kontwòl kat ESP32-DevKitM-1 la. Nou pran kat la ak yon modil ESP32-MINI-1 kòm yon egzanp.ample nan seksyon sa yo.
Sistèm Espressif
10 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 6: ESP32-DevKitM-1 – devan
Modil entegre eleman kle
Bouton bòt LDO 5 V a 3.3 V
Bouton Reyajisteman Pò Mikwo-USB
Pon USB-a-UART 3.3 V LED pou pouvwa sou
I/O Connector
Deskripsyon
Modil ESP32-MINI-1 oubyen modil ESP32-MINI-1U. ESP32-MINI-1 vini ak yon antèn PCB entegre. ESP32-MINI-1U vini ak yon konektè antèn ekstèn. Tou de modil yo gen yon memwa flash 4 MB nan pake chip la. Pou plis detay, tanpri gade Fich Done ESP32-MINI-1 & ESP32-MINI-1U a.
Regilatè pouvwa konvèti 5 V nan 3.3 V.
Bouton Telechaje. Kenbe bouton Boot la peze epi peze Reyajiste lanse mòd Telechajman Firmwèr la pou telechaje firmwèr la atravè pò seri a.
Bouton Reyajiste
USB koòdone. Ekipman pouvwa pou tablo a ak koòdone kominikasyon ant yon òdinatè ak chip ESP32 la.
Single chip USB-UART pon bay pousantaj transfè jiska 3 Mbps.
Li limen lè USB a konekte ak kat la. Pou plis detay, tanpri gade chema yo nan Dokiman ki gen rapò yo. Tout broch GPIO ki disponib yo (eksepte pou bus SPI a pou flash) yo separe nan tèt broch yo sou kat la. Itilizatè yo ka pwograme chip ESP32 la pou aktive plizyè fonksyon.
Kòmanse Devlopman Aplikasyon an Anvan ou limen ESP32-DevKitM-1 ou a, tanpri asire w ke li an bon kondisyon epi li pa gen okenn siy domaj aparan.
Materyèl ki nesesè · ESP32-DevKitM-1 · Kab USB 2.0 (Standard-A pou rive nan Micro-B) · Odinatè k ap fonksyone ak Windows, Linux, oubyen macOS
Enstalasyon Lojisyèl Tanpri ale nan Kòmanse, kote Seksyon Enstalasyon an pral ede w byen vit konfigire anviwònman devlopman an epi answit flashe yon egzanp aplikasyon.ample sou ESP32-DevKitM-1 ou.
Sistèm Espressif
11 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Atansyon: Kat ESP32-DevKitM-1 ki te fabrike anvan 2 desanm 2021 yo gen yon modil yon sèl nwayo enstale. Pou verifye ki modil ou genyen, tanpri tcheke enfòmasyon sou mak modil yo nan PCN-2021-021. Si kat ou a gen yon modil yon sèl nwayo enstale, tanpri aktive mòd yon sèl nwayo (CONFIG_FREERTOS_UNICORE) nan menuconfig anvan ou flache aplikasyon ou yo.
Dyagram Blòk Referans Materyèl Yon dyagram blòk anba a montre konpozan ESP32-DevKitM-1 yo ak koneksyon yo.
Fig. 7: ESP32-DevKitM-1
Seleksyon Sous Alimantasyon Gen twa fason ki mityèlman eksklizif pou bay tablo a pouvwa: · Pò mikwo USB, ekipman pou pouvwa pa defo · Broch header 5V ak GND · Broch header 3V3 ak GND
Avètisman: · Se sèlman youn nan opsyon ki anwo yo ki dwe bay ekipman pou kouran an, sinon tablo a ak/oswa sous ekipman pou kouran an ka domaje. · Li rekòmande pou itilize yon pò mikwo USB pou bay kouran an.
Deskripsyon Broch Tablo ki anba a bay Non ak Fonksyon Broch yo sou tou de bò tablo a. Pou konfigirasyon broch periferik yo, tanpri al gade Fèy Done ESP32 la.
Non.
Non
Kalite
1
GND
P
2
3V3
P
Fonksyon Tè 3.3 V ekipman pou pouvwa
kontinye sou pwochen paj la
Sistèm Espressif
12 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Tablo 2 kontinye nan paj anvan an
Non.
Non
Kalite
Fonksyon
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
Reyajiste; Segondè: pèmèt; Low: pouvwa koupe
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
I/O
GPIO32, XTAL_32K_P (antre osilatè kristal 32.768 kHz),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (32.768 kHz pwodiksyon osilator kristal),
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 ekipman pou pouvwa
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
Detay sou Revizyon Materyèl Pa gen vèsyon anvan ki disponib.
Dokiman ki gen rapò
· Fich teknik ESP32-MINI-1 ak ESP32-MINI-1U (PDF) · Schematik ESP32-DevKitM-1 (PDF) · Plan PCB ESP32-DevKitM-1 (PDF) · Plan ESP32-DevKitM-1 (DXF) – Ou kapab view li avèk Autodesk Viewsou entènèt · Fich done ESP32 (PDF) · Selektè pwodwi ESP
Pou lòt dokimantasyon sou konsepsyon tablo a, tanpri kontakte nou nan sales@espressif.com.
Sistèm Espressif
13 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
1.2.2 Software
Pou kòmanse itilize ESP-IDF sou ESP32, enstale lojisyèl sa yo: · Toolchain pou konpile kòd pou ESP32 · Konstwi zouti – CMake ak Ninja pou konstwi yon aplikasyon konplè pou ESP32 · ESP-IDF ki esansyèlman gen ladan API (bibliyotèk lojisyèl ak kòd sous) pou ESP32 ak script pou opere Toolchain lan
1.3 Enstalasyon
Pou enstale tout lojisyèl ki nesesè yo, nou ofri plizyè fason diferan pou fasilite travay sa a. Chwazi youn nan opsyon ki disponib yo.
1.3.1 IDE
Remak: Nou rekòmande anpil pou enstale ESP-IDF la atravè IDE ou pi renmen an.
· Plugin Eclipse · Ekstansyon VSCode
1.3.2 Enstalasyon manyèl
Pou pwosedi manyèl la, tanpri chwazi selon sistèm operasyon ou an.
Sistèm Espressif
14 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Estanda Enstalasyon nan Toolchain pou Windows
Entwodiksyon ESP-IDF mande pou enstale kèk zouti prerequis pou ou ka konstwi firmwèr pou chip ki sipòte yo. Zouti prerequis yo enkli Python, Git, konpilatè kwaze, zouti konstriksyon CMake ak Ninja. Pou Kòmanse sa a, nou pral sèvi ak Èd Kòmand lan, men apre ESP-IDF enstale ou ka itilize Eclipse Plugin oswa yon lòt IDE grafik ki sipòte CMake pito. Remak: Limitasyon: – Chemen enstalasyon ESP-IDF ak Zouti ESP-IDF yo pa dwe gen plis pase 90 karaktè. Chemen enstalasyon ki twò long ka lakòz yon konstriksyon echwe. – Chemen enstalasyon Python oswa ESP-IDF la pa dwe gen espas vid oswa parantèz. – Chemen enstalasyon Python oswa ESP-IDF la pa ta dwe gen karaktè espesyal (ki pa ASCII) sof si sistèm operasyon an configuré ak sipò Unicode UTF-8. Administratè Sistèm lan ka aktive sipò a atravè Panèl Kontwòl – Chanje dat, lè, oswa fòma nimewo – Onglet Administratif – Chanje lokal sistèm lan – tcheke opsyon Beta: Sèvi ak Unicode UTF-8 pou sipò lang atravè lemond – Ok epi rekòmanse òdinatè a.
Enstalatè Zouti ESP-IDF Fason ki pi fasil pou enstale prérequis ESP-IDFns se telechaje youn nan Enstalatè Zouti ESP-IDF yo.
Telechaje Enstalatè Windows
Ki sa ki itil pou Enstalatè Sou Entènèt ak Offline Enstalatè Sou Entènèt la piti anpil epi li pèmèt enstalasyon tout vèsyon ESP-IDF ki disponib yo. Enstalatè a pral telechaje sèlman depandans ki nesesè yo, tankou Git Pou Windows, pandan pwosesis enstalasyon an. Enstalatè a estoke telechaje yo. files nan anyè kach %userpro afile%. espresif
Enstalatè Offline lan pa bezwen okenn koneksyon rezo. Enstalatè a gen tout depandans ki nesesè yo, tankou Git For Windows.
Konpozan enstalasyon an Enstalatè a deplwaye konpozan sa yo:
· Python entegre · Konpilatè kwaze · OpenOCD · Zouti konstriksyon CMake ak Ninja · ESP-IDF
Enstalatè a pèmèt tou reyitilize anyè ki deja egziste a avèk ESP-IDF. Anyè rekòmande a se %userprofile%Desktopesp-idf kote %userprofile% se anyè lakay ou.
Sistèm Espressif
15 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Lanse Anviwònman ESP-IDF Nan fen pwosesis enstalasyon an, ou ka chwazi opsyon Egzekite Anviwònman ESP-IDF PowerShell la oubyen Egzekite Enviwònman Kòmand ESP-IDF la (cmd.exe). Enstalatè a pral lanse anviwònman ESP-IDF la nan envit ou chwazi a. Egzekite Anviwònman ESP-IDF PowerShell la:
Fig. 8: Ranpli Sòsye Enstalasyon Zouti ESP-IDF yo avèk Anviwònman PowerShell ESP-IDF la.
Kouri liy kòmand ESP-IDF la (cmd.exe):
Itilizasyon Envite Kòmand lan Pou rès etap Kòmanse yo, nou pral itilize Envite Kòmand Windows la. Enstalatè Zouti ESP-IDF la kreye tou yon rakoursi nan meni Start la pou lanse Envite Kòmand ESP-IDF la. Rakoursi sa a lanse Envite Kòmand lan (cmd.exe) epi li egzekite script export.bat pou konfigire varyab anviwònman yo (PATH, IDF_PATH ak lòt). Anndan envite kòmand sa a, tout zouti enstale yo disponib. Remake byen ke rakoursi sa a espesifik pou anyè ESP-IDF ki chwazi nan Enstalatè Zouti ESP-IDF la. Si ou gen plizyè anyè ESP-IDF sou òdinatè a (pa egzanpamppa egzanp, pou travay avèk diferan vèsyon ESP-IDF), ou gen de opsyon pou itilize yo:
1. Kreye yon kopi rakoursi ki te kreye pa Enstalatè Zouti ESP-IDF la, epi chanje anyè travay nouvo rakoursi a nan anyè ESP-IDF ou vle itilize a.
2. Ou kapab tou egzekite cmd.exe, answit ale nan anyè ESP-IDF ou vle itilize a, epi egzekite export.bat. Remake byen ke kontrèman ak opsyon anvan an, metòd sa a mande pou Python ak Git prezan nan PATH. Si ou jwenn erè ki gen rapò ak Python oswa Git ki pa jwenn, sèvi ak premye opsyon an.
Premye Pa sou ESP-IDF Kounye a ke tout kondisyon yo satisfè, pwochen sijè a pral gide ou sou kijan pou kòmanse premye pwojè ou a.
Sistèm Espressif
16 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse Fig. 9: ESP-IDF PowerShell
Fig. 10: Ranpli Sòsye Enstalasyon Zouti ESP-IDF yo avèk Egzekite Envite Kòmand ESP-IDF (cmd.exe)
Sistèm Espressif
17 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 11: Enstriksyon Kòmand ESP-IDF
Sistèm Espressif
18 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Gid sa a pral ede w nan premye etap ou yo lè w ap itilize ESP-IDF. Swiv gid sa a pou kòmanse yon nouvo pwojè sou ESP32 la epi konstwi, flashe, epi kontwole pwodiksyon aparèy la. Remak: Si ou poko enstale ESP-IDF, tanpri ale nan Enstalasyon epi swiv enstriksyon yo pou jwenn tout lojisyèl ou bezwen pou itilize gid sa a.
Kòmanse yon Pwojè Kounye a ou pare pou prepare aplikasyon w lan pou ESP32. Ou ka kòmanse ak pwojè getstarted/hello_world apati de examples anyè nan ESP-IDF.
Enpòtan: Sistèm konstriksyon ESP-IDF la pa sipòte espas nan chemen ki mennen ni nan ESP-IDF ni nan pwojè yo.
Kopye pwojè get-started/hello_world la nan anyè ~/esp la: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Remak: Gen yon seri egzanpample pwojè nan ansyen anamples anyè nan ESP-IDF. Ou ka kopye nenpòt pwojè menm jan ak prezante pi wo a epi kouri li. Li posib tou pou konstwi ansyenampyo an plas san ou pa kopye yo anvan.
Konekte Aparèy Ou a Kounye a konekte kat ESP32 ou a ak òdinatè a epi tcheke anba ki pò seri kat la vizib. Non pò seri yo kòmanse ak COM nan Windows. Si ou pa sèten kijan pou tcheke non pò seri a, tanpri al gade Etabli Koneksyon Seri ak ESP32 pou tout detay yo.
Remak: Kenbe non pò a sou la men w ap bezwen li nan pwochen etap yo.
Konfigire Pwojè w la Ale nan anyè hello_world ou a, mete ESP32 kòm sib la, epi egzekite zouti konfigirasyon pwojè a menuconfig.
CD Windows %userprofile%esphello_world idf.py mete-sib esp32 idf.py menuconfig
Apre ou fin louvri yon nouvo pwojè, ou ta dwe premye mete sib la ak idf.py set-target esp32. Remake byen ke konfigirasyon ak vèsyon ki deja egziste nan pwojè a, si genyen, pral efase epi inisyalize nan pwosesis sa a. Ou ka sove sib la nan varyab anviwònman an pou sote etap sa a ditou. Gade Chwazi Chip Sib la: set-target pou plis enfòmasyon. Si etap anvan yo te fèt kòrèkteman, meni sa a ap parèt: Ou ap itilize meni sa a pou konfigire varyab espesifik pwojè a, pa egzanp, non ak modpas rezo Wi-Fi, vitès processeur a, elatriye. Ou ka sote konfigirasyon pwojè a ak menuconfig pou ohello_wordp, piske sa a...ample a ap fonksyone ak konfigirasyon defo a.
Atansyon: Si w ap itilize kat ESP32-DevKitC a avèk modil ESP32-SOLO-1 la, oubyen kat ESP32-DevKitM-1 a avèk modil ESP32-MIN1-1(1U) la, tanpri aktive mòd single core (CONFIG_FREERTOS_UNICORE) nan menuconfig anvan w flache ex.amples.
Sistèm Espressif
19 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 12: Konfigirasyon pwojè a – Fenèt lakay
Nòt: Koulè meni an ka diferan nan tèminal ou a. Ou ka chanje aparans li avèk opsyon –style la. Tanpri egzekite idf.py menuconfig –help pou plis enfòmasyon.
Si w ap itilize youn nan kat devlopman yo sipòte yo, ou ka akselere devlopman w lan lè w itilize Pakè Sipò Kat la. Gade Konsèy Siplemantè pou plis enfòmasyon.
Bati Pwojè a Bati pwojè a lè w egzekite:
idf.py bati
Kòmand sa a pral konpile aplikasyon an ak tout konpozan ESP-IDF, Lè sa a, li pral jenere bootloader, tab patisyon, ak binè aplikasyon an.
$ idf.py build Ap egzekite cmake nan anyè /path/to/hello_world/build Ap egzekite “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Avètisman sou valè ki pa inisyalize yo. — Jwenn Git: /usr/bin/git (jwenn vèsyon “2.17.0”) — Ap konstwi yon konpozan aws_iot vid akòz konfigirasyon an — Non konpozan yo: … — Chemen konpozan yo: …
… (plis liy pwodiksyon sistèm bati)
[527/527] Ap jenere hello_world.bin esptool.py v2.3.1
Konstriksyon pwojè a fini. Pou flashe, egzekite kòmand sa a: ../../../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 oubyen egzekite 'idf.py -p PORT flash'
Si pa gen okenn erè, bati a pral fini pa jenere firmwèr binè .bin la files.
Sistèm Espressif
20 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Flashe sou Aparèy la Flashe binè ou sot konstwi yo (bootloader.bin, partition-table.bin ak hello_world.bin) sou kat ESP32 ou a lè w egzekite: idf.py -p PORT [-b BAUD] flash
Ranplase PORT ak non pò seri kat ESP32 ou a. Ou kapab tou chanje vitès transmisyon flasher a lè w ranplase BAUD ak vitès transmisyon ou bezwen an. Vitès transmisyon pa defo a se 460800. Pou plis enfòmasyon sou agiman idf.py yo, gade idf.py.
Remak: Opsyon flash la konstwi epi flashe pwojè a otomatikman, kidonk li pa nesesè pou egzekite idf.py build.
Èske w te rankontre pwoblèm pandan w ap flache? Si w egzekite kòmand yo bay la epi w wè erè tankou "Failed to connectp", gen plizyè rezon pou sa. Youn nan rezon yo ta ka pwoblèm esptool.py rankontre, zouti sistèm konstriksyon an rele pou retabli chip la, kominike avèk bootloader ROM la, epi flache firmwèr la. Yon solisyon senp pou eseye se retablisman manyèl ki dekri anba a, epi si li pa ede w, ou ka jwenn plis detay sou pwoblèm posib nan seksyon Depanaj.
esptool.py retabli ESP32 otomatikman lè li aktive liy kontwòl DTR ak RTS nan chip konvètisè USB an seri a, sa vle di, FTDI oswa CP210x (pou plis enfòmasyon, gade Etabli Koneksyon Seri ak ESP32). Liy kontwòl DTR ak RTS yo konekte ak broch GPIO0 ak CHIP_PU (EN) nan ESP32, kidonk chanje nan vòl la.tagNivo DTR ak RTS yo ap demarre ESP32 nan mòd telechajman firmwèr. Kòm yon egzanpampAle wè chema tablo devlopman ESP32 DevKitC la.
An jeneral, ou pa ta dwe gen okenn pwoblèm ak kat devlopman ofisyèl esp-idf yo. Sepandan, esptool.py pa kapab re-inisyalize pyès ki nan konpitè w la otomatikman nan ka sa yo:
· Materyèl ou a pa gen liy DTR ak RTS ki konekte ak GPIO0 ak CHIP_PU · Liy DTR ak RTS yo konfigire yon fason diferan · Pa gen okenn liy kontwòl seri konsa ditou
Tou depan de kalite pyès ki nan konpitè ou genyen an, li ka posib tou pou mete kat ESP32 ou a manyèlman nan mòd telechajman firmwèr (reyajiste).
· Pou kat devlopman Espressif pwodui yo, ou ka jwenn enfòmasyon sa a nan gid pou kòmanse oswa gid itilizatè respektif yo. Pa egzanpampPa egzanp, pou re-inisyalize yon kat devlopman ESP-IDF manyèlman, kenbe bouton Boot la (GPIO0) epi peze bouton EN an (CHIP_PU).
· Pou lòt kalite pyès ki nan konpitè, eseye rale GPIO0 desann.
Operasyon Nòmal Lè li ap flache, ou ap wè jounal rezilta a menm jan ak sa ki annapre a:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –anvan=reset_default -apre=reset_fòs_ekri_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 tab_patisyon/tab-patisyon.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Pò seri /dev/ttyUSB0 Konekte…….._ Chip la se ESP32D0WDQ6 (revizyon 0) Karakteristik: WiFi, BT, Doub Nwayo, Konplo Kodaj Okenn Kristal la se 40MHz MAC: 24:0a:c4:05:b9:14 Ap telechaje stub… Ap kouri stub… Stub ap kouri… Chanje vitès baud a 460800 Chanje.
(kontinye sou pwochen paj la)
Sistèm Espressif
21 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
(swit nan paj anvan an) Konfigirasyon gwosè flash… Konprese 3072 okte a 103… Ekri nan 0x00008000… (100 %) Ekri 3072 okte (103 konprese) nan 0x00008000 nan 0.0 segonn (efektif 5962.8 kbit/s)… Hach done verifye. Konprese 26096 okte a 15408… Ekri nan 0x00001000… (100 %) Ekri 26096 okte (15408 konprese) nan 0x00001000 nan 0.4 segonn (efektif 546.7 kbit/s)… Hach done verifye. Konprese 147104 okte an 77364... Ekri nan 0x00010000... (20 %) Ekri nan 0x00014000... (40 %) Ekri nan 0x00018000... (60 %) Ekri nan 0x0001c000... (80 %) Ekri nan 0x00020000... (100 %) Ekri 147104 okte (77364 konprese) nan 0x00010000 nan 1.9 segonn (efektif 615.5 kbit/s)... Hach done verifye.
Kite… Reset difisil atravè PIN RTS… Fè
Si pa gen okenn pwoblèm nan fen pwosesis flash la, kat la ap rekòmanse epi l ap lanse aplikasyon thehello_worldp la. Si ou ta renmen itilize Eclipse oswa VS Code IDE olye pou w kouri idf.py, gade Eclipse Plugin, VSCode Extension.
Kontwole Sòti a Pou verifye si ohello_world ap fonksyone vre, tape idf.py -p PORT monitor (Pa bliye ranplase PORT ak non pò seri ou a).
Kòmandman sa a lanse aplikasyon IDF Monitor:
$ idf.py -p siveyans Ap egzekite idf_monitor nan anyè […]/esp/hello_world/build Ap egzekite “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor sou 115200 —– Kite: Ctrl+] | Meni: Ctrl+T | Èd: Ctrl+T ki te swiv pa Ctrl+H –ets 8 jen 2016 00:22:57
rst:0x1 (POWERON_RESET), bòt:0x13 (SPI_FAST_FLASH_BOOT) ets 8 jen 2016 00:22:57 …
Apre jounal demaraj ak dyagnostik yo monte, ou ta dwe wè oHello world! enprime pa aplikasyon an.
... Bonjou mond! Rekòmanse nan 10 segonn ... Sa a se yon chip esp32 ak 2 nwayo CPU, WiFi/BT/BLE, silikon revizyon 1, 2MB flash ekstèn Gwosè minimòm heap gratis: 298968 okte Rekòmanse nan 9 segonn ... Rekòmanse nan 8 segonn ... Rekòmanse nan 7 segonn ...
Pou sòti pou kontwole IDF sèvi ak chemen kout Ctrl+].
Sistèm Espressif
22 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Si monitè IDF la echwe yon ti tan apre telechajman an, oubyen si olye mesaj ki anwo yo, ou wè fatra o aza menm jan ak sa ki anba a, kat ou a gen plis chans pou l itilize yon kristal 26 MHz. Pifò konsepsyon kat devlopman yo itilize 40 MHz, kidonk ESP-IDF itilize frekans sa a kòm yon valè pa defo.
Si ou gen yon pwoblèm konsa, fè bagay sa yo: 1. Kite monitè a. 2. Retounen nan meni konfigirasyon. 3. Ale nan konfigirasyon konpozan > Anviwònman pyès ki nan konpitè > Konfigirasyon XTAL prensipal > Frekans XTAL prensipal, answit chanje CONFIG_XTAL_FREQ_SEL a 26 MHz. 4. Apre sa, konstwi epi flashe aplikasyon an ankò.
Nan vèsyon aktyèl ESP-IDF la, prensipal frekans XTAL ESP32 sipòte yo se jan sa a:
· 26 MHz · 40 MHz
Nòt: Ou ka konbine konstriksyon, flashaj ak siveyans nan yon sèl etap lè w egzekite: idf.py -p PORT flash monitor
Gade tou: · IDF Monitor pou rakoursi pratik ak plis detay sou itilizasyon IDF monitor. · idf.py pou yon referans konplè sou kòmand ak opsyon idf.py yo.
Se tout sa ou bezwen pou kòmanse ak ESP32! Kounye a ou pare pou eseye kèk lòt egzanp.amples, oubyen ale dirèkteman nan devlope pwòp aplikasyon ou yo.
Enpòtan: Gen kèk nan ansyen yoampChif yo pa sipòte ESP32 paske pyès ki nan konpitè ki nesesè yo pa enkli nan ESP32 kidonk li pa ka sipòte. Si w ap bati yon eksampTanpri, tcheke README a file pou tablo Sib Sipòte yo. Si sa a prezan ki gen ladan sib ESP32, oswa tablo a pa egziste ditou, ansyen anampl ap travay sou ESP32.
Lòt Konsèy
Pwoblèm pèmisyon /dev/ttyUSB0 Avèk kèk distribisyon Linux, ou ka jwenn mesaj erè Echèk pou ouvri pò /dev/ttyUSB0 a lè w ap flache ESP32 la. Ou ka rezoud pwoblèm sa a lè w ajoute itilizatè aktyèl la nan gwoup dialout la.
Konpatibilite Python ESP-IDF sipòte Python 3.7 oswa pi resan. Li rekòmande pou mete sistèm operasyon ou a ajou ak yon vèsyon resan ki satisfè egzijans sa a. Gen lòt opsyon tankou enstalasyon Python apati sous oswa itilizasyon yon sistèm jesyon vèsyon Python tankou pyenv.
Kòmanse avèk Pakè Sipò Komisyon Konsèy la Pou akselere prototipaj sou kèk tablo devlopman, ou ka itilize Pakè Sipò Komisyon Konsèy (BSP), ki fè inisyalizasyon yon tablo patikilye osi fasil ke kèk apèl fonksyon.
Sistèm Espressif
23 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Yon BSP tipikman sipòte tout konpozan pyès ki nan konpitè ki sou kat devlopman an. Apa de definisyon brochaj ak fonksyon inisyalizasyon, yon BSP vini ak chofè pou konpozan ekstèn yo tankou detèktè, ekran, kodek odyo elatriye. BSP yo distribye atravè IDF Component Manager, kidonk yo ka jwenn nan IDF Component Registry. Men yon egzanp.ampYon egzanp sou kijan pou ajoute ESP-WROVER-KIT BSP nan pwojè w la: idf.py add-dependency esp_wrover_kit
Plis ansyenampOu ka jwenn mwens itilizasyon BSP nan egzanp BSP.amples folder.
Dokiman ki gen rapò Pou itilizatè avanse ki vle pèsonalize pwosesis enstalasyon an: · Mizajou zouti ESP-IDF sou Windows · Etabli koneksyon seri ak ESP32 · Plugin Eclipse · Ekstansyon VSCode · Monitè IDF
Mizajou zouti ESP-IDF yo sou Windows
Enstale zouti ESP-IDF yo avèk yon script. Nan liy kòmand Windows la, ale nan anyè kote ESPIDF la enstale. Apre sa, egzekite:
install.bat
Pou Powershell, ale nan anyè kote ESP-IDF la enstale. Apre sa, egzekite:
enstale.ps1
Sa ap telechaje epi enstale zouti ki nesesè pou itilize ESP-IDF. Si vèsyon espesifik zouti a deja enstale, p ap gen okenn aksyon ki pral fèt. Zouti yo telechaje epi enstale nan yon anyè espesifye pandan pwosesis enstalasyon zouti ESP-IDF yo. Pa default, sa a se C:Itilizatènon itilizatè.espressif.
Ajoute zouti ESP-IDF yo nan PATH lè l sèvi avèk yon script ekspòtasyon. Enstalatè zouti ESP-IDF yo kreye yon rakoursi meni Start pou oESP-IDF Command Prompt. Rakoursi sa a ouvri yon fenèt Command Prompt kote tout zouti yo deja ye.
disponib. Nan kèk ka, ou ka vle travay avèk ESP-IDF nan yon fenèt Kòmand ki pa t kòmanse lè l sèvi avèk rakoursi sa a. Si se ka sa a, swiv enstriksyon ki anba yo pou ajoute zouti ESP-IDF nan PATH. Nan kòmand kote ou bezwen itilize ESP-IDF la, chanje nan anyè kote ESP-IDF enstale a, epi egzekite export.bat:
cd %userprofile%espesp-idf ekspòtasyon.bat
Yon lòt opsyon se nan Powershell kote ou bezwen itilize ESP-IDF la, chanje pou ale nan anyè kote ESP-IDF la enstale a, epi egzekite export.ps1:
cd ~/esp/esp-idf ekspòtasyon.ps1
Lè sa fini, zouti yo ap disponib nan èd memwa kòmand sa a.
Etabli yon koneksyon seri ak ESP32 Seksyon sa a bay konsèy sou kijan pou etabli yon koneksyon seri ant ESP32 ak yon PC.
Sistèm Espressif
24 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Konekte ESP32 a ak PC a Konekte kat ESP32 a ak PC a avèk kab USB a. Si chofè aparèy la pa enstale otomatikman, idantifye chip konvètisè USB an seri sou kat ESP32 ou a (oswa dongle konvètisè ekstèn lan), chèche chofè sou entènèt epi enstale yo. Anba la a se lis chip konvètisè USB an seri ki enstale sou pifò kat ESP32 Espressif pwodui yo ansanm ak lyen pou chofè yo:
· CP210x: Chofè VCP pou pon USB pou UART CP210x · FTDI: Chofè pò COM vityèl FTDI Tanpri tcheke gid itilizatè kat la pou konnen chip konvètisè USB pou seri espesifik ki itilize a. Chofè ki anwo yo se sitou pou referans. Nan sikonstans nòmal, chofè yo ta dwe vini ak yon sistèm operasyon epi enstale otomatikman lè w konekte kat la ak PC a.
Tcheke pò a sou Windows Tcheke lis pò COM yo idantifye nan Jesyonè Aparèy Windows la. Dekonekte ESP32 a epi konekte li ankò, pou verifye ki pò ki disparèt nan lis la epi ki parèt ankò. Figi ki anba yo montre pò seri pou ESP32 DevKitC ak ESP32 WROVER KIT.
Fig. 13: Pon USB pou UART ESP32-DevKitC nan Jesyonè Aparèy Windows
Tcheke pò a sou Linux ak macOS Pou tcheke non aparèy la pou pò seri kat ESP32 ou a (oswa dongle konvètisè ekstèn lan), egzekite kòmand sa a de fwa, premyèman avèk kat la / dongle a debranche, answit avèk li branche. Pò ki parèt dezyèm fwa a se pò ou bezwen an: Linux
ls /dev/tty*
macOS
Sistèm Espressif
25 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 14: De pò seri USB ESP-WROVER-KIT nan Jesyonè Aparèy Windows
Sistèm Espressif
26 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
ls /dev/cu.* Nòt: Itilizatè macOS: si ou pa wè pò seri a, tcheke si chofè USB/seri yo enstale. Gade Seksyon Konekte ESP32 ak PC pou lyen ki mennen nan chofè yo. Pou macOS High Sierra (10.13), ou ka bezwen pèmèt chofè yo chaje eksplisitman. Louvri Preferans Sistèm -> Sekirite ak Konfidansyalite -> Jeneral epi tcheke si gen yon mesaj ki parèt isit la sou oSystem Software ki soti nan devlopè lp kote non devlopè a se Silicon Labs oswa FTDI.
Ajoute itilizatè nan gwoup dialout sou Linux Itilizatè ki konekte kounye a ta dwe gen aksè lekti ak ekriti sou pò seri a atravè USB. Sou pifò distribisyon Linux, sa fèt lè w ajoute itilizatè a nan gwoup dialout la avèk kòmand sa a:
sudo usermod -a -G dialout $USER
sou Arch Linux sa a se fè lè w ajoute itilizatè a nan gwoup uucp ak lòd sa a:
sudo usermod -a -G uucp $USER
Asire w ou re-konekte pou pèmèt li ak ekri otorizasyon pou pò seri a.
Verifye koneksyon seri a Kounye a verifye ke koneksyon seri a ap fonksyone. Ou ka fè sa lè w sèvi ak yon pwogram tèminal seri lè w tcheke si w jwenn nenpòt rezilta sou tèminal la apre w fin retabli ESP32 la. Vitès baud konsòl la pa defo sou ESP32 a se 115200.
Windows ak Linux Nan ansyen sa aampAnn itilize Kliyan PuTTY SSH ki disponib pou Windows ak Linux. Ou ka itilize lòt pwogram seri epi mete paramèt kominikasyon yo jan sa endike anba a. Lanse tèminal la epi mete pò seri a idantifye. Vitès baud = 115200 (si sa nesesè, chanje sa a nan vitès baud default chip la k ap itilize a), bit done = 8, bit arè = 1, ak parite = N. Anba la a gen egzanp.ampEkran ekran ki montre kijan pou mete pò a ak paramèt transmisyon sa yo (ki dekri an bref kòm 115200-8-1-N) sou Windows ak Linux. Sonje chwazi egzakteman menm pò seri ou te idantifye nan etap ki anwo yo. Apre sa, ouvri pò seri a nan tèminal la epi tcheke si ou wè nenpòt jounal ki enprime pa ESP32. Kontni jounal la ap depann de aplikasyon ki chaje sou ESP32 a, gade EgzanpampSòti a.
Remak: Fèmen tèminal seri a apre ou fin verifye ke kominikasyon an ap fonksyone. Si ou kenbe sesyon tèminal la ouvè, pò seri a p ap aksesib pou telechaje firmwèr pita.
macOS Pou evite w pwoblèm pou w enstale yon pwogram tèminal seri, macOS ofri kòmand ekran an. · Jan nou te diskite nan Tcheke pò sou Linux ak macOS, egzekite:
ls /dev/cu.* · Ou ta dwe wè yon rezilta menm jan an:
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Sòti a ap varye selon kalite ak kantite kat ki konekte ak PC ou a. Apre sa, chwazi non aparèy kat ou a epi egzekite (si sa nesesè, chanje o115200 pou vitès baud defo chip w ap itilize a):
ekran /dev/cu.device_name 115200 Ranplase device_name ak non yo jwenn pandan w ap egzekite ls /dev/cu.*.
Sistèm Espressif
27 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 15: Konfigirasyon Kominikasyon Seri nan PuTTY sou Windows
Sistèm Espressif
28 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fig. 16: Konfigirasyon Kominikasyon Seri nan PuTTY sou Linux
Sistèm Espressif
29 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
· Sa w ap chèche a se yon jounal ki parèt sou ekran an. Kontni jounal la ap depann de aplikasyon ki chaje sou ESP32 a, gade EgzanpampSòti a. Pou sòti nan sesyon ekran an, tape Ctrl-A + .
Nòt: Pa bliye sòti nan sesyon ekran an apre ou fin verifye ke kominikasyon an ap fonksyone. Si ou pa fè sa epi ou jis fèmen fenèt tèminal la, pò seri a p ap aksesib pou telechaje firmwèr pita.
ExampSòti a Yon egzanpampJurnal la parèt anba a. Reyajiste tablo a si ou pa wè anyen. ets 8 jen 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET), bòt:0x13 (SPI_FAST_FLASH_BOOT) ets 8 jen 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 bootloader I (45) demaraj: tan konpilasyon 18:48:10
...
Si ou ka wè yon rezilta jounal ki ka lizib, sa vle di koneksyon seri a ap fonksyone epi ou pare pou kontinye ak enstalasyon an epi finalman telechaje aplikasyon an sou ESP32.
Remak: Pou kèk konfigirasyon fil elektrik pò seri, broch seri RTS ak DTR yo bezwen enfim nan pwogram tèminal la anvan ESP32 a ka demarre epi pwodui yon sòti seri. Sa depann de pyès ki nan konpitè a li menm, pifò kat devlopman (ki gen ladan tout kat Espressif yo) pa gen pwoblèm sa a. Pwoblèm nan prezan si RTS ak DTR yo konekte dirèkteman ak broch EN ak GPIO0 yo. Gade dokimantasyon esptool la pou plis detay.
Si ou rive isit la nan Etap 5. Premye Etap sou ESP-IDF lè w ap enstale lojisyèl pou devlopman ESP32, ou ka kontinye ak Etap 5. Premye Etap sou ESP-IDF.
IDF Monitor IDF Monitor se sitou yon pwogram tèminal seri ki retransmèt done seri soti nan pò seri aparèy sib la. Li ofri tou kèk fonksyonalite espesifik pou IDF. Ou ka lanse IDF Monitor apati yon pwojè IDF lè w egzekite idf.py monitor.
Rakoursi klavye Pou yon entèraksyon fasil avèk IDF Monitor, sèvi ak rakoursi klavye ki nan tablo a.
Sistèm Espressif
30 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Rakoursi klavye Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (oswa A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (oswa I)
· Ctrl+H (oswa H)
· Ctrl+X (oswa X)
Ctrl+C
Aksyon
Deskripsyon
Sòti nan pwogram nan. Kle chape meni an. Voye karaktè meni an li menm nan kontwòl remote la.
Voye karaktè sòti a li menm nan adrès aleka a
Reyajiste sib la nan bootloader a pou mete aplikasyon an sou poz atravè liy RTS la
Reyajiste tablo sib la atravè RTS
Bati epi flashe pwojè a
Bati epi flashe aplikasyon an sèlman
Sispann/rekòmanse enprime rezilta jounal la sou ekran an
Sispann/rekòmanse pwodiksyon jounal la sove nan file
Lè pou sispann/rekòmanseamps
enprime
Montre tout rakoursi klavye yo
Peze epi swiv li ak youn nan kle ki anba yo.
Reyajiste sib la, nan bootloader la atravè liy RTS la (si li konekte), pou kat la pa fonksyone anyen. Itil lè ou bezwen tann yon lòt aparèy pou demarre. Reyajiste kat sib la epi rekòmanse aplikasyon an atravè liy RTS la (si li konekte).
Li mete idf_monitor sou poz pou l egzekite sib flash pwojè a, epi li rekòmanse idf_monitor. Nenpòt sous ki chanje fileYo rekonpile epi yo re-flash. Yo egzekite Target encrypted-flash si yo te kòmanse idf_monitor ak agiman -E. Li mete idf_monitor sou poz pou egzekite sib app-flash la, epi li rekòmanse idf_monitor. Menm jan ak sib flash la, men se sèlman aplikasyon prensipal la ki konstwi epi re-flash. Yo egzekite Target encrypted-app-flash si yo te kòmanse idf_monitor ak agiman -E. Li jete tout done seri k ap antre yo pandan l aktive. Li pèmèt ou byen vit pran yon poz epi egzamine rezilta jounal la san ou pa kite monitè a. Li kreye yon file nan anyè pwojè a epi yo ekri rezilta a nan sa file jiskaske yo enfim sa a avèk menm rakoursi klavye a (oswa IDF Monitor fèmen). IDF Monitor ka enprime yon lèamp nan kòmansman chak liy. Pi bon moman anamp fòma a ka chanje pa –timest laamp-format agiman liy kòmand.
Kite pwogram nan
Entèwonp aplikasyon k ap kouri a
Mete IDF Monitor sou poz epi egzekite debogajè pwojè GDB a pou deboge aplikasyon an pandan l ap fonksyone. Sa mande pou opsyon :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME a aktive.
Nenpòt kle ou peze, apa de Ctrl-] ak Ctrl-T, pral voye nan pò seri a.
Karakteristik espesifik IDF yo
Dekodaj Adrès Otomatik Chak fwa ESP-IDF bay yon adrès kòd egzadesimal nan fòm 0x4_______, IDF Monitor itilize addr2line_ pou chèche kote a nan kòd sous la epi jwenn non fonksyon an.
Si yon aplikasyon ESP-IDF plante epi li antre nan panik, yon kopi anrejistreman (register dump) ak yon trasaj (backtrace) ap pwodui, tankou sa ki annapre a:
Sistèm Espressif
31 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Erè Meditasyon Guru ki gen tip StoreProhibited te rive sou nwayo 0. Eksepsyon an te
san manyen.
Rejis pil fatra:
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 EKSKIZ:
0x0000001d
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor ajoute plis detay nan pil fatra a:
Erè Meditasyon Guru ki gen tip StoreProhibited te rive sou nwayo 0. Eksepsyon an te
san manyen.
Rejis pil fatra:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: fè_yon_bagay_pou_fè_plann nan /home/gus/esp/32/idf/examples/kòmanse/
bonjou_mond/prensipal/./bonjou_mond_men.c:57
(anliy pa) inner_dont_crash nan /home/gus/esp/32/idf/examples/kòmanse/hello_
mond/prensipal/./hello_world_main.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 EKSKIZ:
0x0000001d
EXCVADDR: 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 (anliy pa) inner_dont_crash nan /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash nan /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash nan /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main nan /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task nan /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
Pou dekode chak adrès, IDF Monitor egzekite kòmand sa a nan background nan: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Nòt: Mete varyab anviwònman ESP_MONITOR_DECODE a 0 oubyen rele idf_monitor.py ak liy kòmand espesifik la.
Sistèm Espressif
32 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
opsyon: idf_monitor.py –disable-address-decoding pou enfim dekodaj adrès la.
Reyajiste Sib la lè Koneksyon Pa default, IDF Monitor ap reyajiste sib la lè l konekte avèk li. Reyajiste chip sib la fèt lè l sèvi avèk liy seri DTR ak RTS yo. Pou anpeche IDF Monitor reyajiste sib la otomatikman lè koneksyon an, rele IDF Monitor avèk opsyon –no-reset la (pa egzanp, idf_monitor.py –no-reset).
Remak: Opsyon –no-reset la aplike menm konpòtman an menm lè w ap konekte IDF Monitor ak yon pò patikilye (pa egzanp, idf.py monitor –no-reset -p [PÒ]).
Lanse GDB ak GDBStub GDBStub se yon fonksyonalite debogaj itil pandan ekzekisyon ki fonksyone sou sib la epi ki konekte ak lame a atravè pò seri a pou resevwa kòmand debogaj. GDBStub sipòte kòmand tankou lekti memwa ak varyab, egzamine ankadreman pil apèl elatriye. Malgre ke GDBStub mwens versatile pase JTAG debogaj, li pa mande okenn pyès ki nan konpitè espesyal (tankou yon JTAG (pou pon USB a) paske kominikasyon an fèt antyèman sou pò seri a. Yon sib ka konfigire pou l egzekite GDBStub nan background nan lè w mete CONFIG_ESP_SYSTEM_PANIC la sou GDBStub pandan pwogram nan ap fonksyone. GDBStub ap fonksyone nan background nan jiskaske yon mesaj Ctrl+C voye sou pò seri a epi sa lakòz GDBStub kraze (sa vle di, sispann ekzekisyon) pwogram nan, kidonk sa pèmèt GDBStub jere kòmand debogaj yo. Anplis de sa, ou ka konfigire jesyonè panik la pou l egzekite GDBStub lè pwogram nan kraze lè w mete CONFIG_ESP_SYSTEM_PANIC la sou GDBStub lè pwogram nan kraze. Lè pwogram nan kraze, GDBStub ap bay yon modèl chèn espesyal sou pò seri a pou endike ke pwogram nan ap fonksyone. Nan tou de ka yo (sa vle di, voye mesaj Ctrl+C a, oswa resevwa modèl chèn espesyal la), IDF Monitor ap lanse GDB otomatikman pou pèmèt itilizatè a voye kòmand debogaj yo. Apre GDB fin sòti, sib la retabli atravè liy seri RTS la. Si liy sa a pa konekte, itilizatè yo ka retabli sib yo a (lè yo peze bouton Reyajiste tablo a).
Nòt: Nan background nan, IDF Monitor egzekite kòmand sa a pou lanse GDB:
xtensa-esp32-elf-gdb -ex “mete seri baud BAUD” -ex “pò aleka sib” -ex entèripsyon build/PROJECT.elf :idf_target:`Bonjou NON chip`
Filtraj Sòti Ou ka rele monitè IDF la kòm idf.py monitor –print-filter="xyz", kote –print-filter se paramèt pou filtraj sòti a. Valè pa defo a se yon chèn vid, ki vle di tout bagay enprime.
Yo ka espesifye restriksyon sou sa pou enprime kòm yon seri detag>: atik kotetag> se la tag fisèl ak se yon karaktè nan ansanm {N, E, W, I, D, V, *} ki refere a yon nivo pou koneksyon.
Pou egzanpampla, PRINT_FILTER="tag1:W” koresponn epi enprime sèlman rezilta yo ekri ak ESP_LOGW(“tag1”, …) oubyen nan yon nivo vèbozite ki pi ba, sa vle di ESP_LOGE(“tag1″, …). Pa espesifye yon oubyen lè l sèvi avèk *, sa vle di nivo Verbose la pa defo.
Remak: Sèvi ak koneksyon prensipal la pou dezaktive rezilta ou pa bezwen yo atravè bibliyotèk koneksyon an lè w ap konpile yo. Filtraj rezilta ak monitè IDF la se yon solisyon segondè ki ka itil pou ajiste opsyon filtraj yo san w pa bezwen rekonpile aplikasyon an.
Aplikasyon ou an tags pa dwe gen espas, asterisk *, oswa de pwen : pou l konpatib ak fonksyon filtraj rezilta a.
Si dènye liy rezilta aplikasyon w lan pa gen yon retou cha ki swiv li, filtraj rezilta a ka vin konfonn, sa vle di, monitè a kòmanse enprime liy lan epi pita li dekouvri ke liy lan pa ta dwe te ekri. Sa a se yon pwoblèm li te ye epi ou ka evite li lè w toujou ajoute yon retou cha (sitou lè pa gen okenn rezilta ki swiv imedyatman apre).
Sistèm Espressif
33 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
ExampRèg Filtraj yo:
· * ka itilize pou matche ak nenpòt tagsSepandan, chèn PRINT_FILTER="*:I" a tag1:E" anrapò ak tag1 enprime erè sèlman, paske règ la pou tag1 gen yon pi gwo priyorite pase règ pou * la.
· Règ pa defo a (vid) ekivalan a *:V paske li koresponn ak chak tag nan nivo Verbose la oubyen pi ba vle di matche ak tout bagay.
· "*:N" pa sèlman siprime rezilta fonksyon koneksyon yo, men tou enprime printf fè yo, elatriye. Pou evite sa, sèvi ak *:E oubyen yon nivo vèbosité ki pi wo.
· Règ yotag1:V”, “tag1:v”, “tag1:", "tag1:*", ak "tag1” ekivalan. · Règ “tag1:W tag1:E” ekivalan a “tag1:E" paske nenpòt ensidans konsekans menm bagay la tag
non an ranplase sa ki te anvan an. · Règ "tag1: mwen tag2:W” sèlman enprime tag1 nan nivo vèbozite Enfòmasyon an oswa pi ba epi tag2 nan Avètisman an
nivo vèbozite oswa pi ba. · Règ "tag1: mwen tag2:W tag3:N” esansyèlman ekivalan ak anvan an paske tag3:N presize
sa tagPa ta dwe enprime 3. tag3:N nan règ la “tag1: mwen tag2:W tag3:N *:V” gen plis sans paske san tag3:N nan
tag3 mesaj te ka enprime; erè yo pou tag1 epi tag2 ap enprime nan nivo vèbosité espesifye a (oswa pi ba) epi tout rès la ap enprime pa default.
Yon Egzanp Filtraj Pi KonplèksampYo te jwenn ekstrè jounal sa a san okenn opsyon filtraj:
chaj:0x40078000,len:13564 antre 0x40078d4c E (31) esp_image: imaj nan 0x30000 gen yon okte majik ki pa valab W (31) esp_image: imaj nan 0x30000 gen yon mòd SPI ki pa valab 255 E (39) demaraj: Patisyon aplikasyon faktori a pa ka demarre I (568) cpu_start: CPU Pro a anlè. I (569) heap_init: Inisyalizasyon. RAM disponib pou alokasyon dinamik: I (603) cpu_start: Kòd itilizatè demaraj CPU Pro D (309) light_driver: [light_init, 74]:estati: 1, mòd: 2 D (318) vfs: esp_vfs_register_fd_range reyisi pou seri <54; 64) ak VFS ID 1 I (328) wifi: travay chofè wifi: 3ffdbf84, prio:23, pil:4096, nwayo=0
Rezilta kaptire pou opsyon filtraj PRINT_FILTER="wifi esp_image:E light_driver:I" yo bay anba a:
E (31) esp_image: imaj nan 0x30000 gen yon okte majik ki pa valab. I (328) wifi: travay chofè wifi: 3ffdbf84, prio:23, pil:4096, nwayo=0.
Opsyon "PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" yo montre rezilta sa a:
chaj:0x40078000,len:13564 antre 0x40078d4c I (569) heap_init: Inisyalizasyon. RAM disponib pou alokasyon dinamik: D (309) light_driver: [light_init, 74]:estati: 1, mòd: 2
Pwoblèm li te ye ak IDF Monitor
Pwoblèm yo obsève sou Windows
· Flèch yo, ansanm ak kèk lòt kle, pa fonksyone nan GDB akòz limitasyon Konsole Windows yo. · Pafwa, lè oidf.pypexits, li ka bloke pou jiska 30 segonn anvan IDF Monitor rekòmanse. · Lè ogdbpis ap fonksyone, li ka bloke pou yon ti tan anvan li kòmanse kominike avèk GDBStub la.
Sistèm Espressif
34 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse Konfigirasyon estanda chèn zouti pou Linux ak macOS
Enstalasyon Etap pa Etap Sa a se yon plan detaye pou gide ou nan pwosesis enstalasyon an.
Enstalasyon Anviwònman Devlopman an Men etap pou konfigire ESP-IDF la pou ESP32 ou a. · Etap 1. Enstalasyon Prérequis · Etap 2. Jwenn ESP-IDF · Etap 3. Enstale zouti yo · Etap 4. Enstale varyab anviwònman yo · Etap 5. Premye Etap sou ESP-IDF
Etap 1. Enstalasyon Prérequis Pou kapab itilize ESP-IDF ak ESP32 a, ou bezwen enstale kèk pakè lojisyèl ki baze sou Sistèm Operasyon ou an. Gid konfigirasyon sa a pral ede ou enstale tout bagay sou sistèm ki baze sou Linux ak macOS.
Pou Itilizatè Linux Pou konpile lè l sèvi avèk ESP-IDF ou pral bezwen jwenn pakè sa yo. Kòmand pou egzekite a depann de ki distribisyon Linux w ap itilize a:
· Ubuntu ak 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 mete ajou && sudo yum enstale git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
Yo toujou sipòte CentOS 7 men yo rekòmande CentOS vèsyon 8 pou yon pi bon eksperyans itilizatè. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Nòt: · Ou bezwen vèsyon 3.16 CMake oswa yon vèsyon ki pi resan pou itilize ESP-IDF. Kouri otools/idf_tools.py install cmakepto pou enstale yon vèsyon ki apwopriye si vèsyon sistèm operasyon ou an pa genyen youn. · Si ou pa wè distribisyon Linux ou a nan lis ki anwo a, tanpri tcheke dokimantasyon li pou w konnen ki kòmand pou w itilize pou enstalasyon pake a.
Pou itilizatè macOS, ESP-IDF ap itilize vèsyon Python ki enstale pa default sou macOS. · Enstale CMake & Ninja build: Si ou gen HomeBrew, ou ka egzekite: brew install cmake ninja dfu-util Si ou gen MacPorts, ou ka egzekite: sudo port install cmake ninja dfu-util Sinon, konsilte paj dakèy CMake ak Ninja yo pou telechajman enstalasyon macOS.
Sistèm Espressif
35 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
· Li rekòmande fòtman pou enstale ccache tou pou konstriksyon pi rapid. Si ou gen HomeBrew, ou ka fè sa atravè brew install ccache oubyen sudo port install ccache sou MacPorts.
Nòt: Si yon erè tankou sa a parèt pandan nenpòt etap: xcrun: erè: chemen aktif devlopè ki pa valab (/Library/Developer/CommandLineTools), xcrun ki manke nan: /Library/Developer/CommandLineTools/usr/bin/xcrun
Apre sa, w ap bezwen enstale zouti liy kòmand XCode yo pou kontinye. Ou ka enstale yo lè w egzekite xcode-select –install.
Itilizatè Apple M1 Si w ap itilize platfòm Apple M1 epi w wè yon erè tankou sa a: AVÈTISMAN: anyè pou zouti xtensa-esp32-elf vèsyon esp-2021r2-patch3-8.4.0 la prezan, men yo pa jwenn zouti a ERÈ: zouti xtensa-esp32-elf pa gen okenn vèsyon enstale. Tanpri egzekite 'install.sh' pou enstale li.
oubyen: zsh: move kalite CPU nan ekzekisyon an: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Apre sa, w ap bezwen enstale Apple Rosetta 2 a lè w egzekite /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Enstale Python 3 Baze sou nòt lage macOS Catalina 10.15 yo, yo pa rekòmande pou itilize Python 2.7 epi Python 2.7 p ap enkli pa defo nan vèsyon macOS nan lavni. Tcheke ki Python ou genyen kounye a: python –version
Si rezilta a sanble ak Python 2.7.17, entèprèt ou a pa defo se Python 2.7. Si se ka sa a, tcheke tou si Python 3 pa deja enstale sou òdinatè w la: python3 –version
Si kòmand ki anwo a retounen yon erè, sa vle di Python 3 pa enstale. Anba la a se yon lòtview etap sa yo pou enstale Python 3.
· Ou ka enstale HomeBrew la jan sa a: brew install python3
· Si ou gen MacPorts, ou ka egzekite: sudo port install python38
Etap 2. Jwenn ESP-IDF Pou konstwi aplikasyon pou ESP32 a, ou bezwen bibliyotèk lojisyèl Espressif yo bay nan depo ESP-IDF la. Pou jwenn ESP-IDF, ale nan anyè enstalasyon ou an epi klone depo a avèk git clone, swiv enstriksyon ki anba yo espesifik pou sistèm operasyon ou an. Louvri Tèminal la, epi egzekite kòmand sa yo:
Sistèm Espressif
36 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursif https://github.com/espressif/esp-idf.git
ESP-IDF pral telechaje nan ~/esp/esp-idf. Konsilte vèsyon ESP-IDF pou enfòmasyon sou ki vèsyon ESP-IDF pou itilize nan yon sitiyasyon yo bay.
Etap 3. Enstale zouti yo Apa de ESP-IDF la, ou bezwen enstale zouti ESP-IDF itilize yo tou, tankou konpilatè a, debogeur a, pakè Python yo, elatriye, pou pwojè ki sipòte ESP32. cd ~/esp/esp-idf ./install.sh esp32
oubyen avèk CD kokiy pwason ~/esp/esp-idf ./install.fish esp32
Kòmand ki anwo yo enstale zouti pou ESP32 sèlman. Si ou gen entansyon devlope pwojè pou plis sib chip, ou ta dwe lis yo tout epi egzekite yo pou egzanp.ampdosye: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
oubyen avèk CD kokiy pwason ~/esp/esp-idf ./install.fish esp32,esp32s2
Pou enstale zouti pou tout sib ki sipòte yo, tanpri egzekite kòmand sa a: cd ~/esp/esp-idf ./install.sh all
oubyen avèk CD kokiy pwason ~/esp/esp-idf ./install.fish tout
Nòt: Pou itilizatè macOS yo, si yon erè konsa parèt pandan nenpòt etap:urlerè ouvèti [SSL: CERTIFICATE_VERIFY_FAILED] verifikasyon sètifika a echwe: pa kapab jwenn sètifika konpayi ki bay sètifika a (_ssl.c:xxx)
Ou ka egzekite kòmand Install Certificates. nan dosye Python òdinatè w la pou enstale sètifika yo. Pou plis detay, gade Erè Telechaje pandan w ap enstale zouti ESP-IDF yo.
Altènatif File Telechajman Enstalatè zouti yo telechaje yon kantite files tache ak GitHub Releases yo. Si aksè a GitHub la ralanti, li posib pou mete yon varyab anviwònman pou bay preferans pou sèvè telechajman Espressifns pou telechajman byen GitHub yo.
Nòt: Paramèt sa a sèlman kontwole zouti endividyèl yo telechaje nan vèsyon GitHub yo, li pa chanje URLyo itilize pou jwenn aksè nan nenpòt repozitwa Git.
Pou w chwazi sèvè telechajman Espressif la lè w ap enstale zouti yo, sèvi ak sekans kòmand sa yo lè w ap egzekite install.sh:
Sistèm Espressif
37 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
cd ~/esp/esp-idf ekspòtasyon IDF_GITHUB_ASSETS="dl.espressif.com/github_assets" ./install.sh
Pèsonalize chemen enstalasyon zouti yo Scripts yo prezante nan etap sa a enstale zouti konpilasyon ESP-IDF bezwen yo andedan anyè lakay itilizatè a: $HOME/.espressif sou Linux. Si ou vle enstale zouti yo nan yon lòt anyè, mete varyab anviwònman IDF_TOOLS_PATH la anvan ou egzekite scripts enstalasyon yo. Asire w ke kont itilizatè w la gen ase pèmisyon pou li ak ekri chemen sa a. Si w ap chanje IDF_TOOLS_PATH la, asire w ke li mete sou menm valè a chak fwa script Enstalasyon an (install.bat, install.ps1 oswa install.sh) ak yon script Ekspòtasyon (export.bat, export.ps1 oswa export.sh) yo egzekite.
Etap 4. Konfigire varyab anviwònman yo Zouti ki enstale yo poko ajoute nan varyab anviwònman PATH la. Pou zouti yo ka itilize nan liy kòmand lan, ou dwe konfigire kèk varyab anviwònman. ESP-IDF bay yon lòt script ki fè sa. Nan tèminal kote w ap itilize ESP-IDF la, egzekite:
. $HOME/esp/esp-idf/export.sh
oubyen pou pwason (sipòte sèlman depi vèsyon pwason 3.0.0):
. $HOME/esp/esp-idf/export.fish
Remake espas ki genyen ant pwen prensipal la ak chemen an! Si w gen plan pou itilize esp-idf souvan, ou ka kreye yon alyas pou egzekite export.sh:
1. Kopye epi kole kòmand sa a nan shellns pro ou afile (.pwofesyonèlfile, .bashrc, .zprofile, elatriye)
alyas get_idf='. $HOME/esp/esp-idf/export.sh' 2. Rafrechi konfigirasyon an lè w rekòmanse sesyon tèminal la oubyen lè w egzekite sous [chemen pou profile],
pou egzanpample, sous ~/.bashrc. Kounye a ou ka egzekite get_idf pou konfigire oswa rafrechi anviwònman esp-idf la nan nenpòt sesyon tèminal. Teknikman, ou ka ajoute export.sh nan pwogram shellns ou a.file dirèkteman; sepandan, li pa rekòmande. Fè sa aktive anviwònman vityèl IDF nan chak sesyon tèminal (ki gen ladan sa yo kote IDF pa nesesè), sa ki detwi objektif anviwònman vityèl la epi pwobableman afekte lòt lojisyèl.
Etap 5. Premye Pa yo sou ESP-IDF Kounye a ke tout kondisyon yo satisfè, pwochen sijè a pral gide ou sou kijan pou kòmanse premye pwojè ou a. Gid sa a pral ede ou nan premye etap yo lè l sèvi avèk ESP-IDF. Swiv gid sa a pou kòmanse yon nouvo pwojè sou ESP32 la epi konstwi, flashe, epi kontwole pwodiksyon aparèy la.
Nòt: Si ou poko enstale ESP-IDF, tanpri ale nan Enstalasyon epi swiv enstriksyon yo pou jwenn tout lojisyèl ou bezwen pou itilize gid sa a.
Kòmanse yon Pwojè Kounye a ou pare pou prepare aplikasyon w lan pou ESP32. Ou ka kòmanse ak pwojè getstarted/hello_world apati de examples anyè nan ESP-IDF.
Enpòtan: Sistèm konstriksyon ESP-IDF la pa sipòte espas nan chemen ki mennen ni nan ESP-IDF ni nan pwojè yo.
Kopye pwojè get-started/hello_world la nan anyè ~/esp la:
Sistèm Espressif
38 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Remak: Gen yon seri egzanpample pwojè nan ansyen anamples anyè nan ESP-IDF. Ou ka kopye nenpòt pwojè menm jan ak prezante pi wo a epi kouri li. Li posib tou pou konstwi ansyenampyo an plas san ou pa kopye yo anvan.
Konekte Aparèy Ou a Kounye a konekte kat ESP32 ou a ak òdinatè a epi tcheke anba ki pò seri kat la vizib. Pò seri yo gen modèl nonmen sa yo:
· Linux: kòmanse ak /dev/tty · macOS: kòmanse ak /dev/cu. Si ou pa sèten kijan pou verifye non pò seri a, tanpri al gade Etabli yon koneksyon seri ak ESP32 pou plis detay.
Remak: Kenbe non pò a sou la men w ap bezwen li nan pwochen etap yo.
Konfigire Pwojè w la Navige nan anyè hello_world ou a, mete ESP32 kòm sib la, epi egzekite zouti konfigirasyon pwojè a menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Apre ou fin louvri yon nouvo pwojè, ou ta dwe premye defini sib la ak idf.py set-target esp32. Remake byen ke konfigirasyon ak vèsyon ki deja egziste nan pwojè a, si genyen, pral efase epi inisyalize nan pwosesis sa a. Ou ka sove sib la nan varyab anviwònman an pou sote etap sa a ditou. Gade Chwazi Chip Sib la: set-target pou plis enfòmasyon. Si etap anvan yo te fèt kòrèkteman, meni sa a ap parèt:
Fig. 17: Konfigirasyon pwojè a – Fenèt lakay Ou ap itilize meni sa a pou konfigire varyab espesifik pwojè a, pa egzanp, non ak modpas rezo Wi-Fi a, vitès processeur a, elatriye. Ou ka sote konfigirasyon pwojè a ak menuconfig pou hello_worldp, piske sa a...ampli kouri ak
Sistèm Espressif
39 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
konfigirasyon default.
Atansyon: Si w ap itilize kat ESP32-DevKitC a avèk modil ESP32-SOLO-1 la, oubyen kat ESP32-DevKitM-1 a avèk modil ESP32-MIN1-1(1U) la, tanpri aktive mòd single core (CONFIG_FREERTOS_UNICORE) nan menuconfig anvan w flache ex.amples.
Nòt: Koulè meni an ka diferan nan tèminal ou a. Ou ka chanje aparans li avèk opsyon –style la. Tanpri egzekite idf.py menuconfig –help pou plis enfòmasyon.
Si w ap itilize youn nan kat devlopman yo sipòte yo, ou ka akselere devlopman w lan lè w itilize Pakè Sipò Kat la. Gade Konsèy Siplemantè pou plis enfòmasyon.
Bati Pwojè a Bati pwojè a lè w egzekite:
idf.py bati
Kòmand sa a pral konpile aplikasyon an ak tout konpozan ESP-IDF, Lè sa a, li pral jenere bootloader, tab patisyon, ak binè aplikasyon an.
$ idf.py build Ap egzekite cmake nan anyè /path/to/hello_world/build Ap egzekite “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Avètisman sou valè ki pa inisyalize yo. — Jwenn Git: /usr/bin/git (jwenn vèsyon “2.17.0”) — Ap konstwi yon konpozan aws_iot vid akòz konfigirasyon an — Non konpozan yo: … — Chemen konpozan yo: …
… (plis liy pwodiksyon sistèm bati)
[527/527] Ap jenere hello_world.bin esptool.py v2.3.1
Konstriksyon pwojè a fini. Pou flashe, egzekite kòmand sa a: ../../../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 oubyen egzekite 'idf.py -p PORT flash'
Si pa gen okenn erè, bati a pral fini pa jenere firmwèr binè .bin la files.
Flashe sou Aparèy la Flashe binè ou fèk konstwi yo (bootloader.bin, partition-table.bin ak hello_world.bin) sou kat ESP32 ou a lè w egzekite:
idf.py -p PORT [-b BAUD] flash
Ranplase PORT ak non pò seri kat ESP32 ou a. Ou kapab tou chanje vitès transmisyon flasher a lè w ranplase BAUD ak vitès transmisyon ou bezwen an. Vitès transmisyon pa defo a se 460800. Pou plis enfòmasyon sou agiman idf.py yo, gade idf.py.
Remak: Opsyon flash la konstwi epi flashe pwojè a otomatikman, kidonk li pa nesesè pou egzekite idf.py build.
Sistèm Espressif
40 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Èske w te rankontre pwoblèm pandan w ap flache? Si w egzekite kòmand yo bay la epi w wè erè tankou "Failed to connectp", gen plizyè rezon pou sa. Youn nan rezon yo ta ka pwoblèm esptool.py rankontre, zouti sistèm konstriksyon an rele pou retabli chip la, kominike avèk bootloader ROM la, epi flache firmwèr la. Yon solisyon senp pou eseye se retablisman manyèl ki dekri anba a, epi si li pa ede w, ou ka jwenn plis detay sou pwoblèm posib nan seksyon Depanaj.
esptool.py retabli ESP32 otomatikman lè li aktive liy kontwòl DTR ak RTS nan chip konvètisè USB an seri a, sa vle di, FTDI oswa CP210x (pou plis enfòmasyon, gade Etabli Koneksyon Seri ak ESP32). Liy kontwòl DTR ak RTS yo konekte ak broch GPIO0 ak CHIP_PU (EN) nan ESP32, kidonk chanje nan vòl la.tagNivo DTR ak RTS yo ap demarre ESP32 nan mòd telechajman firmwèr. Kòm yon egzanpampAle wè chema tablo devlopman ESP32 DevKitC la.
An jeneral, ou pa ta dwe gen okenn pwoblèm ak kat devlopman ofisyèl esp-idf yo. Sepandan, esptool.py pa kapab re-inisyalize pyès ki nan konpitè w la otomatikman nan ka sa yo:
· Materyèl ou a pa gen liy DTR ak RTS ki konekte ak GPIO0 ak CHIP_PU · Liy DTR ak RTS yo konfigire yon fason diferan · Pa gen okenn liy kontwòl seri konsa ditou
Tou depan de kalite pyès ki nan konpitè ou genyen an, li ka posib tou pou mete kat ESP32 ou a manyèlman nan mòd telechajman firmwèr (reyajiste).
· Pou kat devlopman Espressif pwodui yo, ou ka jwenn enfòmasyon sa a nan gid pou kòmanse oswa gid itilizatè respektif yo. Pa egzanpampPa egzanp, pou re-inisyalize yon kat devlopman ESP-IDF manyèlman, kenbe bouton Boot la (GPIO0) epi peze bouton EN an (CHIP_PU).
· Pou lòt kalite pyès ki nan konpitè, eseye rale GPIO0 desann.
Operasyon Nòmal Lè li ap flache, ou ap wè jounal rezilta a menm jan ak sa ki annapre a:
... esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –anvan=reset_default -apre=reset_fòs_ekri_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 tab_patisyon/tab-patisyon.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Pò seri /dev/ttyUSB0 Konekte…….._ Chip la se ESP32D0WDQ6 (revizyon 0) Karakteristik: WiFi, BT, Doub Nwayo, Konplo Kodaj Okenn Kristal la se 40MHz MAC: 24:0a:c4:05:b9:14 Ap telechaje stub… Ap kouri stub… Stub ap kouri… Chanje vitès baud a 460800 Chanje. Konfigirasyon gwosè flash la... Konprese 3072 okte a 103... Ekri nan 0x00008000... (100 %) Ekri 3072 okte (103 konprese) nan 0x00008000 nan 0.0 segonn (efektif 5962.8 kbit/s)... Hach done yo verifye. Konprese 26096 okte a 15408... Ekri nan 0x00001000... (100 %) Ekri 26096 okte (15408 konprese) nan 0x00001000 nan 0.4 segonn (efektif 546.7 kbit/s)... Hach done yo verifye. Konprese 147104 okte a 77364... Ekri nan 0x00010000... (20%) Ekri nan 0x00014000... (40%) Ekri nan 0x00018000... (60%) Ekri nan 0x0001c000... (80%)
(kontinye sou pwochen paj la)
Sistèm Espressif
41 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
(swit nan paj anvan an) Ekri nan 0x00020000… (100 %) Ekri 147104 okte (77364 konprese) nan 0x00010000 nan 1.9 segonn (efektif 615.5 kbit/s)… Hach done verifye.
Kite… Reset difisil atravè PIN RTS… Fè
Si pa gen okenn pwoblèm nan fen pwosesis flash la, kat la ap rekòmanse epi l ap lanse aplikasyon thehello_worldp la. Si ou ta renmen itilize Eclipse oswa VS Code IDE olye pou w kouri idf.py, gade Eclipse Plugin, VSCode Extension.
Kontwole Sòti a Pou tcheke si ohello_worldpis ap fonksyone vre, tape idf.py -p PORT monitor (Pa bliye ranplase PORT ak non pò seri ou a). Kòmand sa a lanse aplikasyon IDF Monitor la:
$ idf.py -p siveyans Ap egzekite idf_monitor nan anyè […]/esp/hello_world/build Ap egzekite “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor sou 115200 —– Kite: Ctrl+] | Meni: Ctrl+T | Èd: Ctrl+T ki te swiv pa Ctrl+H –ets 8 jen 2016 00:22:57
rst:0x1 (POWERON_RESET), bòt:0x13 (SPI_FAST_FLASH_BOOT) ets 8 jen 2016 00:22:57 …
Apre jounal demaraj ak dyagnostik yo monte, ou ta dwe wè oHello world! enprime pa aplikasyon an.
... Bonjou mond! Rekòmanse nan 10 segonn ... Sa a se yon chip esp32 ak 2 nwayo CPU, WiFi/BT/BLE, silikon revizyon 1, 2MB flash ekstèn Gwosè minimòm heap gratis: 298968 okte Rekòmanse nan 9 segonn ... Rekòmanse nan 8 segonn ... Rekòmanse nan 7 segonn ...
Pou sòti nan sistèm siveyans IDF la, sèvi ak rakoursi Ctrl+]. Si sistèm siveyans IDF la echwe yon ti tan apre telechajman an, oubyen si olye mesaj ki anwo yo, ou wè yon move imaj menm jan ak sa ki anba a, kat ou a gen plis chans pou l itilize yon kristal 26 MHz. Pifò modèl kat devlopman yo itilize 40 MHz, kidonk ESP-IDF itilize frekans sa a kòm yon valè pa defo.
Si ou gen yon pwoblèm konsa, fè bagay sa yo:
1. Kite monitè a. 2. Retounen nan meni konfigirasyon an. 3. Ale nan konfigirasyon konpozan > Anviwònman pyès ki nan konpitè > Konfigirasyon XTAL prensipal > XTAL prensipal
frekans lan, answit chanje CONFIG_XTAL_FREQ_SEL a 26 MHz. 4. Apre sa, konstwi epi flashe aplikasyon an ankò.
Sistèm Espressif
42 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Nan vèsyon aktyèl ESP-IDF la, prensipal frekans XTAL ESP32 sipòte yo se jan sa a:
· 26 MHz · 40 MHz
Nòt: Ou ka konbine konstriksyon, flashaj ak siveyans nan yon sèl etap lè w egzekite: idf.py -p PORT flash monitor
Gade tou: · IDF Monitor pou rakoursi pratik ak plis detay sou itilizasyon IDF monitor. · idf.py pou yon referans konplè sou kòmand ak opsyon idf.py yo.
Se tout sa ou bezwen pou kòmanse ak ESP32! Kounye a ou pare pou eseye kèk lòt egzanp.amples, oubyen ale dirèkteman nan devlope pwòp aplikasyon ou yo.
Enpòtan: Gen kèk nan ansyen yoampChif yo pa sipòte ESP32 paske pyès ki nan konpitè ki nesesè yo pa enkli nan ESP32 kidonk li pa ka sipòte. Si w ap bati yon eksampTanpri, tcheke README a file pou tablo Sib Sipòte yo. Si sa a prezan ki gen ladan sib ESP32, oswa tablo a pa egziste ditou, ansyen anampl ap travay sou ESP32.
Lòt Konsèy
Pwoblèm pèmisyon /dev/ttyUSB0 Avèk kèk distribisyon Linux, ou ka jwenn mesaj erè Echèk pou ouvri pò /dev/ttyUSB0 a lè w ap flache ESP32 la. Ou ka rezoud pwoblèm sa a lè w ajoute itilizatè aktyèl la nan gwoup dialout la.
Konpatibilite Python ESP-IDF sipòte Python 3.7 oswa pi resan. Li rekòmande pou mete sistèm operasyon ou a ajou ak yon vèsyon resan ki satisfè egzijans sa a. Gen lòt opsyon tankou enstalasyon Python apati sous oswa itilizasyon yon sistèm jesyon vèsyon Python tankou pyenv.
Kòmanse avèk Pakè Sipò Komisyon Konsèy la Pou akselere prototipaj sou kèk tablo devlopman, ou ka itilize Pakè Sipò Komisyon Konsèy (BSP), ki fè inisyalizasyon yon tablo patikilye osi fasil ke kèk apèl fonksyon. Yon BSP tipikman sipòte tout konpozan pyès ki nan konpitè ki bay sou tablo devlopman an. Apa de definisyon brochaj ak fonksyon inisyalizasyon, yon BSP vini ak chofè pou konpozan ekstèn yo tankou detèktè, ekran, kodek odyo elatriye. BSP yo distribye atravè IDF Component Manager, kidonk yo ka jwenn nan IDF Component Registry. Men yon egzanp.ampYon egzanp sou kijan pou ajoute ESP-WROVER-KIT BSP nan pwojè w la: idf.py add-dependency esp_wrover_kit
Plis ansyenampOu ka jwenn mwens itilizasyon BSP nan egzanp BSP.amples folder.
Konsèy: Mizajou ESP-IDF Li rekòmande pou mete ESP-IDF ajou detanzantan, paske vèsyon ki pi resan yo korije pinèz ak/oswa bay nouvo fonksyonalite. Tanpri sonje ke chak vèsyon majè ak minè ESP-IDF gen yon peryòd sipò ki asosye avèk li, epi lè yon branch lage apwoche fen lavi li (EOL), yo ankouraje tout itilizatè yo pou yo mete pwojè yo ajou ak vèsyon ESP-IDF ki pi resan yo, pou w jwenn plis enfòmasyon sou peryòd sipò yo, gade Vèsyon ESP-IDF yo.
Sistèm Espressif
43 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 1. Kòmanse
Fason ki pi senp pou fè mizajou a se efase dosye esp-idf ki egziste deja a epi klone li ankò, kòmsi w ap fè premye enstalasyon ki dekri nan Etap 2. Jwenn ESP-IDF. Yon lòt solisyon se mete ajou sèlman sa ki chanje. Pwosedi mizajou a depann de vèsyon ESP-IDF w ap itilize a. Apre ou fin mete ESP-IDF a ajou, egzekite script Enstalasyon an ankò, si nouvo vèsyon ESP-IDF la mande diferan vèsyon zouti yo. Gade enstriksyon yo nan Etap 3. Enstale zouti yo. Yon fwa nouvo zouti yo enstale, mete anviwònman an ajou lè l sèvi avèk script Ekspòtasyon an. Gade enstriksyon yo nan Etap 4. Enstale varyab anviwònman yo.
Dokiman ki gen rapò · Etabli yon koneksyon seri ak ESP32 · Plugin Eclipse · Ekstansyon VSCode · Monitè IDF
1.4 Bati Premye Pwojè Ou a
Si ou deja enstale ESP-IDF la epi ou pa itilize IDE, ou ka konstwi premye pwojè ou a apati liy kòmand lan apre Kòmanse yon Pwojè sou Windows oswa Kòmanse yon Pwojè sou Linux ak macOS.
1.5 Dezenstale ESP-IDF
Si ou vle retire ESP-IDF, tanpri swiv Dezenstale ESP-IDF la.
Sistèm Espressif
44 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 2
Referans API
2.1 Konvansyon API yo
Dokiman sa a dekri konvansyon ak sipozisyon komen pou Entèfas Pwogramasyon Aplikasyon (API) ESP-IDF yo. ESP-IDF bay plizyè kalite interfaces pwogramasyon:
Fonksyon C, estrikti, enum, definisyon tip ak makro preprocesè deklare nan header piblik la files nan konpozan ESPIDF yo. Plizyè paj nan seksyon Referans API nan gid pwogramasyon an genyen deskripsyon fonksyon, estrikti ak kalite sa yo.
· Fonksyon sistèm konstriksyon, varyab predefini ak opsyon. Sa yo dokimante nan gid sistèm konstriksyon an. · Opsyon Kconfig yo ka itilize nan kòd ak nan sistèm konstriksyon an (CMakeLists.txt) files. · Zouti lame yo ak paramèt liy kòmand yo fè pati koòdone ESP-IDF la tou. ESP-IDF konsiste de konpozan ki ekri espesyalman pou ESP-IDF ansanm ak bibliyotèk twazyèm pati yo. Nan kèk ka, yo ajoute yon anbalaj espesifik pou ESP-IDF nan bibliyotèk twazyèm pati a, sa ki bay yon koòdone ki swa pi senp oswa pi byen entegre ak rès fasilite ESP-IDF yo. Nan lòt ka, yo prezante API orijinal bibliyotèk twazyèm pati a bay devlopè aplikasyon yo. Seksyon ki vin apre yo eksplike kèk aspè nan API ESP-IDF yo ak itilizasyon yo.
2.1.1 Erè manyen
Pifò API ESP-IDF yo retounen kòd erè ki defini ak tip esp_err_t la. Gade seksyon Jesyon Erè a pou plis enfòmasyon sou apwòch pou jere erè yo. Referans Kòd Erè a gen lis kòd erè konpozan ESP-IDF yo retounen.
2.1.2 Estrikti konfigirasyon yo
Enpòtan: Inisyalizasyon kòrèk estrikti konfigirasyon yo se yon pati enpòtan pou fè aplikasyon an konpatib ak vèsyon ESP-IDF nan lavni.
Pifò fonksyon inisyalizasyon oswa konfigirasyon nan ESP-IDF pran kòm agiman yon pwentè sou yon estrikti konfigirasyon. Pa egzanpample:
45
Chapit 2. Referans API
konst esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "my_timer"
}; esp_timer_handle_t revèy_mwen an; esp_err_t erè = esp_timer_create(&argument_revèy_mwen an, &revèy_mwen an);
Fonksyon inisyalizasyon yo pa janm estoke pwentè ki mennen nan estrikti konfigirasyon an, kidonk li an sekirite pou mete estrikti a sou pil la.
Aplikasyon an dwe inisyalize tout chan estrikti a. Sa ki annapre a pa kòrèk:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Pa kòrèk! Chan .arg ak .name yo pa inisyalize */ esp_timer_create(&my_timer_args, &my_timer);
Pifò ansyen ESP-IDF yoampFichye yo itilize inisyalizè C99 pou inisyalizasyon estrikti, paske yo bay yon fason presi pou mete yon sou-ansanm chan, epi inisyalize chan ki rete yo a zewo:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Kòrèk, chan .arg ak .name yo inisyalize ak zewo */
};
Langaj C++ pa sipòte sentaks inisyalizè yo jiska C++20, sepandan konpilatè GCC sipòte li pasyèlman kòm yon ekstansyon. Lè w ap itilize API ESP-IDF nan kòd C++, ou ka konsidere itilize modèl sa a:
esp_timer_create_args_t my_timer_args = {}; /* Tout chan yo inisyalize a zewo */ my_timer_args.callback = &my_timer_callback;
Inisyalizatè pa defo
Pou kèk estrikti konfigirasyon, ESP-IDF bay makro pou mete valè defo chan yo:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG elaji pou l vin yon inisyalizè deziyen.
Kounye a tout chan yo mete sou valè defo yo. Nenpòt chan ka toujou modifye: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Li rekòmande pou itilize makro inisyalizè pa default chak fwa yo bay yo pou yon estrikti konfigirasyon patikilye.
2.1.3 API prive
Yon sèten tit files nan ESP-IDF yo genyen API ki fèt pou itilize sèlman nan kòd sous ESP-IDF la, epi non pa aplikasyon yo. Antèt sa yo fileSouvan, konpozan yo genyen "private" oubyen "esp_private" nan non yo oubyen nan chemen yo. Sèten konpozan, tankou "hal", genyen sèlman API prive. Yo ka retire oubyen chanje API prive yo yon fason ki pa konpatib ant vèsyon minè oubyen patch.
2.1.4 Konpozan nan example pwojè yo
ESP-IDF ansyenampChizye yo genyen yon varyete pwojè ki demontre itilizasyon API ESP-IDF yo. Pou diminye kopi kòd nan ansyen anamples, gen kèk asistan komen ki defini andedan konpozan ke plizyè ansyen itilize.amples.
Sistèm Espressif
46 Soumèt Dokiman Kòmantè
Lage v5.0.9
Chapit 2. Referans API
Sa gen ladan l konpozan ki sitiye
Dokiman / Resous
![]() |
Kat Devlopman Kit Espressif Systems ESP32 Dev Kitc [pdfGid Itilizatè Komisyon Devlopman ESP32 Dev Kitc, ESP32, Komisyon Devlopman Dev Kitc, Komisyon Devlopman Kitt, Komisyon Devlopman, Komisyon Konsèy |
