Bodi ya Maendeleo ya ESP32 Dev Kitc

Taarifa ya Bidhaa

Vipimo

  • Bidhaa: ESP32
  • Mwongozo wa Kuandaa: ESP-IDF
  • Toleo la Toleo: v5.0.9
  • Mtengenezaji: Mifumo ya Espressif
  • Tarehe ya Kutolewa: Mei 16, 2025

Maagizo ya Matumizi ya Bidhaa

1. Anza

Kabla ya kuanza na ESP32, jitambue na
zifuatazo:

1.1 Utangulizi

Jifunze kuhusu utendaji na uwezo wa kimsingi wa
ESP32.

1.2 Unachohitaji

Hakikisha una maunzi na programu muhimu:

  • Vifaa: Angalia orodha ya vifaa vinavyohitajika
    vipengele.
  • Programu: Sakinisha programu inayohitajika
    vipengele.

1.3 Ufungaji

Fuata hatua hizi ili kusakinisha IDE na kusanidi
mazingira:

  • IDE: Sakinisha IDE inayopendekezwa kwa
    Kubadilisha ESP32
  • Ufungaji wa Mwongozo: Weka mwenyewe
    mazingira kama inahitajika.

1.4 Jenga Mradi Wako wa Kwanza

Unda na ujenge mradi wako wa awali kwa kutumia ESP32.

1.5 Sanidua ESP-IDF

Ikihitajika, jifunze jinsi ya kusanidua ESP-IDF kutoka kwako
mfumo.

2. Rejea ya API

Rejelea hati za API kwa maelezo ya kina
itifaki za programu, kushughulikia makosa, na usanidi
miundo.

Maswali Yanayoulizwa Mara Kwa Mara (FAQ)

Swali: Je, ninawezaje kutatua masuala ya kawaida na ESP32?

A: Rejelea sehemu ya utatuzi katika mwongozo wa programu
au tembelea mtengenezaji webtovuti kwa rasilimali za usaidizi.

Swali: Je, ninaweza kutumia ESP-IDF na vidhibiti vidogo vingine?

J: ESP-IDF imeundwa mahususi kwa ajili ya ESP32, lakini unaweza kuipata
utangamano na vidhibiti vingine vya Espressif.

ESP32
Mwongozo wa Utayarishaji wa ESP-IDF
Toleo la v5.0.9 Espressif Systems tarehe 16 Mei 2025

Jedwali la yaliyomo

Jedwali la yaliyomo

i

1 Anza

3

1.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Unachohitaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Vifaa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Ufungaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

1.3.2 Ufungaji wa Mwongozo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Jenga Mradi Wako wa Kwanza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5 Sanidua ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Marejeleo ya API

45

2.1 Mikataba ya API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.1 Ushughulikiaji wa hitilafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.2 Miundo ya usanidi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.3 API za Kibinafsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.4 Vipengele katika exampmiradi le. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 Uthabiti wa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 Itifaki za Maombi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 bandari ya ASIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

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

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

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

2.2.5 Mteja wa HTTP wa ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 Udhibiti wa Mitaa wa ESP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2.2.7 ESP Serial Slave Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 Kifurushi cha Cheti cha ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 Seva ya HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 Seva ya HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 Mwangwi wa ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS Huduma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

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

2.2.14 Tabaka la Mtandao wa IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 API ya Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 Bluetooth® Kawaida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 Bluetooth® Nishati ya Chini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

2.3.4 Kidhibiti & HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

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

2.3.6 API za mwenyeji wa NimBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767

2.4 Marejeleo ya Misimbo ya Hitilafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769

2.5 API za Mitandao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.2 Ethaneti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899

2.5.3 Uzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

i

2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Tabaka la Mtandao wa IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Tabaka la Maombi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Pembeni API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Kibadilishaji Analogi hadi Dijiti (ADC) Kiendesha Modi ya Oneshot . . . . . . . . . . . . . . . . . 977 2.6.2 Kibadilishaji Analogi hadi Dijiti (ADC) Kiendeshaji cha Hali ya Kuendelea . . . . . . . . . . . . . . . 986 2.6.3 Kiendeshaji cha Urekebishaji cha Analogi hadi Dijiti (ADC) . . . . . . . . . . . . . . . . . . . 993 2.6.4 Mti wa Saa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Kigeuzi cha Dijitali hadi Analogi (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Kipima Muda cha Malengo ya Jumla (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Mzunguko Uliounganishwa (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Sauti ya Inter-IC (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Udhibiti wa LED (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Kidhibiti Upana wa Kidhibiti cha Mapigo ya Moyo (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Kidhibiti cha Mapigo (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Transceiver ya Kidhibiti cha Mbali (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Mahitaji ya Kuvuta Juu ya SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 Dereva Mwenyeji wa SDMMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 SD SPI Host Dereva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Dereva Mtumwa wa Kadi ya SDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Urekebishaji wa Sigma-Delta (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Dereva Mkuu wa SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Kipengele Salama) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Kihisi cha Kugusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Kiolesura cha Magari cha Waya Mbili (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Kipokezi/Kisambazaji cha Universal Asynchronous (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Usanidi wa Mradi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Menyu ya Usanidi wa Mradi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Kwa kutumia sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kanuni za Uumbizaji wa Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Utangamano wa Nyuma wa Chaguo za Kconfig . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Marejeleo ya Chaguzi za Usanidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Utoaji API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Mawasiliano ya Itifaki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Utoaji Pamoja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Utoaji wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API ya Hifadhi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileMsaada wa mfumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Huduma ya Utengenezaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Maktaba ya Hifadhi isiyo na tete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Huduma ya Jenereta ya Sehemu ya NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC Dereva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFFS Filemfumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Mtandaoni filesehemu ya mfumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 API ya Mfumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Umbizo la Picha ya Programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Ufuatiliaji wa Kiwango cha Maombi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Kitendaji cha kupiga simu na mrundikano wa nje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Marekebisho ya Chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Meneja wa eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Misimbo ya Hitilafu na Kazi za Msaidizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii

2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Maktaba ya Kitanzi cha Tukio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Zaidiview). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Sifa za Ziada) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Ugawaji wa Kumbukumbu ya Lundo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Utatuzi wa Kumbukumbu ya Lundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Kipima Muda cha Msongo wa Juu (Kipima Muda cha ESP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 API za Ndani na Isiyo thabiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Simu ya Kichakataji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Mgao wa kukatiza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Maktaba ya ukataji miti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 API za Mifumo Nyingine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Masasisho ya Juu ya Hewa (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Ufuatiliaji wa Utendaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Usimamizi wa Umeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Msaada wa Nyuzi za POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Nambari Nambari Kizazi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 Njia za Usingizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Uwezo wa SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Muda wa Mfumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API ya ugawaji wa himem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP Utayarishaji wa programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Walinzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161

3 Marejeleo ya vifaa

2167

3.1 Ulinganisho wa Mfululizo wa Chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 Nyaraka Zinazohusiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

Miongozo 4 ya API

2171

4.1 Maktaba ya Ufuatiliaji wa Kiwango cha Maombi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 Mbinu za Uendeshaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 Chaguzi za Usanidi na Vitegemezi. . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 Jinsi ya Kutumia Maktaba Hii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 Mtiririko wa Kuanzisha Programu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181

4.2.1 Sehemu ya kwanzatagna bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 sekundetagna bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 Kuanzisha programu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183

4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.3.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 Bluetooth® Nishati ya Chini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 Anza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191

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

4.5 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 Utangamano wa bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 Kiwango cha logi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.3 Kuweka upya kiwanda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 Anzisha kutoka kwa Firmware ya Jaribio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 Kurudisha nyuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 Mlinzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.7 Ukubwa wa Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 Anzisha haraka kutoka kwa Usingizi Mkubwa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.9 Kipakiaji maalum cha bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 Kujenga Mfumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 Kutumia Mfumo wa Kujenga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

iii

4.6.3 Kutample Mradi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Mradi wa CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Sehemu CMakeLists Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Usanidi wa Sehemu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 Ufafanuzi wa Kichakataji awali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Mahitaji ya Kipengele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Kupitisha Sehemu za Mradi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Vipengele vya Usanidi Pekee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Utatuzi wa CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Kutample Sehemu CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Chaguo-msingi maalum za sdkconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 Hoja za Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Kujenga Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Kuandika Safi CTengeneza Vipengele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Kwa Kutumia Miradi ya Watu Wengine CFanya Miradi yenye Vipengele . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Kutumia Maktaba Zilizojengwa Mapema zenye Vipengee . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Kutumia ESP-IDF katika Miradi Maalum ya CMake . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globbing & Kuongeza Ujenzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Unda Metadata ya Mfumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Jenga Mfumo wa Ndani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Kuhama kutoka ESP-IDF GNU Make System . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Dampo la Msingi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Mipangilio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Hifadhi dampo la msingi ili kuangaza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Chapisha dampo la msingi kwa UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Kazi za ROM katika Nyuma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Vigezo vya utupaji unapohitajika. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Kuendesha espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Mishipa ya Kuamsha Usingizi Mzito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Kanuni za Mashimo ya Wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Utekelezaji wa Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Inapakia Msimbo Katika Kumbukumbu ya RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Kupakia Data Katika Kumbukumbu ya RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Hundi ya CRC kwa Mishipa ya Kuamka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Kutample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Kushughulikia Hitilafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Misimbo ya hitilafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Kubadilisha misimbo ya hitilafu hadi ujumbe wa hitilafu . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK jumla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_BILA_ABORT macro . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR jumla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR jumla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 ANGALIA MACROS Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Hitilafu katika kushughulikia mifumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 C++ Vighairi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 Dhana za ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 Kujenga Mtandao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Kusimamia Mtandao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Usambazaji wa Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Kubadilisha Chaneli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 Utendaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Maelezo Zaidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Kushughulikia Tukio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethaneti, na Matukio ya IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Matukio ya Mesh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Matukio ya Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Makosa Mbaya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Kidhibiti cha Hofu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Daftari Tupa na Nyuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Muda wa Ufuatiliaji wa RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Makosa ya Kutafakari Mkuu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Makosa Mengine ya Kufisha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Usimbaji Fiche wa Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 eFuses Husika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Mchakato wa Usimbaji Mwangaza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Usanidi wa Usimbaji Mwako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Mapungufu Yanayowezekana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 Hali ya Usimbaji Fiche Mwako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Data ya Kusoma na Kuandika katika Flash Iliyosimbwa . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Kusasisha Mweko Uliosimbwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Inazima Usimbaji Fiche wa Mweko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Pointi Muhimu Kuhusu Usimbaji Fiche Mwako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Mapungufu ya Usimbaji Fiche wa Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Usimbaji wa Mweko na Boot Salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Vipengele vya Juu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Maelezo ya Kiufundi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Muhtasari wa maunzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Usanifu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (Ngazi ya Chini) Tabaka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Tabaka la Uondoaji wa Kifaa) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Kukatiza kwa Kiwango cha Juu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Viwango vya Kukatiza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Vidokezo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Utatuzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Jinsi Inafanya Kazi? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Kuchagua JTAG Adapta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Usanidi wa OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Inasanidi ESP32 Lengo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Inazindua Kitatuzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Utatuzi Mfamples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Jengo la OpenOCD kutoka kwa Vyanzo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Vidokezo na Maswali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Nyaraka Zinazohusiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 Kizazi cha Hati za Kiungo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Anza Haraka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Mambo ya Ndani ya Kizazi cha Hati za Kiungo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 API Zinazotumika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 API ya Soketi za BSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP Kazi ya BureRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 Usaidizi wa IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 marekebisho maalum ya esp-lwip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v

4.18.7 Uboreshaji wa Utendaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Aina za Kumbukumbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (RAM ya data) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (RAM ya Maagizo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (msimbo umetekelezwa kutoka kwa flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (data iliyohifadhiwa katika flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC Kumbukumbu ya polepole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 kumbukumbu ya RTC FAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Mahitaji Yenye Uwezo wa DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Bafa ya DMA kwenye rafu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Njia za safu ya OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Jinsi ya Kuandika Programu ya OpenThread. . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Njia ya Mpaka ya OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Majedwali ya Kugawanya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Majedwali ya Sehemu Zilizojengwa ndani. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Kuunda Majedwali Maalum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Kuzalisha Jedwali la Kugawanya Binary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Hundi za Ukubwa wa Sehemu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Kumulika jedwali la kizigeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Zana ya Kugawanya (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 Utendaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Jinsi ya Kuboresha Utendaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Viongozi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 urekebishaji wa RF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Urekebishaji kiasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Urekebishaji kamili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Hakuna urekebishaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 Data ya uanzishaji wa PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Rejeleo la API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Boot Salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Usuli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Mchakato Salama wa Boot Umeishaview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Funguo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Ukubwa wa Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Jinsi ya Kuwezesha Boot Salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Kianzisha Programu Inayowashwa Tena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Kuzalisha Ufunguo Salama wa Kuweka Sahihi kwenye Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Kusainiwa kwa Picha kwa Mbali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Mbinu Bora za Boot Salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Maelezo ya Kiufundi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Kuwasha Salama na Usimbaji Fiche wa Mweko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Uthibitishaji wa Programu Uliotiwa Sahihi Bila Kuwasha Salama kwa Kifaa . . . . . . . . . . . . . . . . . . 2478 4.24.13 Vipengele vya Kina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Salama Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Usuli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Mchakato Salama wa Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Muundo wa Kizuizi cha Sahihi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Padding salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Kuthibitisha Kizuizi cha Sahihi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Kuthibitisha Picha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Ukubwa wa Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 matumizi ya eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Jinsi ya Kuwasha Salama Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Vikwazo baada ya Kuwasha Salama kuwasha . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Kuzalisha Ufunguo Salama wa Kuweka Sahihi kwenye Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 Kusainiwa kwa Picha kwa Mbali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Mbinu Bora za Boot Salama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Maelezo ya Kiufundi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Kuwasha Salama na Usimbaji wa Mweko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Uthibitishaji wa Programu Uliotiwa Sahihi Bila Kuwasha Salama kwa Kifaa . . . . . . . . . . . . . . . . . . 2484 4.25.18 Vipengele vya Kina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Msaada kwa RAM ya Nje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Maunzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Inasanidi RAM ya Nje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Vikwazo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Kushindwa kuanzisha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Marekebisho ya Chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Thread Hifadhi ya Ndani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 Kawaida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 Zana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Picha ya Docker ya IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 Kisakinishi cha Windows cha IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Meneja wa Kipengele cha IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Zana Zinazoweza Kupakuliwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Upimaji wa Kitengo katika ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Kesi za Kawaida za Mtihani. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Kesi za Kujaribu za Vifaa vingi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Multi-stage Kesi za Mtihani. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Majaribio ya Malengo Tofauti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Programu ya Mtihani wa Kitengo cha Jengo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Kuendesha Vipimo vya Kitengo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Msimbo wa Muda wenye Kipima Muda Kilichofidiwa Akiba . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Mzaha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Upimaji wa Kitengo kwenye Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Majaribio ya Programu Iliyopachikwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Majaribio ya Kitengo cha IDF kwenye Mpangishi wa Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Kiendeshi cha Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Orodha ya Vipengele vya ESP32 vya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Jinsi ya Kuandika Maombi ya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Msimbo wa Hitilafu wa API ya Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Uanzishaji wa Kigezo cha API ya Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 Muundo wa Kutayarisha Wi-Fi wa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 Maelezo ya Tukio la Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Hali ya Jumla ya Kituo cha Wi-Fi cha ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Hali ya Jumla ya ESP32 Wi-Fi AP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Uchanganuzi wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Kitengo cha Kuunganisha Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Kituo cha Wi-Fi cha ESP32 Inaunganisha Wakati AP Nyingi Zinapopatikana . . . . . . . . . . . . . 2543 4.31.12 Unganisha tena Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi Beacon Timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Usanidi wa Wi-Fi wa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Usimamizi wa Mtandao Usiotumia Waya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Kipimo cha Rasilimali za Redio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Mpito wa haraka wa BSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Hali ya Kuokoa Nishati ya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Utumiaji wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 Pakiti Tuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Hali ya Kivuta cha Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Antena Nyingi za Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Taarifa za Hali ya Idhaa ya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Usanidi wa Taarifa ya Hali ya Kituo cha Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 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 Kipande cha Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 Aliyejiandikisha WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Matumizi ya Bafa ya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Jinsi ya Kuboresha Utendaji wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Utatuzi wa matatizo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Usalama wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Vipengele vya Usalama vya ESP32 vya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Miundo ya Usimamizi Iliyolindwa (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Binafsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Imeboreshwa OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 Kuwepo kwa RF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Hali ya Kuishi Pamoja Inayotumika kwa ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Utaratibu na Sera ya Kuishi Pamoja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Jinsi ya Kutumia Kipengele cha Kuishi Pamoja . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Majengo Yanayozalishwa tena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Utangulizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Sababu za miundo isiyoweza kuzaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Kuwezesha miundo inayoweza kuzaa tena katika ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Jinsi miundo inayoweza kuzaliana inafikiwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Miundo inayozalishwa tena na utatuzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Mambo ambayo bado yanaathiri miundo inayoweza kuzaliana . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Mwongozo wa Mtumiaji wa Hali ya Nguvu ya Chini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578

Miongozo 5 ya Uhamiaji

2579

5.1 ESP-IDF 5.x Mwongozo wa Uhamiaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 Uhamiaji kutoka 4.4 hadi 5.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 Maktaba na Mifumo

2611

6.1 Mifumo ya Wingu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

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

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

6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Mifumo ya Espressifns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.1 Mfumo wa Ukuzaji wa Sauti ya Espressif. . . . . . . . . . . . . . . . . . . . . . . . . 2612

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

6.2.3 Maktaba ya Espressif DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.4 Mfumo wa Maendeleo wa ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . 2613

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

6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.7 ESP-IoT-Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.8 ESP-Itifaki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

viii

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

7 Mwongozo wa Michango

2615

7.1 Jinsi ya Kuchangia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.2 Kabla ya Kuchangia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.3 Mchakato wa Kuvuta Ombi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 Sehemu ya Kisheria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5 Nyaraka Zinazohusiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 Mwongozo wa Mtindo wa Mfumo wa Maendeleo wa Espressif IoT . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 Sakinisha Hook ya kujitolea mapema kwa Mradi wa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 Msimbo wa Uhifadhi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624

7.5.4 Kuunda Kutamples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 Kiolezo cha Nyaraka za API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 Mkataba wa Mchangiaji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 Mwongozo wa Kichwa cha Hakimiliki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 Majaribio ya ESP-IDF kwa Mwongozo wa Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635

8 Matoleo ya ESP-IDF

2645

8.1 Matoleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.2 Je, Ninapaswa Kuanza Na Toleo Gani? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.3 Mpango wa Uhariri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645

8.4 Vipindi vya Usaidizi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 Kukagua Toleo la Sasa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Mtiririko wa kazi wa Git. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7 Kusasisha ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 Kusasisha hadi Toleo Imara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.2 Kusasisha hadi Toleo Lililotolewa Awali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 Kusasishwa kwa Tawi Kuu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 Kusasisha kwa Tawi la Kutolewa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 Rasilimali

2651

9.1 Jukwaa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.1 PlatformIO ni nini? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.2 Ufungaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651

9.1.3 Usanidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 Mafunzo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.5 Mradi Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 Hatua Zinazofuata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.2 Viungo Muhimu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

10 Hakimiliki na Leseni

2653

10.1 Hakimiliki za Programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.1 Vipengele vya Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 Nyaraka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 Hakimiliki za Msimbo wa Chanzo cha ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.3 Leseni ya Xtensa libhal MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 Leseni ya TinyBasic Plus MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 Leseni ya TJpgDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

11 Kuhusu

2657

12 Badili Kati ya Lugha

2659

Kielezo

2661

Kielezo

2661

ix

x

Jedwali la yaliyomo
Hizi ni hati za Mfumo wa Maendeleo wa Espressif IoT (esp-idf). ESP-IDF ndio mfumo rasmi wa maendeleo wa ESP32, ESP32-S na ESP32-C Series SoCs. Hati hii inaelezea kutumia ESP-IDF na ESP32 SoC.

Anza

Rejea ya API

Miongozo ya API

Mifumo ya Espressif

1 Peana Maoni ya Hati

Kutolewa v5.0.9

Jedwali la yaliyomo

Mifumo ya Espressif

2 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1
Anza
Hati hii imekusudiwa kukusaidia kusanidi mazingira ya ukuzaji wa programu kwa maunzi kulingana na chip ya ESP32 na Espressif. Baada ya hayo, ex rahisiample itakuonyesha jinsi ya kutumia ESP-IDF (Espressif IoT Development Framework) kwa usanidi wa menyu, kisha kwa ajili ya kujenga na kuangaza firmware kwenye ubao wa ESP32.
Kumbuka: Hii ni hati ya toleo thabiti la v5.0.9 la ESP-IDF. Matoleo mengine ya ESP-IDF yanapatikana pia.
1.1 Utangulizi
ESP32 ni mfumo kwenye chipu unaounganisha vipengele vifuatavyo: · Wi-Fi (bendi ya GHz 2.4) · Bluetooth · Utendaji wa juu wa aina mbili za Xtensa® 32-bit LX6 CPU cores · Kichakataji-shirikishi cha Nguvu ya Chini ya Juu · Vifaa vya pembeni vingi
Inayoendeshwa na teknolojia ya nm 40, ESP32 hutoa jukwaa thabiti, lililounganishwa sana, ambalo husaidia kukidhi mahitaji ya kuendelea ya matumizi bora ya nguvu, muundo wa kompakt, usalama, utendakazi wa hali ya juu, na kutegemewa. Espressif hutoa nyenzo za kimsingi za maunzi na programu kusaidia wasanidi programu kutambua mawazo yao kwa kutumia maunzi ya mfululizo wa ESP32. Mfumo wa ukuzaji wa programu na Espressif unakusudiwa kutengeneza programu za Internetof-Things (IoT) na Wi-Fi, Bluetooth, usimamizi wa nguvu na vipengele vingine kadhaa vya mfumo.
1.2 Unachohitaji
1.2.1 maunzi
· Ubao wa ESP32. · Kebo ya USB – USB A / USB ndogo B. · Kompyuta inayoendesha Windows, Linux, au macOS.
Kumbuka: Kwa sasa, baadhi ya vibao vya ukuzaji vinatumia viunganishi vya USB Aina ya C. Hakikisha una kebo sahihi ya kuunganisha ubao wako!
Ikiwa una moja ya bodi rasmi za usanidi za ESP32 zilizoorodheshwa hapa chini, unaweza kubofya kiungo ili kujifunza zaidi kuhusu maunzi.
3

Sura ya 1. Anza
ESP32-DevKitS(-R)
Mwongozo huu wa mtumiaji unatoa taarifa kuhusu ESP32-DevKitS(-R), ubao unaomulika wa ESP32 unaozalishwa na Espressif. ESP32-DevKitS(-R) ni mchanganyiko wa majina mawili ya bodi: ESP32-DevKitS na ESP32-DevKitS-R. S inawakilisha chemchemi, na R inawakilisha WROVER.

ESP32-DevKitS

ESP32-DevKitS-R

Hati hii ina sehemu kuu zifuatazo: · Kuanza: Hutoa nyongezaview ya ESP32-DevKitS(-R) na maagizo ya usanidi wa maunzi/programu ili kuanza. · Marejeleo ya maunzi: Hutoa maelezo ya kina zaidi kuhusu maunzi ya ESP32-DevKitS(-R)ns. · Nyaraka Zinazohusiana: Hutoa viungo vya nyaraka zinazohusiana.

Jinsi ya Kuanza Sehemu hii inaeleza jinsi ya kuanza kutumia ESP32-DevKitS(-R). Inaanza na sehemu chache za utangulizi kuhusu ESP32-DevKitS(-R), kisha Sehemu ya Jinsi ya Kumweka Bodi hutoa maagizo ya jinsi ya kupachika moduli kwenye ESP32-DevKitS(-R), itayarishe, na uingize programu dhibiti ndani yake.

Zaidiview ESP32-DevKitS(-R) ni bodi inayomulika ya Espressifns iliyoundwa mahususi kwa ajili ya ESP32. Inaweza kutumika kuangaza moduli ya ESP32 bila kuuza moduli kwa usambazaji wa umeme na mistari ya ishara. Ikiwa na moduli iliyowekwa, ESP32-DevKitS(-R) pia inaweza kutumika kama ubao mdogo wa ukuzaji kama ESP32-DevKitC.
Bao za ESP32-DevKitS na ESP32-DevKitS-R hutofautiana tu katika mpangilio wa pini za chemchemi ili kutoshea moduli zifuatazo za ESP32.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Kwa habari kuhusu moduli zilizo hapo juu, tafadhali rejelea Moduli za Mfululizo wa ESP32.

Maelezo ya Vipengele

Mifumo ya Espressif

4 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 1: ESP32-DevKitS - mbele

Mifumo ya Espressif

Kielelezo cha 2: ESP32-DevKitS-R - mbele ya 5
Wasilisha Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Pini za Kipengee Muhimu cha Spring 2.54 mm Vichwa vya Kike vya Kike
USB-to-UART Bridge LDO Micro-USB Connector/Micro USB Port EN Button Boot Button
Nguvu kwenye LED

Ufafanuzi Bofya moduli ndani. Pini zitatoshea kwenye mashimo yenye muundo wa moduli. Vichwa hivi vya kike vimeunganishwa kwenye pini za moduli iliyowekwa kwenye ubao huu. Kwa maelezo ya vichwa vya kike, tafadhali rejelea Vichwa vya Vichwa. USB ya chipu moja hadi daraja la UART hutoa viwango vya uhamishaji vya hadi Mbps 3.
5V-to-3.3V kiwango cha chini cha kushukatagkidhibiti e (LDO).
Kiolesura cha USB. Ugavi wa nguvu kwa bodi pamoja na kiolesura cha mawasiliano kati ya kompyuta na bodi.
Weka upya kitufe.
Kitufe cha kupakua. Kushikilia Boot na kisha kubofya EN huanzisha modi ya Upakuaji wa Firmware kwa ajili ya kupakua programu dhibiti kupitia mlango wa serial.
Huwasha wakati USB au usambazaji wa umeme umeunganishwa kwenye ubao.

Jinsi ya Kumulika Bodi Kabla ya kuwezesha ESP32-DevKitS(-R), tafadhali hakikisha kuwa iko katika hali nzuri bila dalili zozote za uharibifu.
Vifaa Vinavyohitajika · Sehemu ya ESP32 ya chaguo lako · Kebo ya USB 2.0 (Standard-A hadi Micro-B) · Kompyuta inayoendesha Windows, Linux, au macOS
Usanidi wa Vifaa Tafadhali weka moduli ya chaguo lako kwenye ESP32-DevKitS(-R) yako kulingana na hatua zifuatazo:
· Weka kwa upole moduli yako kwenye ubao wa ESP32-DevKitS(-R). Hakikisha kwamba mashimo yenye umbo la nyota kwenye moduli yako yameunganishwa na pini za chemchemi kwenye ubao.
· Bonyeza moduli yako chini kwenye ubao hadi ibofye. · Angalia ikiwa pini zote za majira ya kuchipua zimeingizwa kwenye mashimo yenye miamba. Ikiwa kuna pini za chemchemi zisizo sawa,
ziweke kwenye mashimo yenye kibano.
Usanidi wa Programu
Mbinu Inayopendekezwa Mfumo wa ukuzaji wa ESP-IDF hutoa njia inayopendelewa ya kuwaka jozi kwenye ESP32-DevKitS(-R). Tafadhali endelea hadi Anza, ambapo Usakinishaji wa Sehemu utakusaidia haraka kusanidi mazingira ya usanidi na kisha kuangazia programu ya zamaniampnenda kwenye ESP32-DevKitS(-R) yako.
Mbinu Mbadala Kama mbadala, watumiaji wa Windows wanaweza kuwaka jozi kwa kutumia Zana ya Upakuaji wa Flash. Ipakue tu, ifungue, na ufuate maagizo ndani ya folda ya hati.
Kumbuka: 1. Kumulika binary files, ESP32 inapaswa kuwekwa kuwa hali ya Upakuaji wa Firmware. Hii inaweza kufanyika ama kwa chombo cha flash moja kwa moja, au kwa kushikilia kifungo cha Boot na kugonga kifungo cha EN. 2. Baada ya kuangaza binary files, Zana ya Kupakua Flash huwasha upya moduli yako ya ESP32 na kuwasha programu iliyomulika kwa chaguo-msingi.

Vipimo vya Bodi Yaliyomo na Ufungaji

Mifumo ya Espressif

6 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza Mtini. 3: Vipimo vya bodi ya ESP32-DevKitS - nyuma

Mifumo ya Espressif

Kielelezo 4: Vipimo vya bodi ya ESP32-DevKitS-R - nyuma 7
Wasilisha Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Maagizo ya rejareja Ukiagiza s chacheampKwa kuongezea, kila ESP32-DevKitS(-R) huja katika kifurushi cha kibinafsi katika begi ya antistatic au kifurushi chochote kulingana na muuzaji. Kwa maagizo ya rejareja, tafadhali nenda kwa https://www.espressif.com/en/contact-us/get-sampchini.
Maagizo ya Jumla Ukiagiza kwa wingi, mbao huja katika masanduku makubwa ya kadibodi. Kwa maagizo ya jumla, tafadhali nenda kwa https://www.espressif.com/en/contact-us/sales-questions.
Marejeleo ya vifaa
Mchoro wa Zuia Mchoro wa block hapa chini unaonyesha vipengele vya ESP32-DevKitS(-R) na miunganisho yao.

Kielelezo 5: ESP32-DevKitS(-R) (bofya ili kupanua)
Chaguzi za Ugavi wa Nishati Kuna njia tatu za kipekee za kutoa nguvu kwa bodi: · Mlango wa USB Ndogo, usambazaji wa umeme chaguomsingi · 5V na pini za GND za kichwa · 3V3 na pini za GND.
Inashauriwa kutumia chaguo la kwanza: bandari ndogo ya USB.

Mifumo ya Espressif

.

Alama ya Lebo

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP SENSOR_VP

L4 VN SENSOR_VN

L5 34

GPIO34

L6 35

GPIO35

L7 32

GPIO32

L8 33

GPIO33

inaendelea kwenye ukurasa unaofuata

8 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Jedwali 1 linaendelea kutoka ukurasa uliopita

.

Alama ya Lebo

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

5V ya nje

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

Vitalu vya Vichwa Kwa taswira ya vizuizi vya vichwa, tafadhali rejelea Maelezo ya Vipengee.

Nyaraka Zinazohusiana
· ESP32-DevKitS(-R) Schematics (PDF) · ESP32 Datasheet (PDF) · ESP32-WROOM-32 Datasheet (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet (PDF) · ESP32-SOLO-1 Datasheet · ESPROOM-W Datasheet (2PDF) Datasheet (2PDF-W) Karatasi ya data ya ESP32-WROVER-B (PDF) · Kiteuzi cha Bidhaa cha ESP

ESP32-DevKitM-1

Mwongozo huu wa mtumiaji utakusaidia kuanza kutumia ESP32-DevKitM-1 na pia utatoa maelezo ya kina zaidi.
ESP32-DevKitM-1 ni bodi ya maendeleo ya ESP32-MINI-1(1U) inayozalishwa na Espressif. Pini nyingi za I/O zimevunjwa hadi kwenye vichwa vya pini pande zote mbili ili kuunganishwa kwa urahisi. Watumiaji wanaweza kuunganisha vifaa vya pembeni na waya za kuruka au kuweka ESP32-DevKitM-1 kwenye ubao wa mkate.

Mifumo ya Espressif

9 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

ESP32-DevKitM-1 - mbele

ESP32-DevKitM-1 - isometriki

Hati hii ina sehemu kuu zifuatazo: · Kuanza: Hutoa nyongezaview ya ESP32-DevKitM-1 na maagizo ya usanidi wa maunzi/programu ili kuanza. · Marejeleo ya maunzi: Hutoa maelezo ya kina zaidi kuhusu maunzi ya ESP32-DevKitM-1ns. · Hati Zinazohusiana: Hutoa viungo kwa documentaiton husika.

Jinsi ya Kuanza Sehemu hii inaeleza jinsi ya kuanza kutumia ESP32-DevKitM-1. Inaanza na sehemu chache za utangulizi kuhusu ESP32-DevKitM-1, kisha Ukuzaji wa Programu ya Sehemu ya Kuanza hutoa maagizo ya jinsi ya kufanya usanidi wa awali wa maunzi na kisha jinsi ya kuwaka programu dhibiti kwenye ESP32-DevKitM-1.

Zaidiview Hii ni bodi ndogo na rahisi ya ukuzaji ambayo inaangazia:
· ESP32-MINI-1, au moduli ya ESP32-MINI-1U · kiolesura cha programu cha USB-to-serial ambacho pia hutoa usambazaji wa nishati kwa ubao · vichwa vya siri · vitufe vya kuweka upya na kuwezesha modi ya Upakuaji wa Firmware · vipengele vingine vichache.

Yaliyomo na Ufungaji

Maagizo ya rejareja Ukiagiza s chacheampKwa kuongezea, kila ESP32-DevKitM-1 huja katika kifurushi cha kibinafsi katika begi ya antistatic au kifurushi chochote kulingana na muuzaji wako.
Kwa maagizo ya rejareja, tafadhali nenda kwa https://www.espressif.com/en/contact-us/get-sampchini.

Maagizo ya Jumla Ukiagiza kwa wingi, mbao huja katika masanduku makubwa ya kadibodi. Kwa maagizo ya jumla, tafadhali nenda kwa https://www.espressif.com/en/contact-us/sales-questions.

Maelezo ya Vipengee Kielelezo kifuatacho na jedwali hapa chini vinaelezea vipengele muhimu, violesura na vidhibiti vya bodi ya ESP32-DevKitM-1. Tunachukua ubao na moduli ya ESP32-MINI-1 kama mfanoample katika sehemu zifuatazo.

Mifumo ya Espressif

10 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 6: ESP32-DevKitM-1 - mbele

Kipengele muhimu Moduli ya ubaoni
5 V hadi 3.3 V LDO Button Boot
Weka Upya Bandari Ndogo ya USB ya Kitufe
USB-to-UART Bridge 3.3 V Nguvu Kwenye LED
Kiunganishi cha I/O

Maelezo
Moduli ya ESP32-MINI-1 au moduli ya ESP32-MINI-1U. ESP32-MINI-1 inakuja na antena ya PCB iliyo kwenye ubao. ESP32-MINI-1U inakuja na kiunganishi cha antena ya nje. Moduli zote mbili zina flash ya MB 4 kwenye kifurushi cha chip. Kwa maelezo, tafadhali angalia Laha ya Data ya ESP32-MINI-1 & ESP32-MINI-1U.
Kidhibiti cha nguvu hubadilisha 5 V hadi 3.3 V.
Kitufe cha kupakua. Kushikilia Boot na kisha kubofya Weka Upya huanzisha modi ya Upakuaji wa Firmware kwa ajili ya kupakua programu dhibiti kupitia mlango wa serial.
Weka Kitufe Upya
Kiolesura cha USB. Ugavi wa umeme kwa bodi pamoja na kiolesura cha mawasiliano kati ya kompyuta na chip ya ESP32.
Chip moja ya daraja la USB-UART hutoa viwango vya uhamishaji hadi 3 Mbps.
Huwasha wakati USB imeunganishwa kwenye ubao. Kwa maelezo, tafadhali angalia taratibu katika Hati Zinazohusiana. Pini zote za GPIO zinazopatikana (isipokuwa basi la SPI kwa flash) zimevunjwa hadi kwenye vichwa vya pini kwenye ubao. Watumiaji wanaweza kupanga chip ya ESP32 ili kuwezesha vitendaji vingi.

Anzisha Ukuzaji wa Programu Kabla ya kuwasha ESP32-DevKitM-1 yako, tafadhali hakikisha kuwa iko katika hali nzuri bila dalili zozote za uharibifu.
Vifaa Vinavyohitajika · ESP32-DevKitM-1 · kebo ya USB 2.0 (Standard-A hadi Micro-B) · Kompyuta inayoendesha Windows, Linux, au macOS
Usanidi wa Programu Tafadhali endelea na Anza, ambapo Usakinishaji wa Sehemu utakusaidia haraka kusanidi mazingira ya usanidi na kisha kuwasha programu ya zamani.ampnenda kwenye ESP32-DevKitM-1 yako.

Mifumo ya Espressif

11 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Zingatia: Bodi za ESP32-DevKitM-1 zilizotengenezwa kabla ya tarehe 2 Desemba 2021 zina moduli moja ya msingi iliyosakinishwa. Ili kuthibitisha ni sehemu gani unayo, tafadhali angalia maelezo ya moduli ya kuashiria katika PCN-2021-021 . Ikiwa ubao wako una moduli moja ya msingi iliyosakinishwa, tafadhali wezesha modi ya msingi moja (CONFIG_FREERTOS_UNICORE) katika menyuconfig kabla ya kuwasha programu zako.
Mchoro wa Kizuizi cha Marejeleo ya Vifaa Mchoro wa block hapa chini unaonyesha vipengele vya ESP32-DevKitM-1 na miunganisho yake.

Kielelezo cha 7: ESP32-DevKitM-1
Chagua Chanzo cha Nishati Kuna njia tatu za kipekee za kutoa nguvu kwa bodi: · Mlango wa USB Ndogo, usambazaji wa umeme chaguomsingi · 5V na pini za GND za kichwa · 3V3 na pini za GND.
Onyo: · Ugavi wa umeme lazima utolewe kwa kutumia chaguo moja na moja tu kati ya chaguo zilizo hapo juu, vinginevyo bodi na/au chanzo cha usambazaji wa umeme kinaweza kuharibika. · Ugavi wa nishati kwa mlango mdogo wa USB unapendekezwa.

Maelezo ya Pini Jedwali lililo hapa chini linatoa Jina na Kazi ya pini katika pande zote za ubao. Kwa usanidi wa pini za pembeni, tafadhali rejelea Karatasi ya data ya ESP32.

Hapana.

Jina

Aina

1

GND

P

2

3V3

P

Ugavi wa umeme wa Ground 3.3 V

inaendelea kwenye ukurasa unaofuata

Mifumo ya Espressif

12 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Jedwali 2 linaendelea kutoka ukurasa uliopita

Hapana.

Jina

Aina

Kazi

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

Weka upya; Juu: wezesha; Chini: nguvu zimezimwa

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

I/O

GPIO32, XTAL_32K_P (ingizo la oscillator ya fuwele 32.768 kHz),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

I/O

GPIO33, XTAL_32K_N (toto la kioo la oscillator la kHz 32.768),

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, MMS, HSPICLK,

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

Ugavi wa umeme wa 5 V

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

0

I/O

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

I/O

GPIO3, U0RXD, CLK_OUT2

Maelezo ya Marekebisho ya Vifaa Hakuna matoleo ya awali yanayopatikana.
Nyaraka Zinazohusiana
· ESP32-MINI-1 & ESP32-MINI-1U Datasheet (PDF) · ESP32-DevKitM-1 Schematics (PDF) · ESP32-DevKitM-1 PCB mpangilio (PDF) · ESP32-DevKitM-1 mpangilio (DXF) – Unaweza view ni pamoja na Autodesk Viewmtandaoni · Karatasi ya data ya ESP32 (PDF) · Kiteuzi cha Bidhaa cha ESP
Kwa nyaraka zingine za muundo wa bodi, tafadhali wasiliana nasi kwa sales@espressif.com.

Mifumo ya Espressif

13 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Programu ya 1.2.2
Ili kuanza kutumia ESP-IDF kwenye ESP32, sakinisha programu ifuatayo: · Mnyororo wa zana wa kukusanya msimbo wa ESP32 · Unda zana - CMake na Ninja ili kuunda Programu kamili ya ESP32 · ESP-IDF ambayo kimsingi ina API (maktaba za programu na msimbo wa chanzo) kwa ESP32 na hati za kuendesha msururu wa zana.

1.3 Ufungaji
Ili kufunga programu zote zinazohitajika, tunatoa njia tofauti za kuwezesha kazi hii. Chagua kutoka kwa moja ya chaguzi zinazopatikana.
1.3.1 IDE

Kumbuka: Tunapendekeza sana kusakinisha ESP-IDF kupitia IDE yako uipendayo.
· Programu-jalizi ya Eclipse · Kiendelezi cha VSCode

1.3.2 Ufungaji wa Mwongozo
Kwa utaratibu wa mwongozo, tafadhali chagua kulingana na mfumo wako wa uendeshaji.

Mifumo ya Espressif

14 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Usanidi wa Kawaida wa Toolchain kwa Windows
Utangulizi ESP-IDF inahitaji zana za sharti kusakinishwa ili uweze kutengeneza programu dhibiti kwa chips zinazotumika. Zana zinazohitajika ni pamoja na Python, Git, compilers, CMake na Ninja kujenga zana. Kwa Anzisho hili tungetumia Amri Prompt, lakini baada ya ESP-IDF kusakinishwa unaweza kutumia programu-jalizi ya Eclipse au IDE nyingine ya picha na usaidizi wa CMake badala yake. Kumbuka: Vizuizi: - Njia ya usakinishaji ya Zana za ESP-IDF na ESP-IDF lazima zisizidi herufi 90. Njia ndefu za usakinishaji zinaweza kusababisha muundo ulioshindwa. - Njia ya usakinishaji ya Python au ESP-IDF lazima isiwe na nafasi nyeupe au mabano. - Njia ya usakinishaji ya Python au ESP-IDF haipaswi kuwa na herufi maalum (nonASCII) isipokuwa mfumo wa uendeshaji umesanidiwa na oUnicode UTF-8psupport. Msimamizi wa Mfumo anaweza kuwezesha usaidizi kupitia Paneli Kidhibiti – Badilisha tarehe, saa, au fomati za nambari – Kichupo cha msimamizi – Badilisha lugha ya mfumo – angalia chaguo la oBeta: Tumia Unicode UTF-8 kwa usaidizi wa lugha duniani kote – Sawa na uwashe upya kompyuta.
Kisakinishi cha Zana za ESP-IDF Njia rahisi zaidi ya kusakinisha sharti za ESP-IDFns ni kupakua mojawapo ya Visakinishaji vya Zana za ESP-IDF.

Upakuaji wa Kisakinishi cha Windows
Ni kesi gani ya Kisakinishi cha Mtandaoni na Nje ya Mtandao ni ndogo sana na inaruhusu usakinishaji wa matoleo yote yanayopatikana ya ESP-IDF. Kisakinishi kitapakua utegemezi muhimu tu ikiwa ni pamoja na Git Kwa Windows wakati wa mchakato wa usakinishaji. Hifadhi za kisakinishi zimepakuliwa files kwenye saraka ya kache %userprofile%. espressif
Kisakinishi cha Nje ya Mtandao hakihitaji muunganisho wowote wa mtandao. Kisakinishi kina utegemezi wote unaohitajika ikiwa ni pamoja na Git For Windows .
Vipengele vya usakinishaji Kisakinishi hutumia vifaa vifuatavyo:
· Chatu iliyopachikwa · Wakusanyaji mtambuka · OpenOCD · Zana za ujenzi za CMake na Ninja · ESP-IDF
Kisakinishi pia huruhusu kutumia tena saraka iliyopo na ESP-IDF. Saraka inayopendekezwa ni %userprofile%Desktopes-idf ambapo %userprofile% ni saraka yako ya nyumbani.

Mifumo ya Espressif

15 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Kuzindua Mazingira ya ESP-IDF Mwishoni mwa mchakato wa usakinishaji unaweza kuangalia chaguo Endesha Mazingira ya PowerShell ya ESP-IDF au Endesha Uagizo wa Amri ya ESP-IDF (cmd.exe). Kisakinishi kitazindua mazingira ya ESP-IDF kwa haraka iliyochaguliwa. Endesha Mazingira ya ESP-IDF PowerShell:

Kielelezo 8: Kukamilisha Mchawi wa Kuweka Zana za ESP-IDF na Endesha Mazingira ya ESP-IDF PowerShell
Endesha Amri ya ESP-IDF (cmd.exe):
Kwa kutumia Amri Prompt Kwa hatua zilizobaki za Kuanza, tutatumia Windows Command Prompt. Kisakinishi cha Zana za ESP-IDF pia huunda njia ya mkato katika menyu ya Anza ili kuzindua Uagizo wa Amri ya ESP-IDF. Njia hii ya mkato inazindua Ushuru wa Amri (cmd.exe) na huendesha hati ya export.bat ili kusanidi anuwai za mazingira (PATH, IDF_PATH na zingine). Ndani ya haraka ya amri hii, zana zote zilizowekwa zinapatikana. Kumbuka kuwa njia hii ya mkato ni maalum kwa saraka ya ESP-IDF iliyochaguliwa katika Kisakinishi cha Zana za ESP-IDF. Ikiwa una saraka nyingi za ESP-IDF kwenye kompyuta (kwa mfanoample, kufanya kazi na matoleo tofauti ya ESP-IDF), unayo chaguzi mbili za kuzitumia:
1. Unda nakala ya njia ya mkato iliyoundwa na Kisakinishi cha Zana za ESP-IDF, na ubadilishe saraka ya kazi ya njia ya mkato mpya hadi saraka ya ESP-IDF unayotaka kutumia.
2. Vinginevyo, endesha cmd.exe, kisha ubadilishe hadi saraka ya ESP-IDF unayotaka kutumia, na uendeshe export.bat. Kumbuka kuwa tofauti na chaguo la awali, njia hii inahitaji Python na Git kuwepo kwenye PATH. Ukipata makosa yanayohusiana na Python au Git kutopatikana, tumia chaguo la kwanza.
Hatua za Kwanza kwenye ESP-IDF Sasa kwa kuwa mahitaji yote yametimizwa, mada inayofuata itakuongoza jinsi ya kuanzisha mradi wako wa kwanza.

Mifumo ya Espressif

16 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza Kielelezo 9: ESP-IDF PowerShell

Kielelezo 10: Kukamilisha Mchawi wa Kuweka Zana za ESP-IDF kwa Run ESP-IDF Command Prompt (cmd.exe)

Mifumo ya Espressif

17 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 11: Amri ya ESP-IDF

Mifumo ya Espressif

18 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Mwongozo huu utakusaidia kwa hatua za kwanza kutumia ESP-IDF. Fuata mwongozo huu ili kuanzisha mradi mpya kwenye ESP32 na uunde, uwashe, na ufuatilie utoaji wa kifaa. Kumbuka: Ikiwa bado hujasakinisha ESP-IDF, tafadhali nenda kwa Usakinishaji na ufuate maagizo ili kupata programu zote zinazohitajika kutumia mwongozo huu.

Anzisha Mradi Sasa uko tayari kutayarisha ombi lako la ESP32. Unaweza kuanza na mradi wa kuanza/hello_world kutoka kwa examples saraka katika ESP-IDF.
Muhimu: Mfumo wa ujenzi wa ESP-IDF hautumii nafasi katika njia za ama ESP-IDF au miradi.
Nakili mradi anza/hello_world hadi ~/esp saraka: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hujambo_ulimwengu
Kumbuka: Kuna anuwai ya zamaniampmiradi ya zamaniamples saraka katika ESP-IDF. Unaweza kunakili mradi wowote kwa njia sawa na ilivyowasilishwa hapo juu na kuuendesha. Inawezekana pia kujenga examples in-place bila kuyanakili kwanza.

Unganisha Kifaa Chako Sasa unganisha ubao wako wa ESP32 kwenye kompyuta na uangalie ubao unaonekana chini ya mlango gani wa serial. Majina ya bandari ya serial huanza na COM katika Windows. Iwapo huna uhakika jinsi ya kuangalia jina la kituo cha serial, tafadhali rejelea Anzisha Muunganisho wa Sifa na ESP32 kwa maelezo kamili.
Kumbuka: Weka jina la mlango karibu na utakavyolihitaji katika hatua zinazofuata.

Sanidi Mradi Wako Nenda kwenye saraka yako ya hello_world, weka ESP32 kama lengo, na uendeshe menyu ya matumizi ya usanidi wa mradi.
Windows cd %mtumiajifile%esphello_world idf.py set-target esp32 idf.py menuconfig
Baada ya kufungua mradi mpya, unapaswa kwanza kuweka lengo na idf.py set-target esp32. Kumbuka kuwa miundo na usanidi uliopo katika mradi, ikiwa upo, utafutwa na kuanzishwa katika mchakato huu. Lengo linaweza kuhifadhiwa katika utofauti wa mazingira ili kuruka hatua hii hata kidogo. Tazama Chagua Chip Lengwa: set-target kwa maelezo ya ziada. Ikiwa hatua za awali zimefanywa kwa usahihi, menyu ifuatayo inaonekana: Unatumia menyu hii kusanidi vigezo maalum vya mradi, kwa mfano, jina la mtandao wa Wi-Fi na nenosiri, kasi ya kichakataji, n.k. Kuanzisha mradi na menuconfig kunaweza kurukwa kwa ohello_wordp, kwani huyu wa zamani.ample inaendesha na usanidi chaguo-msingi.
Tahadhari: Ikiwa unatumia ubao wa ESP32-DevKitC na moduli ya ESP32-SOLO-1, au bodi ya ESP32-DevKitM-1 yenye moduli ya ESP32-MIN1-1(1U), tafadhali wezesha modi ya msingi moja (CONFIG_FREERTOS_UNICORE) kwenye menyuconfig kabla ya kuwasha ex.ampchini.

Mifumo ya Espressif

19 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 12: Usanidi wa mradi - Dirisha la nyumbani
Kumbuka: Rangi za menyu zinaweza kuwa tofauti kwenye terminal yako. Unaweza kubadilisha mwonekano na chaguo -style. Tafadhali endesha idf.py menuconfig -help kwa maelezo zaidi.
Ikiwa unatumia mojawapo ya bodi za usanidi zinazotumika, unaweza kuharakisha usanidi wako kwa kutumia Kifurushi cha Usaidizi wa Bodi. Tazama Vidokezo vya Ziada kwa habari zaidi.
Jenga Mradi Jenga mradi kwa kuendesha:
idf.py kujenga
Amri hii itakusanya programu na vipengele vyote vya ESP-IDF, kisha itazalisha kipakiaji cha boot, jedwali la kizigeu, na jozi za programu.
$ idf.py jenga Kuendesha cmake katika saraka /path/to/hello_world/build Inatekeleza "cmake -G Ninja -onya-isiyoanzishwa /path/to/hello_world"… Onya kuhusu maadili ambayo hayajaanzishwa. — Imepatikana Git: /usr/bin/git (toleo lililopatikana “2.17.0”) — Kuunda kijenzi tupu cha aws_iot kwa sababu ya usanidi — Majina ya vijenzi: … — Njia za vipengele: …
... (mistari zaidi ya pato la mfumo wa ujenzi)
[527/527] Inazalisha hello_world.bin esptool.py v2.3.1
Ujenzi wa mradi umekamilika. Ili kuangaza, endesha amri hii: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio -flash_size tambua -flash_freq 40m 0x10000 build/hello_world. bin kujenga 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin au endesha 'idf.py -p PORT flash'
Ikiwa hakuna hitilafu, muundo utakamilika kwa kuzalisha binary ya firmware .bin files.

Mifumo ya Espressif

20 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Mwangaza kwenye Kifaa Weka jozi ambazo umeunda hivi punde (bootloader.bin, partition-table.bin na hello_world.bin) kwenye ubao wako wa ESP32 kwa kuendesha: idf.py -p PORT [-b BAUD] flash
Badilisha PORT na jina la bandari yako ya serial ya bodi za ESP32. Unaweza pia kubadilisha kiwango cha upotevu wa mwekaji kwa kubadilisha BAUD na kiwango cha baud unachohitaji. Kiwango chaguo-msingi cha baud ni 460800. Kwa maelezo zaidi kuhusu hoja za idf.py, angalia idf.py.
Kumbuka: Chaguo la flash huunda kiotomatiki na kuwasha mradi, kwa hivyo kuendesha idf.py build sio lazima.

Umekumbana na Matatizo Wakati Unamulika? Ikiwa utaendesha amri uliyopewa na kuona makosa kama vile Imeshindwa kuunganishwa, kunaweza kuwa na sababu kadhaa za hii. Sababu mojawapo inaweza kuwa matatizo yanayokumbana na esptool.py, matumizi ambayo yanaitwa na mfumo wa kujenga ili kuweka upya chip, kuingiliana na kianzisha ROM, na programu dhibiti ya flash. Suluhisho moja rahisi la kujaribu ni kuweka upya kwa mikono iliyofafanuliwa hapa chini, na ikiwa haisaidii unaweza kupata maelezo zaidi kuhusu masuala yanayowezekana katika Utatuzi wa Matatizo.
esptool.py huweka upya ESP32 kiotomatiki kwa kuthibitisha njia za udhibiti za DTR na RTS za USB hadi chipu ya kibadilishaji cha serial, yaani, FTDI au CP210x (kwa maelezo zaidi, angalia Anzisha Muunganisho wa Siri na ESP32). Laini za udhibiti wa DTR na RTS kwa upande wake zimeunganishwa kwa pini za GPIO0 na CHIP_PU (EN) za ESP32, kwa hivyo mabadiliko ya sautitagviwango vya DTR na RTS vitaanzisha ESP32 kwenye modi ya Upakuaji wa Firmware. Kama example, angalia mpangilio wa bodi ya ukuzaji ya ESP32 DevKitC.
Kwa ujumla, hupaswi kuwa na matatizo na bodi rasmi za maendeleo za esp-idf. Walakini, esptool.py haiwezi kuweka upya maunzi yako kiotomatiki katika hali zifuatazo:
· Maunzi yako hayana njia za DTR na RTS zilizounganishwa kwa GPIO0 na CHIP_PU · Laini za DTR na RTS zimesanidiwa kwa njia tofauti · Hakuna laini za udhibiti kama hizi hata kidogo.
Kulingana na aina ya maunzi uliyo nayo, inaweza pia kuwezekana kuweka ubao wako wa ESP32 kwa mikono katika modi ya Upakuaji wa Firmware (weka upya).
· Kwa bodi za maendeleo zinazozalishwa na Espressif, habari hii inaweza kupatikana katika miongozo husika ya kuanza au miongozo ya watumiaji. Kwa mfanoample, ili kuweka upya ubao wa ukuzaji wa ESP-IDF, shikilia kitufe cha Kuwasha (GPIO0) na ubonyeze kitufe cha EN (CHIP_PU).
· Kwa aina zingine za maunzi, jaribu kuvuta GPIO0 chini.

Operesheni ya Kawaida Wakati wa kuangaza, utaona logi ya pato sawa na ifuatayo:
... esptool.py -chip esp32 -p /dev/ttyUSB0 -b 460800 -before=default_reset -after=hard_reset write_flash -flash_mode dio -flash_freq 40m -flash_size 2MB 0x8000 partition_table/partition0bootertable.bin0loadertable. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Inaunganisha…….._ Chip ni ESP32D0WDQ6 (marekebisho 0) Sifa: WiFi, BT, Dual Core, Mpango wa Usimbaji Hakuna Kioo kiko 40MHz MAC: 24: 0: 9: Kupakia: 9: 0a. stub… Uvimbe unaendelea… Kubadilisha kiwango cha ubovu hadi 460800 Imebadilishwa.
(inaendelea kwenye ukurasa unaofuata)

Mifumo ya Espressif

21 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
(inaendelea kutoka ukurasa uliotangulia) Inasanidi saizi ya mweko… Imebanwa baiti 3072 hadi 103… Inaandika kwa 0x00008000… (100 %) Iliandika baiti 3072 (103 imebanwa) kwa 0x00008000 kwa sekunde 0.0 (data iliyofafanuliwa 8/596). Imebanwa baiti 26096 hadi 15408… Ikiandika kwa 0x00001000… (100 %) Iliandika baiti 26096 (15408 imebanwa) kwa 0x00001000 kwa sekunde 0.4 (inafanya ufanisi 546.7 kbit/s data)… Imebanwa baiti 147104 hadi 77364… Inaandika kwa 0x00010000… (20 %) Inaandika kwa 0x00014000… (40 %) Inaandika kwa 0x00018000… (60 %) Inaandika kwa 0x0001c0 (Writing at 0x0001c0) 0x00020000… (100%) Aliandika baiti 147104 (77364 imebanwa) kwa 0x00010000 kwa sekunde 1.9 (inatumika 615. 5 kbit/s)… Hash ya data imethibitishwa.
Inaondoka... Kuweka upya kwa bidii kupitia pin ya RTS... Imekamilika
Ikiwa hakuna matatizo kufikia mwisho wa mchakato wa flash, ubao utaanza upya na kuanzisha programu ya theohello_world. Ikiwa ungependa kutumia Eclipse au VS Code IDE badala ya kuendesha idf.py, angalia Programu-jalizi ya Eclipse, Kiendelezi cha VSCode.
Fuatilia Pato Kuangalia kama ohello_worldpis inaendesha kweli, chapa idf.py -p PORT monitor (Usisahau kubadilisha PORT na jina la serial yako ya bandari).
Amri hii inazindua programu ya Monitor ya IDF:
$ idf.py -p kufuatilia Inaendesha idf_monitor katika saraka […]/esp/hello_world/build Inatekeleza “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor imewashwa. 115200 —– Acha: Ctrl+] | Menyu: Ctrl+T | Usaidizi: Ctrl+T ikifuatiwa na Ctrl+H –ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET), buti:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 ...
Baada ya uanzishaji na kumbukumbu za uchunguzi kusogeza juu, unapaswa kuona oHello world!imechapishwa na programu.
… Hujambo ulimwengu! Inawasha tena baada ya sekunde 10... Hii ni chip esp32 yenye core(zi) 2 za CPU), WiFi/BT/BLE, masahihisho ya silicon 1, flash ya nje 2MB Kiwango cha chini cha lundo lisilolipishwa: baiti 298968 Inawashwa tena baada ya sekunde 9... Inaanza tena baada ya sekunde 8... Inaanza tena baada ya sekunde 7...
Ili kuondoka kwenye ufuatiliaji wa IDF tumia njia ya mkato Ctrl+].

Mifumo ya Espressif

22 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Ikiwa kifuatiliaji cha IDF kitashindwa muda mfupi baada ya upakiaji, au, ikiwa badala ya ujumbe ulio hapo juu, utaona takataka zisizo na mpangilio sawa na zilizo hapa chini, ubao wako unaweza kutumia fuwele ya 26 MHz. Miundo mingi ya bodi ya ukuzaji hutumia 40 MHz, kwa hivyo ESP-IDF hutumia mzunguko huu kama thamani chaguo-msingi.

Ikiwa una tatizo kama hilo, fanya yafuatayo: 1. Toka kwenye kufuatilia. 2. Rudi kwenye menyuconfig. 3. Nenda kwenye Usanidi wa Kipengee > Mipangilio ya Maunzi > Usanidi Mkuu wa XTAL > Masafa kuu ya XTAL, kisha ubadilishe CONFIG_XTAL_FREQ_SEL hadi 26 MHz. 4. Baada ya hayo, jenga na uangaze tena programu.
Katika toleo la sasa la ESP-IDF, masafa kuu ya XTAL yanayoungwa mkono na ESP32 ni kama ifuatavyo:
· 26 MHz · 40 MHz
Kumbuka: Unaweza kuchanganya jengo, kuwaka na ufuatiliaji katika hatua moja kwa kukimbia: idf.py -p PORT flash monitor
Tazama pia: · IDF Monitor kwa njia za mkato rahisi na maelezo zaidi juu ya kutumia kifuatilizi cha IDF. · idf.py kwa marejeleo kamili ya amri na chaguzi za idf.py.
Hiyo ndiyo yote unahitaji ili kuanza na ESP32! Sasa uko tayari kujaribu mtu mwingine wa zamaniamples, au nenda moja kwa moja kuunda programu zako mwenyewe.
Muhimu: Baadhi ya examples haitumii ESP32 kwa sababu maunzi yanayohitajika hayajajumuishwa katika ESP32 kwa hivyo hayawezi kutumika. Ikiwa kujenga example, tafadhali angalia README file kwa jedwali la Malengo Yanayotumika. Ikiwa hii ipo ikijumuisha lengo la ESP32, au jedwali halipo kabisa, toleo la zamaniample itafanya kazi kwenye ESP32.
Vidokezo vya Ziada
Masuala ya ruhusa /dev/ttyUSB0 Ukiwa na baadhi ya usambazaji wa Linux, unaweza kupata Imeshindwa kufungua mlango /dev/ttyUSB0 ujumbe wa hitilafu unapomulika ESP32. Hili linaweza kutatuliwa kwa kuongeza mtumiaji wa sasa kwenye kikundi cha mazungumzo.
Utangamano wa Python ESP-IDF inasaidia Python 3.7 au mpya zaidi. Inapendekezwa kuboresha mfumo wako wa uendeshaji hadi toleo la hivi karibuni linalokidhi mahitaji haya. Chaguzi zingine ni pamoja na usakinishaji wa Python kutoka kwa vyanzo au utumiaji wa mfumo wa usimamizi wa toleo la Python kama vile pyenv.
Anza na Kifurushi cha Usaidizi wa Bodi Ili kuharakisha uchapaji picha kwenye baadhi ya vibao vya ukuzaji, unaweza kutumia Vifurushi vya Usaidizi wa Bodi (BSPs), jambo ambalo hurahisisha uanzishaji wa bodi fulani kama simu chache za utendaji.

Mifumo ya Espressif

23 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

BSP kwa kawaida inasaidia vipengele vyote vya maunzi vilivyotolewa kwenye bodi ya usanidi. Kando na ufafanuzi wa pinout na utendakazi wa uanzishaji, BSP husafirisha viendeshi vya vipengee vya nje kama vile vitambuzi, skrini, kodeki za sauti n.k. BSP husambazwa kupitia Kidhibiti cha Kipengele cha IDF, ili ziweze kupatikana katika Usajili wa Kipengele cha IDF. Herens wa zamaniampjinsi ya kuongeza ESP-WROVER-KIT BSP kwenye mradi wako: idf.py add-dependency esp_wrover_kit
Ex zaidiampLes ya matumizi ya BSP inaweza kupatikana katika BSP examples folda.
Hati Zinazohusiana Kwa watumiaji wa hali ya juu wanaotaka kubinafsisha mchakato wa kusakinisha: · Kusasisha zana za ESP-IDF kwenye Windows · Anzisha Muunganisho wa Ufuatiliaji na ESP32 · Programu-jalizi ya Eclipse · Kiendelezi cha VSCode · IDF Monitor
Kusasisha zana za ESP-IDF kwenye Windows
Sakinisha zana za ESP-IDF kwa kutumia hati Kutoka kwa Windows Command Prompt, badilisha kwenye saraka ambapo ESPIDF imewekwa. Kisha kukimbia:
install.bat
Kwa Powershell, badilisha kwenye saraka ambapo ESP-IDF imewekwa. Kisha kukimbia:
sakinisha.ps1
Hii itapakua na kusakinisha zana zinazohitajika kutumia ESP-IDF. Ikiwa toleo maalum la zana tayari limesakinishwa, hakuna hatua itachukuliwa. Zana hupakuliwa na kusakinishwa kwenye saraka iliyobainishwa wakati wa mchakato wa Kisakinishaji cha Zana za ESP-IDF. Kwa chaguo-msingi, hii ni C:Jina la mtumiaji.espressif.
Ongeza zana za ESP-IDF kwenye PATH kwa kutumia hati ya kuhamishia ESP-IDF kisakinishi cha zana huunda njia ya mkato ya menyu ya Anza kwa OESP-IDF Amri Promptp. Njia ya mkato hii inafungua dirisha la Amri Prompt ambapo zana zote tayari
inapatikana. Katika baadhi ya matukio, unaweza kutaka kufanya kazi na ESP-IDF kwenye dirisha la Amri Prompt ambalo halijaanzishwa kwa kutumia njia hiyo ya mkato. Ikiwa ndivyo ilivyo, fuata maagizo hapa chini ili kuongeza zana za ESP-IDF kwenye PATH. Katika kidokezo cha amri ambapo unahitaji kutumia ESP-IDF, badilisha hadi saraka ambapo ESP-IDF imesakinishwa, kisha utekeleze export.bat:
cd %mtumiajifile%espesp-idf export.bat
Vinginevyo katika Powershell ambapo unahitaji kutumia ESP-IDF, badilisha hadi saraka ambapo ESP-IDF imesakinishwa, kisha utekeleze export.ps1:
cd ~/esp/esp-idf export.ps1
Wakati hii imefanywa, zana zitapatikana katika haraka ya amri hii.
Anzisha Muunganisho wa Mfumo na ESP32 Sehemu hii inatoa mwongozo wa jinsi ya kuanzisha muunganisho wa mfululizo kati ya ESP32 na Kompyuta.

Mifumo ya Espressif

24 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Unganisha ESP32 kwa Kompyuta Unganisha ubao wa ESP32 kwenye Kompyuta kwa kutumia kebo ya USB. Ikiwa kiendesha kifaa hakisakinishi kiotomatiki, tambua USB hadi chipu ya kibadilishaji serial kwenye ubao wako wa ESP32 (au dongle ya kigeuzi cha nje), tafuta viendeshi kwenye intaneti na uzisakinishe. Ifuatayo ni orodha ya chipsi za kubadilisha fedha za USB hadi serial zilizowekwa kwenye bodi nyingi za ESP32 zinazozalishwa na Espressif pamoja na viungo vya viendeshi:
· CP210x: CP210x USB hadi UART Bridge VCP Drivers · FTDI: FTDI Viendeshi vya Bandari ya Mtandaoni ya COM Tafadhali angalia mwongozo wa mtumiaji wa ubao kwa ajili ya USB hadi chipu ya kibadilishaji cha serial iliyotumika. Madereva hapo juu kimsingi ni ya kumbukumbu. Katika hali ya kawaida, madereva wanapaswa kuunganishwa na mfumo wa uendeshaji na imewekwa moja kwa moja wakati wa kuunganisha bodi kwenye PC.
Angalia bandari kwenye Windows Angalia orodha ya bandari za COM zilizotambuliwa kwenye Kidhibiti cha Kifaa cha Windows. Tenganisha ESP32 na uiunganishe tena, ili kuthibitisha ni mlango gani unaotoweka kutoka kwenye orodha na kisha kuonyesha tena. Takwimu hapa chini zinaonyesha mlango wa serial wa ESP32 DevKitC na ESP32 WROVER KIT

Mtini. 13: USB hadi UART daraja la ESP32-DevKitC katika Kidhibiti cha Kifaa cha Windows

Angalia bandari kwenye Linux na macOS Kuangalia jina la kifaa kwa bandari ya serial ya ubao wako wa ESP32 (au dongle ya kigeuzi cha nje), endesha amri hii mara mbili, kwanza na ubao/dongle ikiwa haijachomekwa, kisha ikiwa imechomekwa. Lango inayoonekana mara ya pili ndiyo unayohitaji: Linux.
ls /dev/tty*
macOS

Mifumo ya Espressif

25 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 14: Bandari Mbili za Userial za ESP-WROVER-KIT katika Kidhibiti cha Kifaa cha Windows

Mifumo ya Espressif

26 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

ls /dev/cu.* Kumbuka: watumiaji wa macOS: ikiwa huoni mlango wa serial basi angalia kuwa umesakinisha viendeshi vya USB/serial. Tazama Sehemu ya Unganisha ESP32 kwa Kompyuta kwa viungo vya viendeshaji. Kwa macOS High Sierra (10.13), unaweza pia kuruhusu wazi madereva kupakia. Fungua Mapendeleo ya Mfumo -> Usalama na Faragha -> Jumla na uangalie ikiwa kuna ujumbe unaoonyeshwa hapa kuhusu oSystem Software kutoka kwa msanidi lpambapo jina la msanidi ni Silicon Labs au FTDI.

Kuongeza mtumiaji kwenye kipiga simu kwenye Linux Mtumiaji aliyeingia kwa sasa anapaswa kuwa na uwezo wa kusoma na kuandika kufikia mlango wa mfululizo kupitia USB. Kwenye usambazaji mwingi wa Linux, hii inafanywa kwa kuongeza mtumiaji kwenye kikundi cha mazungumzo na amri ifuatayo:
sudo usermod -a -G dialout $USER
kwenye Arch Linux hii inafanywa kwa kuongeza mtumiaji kwenye kikundi cha uucp na amri ifuatayo:
sudo usermod -a -G uuc $USER
Hakikisha umeingia upya ili kuwezesha ruhusa za kusoma na kuandika kwa mlango wa mfululizo.
Thibitisha muunganisho wa serial Sasa thibitisha kuwa muunganisho wa serial unafanya kazi. Unaweza kufanya hivyo kwa kutumia programu ya wastaafu wa serial kwa kuangalia ikiwa unapata pato lolote kwenye terminal baada ya kuweka upya ESP32. Kiwango chaguo-msingi cha dashibodi kwenye ESP32 ni 115200.
Windows na Linux Katika mfano huuampna tutatumia Mteja wa PuTTY SSH ambayo inapatikana kwa Windows na Linux. Unaweza kutumia programu zingine za mfululizo na kuweka vigezo vya mawasiliano kama ilivyo hapo chini. Endesha terminal na uweke mlango wa serial uliotambuliwa. Kiwango cha Baud = 115200 (ikiwa inahitajika, badilisha hii hadi kiwango cha ubovu chaguo-msingi cha chip inayotumika), bits za data = 8, biti za kusimamisha = 1, na usawa = N. Hapa chini ni example picha za skrini za kuweka lango na vigezo kama hivyo vya upitishaji (kwa kifupi vilivyofafanuliwa kama 115200-8-1-N) kwenye Windows na Linux. Kumbuka kuchagua mlango wa serial sawa na ambao umetambua katika hatua zilizo hapo juu. Kisha fungua mlango wa serial kwenye terminal na uangalie, ikiwa utaona logi yoyote iliyochapishwa na ESP32. Yaliyomo kwenye kumbukumbu yatategemea programu iliyopakiwa kwa ESP32, angalia Kutample Pato.
Kumbuka: Funga terminal ya serial baada ya uthibitishaji kuwa mawasiliano yanafanya kazi. Ukiweka kipindi cha terminal wazi, mlango wa serial hautaweza kufikiwa kwa kupakia programu dhibiti baadaye.

macOS Ili kukuepusha na shida ya kusanidi programu ya terminal ya serial, macOS inatoa amri ya skrini. · Kama ilivyojadiliwa katika Check port kwenye Linux na macOS, endesha:

ls /dev/cu.* · Unapaswa kuona matokeo sawa:

/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· Matokeo yatatofautiana kulingana na aina na idadi ya bodi zilizounganishwa kwenye Kompyuta yako. Kisha chagua jina la kifaa cha ubao wako na uendeshe (ikihitajika, badilisha o115200hadi kiwango cha msingi cha chip inayotumika):

skrini /dev/cu.device_name 115200 Badilisha kifaa_name na jina lililopatikana likiendesha ls /dev/cu.*.

Mifumo ya Espressif

27 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 15: Kuweka Mawasiliano ya Serial katika PuTTY kwenye Windows

Mifumo ya Espressif

28 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Kielelezo 16: Kuweka Mawasiliano ya Ufuatiliaji katika PuTTY kwenye Linux

Mifumo ya Espressif

29 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Unachotafuta ni kumbukumbu fulani inayoonyeshwa na skrini. Yaliyomo kwenye kumbukumbu yatategemea programu iliyopakiwa kwa ESP32, angalia Kutample Pato. Ili kuondoka kwenye kipindi cha skrini andika Ctrl-A + .
Kumbuka: Usisahau kuondoka kwenye kipindi cha skrini baada ya kuthibitisha kuwa mawasiliano yanafanya kazi. Ukishindwa kuifanya na ufunge tu dirisha la terminal, bandari ya serial haitaweza kufikiwa kwa kupakia firmware baadaye.
Example Pato An example logi imeonyeshwa hapa chini. Weka upya ubao ikiwa huoni chochote. ets Juni 8 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET), buti:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 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) buti: kukusanya wakati 18:48:10

Ikiwa unaweza kuona matokeo ya kumbukumbu yanayosomeka, inamaanisha kwamba muunganisho wa serial unafanya kazi na uko tayari kuendelea na usakinishaji na hatimaye kupakia programu kwa ESP32.
Kumbuka: Kwa baadhi ya usanidi wa uunganisho wa waya wa mlango wa mfululizo, pini za mfululizo za RTS & DTR zinahitaji kuzimwa katika programu ya terminal kabla ya ESP32 kuwasha na kutoa matokeo ya mfululizo. Hii inategemea vifaa yenyewe, bodi nyingi za maendeleo (ikiwa ni pamoja na bodi zote za Espressif) hazina suala hili. Tatizo lipo ikiwa RTS & DTR zimeunganishwa moja kwa moja kwenye pini za EN & GPIO0. Tazama nyaraka za esptool kwa maelezo zaidi.
Ikiwa ulifika hapa kutoka Hatua ya 5. Hatua za Kwanza kwenye ESP-IDF unaposakinisha s/w kwa usanidi wa ESP32, basi unaweza kuendelea na Hatua ya 5. Hatua za Kwanza kwenye ESP-IDF.
IDF Monitor IDF Monitor ni programu ya mfululizo wa mwisho ambayo hutuma data ya mfululizo kwenda na kutoka kwa lango la ufuatiliaji la vifaa vinavyolengwa. Pia hutoa baadhi ya vipengele mahususi vya IDF. IDF Monitor inaweza kuzinduliwa kutoka kwa mradi wa IDF kwa kuendesha ufuatiliaji wa idf.py.
Njia za Mkato za Kibodi Kwa mwingiliano rahisi na Kifuatiliaji cha IDF, tumia mikato ya kibodi iliyotolewa kwenye jedwali.

Mifumo ya Espressif

30 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Njia ya mkato ya Kibodi Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (au A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (au mimi)
· Ctrl+H (au H)
· Ctrl+X (au X)
Ctrl+C

Kitendo

Maelezo

Toka kwenye programu Kitufe cha Menyu ya kutoroka Tuma herufi ya menyu yenyewe kwa kidhibiti
Tuma herufi ya kutoka yenyewe kwa kidhibiti
Weka upya lengo kwenye bootloader ili kusitisha programu kupitia mstari wa RTS
Weka upya ubao lengwa kupitia RTS
Kujenga na flash mradi

Unda na uangaze programu pekee

Simamisha/rejesha uchapishaji wa towe la kumbukumbu kwenye skrini

Sitisha/rejesha matokeo ya kumbukumbu yaliyohifadhiwa kwa file

Simamisha/rejelea nyakatiamps

uchapishaji

Onyesha mikato yote ya kibodi

Bonyeza na uifuate kwa moja ya funguo zilizotolewa hapa chini.
Huweka upya lengo, kwenye bootloader kupitia mstari wa RTS (ikiwa imeunganishwa), ili bodi isiendeshe chochote. Inafaa unapohitaji kusubiri kifaa kingine kianze. Huweka upya ubao lengwa na kuanzisha upya programu kupitia laini ya RTS (ikiwa imeunganishwa).
Husitisha idf_monitor ili kutekeleza shabaha ya flash ya mradi, kisha itaanza tena idf_monitor. Chanzo chochote kilichobadilishwa files ni recompiled na kisha re-flashed. Mweleko unaolengwa unaendeshwa ikiwa idf_monitor ilianzishwa kwa hoja -E. Husitisha idf_monitor ili kutekeleza lengo la flash-app, kisha itaanza tena idf_monitor. Sawa na lengo la flash, lakini programu kuu pekee ndiyo iliyojengwa na kuwashwa tena. Target encrypted-app-flash inaendeshwa ikiwa idf_monitor ilianzishwa kwa hoja -E. Hutupa data yote ya mfululizo inayoingia wakati imewashwa. Inaruhusu kusitisha haraka na kukagua matokeo ya kumbukumbu bila kuacha kifuatiliaji. Hutengeneza a file kwenye saraka ya mradi na matokeo yameandikwa kwa hiyo file hadi hii imezimwa kwa njia ya mkato sawa ya kibodi (au IDF Monitor inaondoka). IDF Monitor inaweza kuchapisha nyakatiamp mwanzoni mwa kila mstari. Nyakatiamp umbizo linaweza kubadilishwa na -timestamp-fomati hoja ya mstari wa amri.

Ondoka kwenye programu

Katiza programu inayoendesha

Husitisha IDF Monitor na kuendesha kitatuzi cha mradi wa GDB ili kutatua programu wakati wa utekelezaji. Hii inahitaji chaguo la :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME kuwezeshwa.

Vifunguo vyovyote vilivyobonyezwa, isipokuwa Ctrl-] na Ctrl-T, vitatumwa kupitia mlango wa mfululizo.

Vipengele maalum vya IDF

Kusimbua Anwani Kiotomatiki Wakati wowote ESP-IDF inapotoa anwani ya msimbo wa heksadesimali ya fomu 0x4_____, IDF Monitor hutumia addr2line_ kutafuta eneo katika msimbo wa chanzo na kupata jina la chaguo la kukokotoa.
Iwapo programu ya ESP-IDF itaacha kufanya kazi na kuingiwa na hofu, utupaji wa rejista na ufuatiliaji hutolewa, kama vile yafuatayo:

Mifumo ya Espressif

31 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Hitilafu ya Kutafakari ya Guru ya aina ya StoreProhibited ilitokea kwenye core 0. Isipokuwa

bila kushughulikiwa.

Dampo la usajili:

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 EXCCAUSE:

0x0000001d

EXCVADDR: 0x00000000 LBEG : 0x4000c46c KOPESHA : 0x4000c477 LCOUNT :

0x00000000

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

IDF Monitor inaongeza maelezo zaidi kwenye dampo:

Hitilafu ya Kutafakari ya Guru ya aina ya StoreProhibited ilitokea kwenye core 0. Isipokuwa

bila kushughulikiwa.

Dampo la usajili:

PC

: 0x400f360d PS

: 0x00060330 A0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/exampkidogo/anza/

habari_ulimwengu/kuu/./hello_world_main.c:57

(imeingizwa na) inner_dont_crash kwa /home/gus/esp/32/idf/exampkidogo/anza/hello_

world/main/./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 EXCCAUSE:

0x0000001d

EXCVADDR: 0x00000000 LBEG : 0x4000c46c KOPESHA : 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 (inlined by) inner_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/ kuu/./hello_world_main.c:42 0x400dbf82: app_main katika /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: kazi_kuu katika /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

Ili kusimbua kila anwani, IDF Monitor huendesha amri ifuatayo chinichini: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

Kumbuka: Weka utofauti wa mazingira ESP_MONITOR_DECODE hadi 0 au piga simu idf_monitor.py na mstari maalum wa amri.

Mifumo ya Espressif

32 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
chaguo: idf_monitor.py -lemaza-anwani-usimbuaji ili kuzima usimbaji wa anwani.
Weka Upya Lengwa kwenye Muunganisho Kwa chaguo-msingi, IDF Monitor itaweka upya lengo wakati wa kuunganisha kwayo. Uwekaji upya wa chip inayolengwa unafanywa kwa kutumia mistari ya serial ya DTR na RTS. Ili kuzuia IDF Monitor isiweke upya shabaha kiotomatiki kwenye muunganisho, pigia IDF Monitor ukitumia chaguo la -no-reset (km, idf_monitor.py -no-reset).
Kumbuka: Chaguo la -no-reset linatumika kwa tabia sawa hata wakati wa kuunganisha Monitor ya IDF kwenye mlango fulani (km, idf.py monitor -no-reset -p [PORT]).
Kuzindua GDB kwa kutumia GDBStub GDBStub ni kipengele muhimu cha utatuzi wakati wa utekelezaji ambacho hutumika kwenye lengo na kuunganishwa na seva pangishi juu ya mlango wa mfululizo ili kupokea amri za utatuzi. GDBStub inaauni amri kama vile kumbukumbu ya kusoma na vigeu, kukagua fremu za rundo la simu n.k. Ingawa GDBStub haina uwezo mwingi kuliko J.TAG utatuzi, hauitaji vifaa maalum (kama vile JTAG kwa daraja la USB) kama mawasiliano yanafanywa kabisa juu ya mlango wa serial. Lengo linaweza kusanidiwa ili kuendesha GDBStub chinichini kwa kuweka CONFIG_ESP_SYSTEM_PANIC hadi GDBStub wakati wa utekelezaji. GDBStub itaendeshwa chinichini hadi ujumbe wa Ctrl+C utume juu ya mlango wa mfululizo na kusababisha GDBStub kuvunja (yaani, kusimamisha utekelezaji wa) programu, hivyo kuruhusu GDBStub kushughulikia amri za utatuzi. Zaidi ya hayo, kidhibiti cha hofu kinaweza kusanidiwa ili kuendesha GDBStub kwenye ajali kwa kuweka CONFIG_ESP_SYSTEM_PANIC kwa GDBStub kwa hofu. Wakati ajali inatokea, GDBStub itatoa mchoro maalum wa kamba juu ya mlango wa mfululizo ili kuonyesha kuwa inaendeshwa. Katika hali zote mbili (yaani, kutuma ujumbe wa Ctrl+C, au kupokea muundo maalum wa kamba), IDF Monitor itazindua kiotomatiki GDB ili kumruhusu mtumiaji kutuma amri za utatuzi. Baada ya GDB kuondoka, lengo linawekwa upya kupitia laini ya mfululizo ya RTS. Ikiwa laini hii haijaunganishwa, watumiaji wanaweza kuweka upya lengo lao (kwa kubofya kitufe cha Weka Upya ubao).
Kumbuka: Huku nyuma, IDF Monitor inaendesha amri ifuatayo ili kuzindua GDB:
xtensa-esp32-elf-gdb -ex "weka serial baud BAUD" -ex "lengwa BANDARI ya mbali" -ex interrupt build/PROJECT.elf :idf_target:`Hujambo NAME chip`

Kichunguzi cha IDF cha Kuchuja Pato kinaweza kutumiwa kama idf.py monitor -print-filter=”xyz”, ambapo -print-filter ndio kigezo cha uchujaji wa pato. Thamani ya chaguo-msingi ni kamba tupu, ambayo inamaanisha kuwa kila kitu kimechapishwa.
Vizuizi vya nini cha kuchapisha vinaweza kubainishwa kama mfululizo watag>: vitu wapitag> ni tag kamba na ni herufi kutoka seti {N, E, W, I, D, V, *} inayorejelea kiwango cha ukataji miti.
Kwa mfanoample, PRINT_FILTER=”tag1:W” inalingana na kuchapisha tu matokeo yaliyoandikwa kwa ESP_LOGW(“tag1”, …) au katika kiwango cha chini cha vitenzi, yaani ESP_LOGE(“tag1″, ...). Bila kubainisha a au kutumia * chaguo-msingi kwa kiwango cha Verbose.
Kumbuka: Tumia uwekaji kumbukumbu msingi kuzima wakati wa kukusanya matokeo ambayo huhitaji kupitia maktaba ya ukataji miti. Kuchuja pato kwa kutumia kifuatiliaji cha IDF ni suluhisho la pili ambalo linaweza kuwa muhimu kwa kurekebisha chaguo za kuchuja bila kurejesha programu.
Programu yako tags lazima isiwe na nafasi, nyota *, au koloni : ili kuendana na kipengele cha kuchuja towe.
Ikiwa mstari wa mwisho wa matokeo katika programu yako haufuatiwi na urejeshaji wa gari, uchujaji wa pato unaweza kuchanganyikiwa, yaani, kifuatiliaji kinaanza kuchapisha laini na baadaye kugundua kuwa laini hiyo haikupaswa kuandikwa. Hili ni suala linalojulikana na linaweza kuepukwa kwa kuongeza urejeshaji wa gari kila wakati (haswa wakati hakuna matokeo yanayofuata mara moja baadaye).

Mifumo ya Espressif

33 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
ExampSheria za Kuchuja:
· * inaweza kutumika kulinganisha yoyote tags. Hata hivyo, mfuatano PRINT_FILTER=”*:I tag1:E” kuhusiana na tag1 huchapisha makosa pekee, kwa sababu sheria ya tag1 ina kipaumbele cha juu juu ya sheria ya *.
· Kanuni chaguo-msingi (tupu) ni sawa na *:V kwa sababu inalingana na kila tag katika kiwango cha Verbose au chini inamaanisha kupatanisha kila kitu.
· “*:N” hukandamiza sio tu matokeo kutoka kwa vitendakazi vya ukataji miti, lakini pia vichapisho vilivyotengenezwa na printf, n.k. Ili kuepuka hili, tumia *:E au kiwango cha juu zaidi cha kitenzi.
· Kanuni”tag1:V", "tag1:v", "tag1:", "tag1:*”, na “tag1” ni sawa. · Kanuni “tag1:W tag1:E" ni sawa na "tag1:E” kwa sababu tukio lolote la matokeo sawa tag
jina hubatilisha lile lililotangulia. · Kanuni”tag1: mimi tag2:W” huchapisha pekee tag1 katika kiwango cha Info verbosity au chini na tag2 kwenye Onyo
kiwango cha verbosity au chini. · Kanuni”tag1: mimi tag2:W tag3:N” kimsingi ni sawa na ile iliyotangulia kwa sababu tag3:N inabainisha
hiyo tag3 haipaswi kuchapishwa. · tag3: N katika kanuni "tag1: mimi tag2:W tag3:N *:V” ina maana zaidi kwa sababu bila tag3 :n
tagUjumbe 3 ungeweza kuchapishwa; makosa kwa tag1 na tag2 itachapishwa katika kiwango cha kitenzi kilichobainishwa (au cha chini) na kila kitu kingine kitachapishwa kwa chaguo-msingi.
Kichujio Kigumu Zaidi Mfample Kijisehemu kifuatacho cha kumbukumbu kilipatikana bila chaguzi zozote za kuchuja:
load:0x40078000,len:13564 ingizo 0x40078d4c E (31) esp_image: picha katika 0x30000 ina magic byte W (31) esp_image: picha katika 0x30000 ina modi ya SPI batili 255 E (39 parttable I568 app) cpu_start: Pro cpu up. I (569) heap_init: Inaanzisha. RAM inapatikana kwa mgao unaobadilika: I (603) cpu_start: Msimbo wa mtumiaji wa Pro cpu anza D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range imefaulu kwa masafa <54; 64) na kitambulisho cha VFS 1 I (328) wifi: kazi ya dereva wa wifi: 3ffdbf84, prio:23, stack:4096, core=0
Toleo lililonaswa la chaguo za kuchuja PRINT_FILTER=”wifi esp_image:E light_driver:I” limetolewa hapa chini:
E (31) esp_image: picha katika 0x30000 ina magic byte I (328) wifi isiyo sahihi: kazi ya dereva wa wifi: 3ffdbf84, prio:23, stack:4096, core=0
Chaguo "PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" zinaonyesha towe lifuatalo:
mzigo:0x40078000,len:13564 ingizo 0x40078d4c I (569) heap_init: Inaanzisha. RAM inapatikana kwa mgao unaobadilika: D (309) light_driver: [light_init, 74]:hali: 1, modi: 2
Masuala Yanayojulikana kwa IDF Monitor
Masuala yanayozingatiwa kwenye Windows
· Vitufe vya vishale, pamoja na vifunguo vingine, havifanyi kazi katika GDB kwa sababu ya mapungufu ya Dashibodi ya Windows. Mara kwa mara, wakati oidf.pypexits, inaweza kusimama kwa hadi sekunde 30 kabla ya IDF Monitor kuanza tena. · Wakati ogdbpis inapoendeshwa, inaweza kusimama kwa muda mfupi kabla ya kuanza kuwasiliana na GDBStub.

Mifumo ya Espressif

34 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza Kuweka Minyororo ya Kawaida ya Vyombo vya Linux na macOS

Ufungaji Hatua kwa Hatua Hii ni ramani ya barabara ya kina ya kukutembeza kupitia mchakato wa usakinishaji.
Kuweka Mazingira ya Maendeleo Hizi ni hatua za kusanidi ESP-IDF kwa ESP32 yako. · Hatua ya 1. Sakinisha Mahitaji · Hatua ya 2. Pata ESP-IDF · Hatua ya 3. Weka zana · Hatua ya 4. Weka vigezo vya mazingira · Hatua ya 5. Hatua za Kwanza kwenye ESP-IDF
Hatua ya 1. Sakinisha Masharti Ili kutumia ESP-IDF na ESP32, unahitaji kusakinisha baadhi ya vifurushi vya programu kulingana na Mfumo wako wa Uendeshaji. Mwongozo huu wa usanidi utakusaidia kupata kila kitu kimewekwa kwenye mifumo ya msingi ya Linux na macOS.
Kwa Watumiaji wa Linux Ili kukusanya kwa kutumia ESP-IDF utahitaji kupata vifurushi vifuatavyo. Amri ya kukimbia inategemea ni usambazaji gani wa Linux unaotumia:
· Ubuntu na 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 update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 bado inatumika lakini toleo la CentOS la 8 linapendekezwa kwa matumizi bora ya mtumiaji. · Arch: sudo pacman -S -inahitajika gcc git kufanya flex bison gperf chatu cmake ninja ccache dfu-util libusb
Kumbuka: · CMake toleo la 3.16 au jipya zaidi linahitajika kwa matumizi na ESP-IDF. Endesha otools/idf_tools.py sakinisha cmakepto kusakinisha toleo linalofaa ikiwa matoleo yako ya OS hayana. · Ikiwa huoni usambazaji wako wa Linux katika orodha iliyo hapo juu basi tafadhali angalia hati zake ili kujua ni amri gani ya kutumia kwa usakinishaji wa kifurushi.
Kwa Watumiaji wa MacOS ESP-IDF itatumia toleo la Python iliyosanikishwa kwa chaguo-msingi kwenye macOS. · Sakinisha muundo wa CMake & Ninja: Ikiwa una HomeBrew, unaweza kuendesha: brew install cmake ninja dfu-util Ikiwa una MacPorts, unaweza kuendesha: sudo port install cmake ninja dfu-util Vinginevyo, angalia kurasa za nyumbani za CMake na Ninja kwa upakuaji wa usakinishaji wa macOS.

Mifumo ya Espressif

35 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
· Inapendekezwa sana kusakinisha pia kache kwa ajili ya ujenzi wa haraka zaidi. Ikiwa unayo HomeBrew, hii inaweza kufanywa kupitia brew install ccache au sudo port install ccache kwenye MacPorts.
Kumbuka: Ikiwa hitilafu kama hii itaonyeshwa wakati wa hatua yoyote: xcrun: kosa: njia batili ya msanidi programu (/Library/Developer/CommandLineTools), inakosa xcrun kwa: /Library/Developer/CommandLineTools/usr/bin/xcrun
Kisha utahitaji kusakinisha zana za mstari wa amri ya XCode ili kuendelea. Unaweza kusakinisha hizi kwa kuendesha xcode-select -install.
Watumiaji wa Apple M1 Ikiwa unatumia jukwaa la Apple M1 na kuona hitilafu kama hii: ONYO: saraka ya zana xtensa-esp32-elf toleo esp-2021r2-patch3-8.4.0 iko, lakini zana haikupatikana HITILAFU: zana xtensa-esp32-elf haina matoleo yaliyosakinishwa. Tafadhali endesha 'install.sh' ili kuisakinisha.
au: zsh: aina mbaya ya CPU inayoweza kutekelezwa: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Kisha utahitaji kusakinisha Apple Rosetta 2 kwa kuendesha /usr/sbin/softwareupdate -install-rosetta -agree-to-leseni
Kusakinisha Python 3 Kulingana na maelezo ya toleo la MacOS Catalina 10.15, matumizi ya Python 2.7 haipendekezwi na Python 2.7 haitajumuishwa kwa chaguo-msingi katika matoleo yajayo ya macOS. Angalia ni Python gani unayo sasa: python -version
Ikiwa matokeo ni kama Python 2.7.17, mkalimani wako chaguo-msingi ni Python 2.7. Ikiwa ni hivyo, angalia pia ikiwa Python 3 haijasanikishwa tayari kwenye kompyuta yako: python3 -version
Ikiwa amri hapo juu inarudisha kosa, inamaanisha Python 3 haijasanikishwa. Chini ni juuview ya hatua za kufunga Python 3.
· Kusakinisha na HomeBrew kunaweza kufanywa kama ifuatavyo: brew install python3
· Ikiwa una MacPorts, unaweza kukimbia: sudo port install python38
Hatua ya 2. Pata ESP-IDF Ili kuunda programu za ESP32, unahitaji maktaba za programu zinazotolewa na Espressif katika hazina ya ESP-IDF. Ili kupata ESP-IDF, nenda kwenye saraka yako ya usakinishaji na utengeneze hazina na git clone, kufuata maagizo hapa chini maalum kwa mfumo wako wa kufanya kazi. Fungua Terminal, na uendeshe amri zifuatazo:

Mifumo ya Espressif

36 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 -recursive https://github.com/espressif/esp-idf.git
ESP-IDF itapakuliwa katika ~/esp/esp-idf. Angalia Matoleo ya ESP-IDF kwa maelezo kuhusu toleo la ESP-IDF la kutumia katika hali fulani.
Hatua ya 3. Sanidi zana Kando na ESP-IDF, unahitaji pia kusakinisha zana zinazotumiwa na ESP-IDF, kama vile kikusanyaji, kitatuzi, vifurushi vya Python, n.k, kwa miradi inayounga mkono ESP32. cd ~/esp/esp-idf ./install.sh esp32
au kwa ganda la samaki cd ~/esp/esp-idf ./install.fish esp32
Amri zilizo hapo juu za kusakinisha zana za ESP32 pekee. Ikiwa unakusudia kuunda miradi kwa malengo zaidi ya chip basi unapaswa kuorodhesha yote na kukimbia kwa mfanoample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
au na ganda la samaki cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Ili kusakinisha zana za malengo yote yanayotumika tafadhali endesha amri ifuatayo: cd ~/esp/esp-idf ./install.sh zote
au kwa ganda la samaki cd ~/esp/esp-idf ./install.fish wote
Kumbuka: Kwa watumiaji wa macOS, ikiwa kosa kama hili linaonyeshwa wakati wa hatua yoyote:urlhitilafu wazi [SSL: CERTIFICATE_VERIFY_FAILED] uthibitishaji wa cheti haukufaulu: haikuweza kupata cheti cha mtoaji wa ndani (_ssl.c:xxx)
Unaweza kuendesha Sakinisha Certificates.command kwenye folda ya Python ya kompyuta yako ili kusakinisha vyeti. Kwa maelezo, angalia Hitilafu ya Upakuaji Wakati wa Kusakinisha Zana za ESP-IDF.

Mbadala File Vipakuliwa Kisakinishi cha zana hupakua idadi ya files iliyoambatanishwa na Matoleo ya GitHub. Ikiwa kufikia GitHub ni polepole basi inawezekana kuweka utofauti wa mazingira ili kupendelea seva ya upakuaji ya Espressifns kwa upakuaji wa mali ya GitHub.

Kumbuka: Mpangilio huu unadhibiti tu zana mahususi zilizopakuliwa kutoka kwa matoleo ya GitHub, haibadilishi URLinatumika kufikia hazina zozote za Git.

Ili kupendelea seva ya upakuaji ya Espressif unaposakinisha zana, tumia mlolongo ufuatao wa amri unapoendesha install.sh:

Mifumo ya Espressif

37 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Kubinafsisha njia ya usakinishaji wa zana Hati zilizoletwa katika hatua hii zana za ujumuishaji za usakinishaji zinazohitajika na ESP-IDF ndani ya saraka ya nyumbani ya mtumiaji: $HOME/.espressif kwenye Linux. Ikiwa ungependa kusakinisha zana kwenye saraka tofauti, weka utofauti wa mazingira IDF_TOOLS_PATH kabla ya kuendesha hati za usakinishaji. Hakikisha kuwa akaunti yako ya mtumiaji ina vibali vya kutosha vya kusoma na kuandika njia hii. Ukibadilisha IDF_TOOLS_PATH, hakikisha kuwa imewekwa kwa thamani sawa kila wakati hati ya Kusakinisha (sakinisha. bat, install.ps1 au install.sh) na Hati ya Hamisha (export.bat, export.ps1 au export.sh) inapotekelezwa.
Hatua ya 4. Sanidi vigezo vya mazingira Vifaa vilivyosakinishwa bado havijaongezwa kwenye kigezo cha mazingira cha PATH. Ili kufanya zana zitumike kutoka kwa mstari wa amri, vigezo vingine vya mazingira lazima viweke. ESP-IDF hutoa hati nyingine ambayo hufanya hivyo. Kwenye terminal ambapo utatumia ESP-IDF, endesha:
. $HOME/esp/esp-idf/export.sh
au kwa samaki (inatumika tu tangu toleo la samaki 3.0.0):
. $HOME/esp/esp-idf/export.fish
Kumbuka nafasi kati ya nukta inayoongoza na njia! Ikiwa unapanga kutumia esp-idf mara kwa mara, unaweza kuunda lakabu ya kutekeleza export.sh:
1. Nakili na ubandike amri ifuatayo kwa pro yako shellnsfile (.profile, .bashrc, .zprofile, nk)
pak get_idf='. $HOME/esp/esp-idf/export.sh' 2. Onyesha upya usanidi kwa kuanzisha upya kipindi cha mwisho au kwa kuendesha chanzo [path to profile],
kwa mfanoample, chanzo ~/.bashrc. Sasa unaweza kuendesha get_idf ili kusanidi au kuonyesha upya mazingira ya esp-idf katika kipindi chochote cha terminal. Kitaalam, unaweza kuongeza export.sh kwa mtaalamu wako wa shellnsfile moja kwa moja; hata hivyo, haifai. Kufanya hivyo huwasha mazingira ya mtandaoni ya IDF katika kila kipindi cha wastaafu (pamoja na yale ambayo IDF haihitajiki), na kuharibu madhumuni ya mazingira ya mtandaoni na uwezekano wa kuathiri programu nyingine.
Hatua ya 5. Hatua za Kwanza kwenye ESP-IDF Sasa kwa kuwa mahitaji yote yametimizwa, mada inayofuata itakuongoza jinsi ya kuanzisha mradi wako wa kwanza. Mwongozo huu utakusaidia kwa hatua za kwanza kutumia ESP-IDF. Fuata mwongozo huu ili kuanzisha mradi mpya kwenye ESP32 na uunde, uwashe, na ufuatilie utoaji wa kifaa.
Kumbuka: Ikiwa bado hujasakinisha ESP-IDF, tafadhali nenda kwa Usakinishaji na ufuate maagizo ili kupata programu zote zinazohitajika kutumia mwongozo huu.

Anzisha Mradi Sasa uko tayari kutayarisha ombi lako la ESP32. Unaweza kuanza na mradi wa kuanza/hello_world kutoka kwa examples saraka katika ESP-IDF.

Muhimu: Mfumo wa ujenzi wa ESP-IDF hautumii nafasi katika njia za ama ESP-IDF au miradi.

Nakili mradi anza/hello_world hadi saraka ya ~/esp:

Mifumo ya Espressif

38 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
cd ~/esp cp -r $IDF_PATH/examples/get-start/hello_world .
Kumbuka: Kuna anuwai ya zamaniampmiradi ya zamaniamples saraka katika ESP-IDF. Unaweza kunakili mradi wowote kwa njia sawa na ilivyowasilishwa hapo juu na kuuendesha. Inawezekana pia kujenga examples in-place bila kuyanakili kwanza.
Unganisha Kifaa Chako Sasa unganisha ubao wako wa ESP32 kwenye kompyuta na uangalie ubao unaonekana chini ya mlango gani wa serial. Bandari za serial zina mifumo ifuatayo ya majina:
· Linux: kuanzia /dev/tty · macOS: kuanzia /dev/cu. Iwapo huna uhakika jinsi ya kuangalia jina la kituo cha serial, tafadhali rejelea Anzisha Muunganisho wa Sifa na ESP32 kwa maelezo kamili.
Kumbuka: Weka jina la mlango karibu na utakavyolihitaji katika hatua zinazofuata.
Sanidi Mradi Wako Nenda kwenye saraka yako ya hello_world, weka ESP32 kama lengo, na uendeshe menyu ya matumizi ya usanidi wa mradi. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Baada ya kufungua mradi mpya, unapaswa kwanza kuweka lengo na idf.py set-target esp32. Kumbuka kuwa miundo na usanidi uliopo katika mradi, ikiwa upo, utafutwa na kuanzishwa katika mchakato huu. Lengo linaweza kuhifadhiwa katika utofauti wa mazingira ili kuruka hatua hii hata kidogo. Tazama Chagua Chip Lengwa: set-target kwa maelezo ya ziada. Ikiwa hatua za awali zimefanywa kwa usahihi, orodha ifuatayo inaonekana:

Kielelezo 17: Usanidi wa mradi - Dirisha la nyumbani Unatumia menyu hii kusanidi vigezo maalum vya mradi, kwa mfano, jina la mtandao wa Wi-Fi na nenosiri, kasi ya kichakataji, n.k. Kuanzisha mradi na menuconfig kunaweza kurukwa forohello_worldp, kwa kuwa huyu wa zamani.ample anaendesha na

Mifumo ya Espressif

39 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
usanidi chaguo-msingi.
Tahadhari: Ikiwa unatumia ubao wa ESP32-DevKitC na moduli ya ESP32-SOLO-1, au bodi ya ESP32-DevKitM-1 yenye moduli ya ESP32-MIN1-1(1U), tafadhali wezesha modi ya msingi moja (CONFIG_FREERTOS_UNICORE) kwenye menyuconfig kabla ya kuwasha ex.ampchini.
Kumbuka: Rangi za menyu zinaweza kuwa tofauti kwenye terminal yako. Unaweza kubadilisha mwonekano na chaguo -style. Tafadhali endesha idf.py menuconfig -help kwa maelezo zaidi.
Ikiwa unatumia mojawapo ya bodi za usanidi zinazotumika, unaweza kuharakisha usanidi wako kwa kutumia Kifurushi cha Usaidizi wa Bodi. Tazama Vidokezo vya Ziada kwa habari zaidi.
Jenga Mradi Jenga mradi kwa kuendesha:
idf.py kujenga
Amri hii itakusanya programu na vipengele vyote vya ESP-IDF, kisha itazalisha kipakiaji cha boot, jedwali la kizigeu, na jozi za programu.
$ idf.py jenga Kuendesha cmake katika saraka /path/to/hello_world/build Inatekeleza "cmake -G Ninja -onya-isiyoanzishwa /path/to/hello_world"… Onya kuhusu maadili ambayo hayajaanzishwa. — Imepatikana Git: /usr/bin/git (toleo lililopatikana “2.17.0”) — Kuunda kijenzi tupu cha aws_iot kwa sababu ya usanidi — Majina ya vijenzi: … — Njia za vipengele: …
... (mistari zaidi ya pato la mfumo wa ujenzi)
[527/527] Inazalisha hello_world.bin esptool.py v2.3.1
Ujenzi wa mradi umekamilika. Ili kuangaza, endesha amri hii: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio -flash_size tambua -flash_freq 40m 0x10000 build/hello_world. bin kujenga 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin au endesha 'idf.py -p PORT flash'
Ikiwa hakuna hitilafu, muundo utakamilika kwa kuzalisha binary ya firmware .bin files.
Mwangaza kwenye Kifaa Weka jozi ambazo umeunda hivi punde (bootloader.bin, partition-table.bin na hello_world.bin) kwenye ubao wako wa ESP32 kwa kuendesha:
idf.py -p PORT [-b BAUD] flash
Badilisha PORT na jina la bandari yako ya serial ya bodi za ESP32. Unaweza pia kubadilisha kiwango cha upotevu wa mwekaji kwa kubadilisha BAUD na kiwango cha baud unachohitaji. Kiwango chaguo-msingi cha baud ni 460800. Kwa maelezo zaidi kuhusu hoja za idf.py, angalia idf.py.
Kumbuka: Chaguo la flash huunda kiotomatiki na kuwasha mradi, kwa hivyo kuendesha idf.py build sio lazima.

Mifumo ya Espressif

40 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza

Umekumbana na Matatizo Wakati Unamulika? Ikiwa utaendesha amri uliyopewa na kuona makosa kama vile Imeshindwa kuunganishwa, kunaweza kuwa na sababu kadhaa za hii. Sababu mojawapo inaweza kuwa matatizo yanayokumbana na esptool.py, matumizi ambayo yanaitwa na mfumo wa kujenga ili kuweka upya chip, kuingiliana na kianzisha ROM, na programu dhibiti ya flash. Suluhisho moja rahisi la kujaribu ni kuweka upya kwa mikono iliyofafanuliwa hapa chini, na ikiwa haisaidii unaweza kupata maelezo zaidi kuhusu masuala yanayowezekana katika Utatuzi wa Matatizo.
esptool.py huweka upya ESP32 kiotomatiki kwa kuthibitisha njia za udhibiti za DTR na RTS za USB hadi chipu ya kibadilishaji cha serial, yaani, FTDI au CP210x (kwa maelezo zaidi, angalia Anzisha Muunganisho wa Siri na ESP32). Laini za udhibiti wa DTR na RTS kwa upande wake zimeunganishwa kwa pini za GPIO0 na CHIP_PU (EN) za ESP32, kwa hivyo mabadiliko ya sautitagviwango vya DTR na RTS vitaanzisha ESP32 kwenye modi ya Upakuaji wa Firmware. Kama example, angalia mpangilio wa bodi ya ukuzaji ya ESP32 DevKitC.
Kwa ujumla, hupaswi kuwa na matatizo na bodi rasmi za maendeleo za esp-idf. Walakini, esptool.py haiwezi kuweka upya maunzi yako kiotomatiki katika hali zifuatazo:
· Maunzi yako hayana njia za DTR na RTS zilizounganishwa kwa GPIO0 na CHIP_PU · Laini za DTR na RTS zimesanidiwa kwa njia tofauti · Hakuna laini za udhibiti kama hizi hata kidogo.
Kulingana na aina ya maunzi uliyo nayo, inaweza pia kuwezekana kuweka ubao wako wa ESP32 kwa mikono katika modi ya Upakuaji wa Firmware (weka upya).
· Kwa bodi za maendeleo zinazozalishwa na Espressif, habari hii inaweza kupatikana katika miongozo husika ya kuanza au miongozo ya watumiaji. Kwa mfanoample, ili kuweka upya ubao wa ukuzaji wa ESP-IDF, shikilia kitufe cha Kuwasha (GPIO0) na ubonyeze kitufe cha EN (CHIP_PU).
· Kwa aina zingine za maunzi, jaribu kuvuta GPIO0 chini.

Operesheni ya Kawaida Wakati wa kuangaza, utaona logi ya pato sawa na ifuatayo:
... esptool.py -chip esp32 -p /dev/ttyUSB0 -b 460800 -before=default_reset -after=hard_reset write_flash -flash_mode dio -flash_freq 40m -flash_size 2MB 0x8000 partition_table/partition0bootertable.bin0loadertable. 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Inaunganisha…….._ Chip ni ESP32D0WDQ6 (marekebisho 0) Sifa: WiFi, BT, Dual Core, Mpango wa Usimbaji Hakuna Kioo kiko 40MHz MAC: 24: 0: 9: Kupakia: 9: 0a. stub… Uvimbe unaendelea… Kubadilisha kiwango cha ubovu hadi 460800 Imebadilishwa. Inasanidi ukubwa wa mweko... Imebanwa baiti 3072 hadi 103… Ikiandika kwa 0x00008000… (100 %) Iliandika baiti 3072 (103 imebanwa) kwa 0x00008000 kwa sekunde 0.0 (inatumia 5962.8 kbit/s). Imebanwa baiti 26096 hadi 15408… Ikiandika kwa 0x00001000… (100 %) Iliandika baiti 26096 (15408 imebanwa) kwa 0x00001000 kwa sekunde 0.4 (inafanya ufanisi 546.7 kbit/s data)… Imebanwa baiti 147104 hadi 77364… Inaandika kwa 0x00010000… (20 %) Inaandika kwa 0x00014000… (40 %) Inaandika kwa 0x00018000… (60 %) Inaandika kwa 0x0001c0%)
(inaendelea kwenye ukurasa unaofuata)

Mifumo ya Espressif

41 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
(inaendelea kutoka ukurasa uliotangulia) Kuandika kwa 0x00020000… (100 %) Aliandika 147104 byte (77364 imebanwa) kwa 0x00010000 kwa sekunde 1.9 (inatumika 615. 5 kbit/s)… Hash ya data imethibitishwa.
Inaondoka... Kuweka upya kwa bidii kupitia pin ya RTS... Imekamilika
Ikiwa hakuna matatizo kufikia mwisho wa mchakato wa flash, ubao utaanza upya na kuanzisha programu ya theohello_world. Ikiwa ungependa kutumia Eclipse au VS Code IDE badala ya kuendesha idf.py, angalia Programu-jalizi ya Eclipse, Kiendelezi cha VSCode.
Fuatilia Pato Kuangalia kama ohello_worldpis inaendesha kweli, chapa idf.py -p PORT monitor (Usisahau kubadilisha PORT na jina la serial yako ya bandari). Amri hii inazindua programu ya Monitor ya IDF:
$ idf.py -p kufuatilia Inaendesha idf_monitor katika saraka […]/esp/hello_world/build Inatekeleza “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor imewashwa. 115200 —– Acha: Ctrl+] | Menyu: Ctrl+T | Usaidizi: Ctrl+T ikifuatiwa na Ctrl+H –ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET), buti:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 ...
Baada ya uanzishaji na kumbukumbu za uchunguzi kusogeza juu, unapaswa kuona oHello world!imechapishwa na programu.
… Hujambo ulimwengu! Inawasha tena baada ya sekunde 10... Hii ni chip esp32 yenye core(zi) 2 za CPU), WiFi/BT/BLE, masahihisho ya silicon 1, flash ya nje 2MB Kiwango cha chini cha lundo lisilolipishwa: baiti 298968 Inawashwa tena baada ya sekunde 9... Inaanza tena baada ya sekunde 8... Inaanza tena baada ya sekunde 7...
Ili kuondoka kwenye ufuatiliaji wa IDF tumia njia ya mkato Ctrl+]. Ikiwa kifuatiliaji cha IDF kitashindwa muda mfupi baada ya upakiaji, au, ikiwa badala ya ujumbe ulio hapo juu, utaona takataka zisizo na mpangilio sawa na zilizo hapa chini, ubao wako unaweza kutumia fuwele ya 26 MHz. Miundo mingi ya bodi ya ukuzaji hutumia 40 MHz, kwa hivyo ESP-IDF hutumia mzunguko huu kama thamani chaguo-msingi.

Ikiwa una shida kama hiyo, fanya yafuatayo:
1. Toka kufuatilia. 2. Rudi kwenye menyuconfig. 3. Nenda kwa Usanidi wa Kipengee > Mipangilio ya Maunzi > Usanidi Mkuu wa XTAL > Kuu XTAL
masafa, kisha ubadilishe CONFIG_XTAL_FREQ_SEL hadi 26 MHz. 4. Baada ya hayo, jenga na uangaze tena programu.

Mifumo ya Espressif

42 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Katika toleo la sasa la ESP-IDF, masafa kuu ya XTAL yanayoungwa mkono na ESP32 ni kama ifuatavyo:
· 26 MHz · 40 MHz
Kumbuka: Unaweza kuchanganya jengo, kuwaka na ufuatiliaji katika hatua moja kwa kukimbia: idf.py -p PORT flash monitor
Tazama pia: · IDF Monitor kwa njia za mkato rahisi na maelezo zaidi juu ya kutumia kifuatilizi cha IDF. · idf.py kwa marejeleo kamili ya amri na chaguzi za idf.py.
Hiyo ndiyo yote unahitaji ili kuanza na ESP32! Sasa uko tayari kujaribu mtu mwingine wa zamaniamples, au nenda moja kwa moja kuunda programu zako mwenyewe.
Muhimu: Baadhi ya examples haitumii ESP32 kwa sababu maunzi yanayohitajika hayajajumuishwa katika ESP32 kwa hivyo hayawezi kutumika. Ikiwa kujenga example, tafadhali angalia README file kwa jedwali la Malengo Yanayotumika. Ikiwa hii ipo ikijumuisha lengo la ESP32, au jedwali halipo kabisa, toleo la zamaniample itafanya kazi kwenye ESP32.
Vidokezo vya Ziada
Masuala ya ruhusa /dev/ttyUSB0 Ukiwa na baadhi ya usambazaji wa Linux, unaweza kupata Imeshindwa kufungua mlango /dev/ttyUSB0 ujumbe wa hitilafu unapomulika ESP32. Hili linaweza kutatuliwa kwa kuongeza mtumiaji wa sasa kwenye kikundi cha mazungumzo.
Utangamano wa Python ESP-IDF inasaidia Python 3.7 au mpya zaidi. Inapendekezwa kuboresha mfumo wako wa uendeshaji hadi toleo la hivi karibuni linalokidhi mahitaji haya. Chaguzi zingine ni pamoja na usakinishaji wa Python kutoka kwa vyanzo au utumiaji wa mfumo wa usimamizi wa toleo la Python kama vile pyenv.
Anza na Kifurushi cha Usaidizi wa Bodi Ili kuharakisha uchapaji picha kwenye baadhi ya vibao vya ukuzaji, unaweza kutumia Vifurushi vya Usaidizi wa Bodi (BSPs), jambo ambalo hurahisisha uanzishaji wa bodi fulani kama simu chache za utendaji. BSP kwa kawaida huauni vipengele vyote vya maunzi vilivyotolewa kwenye bodi ya ukuzaji. Kando na ufafanuzi wa pinout na utendakazi wa uanzishaji, BSP husafirisha viendeshi vya vipengee vya nje kama vile vitambuzi, skrini, kodeki za sauti n.k. BSP husambazwa kupitia Kidhibiti cha Kipengele cha IDF, ili ziweze kupatikana katika Usajili wa Kipengele cha IDF. Herens wa zamaniampjinsi ya kuongeza ESP-WROVER-KIT BSP kwenye mradi wako: idf.py add-dependency esp_wrover_kit
Ex zaidiampLes ya matumizi ya BSP inaweza kupatikana katika BSP examples folda.
Kidokezo: Kusasisha ESP-IDF Inapendekezwa kusasisha ESP-IDF mara kwa mara, kwani matoleo mapya hurekebisha hitilafu na/au kutoa vipengele vipya. Tafadhali kumbuka kuwa kila toleo kuu na dogo la ESP-IDF lina muda wa usaidizi unaohusishwa, na wakati tawi moja la toleo linakaribia mwisho wa maisha (EOL), watumiaji wote wanahimizwa kuboresha miradi yao hadi matoleo ya hivi karibuni ya ESP-IDF, ili kujua zaidi kuhusu vipindi vya usaidizi, angalia Matoleo ya ESP-IDF.

Mifumo ya Espressif

43 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 1. Anza
Njia rahisi zaidi ya kufanya sasisho ni kufuta folda ya esp-idf iliyopo na kuiga tena, kana kwamba unatekeleza usakinishaji wa awali ulioelezwa katika Hatua ya 2. Pata ESP-IDF. Suluhisho lingine ni kusasisha tu kile ambacho kimebadilika. Utaratibu wa kusasisha unategemea toleo la ESP-IDF unalotumia. Baada ya kusasisha ESP-IDF, tekeleza hati ya Kusakinisha tena, ikiwa toleo jipya la ESP-IDF linahitaji matoleo tofauti ya zana. Tazama maagizo katika Hatua ya 3. Sanidi zana. Mara tu zana mpya zitakaposakinishwa, sasisha mazingira kwa kutumia hati ya Hamisha. Tazama maagizo katika Hatua ya 4. Weka vigezo vya mazingira.
Hati Zinazohusiana · Anzisha Muunganisho wa Siri na ESP32 · Programu-jalizi ya Eclipse · Kiendelezi cha VSCode · Monitor ya IDF
1.4 Jenga Mradi Wako wa Kwanza
Ikiwa tayari una ESP-IDF iliyosakinishwa na hutumii IDE, unaweza kuunda mradi wako wa kwanza kutoka kwa mstari wa amri kufuatia Anzisha Mradi kwenye Windows au Anzisha Mradi kwenye Linux na macOS.
1.5 Sanidua ESP-IDF
Ikiwa ungependa kuondoa ESP-IDF, tafadhali fuata Sanidua ESP-IDF.

Mifumo ya Espressif

44 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 2
Rejea ya API
2.1 Mikataba ya API
Hati hii inaeleza kanuni na dhana zinazojulikana kwa Violesura vya Kutayarisha Programu vya ESP-IDF (API). ESP-IDF hutoa aina kadhaa za miingiliano ya programu:
· Vitendaji vya C, miundo, enum, ufafanuzi wa aina na makro ya kichakataji awali yaliyotangazwa kwenye kichwa cha umma files ya vipengele vya ESPDF. Kurasa mbalimbali katika sehemu ya Marejeleo ya API ya mwongozo wa programu zina maelezo ya kazi hizi, miundo na aina.
· Jenga vitendaji vya mfumo, vigeu vilivyoainishwa awali na chaguo. Hizi zimeandikwa katika mwongozo wa mfumo wa kujenga. · Chaguo za Kconfig zinaweza kutumika katika msimbo na katika mfumo wa ujenzi (CMakeLists.txt) files. · Zana za mwenyeji na vigezo vyao vya mstari wa amri pia ni sehemu ya kiolesura cha ESP-IDF. ESP-IDF ina vipengele vilivyoandikwa mahususi kwa ajili ya ESP-IDF pamoja na maktaba za watu wengine. Katika baadhi ya matukio, kanga mahususi ya ESP-IDF huongezwa kwenye maktaba ya watu wengine, ikitoa kiolesura ambacho ni rahisi zaidi au kilichounganishwa vyema na vifaa vingine vya ESP-IDF. Katika hali nyingine, API ya asili ya maktaba ya mtu wa tatu inawasilishwa kwa watengenezaji wa programu. Sehemu zifuatazo zinaelezea baadhi ya vipengele vya API za ESP-IDF na matumizi yake.
Utoaji wa Hitilafu ya 2.1.1
API nyingi za ESP-IDF hurejesha misimbo ya hitilafu iliyofafanuliwa kwa aina esp_err_t. Tazama sehemu ya Kushughulikia Makosa kwa maelezo zaidi kuhusu mbinu za kushughulikia makosa. Rejea ya Msimbo wa Hitilafu ina orodha ya misimbo ya hitilafu iliyorejeshwa na vipengele vya ESP-IDF.
2.1.2 Miundo ya usanidi
Muhimu: Uanzishaji sahihi wa miundo ya usanidi ni sehemu muhimu katika kufanya programu iendane na matoleo yajayo ya ESP-IDF.
Kazi nyingi za uanzishaji au usanidi katika ESP-IDF huchukua kama hoja kielekezi kwa muundo wa usanidi. Kwa mfanoample:
45

Sura ya 2. Rejea ya API

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "my_timer"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Vitendaji vya uanzishaji havihifadhi kielekezi kwenye muundo wa usanidi, kwa hivyo ni salama kutenga muundo kwenye rafu.
Programu lazima ianzishe nyanja zote za muundo. Ifuatayo sio sahihi:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Si sahihi! Sehemu za .arg na .name hazijaanzishwa */ esp_timer_create(&my_timer_args, &my_timer);
ESP-IDF nyingi za zamaniamples tumia vianzilishi vilivyoteuliwa vya C99 kwa uanzishaji wa muundo, kwani hutoa njia fupi ya kuweka sehemu ndogo ya sehemu, na sifuri-kuanzisha sehemu zilizobaki:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Sahihi, sehemu .arg na .name hazijaanzishwa */
};
Lugha ya C++ haitumii sintaksia ya vianzilishi vilivyoteuliwa hadi C++20, hata hivyo mkusanyaji wa GCC anaitumia kama kiendelezi. Unapotumia API za ESP-IDF katika nambari ya C++, unaweza kufikiria kutumia muundo ufuatao:
esp_timer_create_args_t my_timer_args = {}; /* Sehemu zote hazijaanzishwa */ my_timer_args.callback = &my_timer_callback;

Vianzishaji chaguomsingi
Kwa miundo mingine ya usanidi, ESP-IDF hutoa macros kwa kuweka maadili chaguo-msingi ya sehemu:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG inapanuka hadi kianzishaji kilichoteuliwa.
Sasa sehemu zote zimewekwa kwa maadili chaguo-msingi. Sehemu yoyote bado inaweza kurekebishwa: */ config.server_port = 8081; httpd_handle_t seva; esp_err_t err = httpd_start(&server, &config);
Inapendekezwa kutumia macros za kianzilishi chaguo-msingi kila zinapotolewa kwa muundo fulani wa usanidi.

2.1.3 API za kibinafsi
Kichwa fulani files katika ESP-IDF ina API zinazokusudiwa kutumika tu katika msimbo wa chanzo wa ESP-IDF, na si kwa programu. Kichwa kama hicho files mara nyingi huwa na faragha au esp_private katika jina au njia yao. Vipengee vingine, kama vile hal vina API za kibinafsi pekee. API za Kibinafsi zinaweza kuondolewa au kubadilishwa kwa njia isiyopatana kati ya matoleo madogo au viraka.

2.1.4 Vipengele katika exampmiradi le
ESP-IDF examples zina miradi mbalimbali inayoonyesha matumizi ya API za ESP-IDF. Ili kupunguza marudio ya nambari katika examples, wasaidizi wachache wa kawaida hufafanuliwa ndani ya vipengele ambavyo hutumiwa na ex nyingiampchini.

Mifumo ya Espressif

46 Peana Maoni ya Hati

Kutolewa v5.0.9

Sura ya 2. Rejea ya API
Hii inajumuisha vipengele vilivyowekwa

Nyaraka / Rasilimali

Bodi ya Maendeleo ya Espressif Systems ESP32 Dev Kitc [pdf] Mwongozo wa Mtumiaji
Bodi ya Maendeleo ya ESP32 Dev Kitc, ESP32, Bodi ya Maendeleo ya Dev Kitc, Bodi ya Maendeleo ya Kitc, Bodi ya Maendeleo, Bodi

Marejeleo

Acha maoni

Barua pepe yako haitachapishwa. Sehemu zinazohitajika zimetiwa alama *